{"openapi":"3.1.0","info":{"title":"MBC Dash API","description":"Auth, users and sessions skeleton","license":{"name":"Proprietary"},"version":"0.1.0"},"servers":[{"url":"https://dash.mbc-apps.com/api","description":"Generated server url"}],"security":[{"bearerAuth":[]}],"tags":[{"name":"Spaces","description":"Spaces, their statuses and custom fields"},{"name":"Tasks","description":"Lists, tasks, subtasks, comments and activity"},{"name":"Trash","description":"Recently deleted things, and putting them back"},{"name":"Task search","description":"Cross-space search behind saved views"},{"name":"OAuth","description":"Sign-in and consent for MCP connectors"},{"name":"Views","description":"Saved cross-space views"},{"name":"Watchlist","description":"A shared queue of videos and films inside one widget"},{"name":"API keys","description":"Letting a machine act as you, and taking it back"},{"name":"Boards","description":"Widgets: shared personal tools with their own membership"},{"name":"Workspaces","description":"Studios/accounts that own spaces"},{"name":"Authentication","description":"External OIDC sign-in"},{"name":"OAuth","description":"Registration for MCP connectors"},{"name":"Authentication","description":"Registration, login, sessions, password & email flows"},{"name":"Stats","description":"How much work there is, and how much of it moved"},{"name":"Task details","description":"Links between tasks, work log and attachments"},{"name":"Audit","description":"Who did what, and through which surface"},{"name":"Sessions","description":"Active devices for the current user"},{"name":"Folders","description":"Folders over spaces and the order of the sidebar tree"},{"name":"Users","description":"Authenticated user profile"}],"paths":{"/workspaces/{workspaceId}/home-layout":{"get":{"tags":["Views"],"summary":"My dashboard for a workspace","operationId":"homeLayout","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/HomeLayoutResponse"}}}}}},"put":{"tags":["Views"],"summary":"Replace the dashboard; widgets pointing at other people's views are dropped","operationId":"saveHomeLayout","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HomeLayoutRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/HomeLayoutResponse"}}}}}}},"/tasks/{id}/fields/{fieldId}":{"put":{"tags":["Tasks"],"summary":"Set a custom-field value on a task","operationId":"setField","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"fieldId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FieldValueRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/TaskResponse"}}}}}}},"/boards/{boardId}/watchlist/items/{itemId}/reaction":{"put":{"tags":["Watchlist"],"summary":"Answer a proposal, and rate it","operationId":"react","parameters":[{"name":"boardId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"itemId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReactRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ItemResponse"}}}}}}},"/boards/{boardId}/watchlist/items/order":{"put":{"tags":["Watchlist"],"summary":"The queue in the order it was dragged into","operationId":"reorder","parameters":[{"name":"boardId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderRequest"}}},"required":true},"responses":{"204":{"description":"No Content"}}}},"/boards/placement":{"put":{"tags":["Boards"],"summary":"Rearrange my own sidebar list","description":"Order in the array is the order on screen; pinning is personal too, so this moves nobody else's list.","operationId":"place","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlacementRequest"}}},"required":true},"responses":{"204":{"description":"No Content"}}}},"/workspaces":{"get":{"tags":["Workspaces"],"summary":"List workspaces I belong to","operationId":"list","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceResponse"}}}}}}},"post":{"tags":["Workspaces"],"summary":"Create a workspace","operationId":"create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWorkspaceRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"*/*":{"schema":{"$ref":"#/components/schemas/WorkspaceResponse"}}}}}}},"/workspaces/{workspaceId}/views":{"get":{"tags":["Views"],"summary":"My views in a workspace (seeds \"My tasks\" on first call)","operationId":"list_1","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ViewResponse"}}}}}}},"post":{"tags":["Views"],"summary":"Create a view, from scratch or from a template","operationId":"create_1","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateViewRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ViewResponse"}}}}}}},"/workspaces/{workspaceId}/spaces":{"get":{"tags":["Spaces"],"summary":"List spaces I can see in a workspace","operationId":"list_2","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SpaceResponse"}}}}}}},"post":{"tags":["Spaces"],"summary":"Create a space in a workspace","operationId":"create_2","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSpaceRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SpaceResponse"}}}}}}},"/workspaces/{workspaceId}/folders":{"post":{"tags":["Folders"],"summary":"Create a folder, empty, at the end of its level","operationId":"create_3","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFolderRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"*/*":{"schema":{"$ref":"#/components/schemas/FolderResponse"}}}}}}},"/workspaces/{id}/members":{"get":{"tags":["Workspaces"],"summary":"Members of a workspace with their display name and email","description":"Everything a people-picker needs — assignee choosers must never show raw ids.","operationId":"members","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MemberProfileResponse"}}}}}}},"post":{"tags":["Workspaces"],"summary":"Add a member to a workspace, by id or by email","description":"The interface knows an address, not an id — so either identifies the person, and exactly one must be given.","operationId":"addMember","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddMemberRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/WorkspaceResponse"}}}}}}},"/views/{id}/duplicate":{"post":{"tags":["Views"],"operationId":"duplicate","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"201":{"description":"Created","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ViewResponse"}}}}}}},"/trash/{deletionId}/restore":{"post":{"tags":["Trash"],"summary":"Put one deletion back","operationId":"restore","parameters":[{"name":"deletionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/TrashResponse"}}}}}}},"/tasks/{taskId}/worklog":{"get":{"tags":["Task details"],"operationId":"workLog","parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkLogResponse"}}}}}}},"post":{"tags":["Task details"],"summary":"Log time spent on a task","operationId":"logWork","parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkLogRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"*/*":{"schema":{"$ref":"#/components/schemas/WorkLogResponse"}}}}}}},"/tasks/{taskId}/links":{"get":{"tags":["Task details"],"operationId":"links","parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LinkResponse"}}}}}}},"post":{"tags":["Task details"],"summary":"Link this task to another one","operationId":"link","parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"*/*":{"schema":{"$ref":"#/components/schemas/LinkResponse"}}}}}}},"/tasks/{taskId}/attachments":{"get":{"tags":["Task details"],"operationId":"attachments","parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AttachmentResponse"}}}}}}},"post":{"tags":["Task details"],"summary":"Attach a file to a task","operationId":"attach","parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}}}},"responses":{"201":{"description":"Created","content":{"*/*":{"schema":{"$ref":"#/components/schemas/AttachmentResponse"}}}}}}},"/tasks/{id}/tags":{"post":{"tags":["Tasks"],"operationId":"addTag","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TagRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/TaskResponse"}}}}}}},"/tasks/{id}/subtasks":{"get":{"tags":["Tasks"],"operationId":"subtasks","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TaskResponse"}}}}}}},"post":{"tags":["Tasks"],"operationId":"addSubtask","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NameRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"*/*":{"schema":{"$ref":"#/components/schemas/TaskResponse"}}}}}}},"/tasks/{id}/comments":{"get":{"tags":["Tasks"],"operationId":"comments","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CommentResponse"}}}}}}},"post":{"tags":["Tasks"],"operationId":"comment","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommentRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"*/*":{"schema":{"$ref":"#/components/schemas/CommentResponse"}}}}}}},"/tasks/{id}/assignees":{"post":{"tags":["Tasks"],"operationId":"assign","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssigneeRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/TaskResponse"}}}}}}},"/tasks/search":{"post":{"tags":["Task search"],"summary":"Search tasks across every space the caller can see","operationId":"search","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SearchResponse"}}}}}}},"/tasks/search/grouped":{"post":{"tags":["Task search"],"summary":"Same search, split into groups that each carry their own page and total","operationId":"searchGrouped","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/GroupedSearchResponse"}}}}}}},"/spaces/{spaceId}/tasks":{"get":{"tags":["Tasks"],"operationId":"bySpace","parameters":[{"name":"spaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TaskResponse"}}}}}}},"post":{"tags":["Tasks"],"summary":"Create a task in a space — the single entry point","description":"Picks the space's first list when listId is omitted, creating one if the space has none yet. Everything the task carries (status, due date, priority, description, assignees, tags) is set in one transaction.","operationId":"createTaskInSpace","parameters":[{"name":"spaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTaskInSpaceRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"*/*":{"schema":{"$ref":"#/components/schemas/TaskResponse"}}}}}}},"/spaces/{spaceId}/lists":{"get":{"tags":["Tasks"],"operationId":"lists","parameters":[{"name":"spaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ListResponse"}}}}}}},"post":{"tags":["Tasks"],"summary":"Create a list in a space","operationId":"createList","parameters":[{"name":"spaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NameRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ListResponse"}}}}}}},"/spaces/{id}/statuses":{"get":{"tags":["Spaces"],"operationId":"statuses","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/StatusResponse"}}}}}}},"post":{"tags":["Spaces"],"operationId":"addStatus","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"*/*":{"schema":{"$ref":"#/components/schemas/StatusResponse"}}}}}}},"/spaces/{id}/restore":{"post":{"tags":["Spaces"],"summary":"Restore an archived space","operationId":"restore_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"No Content"}}}},"/spaces/{id}/move":{"post":{"tags":["Folders"],"summary":"Move a space into a folder (or the root), right after the given node","operationId":"moveSpace","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoveRequest"}}},"required":true},"responses":{"204":{"description":"No Content"}}}},"/spaces/{id}/fields":{"get":{"tags":["Spaces"],"operationId":"fields","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FieldResponse"}}}}}}},"post":{"tags":["Spaces"],"operationId":"addField","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFieldRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"*/*":{"schema":{"$ref":"#/components/schemas/FieldResponse"}}}}}}},"/spaces/{id}/archive":{"post":{"tags":["Spaces"],"summary":"Archive a space","operationId":"archive","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"No Content"}}}},"/oauth2/register":{"post":{"tags":["OAuth"],"summary":"Register a connector (RFC 7591)","operationId":"register","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegistrationRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RegistrationResponse"}}}}}}},"/lists/{listId}/tasks":{"get":{"tags":["Tasks"],"operationId":"byList","parameters":[{"name":"listId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TaskResponse"}}}}}}},"post":{"tags":["Tasks"],"summary":"Create a task in a list","operationId":"createTask","parameters":[{"name":"listId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTaskRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"*/*":{"schema":{"$ref":"#/components/schemas/TaskResponse"}}}}}}},"/folders/{id}/move":{"post":{"tags":["Folders"],"summary":"Move a folder under a parent, right after the given node","operationId":"moveFolder","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoveRequest"}}},"required":true},"responses":{"204":{"description":"No Content"}}}},"/boards":{"get":{"tags":["Boards"],"summary":"My widgets, plus the invitations waiting for an answer","operationId":"list_3","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BoardsResponse"}}}}}},"post":{"tags":["Boards"],"summary":"Create a widget","operationId":"create_4","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBoardRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BoardResponse"}}}}}}},"/boards/{id}/members":{"get":{"tags":["Boards"],"summary":"Members of a widget with their display name and email","operationId":"members_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MemberProfileResponse"}}}}}}},"post":{"tags":["Boards"],"summary":"Invite someone, by id or by email","description":"The invitation grants nothing until it is accepted — widgets hold personal things, so nobody is added to one quietly.","operationId":"invite","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BoardResponse"}}}}}}},"/boards/{id}/leave":{"post":{"tags":["Boards"],"summary":"Leave a widget","description":"Anyone but the owner, who deletes it instead.","operationId":"leave","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"No Content"}}}},"/boards/{id}/decline":{"post":{"tags":["Boards"],"summary":"Decline an invitation — the row goes, leaving no trace","operationId":"decline","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"No Content"}}}},"/boards/{id}/accept":{"post":{"tags":["Boards"],"summary":"Accept an invitation to a widget","operationId":"accept","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BoardResponse"}}}}}}},"/boards/{boardId}/watchlist/preview":{"post":{"tags":["Watchlist"],"summary":"What a link points at, without adding it","description":"The single input field asks this while the person is still deciding.","operationId":"preview","parameters":[{"name":"boardId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/MediaResponse"}}}}}}},"/boards/{boardId}/watchlist/items":{"get":{"tags":["Watchlist"],"summary":"The queue, in the widget's own order","operationId":"queue","parameters":[{"name":"boardId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ItemResponse"}}}}}}},"post":{"tags":["Watchlist"],"summary":"Propose something — by link, or by the id a search returned","description":"409 when the same thing is already waiting in the queue.","operationId":"propose","parameters":[{"name":"boardId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProposeRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ItemResponse"}}}}}}},"/boards/{boardId}/watchlist/items/{itemId}/watched":{"post":{"tags":["Watchlist"],"summary":"Mark it watched — it leaves the queue for the history","operationId":"markWatched","parameters":[{"name":"boardId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"itemId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ItemResponse"}}}}}},"delete":{"tags":["Watchlist"],"summary":"Put it back in the queue","operationId":"unmarkWatched","parameters":[{"name":"boardId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"itemId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ItemResponse"}}}}}}},"/auth/register":{"post":{"tags":["Authentication"],"summary":"Register a new account (auto-login)","operationId":"register_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/AuthResponse"}}}}}}},"/auth/refresh":{"post":{"tags":["Authentication"],"summary":"Rotate the refresh token and issue a new access token","operationId":"refresh","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/AuthResponse"}}}}}}},"/auth/password/reset":{"post":{"tags":["Authentication"],"summary":"Set a new password using a reset token","operationId":"resetPassword","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetPasswordRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}}}}},"/auth/password/forgot":{"post":{"tags":["Authentication"],"summary":"Request a password reset email","operationId":"forgotPassword","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForgotPasswordRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}}}}},"/auth/oauth2/keycloak/exchange":{"post":{"tags":["Authentication"],"summary":"Trade a Keycloak id token for this application's access + refresh tokens","operationId":"exchange","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthExchangeRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/AuthResponse"}}}}}}},"/auth/oauth/space-selection":{"post":{"tags":["OAuth"],"summary":"Limit the connection being consented to","operationId":"chooseSpaces","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpaceSelection"}}},"required":true},"responses":{"204":{"description":"No Content"}}}},"/auth/oauth/session":{"post":{"tags":["OAuth"],"summary":"Start a session for the authorization flow","operationId":"startSession","responses":{"204":{"description":"No Content"}}}},"/auth/logout":{"post":{"tags":["Authentication"],"summary":"Revoke the current session","operationId":"logout","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogoutRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}}}}},"/auth/logout-all":{"post":{"tags":["Authentication"],"summary":"Revoke all sessions of the current user","operationId":"logoutAll","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}}}}},"/auth/login":{"post":{"tags":["Authentication"],"summary":"Log in with email and password","operationId":"login","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/AuthResponse"}}}}}}},"/auth/email/verify":{"post":{"tags":["Authentication"],"summary":"Confirm an email address using a verification token","operationId":"verifyEmail","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}}}}},"/auth/email/resend":{"post":{"tags":["Authentication"],"summary":"Resend the email verification link to the current user","operationId":"resendVerification","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}}}}},"/api-keys":{"get":{"tags":["API keys"],"summary":"Keys the caller has issued","operationId":"list_4","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/KeyResponse"}}}}}}},"post":{"tags":["API keys"],"summary":"Issue a key","description":"The secret is in the response and nowhere else, ever again.","operationId":"issue","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"*/*":{"schema":{"$ref":"#/components/schemas/IssuedResponse"}}}}}}},"/workspaces/{id}":{"get":{"tags":["Workspaces"],"summary":"Get a workspace I belong to","operationId":"get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/WorkspaceResponse"}}}}}},"delete":{"tags":["Workspaces"],"summary":"Delete an empty workspace","description":"Refused while it still holds projects: a workspace does not take its contents with it, and there is no trash at this level.","operationId":"delete","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"No Content"}}},"patch":{"tags":["Workspaces"],"summary":"Rename a workspace","operationId":"rename","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenameWorkspaceRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/WorkspaceResponse"}}}}}}},"/workspaces/{id}/members/{userId}":{"delete":{"tags":["Workspaces"],"summary":"Take a member out of a workspace","operationId":"removeMember","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"userId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/WorkspaceResponse"}}}}}},"patch":{"tags":["Workspaces"],"summary":"Promote or demote a member","operationId":"changeMemberRole","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"userId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeRoleRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/WorkspaceResponse"}}}}}}},"/views/{id}":{"get":{"tags":["Views"],"operationId":"get_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ViewResponse"}}}}}},"delete":{"tags":["Views"],"operationId":"delete_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"No Content"}}},"patch":{"tags":["Views"],"operationId":"update","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateViewRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ViewResponse"}}}}}}},"/users/me":{"get":{"tags":["Users"],"summary":"Get the current user's profile","operationId":"me","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}}}},"patch":{"tags":["Users"],"summary":"Update the current user's profile","operationId":"updateMe","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProfileRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}}}}},"/tasks/{id}":{"get":{"tags":["Tasks"],"operationId":"get_2","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/TaskResponse"}}}}}},"delete":{"tags":["Tasks"],"operationId":"delete_2","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"No Content"}}},"patch":{"tags":["Tasks"],"operationId":"update_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTaskRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/TaskResponse"}}}}}}},"/tasks/{id}/status":{"patch":{"tags":["Tasks"],"operationId":"changeStatus","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusChangeRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/TaskResponse"}}}}}}},"/tasks/{id}/move":{"patch":{"tags":["Tasks"],"operationId":"move","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoveRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/TaskResponse"}}}}}}},"/tasks/{id}/comments/{commentId}":{"delete":{"tags":["Tasks"],"operationId":"deleteComment","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"commentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"No Content"}}},"patch":{"tags":["Tasks"],"operationId":"editComment","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"commentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditCommentRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/CommentResponse"}}}}}}},"/statuses/{statusId}":{"delete":{"tags":["Spaces"],"operationId":"deleteStatus","parameters":[{"name":"statusId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"No Content"}}},"patch":{"tags":["Spaces"],"operationId":"updateStatus","parameters":[{"name":"statusId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/StatusResponse"}}}}}}},"/spaces/{id}":{"get":{"tags":["Spaces"],"summary":"Get a space","operationId":"get_3","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SpaceResponse"}}}}}},"delete":{"tags":["Spaces"],"summary":"Permanently delete a space with everything inside — irreversible","operationId":"delete_3","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"No Content"}}},"patch":{"tags":["Spaces"],"summary":"Update space settings (name, visibility, color, icon); nulls keep current values","operationId":"update_2","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSpaceRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SpaceResponse"}}}}}}},"/lists/{listId}":{"delete":{"tags":["Tasks"],"operationId":"deleteList","parameters":[{"name":"listId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"No Content"}}},"patch":{"tags":["Tasks"],"operationId":"updateList","parameters":[{"name":"listId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListUpdateRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ListResponse"}}}}}}},"/folders/{id}":{"delete":{"tags":["Folders"],"summary":"Delete the folder only — its spaces and subfolders move up to its parent","operationId":"delete_4","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"No Content"}}},"patch":{"tags":["Folders"],"summary":"Update folder settings (name, colour, icon, visibility); nulls keep current values","operationId":"update_3","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFolderRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/FolderResponse"}}}}}}},"/fields/{fieldId}":{"delete":{"tags":["Spaces"],"operationId":"deleteField","parameters":[{"name":"fieldId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"No Content"}}},"patch":{"tags":["Spaces"],"operationId":"updateField","parameters":[{"name":"fieldId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFieldRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/FieldResponse"}}}}}}},"/boards/{id}":{"get":{"tags":["Boards"],"summary":"Get a widget I have joined","operationId":"get_4","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BoardResponse"}}}}}},"delete":{"tags":["Boards"],"summary":"Delete a widget and everything in it","description":"Owner only, and it does not go to the trash — the interface asks first.","operationId":"delete_5","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"No Content"}}},"patch":{"tags":["Boards"],"summary":"Rename or restyle a widget","operationId":"update_4","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBoardRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BoardResponse"}}}}}}},"/boards/{id}/members/{userId}":{"delete":{"tags":["Boards"],"summary":"Take a member out, or withdraw an invitation","operationId":"removeMember_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"userId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BoardResponse"}}}}}},"patch":{"tags":["Boards"],"summary":"Promote or demote a member","operationId":"changeMemberRole_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"userId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeRoleRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BoardResponse"}}}}}}},"/boards/{boardId}/watchlist/settings":{"get":{"tags":["Watchlist"],"summary":"How this watchlist behaves","operationId":"settings","parameters":[{"name":"boardId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SettingsResponse"}}}}}},"patch":{"tags":["Watchlist"],"summary":"Change how it behaves. Owners and admins.","operationId":"updateSettings","parameters":[{"name":"boardId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettingsRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SettingsResponse"}}}}}}},"/api-keys/{id}":{"delete":{"tags":["API keys"],"summary":"Revoke a key","operationId":"revoke","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"No Content"}}},"patch":{"tags":["API keys"],"summary":"Change a key's name, scopes or reach","description":"Takes effect at once: rights are read from the key's row on every call.","operationId":"redefine","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/KeyResponse"}}}}}}},"/workspaces/{workspaceId}/views/all":{"get":{"tags":["Views"],"summary":"Every view I own here, including the hidden ones backing widgets","operationId":"listAll","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ViewResponse"}}}}}}}},"/workspaces/{workspaceId}/tags":{"get":{"tags":["Task search"],"summary":"Tags in use across a workspace, most used first","operationId":"tags","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TagResponse"}}}}}}}},"/workspaces/{workspaceId}/spaces/archived":{"get":{"tags":["Spaces"],"summary":"List archived spaces I can see in a workspace","operationId":"listArchived","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SpaceResponse"}}}}}}}},"/workspaces/{workspaceId}/sidebar":{"get":{"tags":["Folders"],"summary":"The sidebar tree: folders and space references, ordered and filtered","operationId":"sidebar","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/NodeResponse"}}}}}}}},"/workspaces/{workspaceId}/audit":{"get":{"tags":["Audit"],"summary":"Audit log of a workspace","operationId":"forWorkspace","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"actorId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"grantId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"source","in":"query","required":false,"schema":{"type":"string"}},{"name":"outcome","in":"query","required":false,"schema":{"type":"string"}},{"name":"from","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":100}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AuditResponse"}}}}}}}},"/workspaces/{workspaceId}/access":{"get":{"tags":["API keys"],"summary":"Keys that can reach this workspace","description":"For owners and admins. Keys are personal, but they act inside shared projects — a robot writing here is a fact about the workspace.","operationId":"access","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/KeyResponse"}}}}}}}},"/view-templates":{"get":{"tags":["Views"],"summary":"Starter gallery; names are English defaults, clients localise by key","operationId":"templates","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TemplateResponse"}}}}}}}},"/trash":{"get":{"tags":["Trash"],"summary":"Recently deleted items in every space the caller can see","operationId":"list_5","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":50}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TrashResponse"}}}}}}}},"/tasks/{taskId}/attachments/{attachmentId}/url":{"get":{"tags":["Task details"],"summary":"Short-lived pre-signed URL for downloading the file","operationId":"downloadUrl","parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"attachmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/DownloadUrlResponse"}}}}}}},"/tasks/{id}/activity":{"get":{"tags":["Tasks"],"operationId":"activity","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ActivityResponse"}}}}}}}},"/tasks/lookup":{"get":{"tags":["Tasks"],"summary":"Find a task by its key, e.g. PROD-12","operationId":"lookup","parameters":[{"name":"key","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/TaskResponse"}}}}}}},"/stats":{"get":{"tags":["Stats"],"summary":"Task statistics for one workspace, or across all of them","operationId":"stats","parameters":[{"name":"workspaceId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"zone","in":"query","required":false,"schema":{"type":"string"}},{"name":"subtasks","in":"query","required":false,"schema":{"type":"boolean","default":true}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/StatsResponse"}}}}}}},"/boards/{boardId}/watchlist/watched":{"get":{"tags":["Watchlist"],"summary":"What has already been watched, most recent first","operationId":"watched","parameters":[{"name":"boardId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ItemResponse"}}}}}}}},"/boards/{boardId}/watchlist/search":{"get":{"tags":["Watchlist"],"summary":"Films and series matching a title","description":"503 when the deployment has no TMDB key: searching is then unavailable, and the widget works on links alone.","operationId":"search_1","parameters":[{"name":"boardId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"q","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MediaResponse"}}}}}}}},"/boards/{boardId}/watchlist/declined":{"get":{"tags":["Watchlist"],"summary":"What somebody said no to","description":"Out of the queue, not out of the widget: changing an answer here puts the entry straight back.","operationId":"declined","parameters":[{"name":"boardId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ItemResponse"}}}}}}}},"/auth/sessions":{"get":{"tags":["Sessions"],"summary":"List active sessions (devices) for the current user","operationId":"list_6","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SessionResponse"}}}}}}}},"/auth/oauth/client":{"get":{"tags":["OAuth"],"summary":"The connector behind a consent screen","operationId":"client","parameters":[{"name":"client_id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ClientResponse"}}}}}}},"/audit/me":{"get":{"tags":["Audit"],"summary":"What the caller themselves did, across every workspace","operationId":"mine","parameters":[{"name":"source","in":"query","required":false,"schema":{"type":"string"}},{"name":"outcome","in":"query","required":false,"schema":{"type":"string"}},{"name":"from","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":100}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AuditResponse"}}}}}}}},"/workspaces/{workspaceId}/access/{grantId}":{"delete":{"tags":["API keys"],"summary":"Cut a key off from this workspace","description":"The key keeps working everywhere else; only this workspace is closed.","operationId":"cutOff","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"grantId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"No Content"}}}},"/trash/{deletionId}":{"delete":{"tags":["Trash"],"summary":"Remove one deletion for good, without waiting for the grace period","operationId":"purge","parameters":[{"name":"deletionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"No Content"}}}},"/tasks/{taskId}/worklog/{entryId}":{"delete":{"tags":["Task details"],"operationId":"deleteWork","parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"entryId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"No Content"}}}},"/tasks/{taskId}/links/{linkId}":{"delete":{"tags":["Task details"],"operationId":"unlink","parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"linkId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"No Content"}}}},"/tasks/{taskId}/attachments/{attachmentId}":{"delete":{"tags":["Task details"],"operationId":"deleteAttachment","parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"attachmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"No Content"}}}},"/tasks/{id}/tags/{tag}":{"delete":{"tags":["Tasks"],"operationId":"removeTag","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"tag","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/TaskResponse"}}}}}}},"/tasks/{id}/assignees/{userId}":{"delete":{"tags":["Tasks"],"operationId":"unassign","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"userId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/TaskResponse"}}}}}}},"/boards/{boardId}/watchlist/items/{itemId}":{"delete":{"tags":["Watchlist"],"summary":"Remove an entry","description":"Your own proposal is yours to take back; removing somebody else's needs the admin role.","operationId":"remove","parameters":[{"name":"boardId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"itemId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"No Content"}}}},"/auth/sessions/{id}":{"delete":{"tags":["Sessions"],"summary":"Revoke a specific session","operationId":"revoke_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK"}}}},"/v1/tasks/{task}/comments":{"get":{"tags":["Public API"],"summary":"Comments on a task","description":"Oldest first.\n\nRequires the `comments:read` scope.","operationId":"comment.list","parameters":[{"name":"task","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{}}}}},"post":{"tags":["Public API"],"summary":"Comment on a task","description":"The body is Markdown.\n\nRequires the `comments:write` scope.","operationId":"comment.add","parameters":[{"name":"task","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"task":{"type":"string"},"body":{"type":"string"}}}}},"required":true},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"properties":{"id":{"type":"string"},"taskId":{"type":"string"},"authorId":{"type":"string"},"body":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"editedAt":{"type":"string","format":"date-time"}}}}}}}}},"/v1/spaces/{space}/fields":{"get":{"tags":["Public API"],"summary":"Custom fields of a project","description":"Requires the `structure:read` scope.","operationId":"field.list","parameters":[{"name":"space","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{}}}}}},"/v1/spaces/{space}/lists":{"get":{"tags":["Public API"],"summary":"Lists in a project","description":"Requires the `structure:read` scope.","operationId":"list.list","parameters":[{"name":"space","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{}}}}},"post":{"tags":["Public API"],"summary":"Create a list in a project","description":"Requires the `structure:write` scope.","operationId":"list.create","parameters":[{"name":"space","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"space":{"type":"string"},"name":{"type":"string"}}}}},"required":true},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"position":{"type":"integer","format":"int32"},"spaceId":{"type":"string"}}}}}}}}},"/v1/workspaces/{workspace}/members":{"get":{"tags":["Public API"],"summary":"Members of a workspace","description":"What an agent needs before it can put anybody on a task.\n\nRequires the `members:read` scope.","operationId":"member.list","parameters":[{"name":"workspace","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{}}}}}},"/v1/workspaces/{workspace}/spaces":{"get":{"tags":["Public API"],"summary":"Projects in a workspace","description":"The workspace may be named by id or by its name.\n\nRequires the `structure:read` scope.","operationId":"space.list","parameters":[{"name":"workspace","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{}}}}},"post":{"tags":["Public API"],"summary":"Create a project","description":"The key is the Latin prefix its task numbers carry (PROD-12); leave it out and one is derived from the name.\n\nRequires the `structure:write` scope.","operationId":"space.create","parameters":[{"name":"workspace","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"workspace":{"type":"string"},"name":{"type":"string"},"key":{"type":"string"},"type":{"type":"string"},"visibility":{"type":"string"}}}}},"required":true},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"properties":{"id":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"visibility":{"type":"string"},"archived":{"type":"boolean"},"workspaceId":{"type":"string"},"url":{"type":"string"}}}}}}}}},"/v1/spaces/{space}":{"get":{"tags":["Public API"],"summary":"Read one project","description":"By key (PROD) or by uuid.\n\nRequires the `structure:read` scope.","operationId":"space.get","parameters":[{"name":"space","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"properties":{"id":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"visibility":{"type":"string"},"archived":{"type":"boolean"},"workspaceId":{"type":"string"},"url":{"type":"string"}}}}}}}}},"/v1/spaces/{space}/statuses":{"get":{"tags":["Public API"],"summary":"Statuses of a project","description":"Statuses belong to a project, so their names only mean something inside one.\n\nRequires the `structure:read` scope.","operationId":"status.list","parameters":[{"name":"space","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{}}}}}},"/v1/tasks/{task}/assignees":{"post":{"tags":["Public API"],"summary":"Put someone on a task","description":"The user is named by id.\n\nRequires the `tasks:write` scope.","operationId":"task.assign","parameters":[{"name":"task","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"task":{"type":"string"},"user":{"type":"string"}}}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"properties":{"id":{"type":"string"},"key":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"status":{"type":"string"},"statusId":{"type":"string"},"type":{"type":"string"},"priority":{"type":"string"},"dueAt":{"type":"string","format":"date-time"},"dueHasTime":{"type":"boolean"},"done":{"type":"boolean"},"assignees":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"fields":{"type":"object","additionalProperties":{"type":"object"}},"spaceId":{"type":"string"},"spaceKey":{"type":"string"},"listId":{"type":"string"},"parentId":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"url":{"type":"string"}}}}}}}}},"/v1/spaces/{space}/tasks":{"post":{"tags":["Public API"],"summary":"Create a task in a project","description":"The project is the only required target: when no list is named the project's first one is used, and created if it has none yet. Status, type and priority may be given by name.\n\nRequires the `tasks:write` scope.","operationId":"task.create","parameters":[{"name":"space","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"space":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"status":{"type":"string"},"type":{"type":"string"},"priority":{"type":"string"},"dueAt":{"type":"string","format":"date-time"},"dueHasTime":{"type":"boolean"},"assignees":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"list":{"type":"string"}}}}},"required":true},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"properties":{"id":{"type":"string"},"key":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"status":{"type":"string"},"statusId":{"type":"string"},"type":{"type":"string"},"priority":{"type":"string"},"dueAt":{"type":"string","format":"date-time"},"dueHasTime":{"type":"boolean"},"done":{"type":"boolean"},"assignees":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"fields":{"type":"object","additionalProperties":{"type":"object"}},"spaceId":{"type":"string"},"spaceKey":{"type":"string"},"listId":{"type":"string"},"parentId":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"url":{"type":"string"}}}}}}}}},"/v1/tasks/{task}":{"get":{"tags":["Public API"],"summary":"Read one task","description":"Accepts either the key a person reads (PROD-12) or the uuid.\n\nRequires the `tasks:read` scope.","operationId":"task.get","parameters":[{"name":"task","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"properties":{"id":{"type":"string"},"key":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"status":{"type":"string"},"statusId":{"type":"string"},"type":{"type":"string"},"priority":{"type":"string"},"dueAt":{"type":"string","format":"date-time"},"dueHasTime":{"type":"boolean"},"done":{"type":"boolean"},"assignees":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"fields":{"type":"object","additionalProperties":{"type":"object"}},"spaceId":{"type":"string"},"spaceKey":{"type":"string"},"listId":{"type":"string"},"parentId":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"url":{"type":"string"}}}}}}}},"delete":{"tags":["Public API"],"summary":"Delete a task","description":"Reversible for 30 days: the task and its subtasks go to the trash together and can be restored as one act.\n\nRequires the `tasks:delete` scope.","operationId":"task.delete","parameters":[{"name":"task","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"task":{"type":"string"}}}}},"required":true},"responses":{"204":{"description":"Done"}}},"patch":{"tags":["Public API"],"summary":"Change a task","description":"Only the fields present are touched. Clearing a due date needs clearDue: true, because an absent value means 'leave it alone'.\n\nRequires the `tasks:write` scope.","operationId":"task.update","parameters":[{"name":"task","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"task":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"status":{"type":"string"},"type":{"type":"string"},"priority":{"type":"string"},"dueAt":{"type":"string","format":"date-time"},"dueHasTime":{"type":"boolean"},"clearDue":{"type":"boolean"}}}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"properties":{"id":{"type":"string"},"key":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"status":{"type":"string"},"statusId":{"type":"string"},"type":{"type":"string"},"priority":{"type":"string"},"dueAt":{"type":"string","format":"date-time"},"dueHasTime":{"type":"boolean"},"done":{"type":"boolean"},"assignees":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"fields":{"type":"object","additionalProperties":{"type":"object"}},"spaceId":{"type":"string"},"spaceKey":{"type":"string"},"listId":{"type":"string"},"parentId":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"url":{"type":"string"}}}}}}}}},"/v1/tasks/search":{"post":{"tags":["Public API"],"summary":"Find tasks","description":"Conditions are AND-ed; values inside one condition are OR-ed. Fields: workspace, space, status, statusCategory, assignee, creator, priority, type, tag, due, updated, created, customField, title, text. Operators: in, notIn, empty, before, after, between, overdue, today, thisWeek, contains. A customField condition needs the search to resolve to one project and names the field in `key`.\n\nRequires the `tasks:read` scope.","operationId":"task.search","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/components/schemas/ConditionInput"}},"sort":{"type":"array","items":{"$ref":"#/components/schemas/SortInput"}},"includeSubtasks":{"type":"boolean"},"limit":{"type":"integer","format":"int32"},"offset":{"type":"integer","format":"int32"},"timezone":{"type":"string"}}}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/TaskView"}},"total":{"type":"integer","format":"int64"}}}}}}}}},"/v1/tasks/{task}/fields/{field}":{"put":{"tags":["Public API"],"summary":"Set a custom field on a task","description":"The field may be named by its key or by the label a person reads. Sending null clears it.\n\nRequires the `tasks:write` scope.","operationId":"task.set_field","parameters":[{"name":"task","in":"path","required":true,"schema":{"type":"string"}},{"name":"field","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"task":{"type":"string"},"field":{"type":"string"},"value":{"type":"object"}}}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"properties":{"id":{"type":"string"},"key":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"status":{"type":"string"},"statusId":{"type":"string"},"type":{"type":"string"},"priority":{"type":"string"},"dueAt":{"type":"string","format":"date-time"},"dueHasTime":{"type":"boolean"},"done":{"type":"boolean"},"assignees":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"fields":{"type":"object","additionalProperties":{"type":"object"}},"spaceId":{"type":"string"},"spaceKey":{"type":"string"},"listId":{"type":"string"},"parentId":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"url":{"type":"string"}}}}}}}}},"/v1/tasks/{task}/subtasks":{"get":{"tags":["Public API"],"summary":"Subtasks of a task","description":"Requires the `tasks:read` scope.","operationId":"task.subtasks","parameters":[{"name":"task","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{}}}}}},"/v1/tasks/{task}/tags":{"post":{"tags":["Public API"],"summary":"Add a tag","description":"Requires the `tasks:write` scope.","operationId":"task.tag_add","parameters":[{"name":"task","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"task":{"type":"string"},"tag":{"type":"string"}}}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"properties":{"id":{"type":"string"},"key":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"status":{"type":"string"},"statusId":{"type":"string"},"type":{"type":"string"},"priority":{"type":"string"},"dueAt":{"type":"string","format":"date-time"},"dueHasTime":{"type":"boolean"},"done":{"type":"boolean"},"assignees":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"fields":{"type":"object","additionalProperties":{"type":"object"}},"spaceId":{"type":"string"},"spaceKey":{"type":"string"},"listId":{"type":"string"},"parentId":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"url":{"type":"string"}}}}}}}}},"/v1/tasks/{task}/tags/{tag}":{"delete":{"tags":["Public API"],"summary":"Remove a tag","description":"Requires the `tasks:write` scope.","operationId":"task.tag_remove","parameters":[{"name":"task","in":"path","required":true,"schema":{"type":"string"}},{"name":"tag","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"task":{"type":"string"},"tag":{"type":"string"}}}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"properties":{"id":{"type":"string"},"key":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"status":{"type":"string"},"statusId":{"type":"string"},"type":{"type":"string"},"priority":{"type":"string"},"dueAt":{"type":"string","format":"date-time"},"dueHasTime":{"type":"boolean"},"done":{"type":"boolean"},"assignees":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"fields":{"type":"object","additionalProperties":{"type":"object"}},"spaceId":{"type":"string"},"spaceKey":{"type":"string"},"listId":{"type":"string"},"parentId":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"url":{"type":"string"}}}}}}}}},"/v1/tasks/{task}/assignees/{user}":{"delete":{"tags":["Public API"],"summary":"Take someone off a task","description":"Requires the `tasks:write` scope.","operationId":"task.unassign","parameters":[{"name":"task","in":"path","required":true,"schema":{"type":"string"}},{"name":"user","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"task":{"type":"string"},"user":{"type":"string"}}}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"properties":{"id":{"type":"string"},"key":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"status":{"type":"string"},"statusId":{"type":"string"},"type":{"type":"string"},"priority":{"type":"string"},"dueAt":{"type":"string","format":"date-time"},"dueHasTime":{"type":"boolean"},"done":{"type":"boolean"},"assignees":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"fields":{"type":"object","additionalProperties":{"type":"object"}},"spaceId":{"type":"string"},"spaceKey":{"type":"string"},"listId":{"type":"string"},"parentId":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"url":{"type":"string"}}}}}}}}},"/v1/workspaces":{"get":{"tags":["Public API"],"summary":"Workspaces the caller belongs to","description":"Requires the `structure:read` scope.","operationId":"workspace.list","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{}}}}}}},"components":{"schemas":{"HomeLayoutRequest":{"type":"object","properties":{"widgets":{"type":"array","items":{"$ref":"#/components/schemas/WidgetRequest"}}}},"WidgetRequest":{"type":"object","properties":{"viewId":{"type":"string","format":"uuid"},"limit":{"type":"integer","format":"int32"},"width":{"type":"string"},"display":{"type":"string"},"sortField":{"type":"string"},"sortDir":{"type":"string"},"groupBy":{"type":"string"}}},"HomeLayoutResponse":{"type":"object","properties":{"widgets":{"type":"array","items":{"$ref":"#/components/schemas/WidgetResponse"}}}},"WidgetResponse":{"type":"object","properties":{"viewId":{"type":"string","format":"uuid"},"limit":{"type":"integer","format":"int32"},"width":{"type":"string"},"display":{"type":"string"},"sortField":{"type":"string"},"sortDir":{"type":"string"},"groupBy":{"type":"string"}}},"FieldValueRequest":{"type":"object","properties":{"value":{}}},"TaskResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"spaceId":{"type":"string","format":"uuid"},"number":{"type":"integer","format":"int64"},"listId":{"type":"string","format":"uuid"},"parentId":{"type":"string","format":"uuid"},"title":{"type":"string"},"description":{"type":"string"},"statusId":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["EPIC","STORY","FEATURE","TASK","BUG","CHORE"]},"priority":{"type":"string","enum":["NONE","LOW","MEDIUM","HIGH","URGENT"]},"dueAt":{"type":"string","format":"date-time"},"dueHasTime":{"type":"boolean"},"assignees":{"type":"array","items":{"type":"string","format":"uuid"}},"tags":{"type":"array","items":{"type":"string"}},"orderKey":{"type":"number","format":"double"},"fieldValues":{"type":"object","additionalProperties":{}},"createdBy":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"completedAt":{"type":"string","format":"date-time"},"done":{"type":"boolean"}}},"ReactRequest":{"type":"object","properties":{"reaction":{"type":"string","enum":["YES","NO","LATER"]},"stars":{"type":"integer","format":"int32","maximum":5,"minimum":1}},"required":["reaction"]},"ItemResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"media":{"$ref":"#/components/schemas/MediaResponse"},"proposedBy":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["PROPOSED","QUEUED","LATER","DECLINED"]},"position":{"type":"integer","format":"int32"},"watchedAt":{"type":"string","format":"date-time"},"watchedBy":{"type":"string","format":"uuid"},"myReaction":{"type":"string","enum":["YES","NO","LATER"]},"myStars":{"type":"integer","format":"int32"},"averageStars":{"type":"number","format":"double"},"reactions":{"type":"array","items":{"$ref":"#/components/schemas/ReactionResponse"}},"createdAt":{"type":"string","format":"date-time"}}},"MediaResponse":{"type":"object","properties":{"source":{"type":"string","enum":["YOUTUBE","MOVIE"]},"externalId":{"type":"string"},"title":{"type":"string"},"author":{"type":"string"},"year":{"type":"integer","format":"int32"},"genres":{"type":"string"},"thumbnailUrl":{"type":"string"},"externalUrl":{"type":"string"}}},"ReactionResponse":{"type":"object","properties":{"userId":{"type":"string","format":"uuid"},"reaction":{"type":"string","enum":["YES","NO","LATER"]},"stars":{"type":"integer","format":"int32"},"reactedAt":{"type":"string","format":"date-time"}}},"OrderRequest":{"type":"object","properties":{"items":{"type":"array","items":{"type":"string","format":"uuid"}}},"required":["items"]},"PlacementEntry":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"pinned":{"type":"boolean"}},"required":["id"]},"PlacementRequest":{"type":"object","properties":{"boards":{"type":"array","items":{"$ref":"#/components/schemas/PlacementEntry"}}},"required":["boards"]},"CreateWorkspaceRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1}},"required":["name"]},"MemberResponse":{"type":"object","properties":{"userId":{"type":"string","format":"uuid"},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]}}},"WorkspaceResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"ownerId":{"type":"string","format":"uuid"},"members":{"type":"array","items":{"$ref":"#/components/schemas/MemberResponse"}},"createdAt":{"type":"string","format":"date-time"}}},"CreateViewRequest":{"type":"object","properties":{"templateKey":{"type":"string"},"name":{"type":"string"},"icon":{"type":"string"},"color":{"type":"string"},"filter":{"$ref":"#/components/schemas/JsonNode"},"presentation":{"$ref":"#/components/schemas/JsonNode"},"hidden":{"type":"boolean"}}},"JsonNode":{"type":"object","properties":{"string":{"type":"boolean"},"container":{"type":"boolean"},"valueNode":{"type":"boolean"},"object":{"type":"boolean"},"pojo":{"type":"boolean"},"textual":{"type":"boolean","deprecated":true},"boolean":{"type":"boolean"},"binary":{"type":"boolean"},"missingNode":{"type":"boolean"},"integralNumber":{"type":"boolean"},"floatingPointNumber":{"type":"boolean"},"nodeType":{"type":"string","enum":["ARRAY","BINARY","BOOLEAN","MISSING","NULL","NUMBER","OBJECT","POJO","STRING"]},"int":{"type":"boolean"},"long":{"type":"boolean"},"short":{"type":"boolean"},"double":{"type":"boolean"},"bigDecimal":{"type":"boolean"},"bigInteger":{"type":"boolean"},"number":{"type":"boolean"},"array":{"type":"boolean"},"empty":{"type":"boolean"},"null":{"type":"boolean"},"float":{"type":"boolean"},"embeddedValue":{"type":"boolean"}}},"ViewResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"name":{"type":"string"},"icon":{"type":"string"},"color":{"type":"string"},"position":{"type":"integer","format":"int32"},"filter":{"$ref":"#/components/schemas/JsonNode"},"presentation":{"$ref":"#/components/schemas/JsonNode"},"broken":{"type":"boolean"},"hidden":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"CreateSpaceRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1},"key":{"type":"string"},"type":{"type":"string","enum":["WORK","PERSONAL"]},"visibility":{"type":"string","enum":["WORKSPACE","PRIVATE"]},"color":{"type":"string"},"icon":{"type":"string"}},"required":["name","type"]},"SpaceResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"ownerId":{"type":"string","format":"uuid"},"name":{"type":"string"},"key":{"type":"string"},"type":{"type":"string","enum":["WORK","PERSONAL"]},"visibility":{"type":"string","enum":["WORKSPACE","PRIVATE"]},"color":{"type":"string"},"icon":{"type":"string"},"archived":{"type":"boolean"}}},"CreateFolderRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1},"parentId":{"type":"string","format":"uuid"},"color":{"type":"string"},"icon":{"type":"string"},"visibility":{"type":"string","enum":["WORKSPACE","PRIVATE"]}},"required":["name"]},"FolderResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"ownerId":{"type":"string","format":"uuid"},"parentId":{"type":"string","format":"uuid"},"name":{"type":"string"},"color":{"type":"string"},"icon":{"type":"string"},"visibility":{"type":"string","enum":["WORKSPACE","PRIVATE"]},"position":{"type":"integer","format":"int32"}}},"AddMemberRequest":{"type":"object","properties":{"userId":{"type":"string","format":"uuid"},"email":{"type":"string"},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]}},"required":["role"]},"TrashResponse":{"type":"object","properties":{"deletionId":{"type":"string","format":"uuid"},"kind":{"type":"string"},"label":{"type":"string"},"spaceId":{"type":"string","format":"uuid"},"itemCount":{"type":"integer","format":"int32"},"deletedBy":{"type":"string","format":"uuid"},"deletedAt":{"type":"string","format":"date-time"},"purgeAt":{"type":"string","format":"date-time"}}},"WorkLogRequest":{"type":"object","properties":{"minutes":{"type":"integer","format":"int32","minimum":0},"spentAt":{"type":"string","format":"date-time"},"note":{"type":"string"}}},"WorkLogResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"taskId":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"minutes":{"type":"integer","format":"int32"},"spentAt":{"type":"string","format":"date-time"},"note":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}},"LinkRequest":{"type":"object","properties":{"toTaskId":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["BLOCKS","RELATES","DUPLICATES"]}},"required":["toTaskId","type"]},"LinkResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["BLOCKS","RELATES","DUPLICATES"]},"outgoing":{"type":"boolean"},"other":{"$ref":"#/components/schemas/TaskResponse"},"createdAt":{"type":"string","format":"date-time"}}},"AttachmentResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"taskId":{"type":"string","format":"uuid"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"type":"integer","format":"int64"},"uploadedBy":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"}}},"TagRequest":{"type":"object","properties":{"tag":{"type":"string","minLength":1}},"required":["tag"]},"NameRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1}},"required":["name"]},"CommentRequest":{"type":"object","properties":{"body":{"type":"string","minLength":1},"mentions":{"type":"array","items":{"type":"string","format":"uuid"}}},"required":["body"]},"CommentResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"taskId":{"type":"string","format":"uuid"},"authorId":{"type":"string","format":"uuid"},"body":{"type":"string"},"mentions":{"type":"array","items":{"type":"string","format":"uuid"}},"createdAt":{"type":"string","format":"date-time"},"editedAt":{"type":"string","format":"date-time"}}},"AssigneeRequest":{"type":"object","properties":{"userId":{"type":"string","format":"uuid"}},"required":["userId"]},"ConditionRequest":{"type":"object","properties":{"field":{"type":"string"},"op":{"type":"string"},"values":{"type":"array","items":{"type":"string"}},"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"},"key":{"type":"string"}}},"FilterRequest":{"type":"object","properties":{"version":{"type":"integer","format":"int32"},"match":{"type":"string"},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/ConditionRequest"}}}},"SearchRequest":{"type":"object","properties":{"filter":{"$ref":"#/components/schemas/FilterRequest"},"sort":{"type":"array","items":{"$ref":"#/components/schemas/SortRequest"}},"groupBy":{"type":"string"},"includeSubtasks":{"type":"boolean"},"limit":{"type":"integer","format":"int32"},"offset":{"type":"integer","format":"int32"},"timezone":{"type":"string"}}},"SortRequest":{"type":"object","properties":{"field":{"type":"string"},"dir":{"type":"string"}}},"SearchResponse":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/TaskResponse"}},"total":{"type":"integer","format":"int64"},"broken":{"type":"boolean"}}},"GroupResponse":{"type":"object","properties":{"key":{"type":"string"},"label":{"type":"string"},"items":{"type":"array","items":{"$ref":"#/components/schemas/TaskResponse"}},"total":{"type":"integer","format":"int64"},"truncated":{"type":"boolean"}}},"GroupedSearchResponse":{"type":"object","properties":{"groups":{"type":"array","items":{"$ref":"#/components/schemas/GroupResponse"}},"total":{"type":"integer","format":"int64"},"broken":{"type":"boolean"}}},"CreateTaskInSpaceRequest":{"type":"object","properties":{"title":{"type":"string","minLength":1},"listId":{"type":"string","format":"uuid"},"statusId":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["EPIC","STORY","FEATURE","TASK","BUG","CHORE"]},"priority":{"type":"string","enum":["NONE","LOW","MEDIUM","HIGH","URGENT"]},"dueAt":{"type":"string","format":"date-time"},"dueHasTime":{"type":"boolean"},"description":{"type":"string"},"assignees":{"type":"array","items":{"type":"string","format":"uuid"}},"tags":{"type":"array","items":{"type":"string"}}},"required":["title"]},"ListResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"spaceId":{"type":"string","format":"uuid"},"name":{"type":"string"},"position":{"type":"integer","format":"int32"}}},"StatusRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1},"category":{"type":"string","enum":["NOT_STARTED","ACTIVE","DONE"]},"color":{"type":"string"},"position":{"type":"integer","format":"int32"}},"required":["category","name"]},"StatusResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"spaceId":{"type":"string","format":"uuid"},"name":{"type":"string"},"category":{"type":"string","enum":["NOT_STARTED","ACTIVE","DONE"]},"color":{"type":"string"},"position":{"type":"integer","format":"int32"}}},"MoveRequest":{"type":"object","properties":{"parentFolderId":{"type":"string","format":"uuid"},"afterNodeId":{"type":"string","format":"uuid"},"afterNodeKind":{"type":"string","enum":["FOLDER","SPACE"]}}},"CreateFieldRequest":{"type":"object","properties":{"key":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"type":{"type":"string","enum":["TEXT","NUMBER","DATE","SELECT","CHECKBOX","URL"]},"options":{"type":"array","items":{"type":"string"}},"required":{"type":"boolean"},"numberFormat":{"$ref":"#/components/schemas/NumberFormatDto"}},"required":["key","label","type"]},"NumberFormatDto":{"type":"object","properties":{"decimals":{"type":"integer","format":"int32"},"grouping":{"type":"boolean"},"prefix":{"type":"string"},"suffix":{"type":"string"}}},"FieldResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"spaceId":{"type":"string","format":"uuid"},"key":{"type":"string"},"label":{"type":"string"},"type":{"type":"string","enum":["TEXT","NUMBER","DATE","SELECT","CHECKBOX","URL"]},"options":{"type":"array","items":{"type":"string"}},"required":{"type":"boolean"},"position":{"type":"integer","format":"int32"},"numberFormat":{"$ref":"#/components/schemas/NumberFormatDto"}}},"RegistrationRequest":{"type":"object","properties":{"client_name":{"type":"string"},"redirect_uris":{"type":"array","items":{"type":"string"}},"scope":{"type":"string"},"grant_types":{"type":"array","items":{"type":"string"}},"token_endpoint_auth_method":{"type":"string"}}},"RegistrationResponse":{"type":"object","properties":{"client_id":{"type":"string"},"client_name":{"type":"string"},"redirect_uris":{"type":"array","items":{"type":"string"}},"scope":{"type":"string"},"token_endpoint_auth_method":{"type":"string"},"grant_types":{"type":"array","items":{"type":"string"}},"response_types":{"type":"array","items":{"type":"string"}}}},"CreateTaskRequest":{"type":"object","properties":{"title":{"type":"string","minLength":1},"statusId":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["EPIC","STORY","FEATURE","TASK","BUG","CHORE"]},"priority":{"type":"string","enum":["NONE","LOW","MEDIUM","HIGH","URGENT"]},"dueAt":{"type":"string","format":"date-time"},"dueHasTime":{"type":"boolean"},"description":{"type":"string"},"assignees":{"type":"array","items":{"type":"string","format":"uuid"}},"tags":{"type":"array","items":{"type":"string"}}},"required":["title"]},"CreateBoardRequest":{"type":"object","properties":{"type":{"type":"string","enum":["WATCHLIST"]},"name":{"type":"string","maxLength":120,"minLength":0},"icon":{"type":"string","maxLength":32,"minLength":0},"color":{"type":"string","maxLength":32,"minLength":0}},"required":["name","type"]},"BoardResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["WATCHLIST"]},"name":{"type":"string"},"icon":{"type":"string"},"color":{"type":"string"},"ownerId":{"type":"string","format":"uuid"},"myRole":{"type":"string","enum":["OWNER","ADMIN","MEMBER","VIEWER"]},"myStatus":{"type":"string","enum":["INVITED","ACTIVE"]},"pinned":{"type":"boolean"},"position":{"type":"integer","format":"int32"},"preview":{"$ref":"#/components/schemas/PreviewResponse"},"members":{"type":"array","items":{"$ref":"#/components/schemas/MemberResponse"}},"createdAt":{"type":"string","format":"date-time"}}},"PreviewEntryResponse":{"type":"object","properties":{"title":{"type":"string"},"subtitle":{"type":"string"},"imageUrl":{"type":"string"}}},"PreviewResponse":{"type":"object","properties":{"headline":{"type":"string"},"total":{"type":"integer","format":"int32"},"entries":{"type":"array","items":{"$ref":"#/components/schemas/PreviewEntryResponse"}}}},"InviteRequest":{"type":"object","properties":{"userId":{"type":"string","format":"uuid"},"email":{"type":"string"},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER","VIEWER"]}},"required":["role"]},"ProposeRequest":{"type":"object","properties":{"url":{"type":"string"},"source":{"type":"string","enum":["YOUTUBE","MOVIE"]},"externalId":{"type":"string"},"stars":{"type":"integer","format":"int32","maximum":5,"minimum":1}}},"RegisterRequest":{"type":"object","properties":{"email":{"type":"string","format":"email","minLength":1},"password":{"type":"string","maxLength":128,"minLength":8}},"required":["email","password"]},"AuthResponse":{"type":"object","properties":{"accessToken":{"type":"string"},"refreshToken":{"type":"string"},"tokenType":{"type":"string"},"expiresIn":{"type":"integer","format":"int64"},"user":{"$ref":"#/components/schemas/UserResponse"}}},"UserResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string"},"role":{"type":"string","enum":["USER","ADMIN"]},"emailVerified":{"type":"boolean"},"displayName":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}},"RefreshRequest":{"type":"object","properties":{"refreshToken":{"type":"string","minLength":1}},"required":["refreshToken"]},"ResetPasswordRequest":{"type":"object","properties":{"token":{"type":"string","minLength":1},"newPassword":{"type":"string","maxLength":128,"minLength":8}},"required":["newPassword","token"]},"MessageResponse":{"type":"object","properties":{"message":{"type":"string"}}},"ForgotPasswordRequest":{"type":"object","properties":{"email":{"type":"string","format":"email","minLength":1}},"required":["email"]},"OAuthExchangeRequest":{"type":"object","properties":{"idToken":{"type":"string","description":"OIDC id token issued to the public SPA client","minLength":1}},"required":["idToken"]},"SpaceSelection":{"type":"object","properties":{"spaceIds":{"type":"array","items":{"type":"string","format":"uuid"}}}},"LogoutRequest":{"type":"object","properties":{"refreshToken":{"type":"string","minLength":1}},"required":["refreshToken"]},"LoginRequest":{"type":"object","properties":{"email":{"type":"string","format":"email","minLength":1},"password":{"type":"string","minLength":1}},"required":["email","password"]},"TokenRequest":{"type":"object","properties":{"token":{"type":"string","minLength":1}},"required":["token"]},"IssueRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1},"scopes":{"type":"array","items":{"type":"string"}},"workspaceIds":{"type":"array","items":{"type":"string","format":"uuid"}},"spaceIds":{"type":"array","items":{"type":"string","format":"uuid"}},"lifetimeDays":{"type":"integer","format":"int32"}},"required":["name"]},"IssuedResponse":{"type":"object","properties":{"key":{"$ref":"#/components/schemas/KeyResponse"},"secret":{"type":"string"}}},"KeyResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string"},"name":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"workspaceIds":{"type":"array","items":{"type":"string","format":"uuid"}},"spaceIds":{"type":"array","items":{"type":"string","format":"uuid"}},"ownerId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"revokedAt":{"type":"string","format":"date-time"},"lastUsedAt":{"type":"string","format":"date-time"}}},"RenameWorkspaceRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1}},"required":["name"]},"ChangeRoleRequest":{"type":"object","properties":{"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]}},"required":["role"]},"UpdateViewRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1},"icon":{"type":"string"},"color":{"type":"string"},"position":{"type":"integer","format":"int32"},"filter":{"$ref":"#/components/schemas/JsonNode"},"presentation":{"$ref":"#/components/schemas/JsonNode"},"hidden":{"type":"boolean"}},"required":["name"]},"UpdateProfileRequest":{"type":"object","properties":{"displayName":{"type":"string","maxLength":100,"minLength":0}}},"UpdateTaskRequest":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"type":{"type":"string","enum":["EPIC","STORY","FEATURE","TASK","BUG","CHORE"]},"priority":{"type":"string","enum":["NONE","LOW","MEDIUM","HIGH","URGENT"]},"dueAt":{"type":"string","format":"date-time"},"dueHasTime":{"type":"boolean"},"clearDue":{"type":"boolean"}}},"StatusChangeRequest":{"type":"object","properties":{"statusId":{"type":"string","format":"uuid"}},"required":["statusId"]},"EditCommentRequest":{"type":"object","properties":{"body":{"type":"string","minLength":1}},"required":["body"]},"UpdateSpaceRequest":{"type":"object","properties":{"name":{"type":"string"},"visibility":{"type":"string","enum":["WORKSPACE","PRIVATE"]},"color":{"type":"string"},"icon":{"type":"string"}}},"ListUpdateRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1},"position":{"type":"integer","format":"int32"}},"required":["name"]},"UpdateFolderRequest":{"type":"object","properties":{"name":{"type":"string"},"color":{"type":"string"},"icon":{"type":"string"},"visibility":{"type":"string","enum":["WORKSPACE","PRIVATE"]}}},"UpdateFieldRequest":{"type":"object","properties":{"label":{"type":"string"},"options":{"type":"array","items":{"type":"string"}},"required":{"type":"boolean"},"position":{"type":"integer","format":"int32"},"numberFormat":{"$ref":"#/components/schemas/NumberFormatDto"}}},"UpdateBoardRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":120,"minLength":0},"icon":{"type":"string","maxLength":32,"minLength":0},"color":{"type":"string","maxLength":32,"minLength":0}}},"SettingsRequest":{"type":"object","properties":{"allowYoutube":{"type":"boolean"},"allowMovies":{"type":"boolean"},"requiresApproval":{"type":"boolean"},"defaultSort":{"type":"string","enum":["MANUAL","RATING","NEWEST"]}},"required":["defaultSort"]},"SettingsResponse":{"type":"object","properties":{"allowYoutube":{"type":"boolean"},"allowMovies":{"type":"boolean"},"requiresApproval":{"type":"boolean"},"defaultSort":{"type":"string","enum":["MANUAL","RATING","NEWEST"]},"searchAvailable":{"type":"boolean"}}},"TagResponse":{"type":"object","properties":{"tag":{"type":"string"},"count":{"type":"integer","format":"int64"}}},"NodeResponse":{"type":"object","properties":{"kind":{"type":"string","enum":["FOLDER","SPACE"]},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"color":{"type":"string"},"icon":{"type":"string"},"visibility":{"type":"string","enum":["WORKSPACE","PRIVATE"]},"position":{"type":"integer","format":"int32"},"children":{"type":"array","items":{"$ref":"#/components/schemas/NodeResponse"}}}},"AuditResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"at":{"type":"string","format":"date-time"},"actorId":{"type":"string","format":"uuid"},"actorName":{"type":"string"},"source":{"type":"string"},"grantId":{"type":"string","format":"uuid"},"grantName":{"type":"string"},"tool":{"type":"string"},"operation":{"type":"string"},"targetType":{"type":"string"},"targetId":{"type":"string"},"targetName":{"type":"string"},"targetRef":{"type":"string"},"mutating":{"type":"boolean"},"status":{"type":"integer","format":"int32"},"errorCode":{"type":"string"},"durationMs":{"type":"integer","format":"int32"},"ip":{"type":"string"},"userAgent":{"type":"string"},"requestId":{"type":"string"}}},"MemberProfileResponse":{"type":"object","properties":{"userId":{"type":"string","format":"uuid"},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"email":{"type":"string"},"displayName":{"type":"string"}}},"TemplateResponse":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"},"icon":{"type":"string"},"color":{"type":"string"},"filter":{"$ref":"#/components/schemas/JsonNode"},"presentation":{"$ref":"#/components/schemas/JsonNode"}}},"DownloadUrlResponse":{"type":"object","properties":{"url":{"type":"string"}}},"ActivityResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"taskId":{"type":"string","format":"uuid"},"type":{"type":"string"},"actorId":{"type":"string","format":"uuid"},"source":{"type":"string"},"data":{"type":"object","additionalProperties":{}},"createdAt":{"type":"string","format":"date-time"}}},"FlowResponse":{"type":"object","properties":{"createdAll":{"type":"integer","format":"int64"},"createdMine":{"type":"integer","format":"int64"},"closedAll":{"type":"integer","format":"int64"},"closedMine":{"type":"integer","format":"int64"},"medianCloseSeconds":{"type":"integer","format":"int64"}}},"PointResponse":{"type":"object","properties":{"day":{"type":"string"},"created":{"type":"integer","format":"int64"},"closed":{"type":"integer","format":"int64"}}},"PriorityResponse":{"type":"object","properties":{"priority":{"type":"string"},"open":{"type":"integer","format":"int64"}}},"StatsResponse":{"type":"object","properties":{"totals":{"$ref":"#/components/schemas/TotalsResponse"},"flow":{"$ref":"#/components/schemas/FlowResponse"},"openByPriority":{"type":"array","items":{"$ref":"#/components/schemas/PriorityResponse"}},"topSpaces":{"type":"array","items":{"$ref":"#/components/schemas/SpaceResponse"}},"period":{"type":"array","items":{"$ref":"#/components/schemas/PointResponse"}},"year":{"type":"array","items":{"$ref":"#/components/schemas/PointResponse"}},"weeklyBuckets":{"type":"boolean"},"sharedScope":{"type":"boolean"},"zone":{"type":"string"}}},"TotalsResponse":{"type":"object","properties":{"total":{"type":"integer","format":"int64"},"subtasks":{"type":"integer","format":"int64"},"open":{"type":"integer","format":"int64"},"done":{"type":"integer","format":"int64"},"overdue":{"type":"integer","format":"int64"}}},"BoardsResponse":{"type":"object","properties":{"boards":{"type":"array","items":{"$ref":"#/components/schemas/BoardResponse"}},"invitations":{"type":"array","items":{"$ref":"#/components/schemas/BoardResponse"}}}},"SessionResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"device":{"type":"string"},"ip":{"type":"string"},"userAgent":{"type":"string"},"lastSeenAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"ClientResponse":{"type":"object","properties":{"clientId":{"type":"string"},"clientName":{"type":"string"},"redirectUris":{"type":"array","items":{"type":"string"}}}},"CommentInput":{"properties":{"task":{"type":"string"},"body":{"type":"string"}}},"CommentView":{"properties":{"id":{"type":"string"},"taskId":{"type":"string"},"authorId":{"type":"string"},"body":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"editedAt":{"type":"string","format":"date-time"}}},"FieldView":{"properties":{"id":{"type":"string"},"key":{"type":"string"},"label":{"type":"string"},"type":{"type":"string"},"options":{"type":"array","items":{"type":"string"}},"required":{"type":"boolean"}}},"CreateListInput":{"properties":{"space":{"type":"string"},"name":{"type":"string"}}},"TaskListView":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"position":{"type":"integer","format":"int32"},"spaceId":{"type":"string"}}},"MemberView":{"properties":{"userId":{"type":"string"},"role":{"type":"string"}}},"CreateSpaceInput":{"properties":{"workspace":{"type":"string"},"name":{"type":"string"},"key":{"type":"string"},"type":{"type":"string"},"visibility":{"type":"string"}}},"SpaceView":{"properties":{"id":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"visibility":{"type":"string"},"archived":{"type":"boolean"},"workspaceId":{"type":"string"},"url":{"type":"string"}}},"StatusView":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"category":{"type":"string"},"color":{"type":"string"},"position":{"type":"integer","format":"int32"}}},"AssigneeInput":{"properties":{"task":{"type":"string"},"user":{"type":"string"}}},"TaskView":{"properties":{"id":{"type":"string"},"key":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"status":{"type":"string"},"statusId":{"type":"string"},"type":{"type":"string"},"priority":{"type":"string"},"dueAt":{"type":"string","format":"date-time"},"dueHasTime":{"type":"boolean"},"done":{"type":"boolean"},"assignees":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"fields":{"type":"object","additionalProperties":{"type":"object"}},"spaceId":{"type":"string"},"spaceKey":{"type":"string"},"listId":{"type":"string"},"parentId":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"url":{"type":"string"}}},"CreateTaskInput":{"properties":{"space":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"status":{"type":"string"},"type":{"type":"string"},"priority":{"type":"string"},"dueAt":{"type":"string","format":"date-time"},"dueHasTime":{"type":"boolean"},"assignees":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"list":{"type":"string"}}},"TaskRef":{"properties":{"task":{"type":"string"}}},"ConditionInput":{"properties":{"field":{"type":"string"},"op":{"type":"string"},"values":{"type":"array","items":{"type":"string"}},"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"},"key":{"type":"string"}}},"SearchInput":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/components/schemas/ConditionInput"}},"sort":{"type":"array","items":{"$ref":"#/components/schemas/SortInput"}},"includeSubtasks":{"type":"boolean"},"limit":{"type":"integer","format":"int32"},"offset":{"type":"integer","format":"int32"},"timezone":{"type":"string"}}},"SortInput":{"properties":{"field":{"type":"string"},"dir":{"type":"string"}}},"TaskPageView":{"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/TaskView"}},"total":{"type":"integer","format":"int64"}}},"FieldValueInput":{"properties":{"task":{"type":"string"},"field":{"type":"string"},"value":{"type":"object"}}},"TagInput":{"properties":{"task":{"type":"string"},"tag":{"type":"string"}}},"UpdateTaskInput":{"properties":{"task":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"status":{"type":"string"},"type":{"type":"string"},"priority":{"type":"string"},"dueAt":{"type":"string","format":"date-time"},"dueHasTime":{"type":"boolean"},"clearDue":{"type":"boolean"}}},"WorkspaceView":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"ownerId":{"type":"string"}}}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}}}