{"openapi":"3.0.0","info":{"version":"1.0.0","title":"Hono Rest API","description":"REST API utilising JSON:API format"},"servers":[{"url":"http://localhost:8787","description":"Development environment"},{"url":"https://api.hikerdo.com","description":"Production environment"}],"components":{"schemas":{"User":{"type":"object","properties":{"id":{"type":"string"},"role":{"type":"string","nullable":true,"enum":["superadmin","admin","user"]},"githubId":{"type":"string","nullable":true},"googleId":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"username":{"type":"string","nullable":true},"fullName":{"type":"string","nullable":true},"avatarUrl":{"type":"string","nullable":true},"isBlocked":{"type":"boolean","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","role","githubId","googleId","email","username","fullName","avatarUrl","isBlocked","createdAt","updatedAt"],"example":{"id":"gy63blmknjbhvg43e2d","role":"user","username":"john_doe","email":"john@doe.com","fullName":"John Doe","avatarUrl":"https://website.com/avatar.jpg","githubId":"43erwdg43et34wrgewsb","googleId":"3wthrng4twr42wgrthnh","isBlocked":false,"createdAt":"2021-01-01T00:00:00.000Z","updatedAt":"2021-01-01T00:00:00.000Z"}},"Project":{"type":"object","properties":{"id":{"type":"string"},"teamId":{"type":"string"},"ownerId":{"type":"string"},"title":{"type":"string"},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","teamId","ownerId","title","createdAt","updatedAt"],"example":{"id":"gy63blmknjbhvg43e2d","title":"First Project","teamId":"k23wjser46yidy7qngs","ownerId":"kser4623wjyidygs7qn","createdAt":"2024-04-19T14:37:58.000Z","updatedAt":"2024-04-19T14:37:58.000Z"}},"Team":{"type":"object","properties":{"id":{"type":"string"},"ownerId":{"type":"string"},"title":{"type":"string"},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","ownerId","title","createdAt","updatedAt"],"example":{"id":"k23wjser46yidy7qngs","title":"My Team","ownerId":"kser4623wjyidygs7qn","createdAt":"2024-04-19T14:37:58.000Z","updatedAt":"2024-04-19T14:37:58.000Z"}},"TeamMember":{"type":"object","properties":{"id":{"type":"string"},"userId":{"type":"string"},"teamId":{"type":"string"},"hasUserAccepted":{"type":"boolean","nullable":true},"hasTeamAccepted":{"type":"boolean","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","userId","teamId","hasUserAccepted","hasTeamAccepted","createdAt","updatedAt"],"example":{"id":"k23wjser46yidy7qngs","userId":"kser4623wjyidygs7qn","teamId":"k23wjser46yidy7qngs","hasUserAccepted":true,"hasTeamAccepted":true,"createdAt":"2024-04-19T14:37:58.000Z","updatedAt":"2024-04-19T14:37:58.000Z"}},"Task":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string","nullable":true},"dueAt":{"type":"string","nullable":true},"teamId":{"type":"string"},"projectId":{"type":"string"},"listId":{"type":"string"},"ownerId":{"type":"string"},"assigneeId":{"type":"string","nullable":true},"position":{"type":"number","nullable":true},"isCompleted":{"type":"boolean"},"completedAt":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","title","description","dueAt","teamId","projectId","listId","ownerId","assigneeId","position","isCompleted","completedAt","createdAt","updatedAt"],"example":{"id":"gy63blmknjbhvg43e2d","title":"Buy Milk","description":"Go to the store nd buy some milk","dueAt":"2024-04-19T14:37:58.000Z","teamId":"erdcvid6tlqy72ghjs4","projectId":"6tghjserdcvidy74lq2","listId":"erdcvidy74lq26tghjs","ownerId":"dfgerdew35647568utjh","assigneeId":"dfgerdew35647568utjh","isCompleted":false,"position":3,"completedAt":"2024-04-19T14:37:58.000Z","createdAt":"2024-04-19T14:37:58.000Z","updatedAt":"2024-04-19T14:37:58.000Z"}},"Task List":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"teamId":{"type":"string"},"projectId":{"type":"string"},"ownerId":{"type":"string"},"position":{"type":"number","nullable":true},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","title","teamId","projectId","ownerId","position","createdAt","updatedAt"],"description":"Task List","example":{"id":"gy63blmknjbhvg43e2d","title":"Shopping List","teamId":"erdcvid6tltfdeagf3","projectId":"6tghjserdcvidy74lq2","ownerId":"dfgerdew35647568utjh","createdAt":"2024-04-19T14:37:58.000Z","updatedAt":"2024-04-19T14:37:58.000Z"}}},"parameters":{}},"paths":{"/users/{id}":{"get":{"description":"Retrieve single user by ID. Use \"me\" to retrieve the current user.","parameters":[{"schema":{"type":"string","minLength":1,"example":"123456789"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","enum":["id","role","githubId","googleId","email","username","fullName","avatarUrl","isBlocked","createdAt","updatedAt"]},"required":false,"name":"fields","in":"query"}],"responses":{"200":{"description":"Retrieve single task","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","example":"users"},"id":{"type":"string","example":"gy63blmknjbhvg43e2d"},"attributes":{"$ref":"#/components/schemas/User"},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/users/thgbw45brtb4rt5676uh"}}}},"required":["type","id","attributes","links"]},"meta":{"type":"object","properties":{}},"included":{"type":"object","properties":{}}},"required":["data"]}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"68fd63j5"},"status":{"type":"integer","example":400},"code":{"type":"string","example":"INVALID_INPUT"},"title":{"type":"string","example":"Invalid Input"},"details":{"type":"string","example":"The input is invalid"},"meta":{"type":"object","properties":{"ZodIssue":{"type":"object","properties":{},"example":{"code":"too_small","minimum":3,"type":"string","inclusive":true,"exact":false,"message":"String must contain at least 3 character(s)","path":["username"]}}}},"source":{"type":"object","properties":{"pointer":{"type":"string","example":"/data/attributes/username"},"parameter":{"type":"string","example":"username"},"header":{"type":"string","example":"Authorization"}}},"links":{"type":"object","properties":{"about":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors/INVALID_INPUT"},"type":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["id","status","code","title","source","links"]}}},"required":["errors"]}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[401]},"code":{"type":"string","enum":["UNAUTHORIZED"]},"title":{"type":"string","enum":["Unauthorized"]},"details":{"type":"string","example":"You need to be authenticated to access this resource"},"links":{"type":"object","properties":{"about":{"type":"string","example":"https://api.website.com/docs/errors/UNAUTHORIZED"},"type":{"type":"string","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[404]},"code":{"type":"string","enum":["NOT_FOUND"]},"title":{"type":"string","enum":["404 Not Found"]},"details":{"type":"string","default":"The resource does not exist"},"links":{"type":"object","properties":{"about":{"type":"string","default":"https://api.website.com/docs/errors/NOT_FOUND"},"type":{"type":"string","default":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}}}}},"/teams/{id}":{"get":{"description":"Retrieve a single team by id","parameters":[{"schema":{"type":"string","minLength":3,"example":"123456789"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","enum":["id","ownerId","title","createdAt","updatedAt"]},"required":false,"name":"fields","in":"query"}],"responses":{"200":{"description":"Retrieve single team","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"123456789"},"type":{"type":"string","example":"teams"},"attributes":{"$ref":"#/components/schemas/Project"},"relationships":{"type":"object","properties":{}},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/teams/123456789"}}}},"required":["id","type","attributes"]},"meta":{"type":"object","properties":{}},"included":{"type":"object","properties":{}}},"required":["data"]}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"68fd63j5"},"status":{"type":"integer","example":400},"code":{"type":"string","example":"INVALID_INPUT"},"title":{"type":"string","example":"Invalid Input"},"details":{"type":"string","example":"The input is invalid"},"meta":{"type":"object","properties":{"ZodIssue":{"type":"object","properties":{},"example":{"code":"too_small","minimum":3,"type":"string","inclusive":true,"exact":false,"message":"String must contain at least 3 character(s)","path":["username"]}}}},"source":{"type":"object","properties":{"pointer":{"type":"string","example":"/data/attributes/username"},"parameter":{"type":"string","example":"username"},"header":{"type":"string","example":"Authorization"}}},"links":{"type":"object","properties":{"about":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors/INVALID_INPUT"},"type":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["id","status","code","title","source","links"]}}},"required":["errors"]}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[401]},"code":{"type":"string","enum":["UNAUTHORIZED"]},"title":{"type":"string","enum":["Unauthorized"]},"details":{"type":"string","example":"You need to be authenticated to access this resource"},"links":{"type":"object","properties":{"about":{"type":"string","example":"https://api.website.com/docs/errors/UNAUTHORIZED"},"type":{"type":"string","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[404]},"code":{"type":"string","enum":["NOT_FOUND"]},"title":{"type":"string","enum":["404 Not Found"]},"details":{"type":"string","default":"The resource does not exist"},"links":{"type":"object","properties":{"about":{"type":"string","default":"https://api.website.com/docs/errors/NOT_FOUND"},"type":{"type":"string","default":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}}}},"patch":{"description":"Update given team","parameters":[{"schema":{"type":"string","minLength":3,"example":"123456789"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","enum":["id","ownerId","title","createdAt","updatedAt"]},"required":false,"name":"fields","in":"query"}],"requestBody":{"required":true,"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1}},"required":["title"]}}}},"responses":{"200":{"description":"The updated team","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"123456789"},"type":{"type":"string","example":"teams"},"attributes":{"$ref":"#/components/schemas/Team"},"relationships":{"type":"object","properties":{}},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/teams/123456789"}}}},"required":["id","type","attributes"]},"meta":{"type":"object","properties":{}},"included":{"type":"object","properties":{}}},"required":["data"]}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"68fd63j5"},"status":{"type":"integer","example":400},"code":{"type":"string","example":"INVALID_INPUT"},"title":{"type":"string","example":"Invalid Input"},"details":{"type":"string","example":"The input is invalid"},"meta":{"type":"object","properties":{"ZodIssue":{"type":"object","properties":{},"example":{"code":"too_small","minimum":3,"type":"string","inclusive":true,"exact":false,"message":"String must contain at least 3 character(s)","path":["username"]}}}},"source":{"type":"object","properties":{"pointer":{"type":"string","example":"/data/attributes/username"},"parameter":{"type":"string","example":"username"},"header":{"type":"string","example":"Authorization"}}},"links":{"type":"object","properties":{"about":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors/INVALID_INPUT"},"type":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","source","links"]}}},"required":["errors"]}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[401]},"code":{"type":"string","enum":["UNAUTHORIZED"]},"title":{"type":"string","enum":["Unauthorized"]},"details":{"type":"string","example":"You need to be authenticated to access this resource"},"links":{"type":"object","properties":{"about":{"type":"string","example":"https://api.website.com/docs/errors/UNAUTHORIZED"},"type":{"type":"string","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[404]},"code":{"type":"string","enum":["NOT_FOUND"]},"title":{"type":"string","enum":["404 Not Found"]},"details":{"type":"string","default":"The resource does not exist"},"links":{"type":"object","properties":{"about":{"type":"string","default":"https://api.website.com/docs/errors/NOT_FOUND"},"type":{"type":"string","default":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}}}},"delete":{"description":"Delete given team","parameters":[{"schema":{"type":"string","minLength":3,"example":"123456789"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"The deleted team id","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"123456789"},"type":{"type":"string","example":"teams"},"attributes":{"type":"object","properties":{"id":{"type":"string","example":"123456789"}},"required":["id"]},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/teams/123456789"}}}},"required":["id","type","attributes"]},"meta":{"type":"object","properties":{}}},"required":["data"]}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"68fd63j5"},"status":{"type":"integer","example":400},"code":{"type":"string","example":"INVALID_INPUT"},"title":{"type":"string","example":"Invalid Input"},"details":{"type":"string","example":"The input is invalid"},"meta":{"type":"object","properties":{"ZodIssue":{"type":"object","properties":{},"example":{"code":"too_small","minimum":3,"type":"string","inclusive":true,"exact":false,"message":"String must contain at least 3 character(s)","path":["username"]}}}},"source":{"type":"object","properties":{"pointer":{"type":"string","example":"/data/attributes/username"},"parameter":{"type":"string","example":"username"},"header":{"type":"string","example":"Authorization"}}},"links":{"type":"object","properties":{"about":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors/INVALID_INPUT"},"type":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["id","status","code","title","source","links"]}}},"required":["errors"]}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[401]},"code":{"type":"string","enum":["UNAUTHORIZED"]},"title":{"type":"string","enum":["Unauthorized"]},"details":{"type":"string","example":"You need to be authenticated to access this resource"},"links":{"type":"object","properties":{"about":{"type":"string","example":"https://api.website.com/docs/errors/UNAUTHORIZED"},"type":{"type":"string","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[404]},"code":{"type":"string","enum":["NOT_FOUND"]},"title":{"type":"string","enum":["404 Not Found"]},"details":{"type":"string","default":"The resource does not exist"},"links":{"type":"object","properties":{"about":{"type":"string","default":"https://api.website.com/docs/errors/NOT_FOUND"},"type":{"type":"string","default":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}}}}},"/teams":{"get":{"description":"Retrieve teams the current user is member of","parameters":[{"schema":{"type":"string","enum":["id","ownerId","title","createdAt","updatedAt"]},"required":false,"name":"fields","in":"query"}],"responses":{"200":{"description":"Retrieve teams","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"123456789"},"type":{"type":"string","example":"teams"},"attributes":{"$ref":"#/components/schemas/Team"},"relationships":{"type":"object","properties":{}},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/teams/123456789"}}}},"required":["id","type","attributes"]}},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/teams?fields=id,title&sort=-createdAt&filter[isCompleted]=true&page[limit]=10&page[number]=2"},"first":{"type":"string","format":"uri","example":"https://api.website.com/teams?fields=id,title&sort=-createdAt&filter[isCompleted]=true&page[limit]=10&page[number]=1"},"last":{"type":"string","format":"uri","example":"https://api.website.com/teams?fields=id,title&sort=-createdAt&filter[isCompleted]=true&page[limit]=10&page[number]=12"},"prev":{"type":"string","format":"uri","example":"https://api.website.com/teams?fields=id,title&sort=-createdAt&filter[isCompleted]=true&page[limit]=10&page[number]=1"},"next":{"type":"string","format":"uri","example":"https://api.website.com/teams?fields=id,title&sort=-createdAt&filter[isCompleted]=true&page[limit]=10&page[number]=3"}},"required":["self","first","last","prev","next"]},"meta":{"type":"object","properties":{}},"included":{"type":"object","properties":{}}},"required":["data"]}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"68fd63j5"},"status":{"type":"integer","example":400},"code":{"type":"string","example":"INVALID_INPUT"},"title":{"type":"string","example":"Invalid Input"},"details":{"type":"string","example":"The input is invalid"},"meta":{"type":"object","properties":{"ZodIssue":{"type":"object","properties":{},"example":{"code":"too_small","minimum":3,"type":"string","inclusive":true,"exact":false,"message":"String must contain at least 3 character(s)","path":["username"]}}}},"source":{"type":"object","properties":{"pointer":{"type":"string","example":"/data/attributes/username"},"parameter":{"type":"string","example":"username"},"header":{"type":"string","example":"Authorization"}}},"links":{"type":"object","properties":{"about":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors/INVALID_INPUT"},"type":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","source","links"]}}},"required":["errors"]}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[401]},"code":{"type":"string","enum":["UNAUTHORIZED"]},"title":{"type":"string","enum":["Unauthorized"]},"details":{"type":"string","example":"You need to be authenticated to access this resource"},"links":{"type":"object","properties":{"about":{"type":"string","example":"https://api.website.com/docs/errors/UNAUTHORIZED"},"type":{"type":"string","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}}}},"post":{"description":"Create new team for a given team","parameters":[{"schema":{"type":"string","enum":["id","ownerId","title","createdAt","updatedAt"]},"required":false,"name":"fields","in":"query"}],"requestBody":{"required":true,"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1}},"required":["title"]}}}},"responses":{"200":{"description":"The new team","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"123456789"},"type":{"type":"string","example":"teams"},"attributes":{"$ref":"#/components/schemas/Team"},"relationships":{"type":"object","properties":{}},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/teams/123456789"}}}},"required":["id","type","attributes"]},"meta":{"type":"object","properties":{}},"included":{"type":"object","properties":{}}},"required":["data"]}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"68fd63j5"},"status":{"type":"integer","example":400},"code":{"type":"string","example":"INVALID_INPUT"},"title":{"type":"string","example":"Invalid Input"},"details":{"type":"string","example":"The input is invalid"},"meta":{"type":"object","properties":{"ZodIssue":{"type":"object","properties":{},"example":{"code":"too_small","minimum":3,"type":"string","inclusive":true,"exact":false,"message":"String must contain at least 3 character(s)","path":["username"]}}}},"source":{"type":"object","properties":{"pointer":{"type":"string","example":"/data/attributes/username"},"parameter":{"type":"string","example":"username"},"header":{"type":"string","example":"Authorization"}}},"links":{"type":"object","properties":{"about":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors/INVALID_INPUT"},"type":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","source","links"]}}},"required":["errors"]}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[401]},"code":{"type":"string","enum":["UNAUTHORIZED"]},"title":{"type":"string","enum":["Unauthorized"]},"details":{"type":"string","example":"You need to be authenticated to access this resource"},"links":{"type":"object","properties":{"about":{"type":"string","example":"https://api.website.com/docs/errors/UNAUTHORIZED"},"type":{"type":"string","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}}}}},"/team-members":{"get":{"description":"Retrieve team members of given team","parameters":[{"schema":{"type":"string","enum":["id","userId","teamId","hasUserAccepted","hasTeamAccepted","createdAt","updatedAt"]},"required":false,"name":"fields","in":"query"},{"schema":{"type":"string","enum":["user","team"],"example":"user"},"required":false,"name":"include","in":"query"},{"schema":{"type":"string","example":"123456789"},"required":false,"name":"teamId","in":"query"}],"responses":{"200":{"description":"Retrieve teams","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"123456789"},"type":{"type":"string","example":"team-members"},"attributes":{"$ref":"#/components/schemas/TeamMember"},"relationships":{"type":"object","properties":{}},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/team-members/123456789"}}}},"required":["id","type","attributes"]}},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/team-members?fields=id,title&sort=-createdAt&filter[isCompleted]=true&page[limit]=10&page[number]=2"},"first":{"type":"string","format":"uri","example":"https://api.website.com/team-members?fields=id,title&sort=-createdAt&filter[isCompleted]=true&page[limit]=10&page[number]=1"},"last":{"type":"string","format":"uri","example":"https://api.website.com/team-members?fields=id,title&sort=-createdAt&filter[isCompleted]=true&page[limit]=10&page[number]=12"},"prev":{"type":"string","format":"uri","example":"https://api.website.com/team-members?fields=id,title&sort=-createdAt&filter[isCompleted]=true&page[limit]=10&page[number]=1"},"next":{"type":"string","format":"uri","example":"https://api.website.com/team-members?fields=id,title&sort=-createdAt&filter[isCompleted]=true&page[limit]=10&page[number]=3"}},"required":["self","first","last","prev","next"]},"meta":{"type":"object","properties":{}},"included":{"type":"object","properties":{}}},"required":["data"]}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"68fd63j5"},"status":{"type":"integer","example":400},"code":{"type":"string","example":"INVALID_INPUT"},"title":{"type":"string","example":"Invalid Input"},"details":{"type":"string","example":"The input is invalid"},"meta":{"type":"object","properties":{"ZodIssue":{"type":"object","properties":{},"example":{"code":"too_small","minimum":3,"type":"string","inclusive":true,"exact":false,"message":"String must contain at least 3 character(s)","path":["username"]}}}},"source":{"type":"object","properties":{"pointer":{"type":"string","example":"/data/attributes/username"},"parameter":{"type":"string","example":"username"},"header":{"type":"string","example":"Authorization"}}},"links":{"type":"object","properties":{"about":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors/INVALID_INPUT"},"type":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["id","status","code","title","source","links"]}}},"required":["errors"]}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[401]},"code":{"type":"string","enum":["UNAUTHORIZED"]},"title":{"type":"string","enum":["Unauthorized"]},"details":{"type":"string","example":"You need to be authenticated to access this resource"},"links":{"type":"object","properties":{"about":{"type":"string","example":"https://api.website.com/docs/errors/UNAUTHORIZED"},"type":{"type":"string","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}}}},"post":{"description":"Create new team-member for a given team","parameters":[{"schema":{"type":"string","enum":["id","userId","teamId","hasUserAccepted","hasTeamAccepted","createdAt","updatedAt"]},"required":false,"name":"fields","in":"query"}],"requestBody":{"required":true,"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"teamId":{"type":"string"},"hasTeamAccepted":{"type":"boolean","nullable":true},"email":{"type":"string","format":"email","example":"team-member@email.com"}},"required":["teamId","email"]}}}},"responses":{"200":{"description":"The new team-member","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"123456789"},"type":{"type":"string","example":"team-members"},"attributes":{"$ref":"#/components/schemas/TeamMember"},"relationships":{"type":"object","properties":{}},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/team-members/123456789"}}}},"required":["id","type","attributes"]},"meta":{"type":"object","properties":{}},"included":{"type":"object","properties":{}}},"required":["data"]}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"68fd63j5"},"status":{"type":"integer","example":400},"code":{"type":"string","example":"INVALID_INPUT"},"title":{"type":"string","example":"Invalid Input"},"details":{"type":"string","example":"The input is invalid"},"meta":{"type":"object","properties":{"ZodIssue":{"type":"object","properties":{},"example":{"code":"too_small","minimum":3,"type":"string","inclusive":true,"exact":false,"message":"String must contain at least 3 character(s)","path":["username"]}}}},"source":{"type":"object","properties":{"pointer":{"type":"string","example":"/data/attributes/username"},"parameter":{"type":"string","example":"username"},"header":{"type":"string","example":"Authorization"}}},"links":{"type":"object","properties":{"about":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors/INVALID_INPUT"},"type":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","source","links"]}}},"required":["errors"]}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[401]},"code":{"type":"string","enum":["UNAUTHORIZED"]},"title":{"type":"string","enum":["Unauthorized"]},"details":{"type":"string","example":"You need to be authenticated to access this resource"},"links":{"type":"object","properties":{"about":{"type":"string","example":"https://api.website.com/docs/errors/UNAUTHORIZED"},"type":{"type":"string","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"68fd63j5"},"status":{"type":"integer","example":400},"code":{"type":"string","example":"INVALID_INPUT"},"title":{"type":"string","example":"Invalid Input"},"details":{"type":"string","example":"The input is invalid"},"meta":{"type":"object","properties":{"ZodIssue":{"type":"object","properties":{},"example":{"code":"too_small","minimum":3,"type":"string","inclusive":true,"exact":false,"message":"String must contain at least 3 character(s)","path":["username"]}}}},"source":{"type":"object","properties":{"pointer":{"type":"string","example":"/data/attributes/username"},"parameter":{"type":"string","example":"username"},"header":{"type":"string","example":"Authorization"}}},"links":{"type":"object","properties":{"about":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors/INVALID_INPUT"},"type":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","source","links"]}}},"required":["errors"]}}}}}}},"/team-members/{id}":{"patch":{"description":"Update given team member","parameters":[{"schema":{"type":"string","minLength":3,"example":"123456789"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","enum":["id","userId","teamId","hasUserAccepted","hasTeamAccepted","createdAt","updatedAt"]},"required":false,"name":"fields","in":"query"}],"requestBody":{"required":true,"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"hasUserAccepted":{"type":"boolean","nullable":true},"hasTeamAccepted":{"type":"boolean","nullable":true}}}}}},"responses":{"200":{"description":"The updated team member","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"123456789"},"type":{"type":"string","example":"team-members"},"attributes":{"$ref":"#/components/schemas/TeamMember"},"relationships":{"type":"object","properties":{}},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/team-members/123456789"}}}},"required":["id","type","attributes"]},"meta":{"type":"object","properties":{}},"included":{"type":"object","properties":{}}},"required":["data"]}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"68fd63j5"},"status":{"type":"integer","example":400},"code":{"type":"string","example":"INVALID_INPUT"},"title":{"type":"string","example":"Invalid Input"},"details":{"type":"string","example":"The input is invalid"},"meta":{"type":"object","properties":{"ZodIssue":{"type":"object","properties":{},"example":{"code":"too_small","minimum":3,"type":"string","inclusive":true,"exact":false,"message":"String must contain at least 3 character(s)","path":["username"]}}}},"source":{"type":"object","properties":{"pointer":{"type":"string","example":"/data/attributes/username"},"parameter":{"type":"string","example":"username"},"header":{"type":"string","example":"Authorization"}}},"links":{"type":"object","properties":{"about":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors/INVALID_INPUT"},"type":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","source","links"]}}},"required":["errors"]}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[401]},"code":{"type":"string","enum":["UNAUTHORIZED"]},"title":{"type":"string","enum":["Unauthorized"]},"details":{"type":"string","example":"You need to be authenticated to access this resource"},"links":{"type":"object","properties":{"about":{"type":"string","example":"https://api.website.com/docs/errors/UNAUTHORIZED"},"type":{"type":"string","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[404]},"code":{"type":"string","enum":["NOT_FOUND"]},"title":{"type":"string","enum":["404 Not Found"]},"details":{"type":"string","default":"The resource does not exist"},"links":{"type":"object","properties":{"about":{"type":"string","default":"https://api.website.com/docs/errors/NOT_FOUND"},"type":{"type":"string","default":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}}}},"delete":{"description":"Delete given team member by id","parameters":[{"schema":{"type":"string","minLength":3,"example":"123456789"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"The deleted team member id","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"123456789"},"type":{"type":"string","example":"team-members"},"attributes":{"type":"object","properties":{"id":{"type":"string","example":"123456789"}},"required":["id"]},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/team-members/123456789"}}}},"required":["id","type","attributes"]},"meta":{"type":"object","properties":{}}},"required":["data"]}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"68fd63j5"},"status":{"type":"integer","example":400},"code":{"type":"string","example":"INVALID_INPUT"},"title":{"type":"string","example":"Invalid Input"},"details":{"type":"string","example":"The input is invalid"},"meta":{"type":"object","properties":{"ZodIssue":{"type":"object","properties":{},"example":{"code":"too_small","minimum":3,"type":"string","inclusive":true,"exact":false,"message":"String must contain at least 3 character(s)","path":["username"]}}}},"source":{"type":"object","properties":{"pointer":{"type":"string","example":"/data/attributes/username"},"parameter":{"type":"string","example":"username"},"header":{"type":"string","example":"Authorization"}}},"links":{"type":"object","properties":{"about":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors/INVALID_INPUT"},"type":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["id","status","code","title","source","links"]}}},"required":["errors"]}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[401]},"code":{"type":"string","enum":["UNAUTHORIZED"]},"title":{"type":"string","enum":["Unauthorized"]},"details":{"type":"string","example":"You need to be authenticated to access this resource"},"links":{"type":"object","properties":{"about":{"type":"string","example":"https://api.website.com/docs/errors/UNAUTHORIZED"},"type":{"type":"string","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[404]},"code":{"type":"string","enum":["NOT_FOUND"]},"title":{"type":"string","enum":["404 Not Found"]},"details":{"type":"string","default":"The resource does not exist"},"links":{"type":"object","properties":{"about":{"type":"string","default":"https://api.website.com/docs/errors/NOT_FOUND"},"type":{"type":"string","default":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}}}}},"/projects/{id}":{"get":{"description":"Retrieve a single project by id","parameters":[{"schema":{"type":"string","minLength":3,"example":"123456789"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","enum":["id","teamId","ownerId","title","createdAt","updatedAt"]},"required":false,"name":"fields","in":"query"}],"responses":{"200":{"description":"Retrieve single project","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"123456789"},"type":{"type":"string","example":"projects"},"attributes":{"$ref":"#/components/schemas/Project"},"relationships":{"type":"object","properties":{}},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/projects/123456789"}}}},"required":["id","type","attributes"]},"meta":{"type":"object","properties":{}},"included":{"type":"object","properties":{}}},"required":["data"]}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"68fd63j5"},"status":{"type":"integer","example":400},"code":{"type":"string","example":"INVALID_INPUT"},"title":{"type":"string","example":"Invalid Input"},"details":{"type":"string","example":"The input is invalid"},"meta":{"type":"object","properties":{"ZodIssue":{"type":"object","properties":{},"example":{"code":"too_small","minimum":3,"type":"string","inclusive":true,"exact":false,"message":"String must contain at least 3 character(s)","path":["username"]}}}},"source":{"type":"object","properties":{"pointer":{"type":"string","example":"/data/attributes/username"},"parameter":{"type":"string","example":"username"},"header":{"type":"string","example":"Authorization"}}},"links":{"type":"object","properties":{"about":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors/INVALID_INPUT"},"type":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["id","status","code","title","source","links"]}}},"required":["errors"]}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[401]},"code":{"type":"string","enum":["UNAUTHORIZED"]},"title":{"type":"string","enum":["Unauthorized"]},"details":{"type":"string","example":"You need to be authenticated to access this resource"},"links":{"type":"object","properties":{"about":{"type":"string","example":"https://api.website.com/docs/errors/UNAUTHORIZED"},"type":{"type":"string","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[404]},"code":{"type":"string","enum":["NOT_FOUND"]},"title":{"type":"string","enum":["404 Not Found"]},"details":{"type":"string","default":"The resource does not exist"},"links":{"type":"object","properties":{"about":{"type":"string","default":"https://api.website.com/docs/errors/NOT_FOUND"},"type":{"type":"string","default":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}}}},"delete":{"description":"Delete given project","parameters":[{"schema":{"type":"string","minLength":3,"example":"123456789"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"The deleted project id","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"123456789"},"type":{"type":"string","example":"projects"},"attributes":{"type":"object","properties":{"id":{"type":"string","example":"123456789"}},"required":["id"]},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/projects/123456789"}}}},"required":["id","type","attributes"]},"meta":{"type":"object","properties":{}}},"required":["data"]}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"68fd63j5"},"status":{"type":"integer","example":400},"code":{"type":"string","example":"INVALID_INPUT"},"title":{"type":"string","example":"Invalid Input"},"details":{"type":"string","example":"The input is invalid"},"meta":{"type":"object","properties":{"ZodIssue":{"type":"object","properties":{},"example":{"code":"too_small","minimum":3,"type":"string","inclusive":true,"exact":false,"message":"String must contain at least 3 character(s)","path":["username"]}}}},"source":{"type":"object","properties":{"pointer":{"type":"string","example":"/data/attributes/username"},"parameter":{"type":"string","example":"username"},"header":{"type":"string","example":"Authorization"}}},"links":{"type":"object","properties":{"about":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors/INVALID_INPUT"},"type":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["id","status","code","title","source","links"]}}},"required":["errors"]}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[401]},"code":{"type":"string","enum":["UNAUTHORIZED"]},"title":{"type":"string","enum":["Unauthorized"]},"details":{"type":"string","example":"You need to be authenticated to access this resource"},"links":{"type":"object","properties":{"about":{"type":"string","example":"https://api.website.com/docs/errors/UNAUTHORIZED"},"type":{"type":"string","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[404]},"code":{"type":"string","enum":["NOT_FOUND"]},"title":{"type":"string","enum":["404 Not Found"]},"details":{"type":"string","default":"The resource does not exist"},"links":{"type":"object","properties":{"about":{"type":"string","default":"https://api.website.com/docs/errors/NOT_FOUND"},"type":{"type":"string","default":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}}}},"patch":{"description":"Update given project","parameters":[{"schema":{"type":"string","minLength":3,"example":"123456789"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","enum":["id","teamId","ownerId","title","createdAt","updatedAt"]},"required":false,"name":"fields","in":"query"}],"requestBody":{"required":true,"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1}},"required":["title"]}}}},"responses":{"200":{"description":"The updated project","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"123456789"},"type":{"type":"string","example":"projects"},"attributes":{"$ref":"#/components/schemas/Project"},"relationships":{"type":"object","properties":{}},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/projects/123456789"}}}},"required":["id","type","attributes"]},"meta":{"type":"object","properties":{}},"included":{"type":"object","properties":{}}},"required":["data"]}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"68fd63j5"},"status":{"type":"integer","example":400},"code":{"type":"string","example":"INVALID_INPUT"},"title":{"type":"string","example":"Invalid Input"},"details":{"type":"string","example":"The input is invalid"},"meta":{"type":"object","properties":{"ZodIssue":{"type":"object","properties":{},"example":{"code":"too_small","minimum":3,"type":"string","inclusive":true,"exact":false,"message":"String must contain at least 3 character(s)","path":["username"]}}}},"source":{"type":"object","properties":{"pointer":{"type":"string","example":"/data/attributes/username"},"parameter":{"type":"string","example":"username"},"header":{"type":"string","example":"Authorization"}}},"links":{"type":"object","properties":{"about":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors/INVALID_INPUT"},"type":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","source","links"]}}},"required":["errors"]}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[401]},"code":{"type":"string","enum":["UNAUTHORIZED"]},"title":{"type":"string","enum":["Unauthorized"]},"details":{"type":"string","example":"You need to be authenticated to access this resource"},"links":{"type":"object","properties":{"about":{"type":"string","example":"https://api.website.com/docs/errors/UNAUTHORIZED"},"type":{"type":"string","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[404]},"code":{"type":"string","enum":["NOT_FOUND"]},"title":{"type":"string","enum":["404 Not Found"]},"details":{"type":"string","default":"The resource does not exist"},"links":{"type":"object","properties":{"about":{"type":"string","default":"https://api.website.com/docs/errors/NOT_FOUND"},"type":{"type":"string","default":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}}}}},"/projects":{"get":{"description":"Retrieve projects for a given team","parameters":[{"schema":{"type":"string","enum":["id","teamId","ownerId","title","createdAt","updatedAt"]},"required":false,"name":"fields","in":"query"},{"schema":{"type":"string","example":"123456789"},"required":true,"name":"teamId","in":"query"}],"responses":{"200":{"description":"Retrieve projects","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"123456789"},"type":{"type":"string","example":"projects"},"attributes":{"$ref":"#/components/schemas/Project"},"relationships":{"type":"object","properties":{}},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/projects/123456789"}}}},"required":["id","type","attributes"]}},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/projects?fields=id,title&sort=-createdAt&filter[isCompleted]=true&page[limit]=10&page[number]=2"},"first":{"type":"string","format":"uri","example":"https://api.website.com/projects?fields=id,title&sort=-createdAt&filter[isCompleted]=true&page[limit]=10&page[number]=1"},"last":{"type":"string","format":"uri","example":"https://api.website.com/projects?fields=id,title&sort=-createdAt&filter[isCompleted]=true&page[limit]=10&page[number]=12"},"prev":{"type":"string","format":"uri","example":"https://api.website.com/projects?fields=id,title&sort=-createdAt&filter[isCompleted]=true&page[limit]=10&page[number]=1"},"next":{"type":"string","format":"uri","example":"https://api.website.com/projects?fields=id,title&sort=-createdAt&filter[isCompleted]=true&page[limit]=10&page[number]=3"}},"required":["self","first","last","prev","next"]},"meta":{"type":"object","properties":{}},"included":{"type":"object","properties":{}}},"required":["data"]}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"68fd63j5"},"status":{"type":"integer","example":400},"code":{"type":"string","example":"INVALID_INPUT"},"title":{"type":"string","example":"Invalid Input"},"details":{"type":"string","example":"The input is invalid"},"meta":{"type":"object","properties":{"ZodIssue":{"type":"object","properties":{},"example":{"code":"too_small","minimum":3,"type":"string","inclusive":true,"exact":false,"message":"String must contain at least 3 character(s)","path":["username"]}}}},"source":{"type":"object","properties":{"pointer":{"type":"string","example":"/data/attributes/username"},"parameter":{"type":"string","example":"username"},"header":{"type":"string","example":"Authorization"}}},"links":{"type":"object","properties":{"about":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors/INVALID_INPUT"},"type":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["id","status","code","title","source","links"]}}},"required":["errors"]}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[401]},"code":{"type":"string","enum":["UNAUTHORIZED"]},"title":{"type":"string","enum":["Unauthorized"]},"details":{"type":"string","example":"You need to be authenticated to access this resource"},"links":{"type":"object","properties":{"about":{"type":"string","example":"https://api.website.com/docs/errors/UNAUTHORIZED"},"type":{"type":"string","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[404]},"code":{"type":"string","enum":["NOT_FOUND"]},"title":{"type":"string","enum":["404 Not Found"]},"details":{"type":"string","default":"The resource does not exist"},"links":{"type":"object","properties":{"about":{"type":"string","default":"https://api.website.com/docs/errors/NOT_FOUND"},"type":{"type":"string","default":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}}}},"post":{"description":"Create new project for a given team","parameters":[{"schema":{"type":"string","enum":["id","teamId","ownerId","title","createdAt","updatedAt"]},"required":false,"name":"fields","in":"query"}],"requestBody":{"required":true,"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"teamId":{"type":"string"},"title":{"type":"string","minLength":1}},"required":["teamId","title"]}}}},"responses":{"200":{"description":"The new project","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"123456789"},"type":{"type":"string","example":"projects"},"attributes":{"$ref":"#/components/schemas/Project"},"relationships":{"type":"object","properties":{}},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/projects/123456789"}}}},"required":["id","type","attributes"]},"meta":{"type":"object","properties":{}},"included":{"type":"object","properties":{}}},"required":["data"]}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"68fd63j5"},"status":{"type":"integer","example":400},"code":{"type":"string","example":"INVALID_INPUT"},"title":{"type":"string","example":"Invalid Input"},"details":{"type":"string","example":"The input is invalid"},"meta":{"type":"object","properties":{"ZodIssue":{"type":"object","properties":{},"example":{"code":"too_small","minimum":3,"type":"string","inclusive":true,"exact":false,"message":"String must contain at least 3 character(s)","path":["username"]}}}},"source":{"type":"object","properties":{"pointer":{"type":"string","example":"/data/attributes/username"},"parameter":{"type":"string","example":"username"},"header":{"type":"string","example":"Authorization"}}},"links":{"type":"object","properties":{"about":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors/INVALID_INPUT"},"type":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","source","links"]}}},"required":["errors"]}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[401]},"code":{"type":"string","enum":["UNAUTHORIZED"]},"title":{"type":"string","enum":["Unauthorized"]},"details":{"type":"string","example":"You need to be authenticated to access this resource"},"links":{"type":"object","properties":{"about":{"type":"string","example":"https://api.website.com/docs/errors/UNAUTHORIZED"},"type":{"type":"string","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}}}}},"/tasks/{id}":{"get":{"description":"Retrieve a single task by id","parameters":[{"schema":{"type":"string","minLength":3,"example":"123456789"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","enum":["id","title","description","dueAt","teamId","projectId","listId","ownerId","assigneeId","position","isCompleted","completedAt","createdAt","updatedAt"]},"required":false,"name":"fields","in":"query"}],"responses":{"200":{"description":"Retrieve single task","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","example":"tasks"},"id":{"type":"string","example":"gy63blmknjbhvg43e2d"},"attributes":{"$ref":"#/components/schemas/Task"},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/tasks/thgbw45brtb4rt5676uh"}}}},"required":["type","id","attributes","links"]},"meta":{"type":"object","properties":{}},"included":{"type":"object","properties":{}}},"required":["data"]}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"68fd63j5"},"status":{"type":"integer","example":400},"code":{"type":"string","example":"INVALID_INPUT"},"title":{"type":"string","example":"Invalid Input"},"details":{"type":"string","example":"The input is invalid"},"meta":{"type":"object","properties":{"ZodIssue":{"type":"object","properties":{},"example":{"code":"too_small","minimum":3,"type":"string","inclusive":true,"exact":false,"message":"String must contain at least 3 character(s)","path":["username"]}}}},"source":{"type":"object","properties":{"pointer":{"type":"string","example":"/data/attributes/username"},"parameter":{"type":"string","example":"username"},"header":{"type":"string","example":"Authorization"}}},"links":{"type":"object","properties":{"about":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors/INVALID_INPUT"},"type":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["id","status","code","title","source","links"]}}},"required":["errors"]}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[401]},"code":{"type":"string","enum":["UNAUTHORIZED"]},"title":{"type":"string","enum":["Unauthorized"]},"details":{"type":"string","example":"You need to be authenticated to access this resource"},"links":{"type":"object","properties":{"about":{"type":"string","example":"https://api.website.com/docs/errors/UNAUTHORIZED"},"type":{"type":"string","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[404]},"code":{"type":"string","enum":["NOT_FOUND"]},"title":{"type":"string","enum":["404 Not Found"]},"details":{"type":"string","default":"The resource does not exist"},"links":{"type":"object","properties":{"about":{"type":"string","default":"https://api.website.com/docs/errors/NOT_FOUND"},"type":{"type":"string","default":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}}}},"patch":{"description":"Update given task list","parameters":[{"schema":{"type":"string","minLength":3,"example":"123456789"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","enum":["id","title","description","dueAt","teamId","projectId","listId","ownerId","assigneeId","position","isCompleted","completedAt","createdAt","updatedAt"]},"required":false,"name":"fields","in":"query"}],"requestBody":{"required":true,"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1},"description":{"type":"string","nullable":true},"dueAt":{"type":"string","nullable":true},"listId":{"type":"string"},"assigneeId":{"type":"string","nullable":true},"position":{"type":"integer","nullable":true,"minimum":0,"default":0},"isCompleted":{"type":"boolean"}}}}}},"responses":{"200":{"description":"The updated task list","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"123456789"},"type":{"type":"string","example":"tasks"},"attributes":{"$ref":"#/components/schemas/Task"},"relationships":{"type":"object","properties":{}},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/tasks/123456789"}}}},"required":["id","type","attributes"]},"meta":{"type":"object","properties":{}},"included":{"type":"object","properties":{}}},"required":["data"]}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"68fd63j5"},"status":{"type":"integer","example":400},"code":{"type":"string","example":"INVALID_INPUT"},"title":{"type":"string","example":"Invalid Input"},"details":{"type":"string","example":"The input is invalid"},"meta":{"type":"object","properties":{"ZodIssue":{"type":"object","properties":{},"example":{"code":"too_small","minimum":3,"type":"string","inclusive":true,"exact":false,"message":"String must contain at least 3 character(s)","path":["username"]}}}},"source":{"type":"object","properties":{"pointer":{"type":"string","example":"/data/attributes/username"},"parameter":{"type":"string","example":"username"},"header":{"type":"string","example":"Authorization"}}},"links":{"type":"object","properties":{"about":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors/INVALID_INPUT"},"type":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","source","links"]}}},"required":["errors"]}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[401]},"code":{"type":"string","enum":["UNAUTHORIZED"]},"title":{"type":"string","enum":["Unauthorized"]},"details":{"type":"string","example":"You need to be authenticated to access this resource"},"links":{"type":"object","properties":{"about":{"type":"string","example":"https://api.website.com/docs/errors/UNAUTHORIZED"},"type":{"type":"string","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[404]},"code":{"type":"string","enum":["NOT_FOUND"]},"title":{"type":"string","enum":["404 Not Found"]},"details":{"type":"string","default":"The resource does not exist"},"links":{"type":"object","properties":{"about":{"type":"string","default":"https://api.website.com/docs/errors/NOT_FOUND"},"type":{"type":"string","default":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}}}},"delete":{"description":"Delete given task list","parameters":[{"schema":{"type":"string","minLength":3,"example":"123456789"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"The deleted task list id","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"123456789"},"type":{"type":"string","example":"tasks"},"attributes":{"type":"object","properties":{"id":{"type":"string","example":"123456789"}},"required":["id"]},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/tasks/123456789"}}}},"required":["id","type","attributes"]},"meta":{"type":"object","properties":{}}},"required":["data"]}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"68fd63j5"},"status":{"type":"integer","example":400},"code":{"type":"string","example":"INVALID_INPUT"},"title":{"type":"string","example":"Invalid Input"},"details":{"type":"string","example":"The input is invalid"},"meta":{"type":"object","properties":{"ZodIssue":{"type":"object","properties":{},"example":{"code":"too_small","minimum":3,"type":"string","inclusive":true,"exact":false,"message":"String must contain at least 3 character(s)","path":["username"]}}}},"source":{"type":"object","properties":{"pointer":{"type":"string","example":"/data/attributes/username"},"parameter":{"type":"string","example":"username"},"header":{"type":"string","example":"Authorization"}}},"links":{"type":"object","properties":{"about":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors/INVALID_INPUT"},"type":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["id","status","code","title","source","links"]}}},"required":["errors"]}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[401]},"code":{"type":"string","enum":["UNAUTHORIZED"]},"title":{"type":"string","enum":["Unauthorized"]},"details":{"type":"string","example":"You need to be authenticated to access this resource"},"links":{"type":"object","properties":{"about":{"type":"string","example":"https://api.website.com/docs/errors/UNAUTHORIZED"},"type":{"type":"string","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[404]},"code":{"type":"string","enum":["NOT_FOUND"]},"title":{"type":"string","enum":["404 Not Found"]},"details":{"type":"string","default":"The resource does not exist"},"links":{"type":"object","properties":{"about":{"type":"string","default":"https://api.website.com/docs/errors/NOT_FOUND"},"type":{"type":"string","default":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}}}}},"/tasks":{"get":{"description":"Retrieve tasks for a given task list","parameters":[{"schema":{"type":"string","enum":["id","title","description","dueAt","teamId","projectId","listId","ownerId","assigneeId","position","isCompleted","completedAt","createdAt","updatedAt"]},"required":false,"name":"fields","in":"query"},{"schema":{"type":"string","enum":["assignee"]},"required":false,"name":"include","in":"query"},{"schema":{"type":"string","example":"123456789"},"required":false,"name":"listId","in":"query"},{"schema":{"type":"string","example":"123456789"},"required":false,"name":"teamId","in":"query"}],"responses":{"200":{"description":"Retrieve tasks","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"gy63blmknjbhvg43e2d"},"type":{"type":"string","default":"tasks","example":"tasks"},"attributes":{"$ref":"#/components/schemas/Task"},"relationships":{"type":"object","properties":{"assignee":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"thgbw45brtb4rt5676uh"},"type":{"type":"string","example":"users"}},"required":["id","type"]}},"required":["data"]}}},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/tasks/thgbw45brtb4rt5676uh"}},"required":["self"]}},"required":["id","attributes","links"]}},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/tasks?fields=id,title&sort=-createdAt&filter[isCompleted]=true&page[limit]=10&page[number]=2"},"first":{"type":"string","format":"uri","example":"https://api.website.com/tasks?fields=id,title&sort=-createdAt&filter[isCompleted]=true&page[limit]=10&page[number]=1"},"last":{"type":"string","format":"uri","example":"https://api.website.com/tasks?fields=id,title&sort=-createdAt&filter[isCompleted]=true&page[limit]=10&page[number]=12"},"prev":{"type":"string","format":"uri","example":"https://api.website.com/tasks?fields=id,title&sort=-createdAt&filter[isCompleted]=true&page[limit]=10&page[number]=1"},"next":{"type":"string","format":"uri","example":"https://api.website.com/tasks?fields=id,title&sort=-createdAt&filter[isCompleted]=true&page[limit]=10&page[number]=3"}},"required":["self","first","last","prev","next"]},"meta":{"type":"object","properties":{}},"included":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"thgbw45brtb4rt5676uh"},"type":{"type":"string","example":"users"},"attributes":{"type":"object","properties":{"id":{"type":"string","example":"thgbw45brtb4rt5676uh"},"fullName":{"type":"string","example":"John Doe"}},"required":["id","fullName"]},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/users/thgbw45brtb4rt5676uh"}},"required":["self"]}},"required":["id","type","attributes","links"]}}},"required":["data","included"]}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"68fd63j5"},"status":{"type":"integer","example":400},"code":{"type":"string","example":"INVALID_INPUT"},"title":{"type":"string","example":"Invalid Input"},"details":{"type":"string","example":"The input is invalid"},"meta":{"type":"object","properties":{"ZodIssue":{"type":"object","properties":{},"example":{"code":"too_small","minimum":3,"type":"string","inclusive":true,"exact":false,"message":"String must contain at least 3 character(s)","path":["username"]}}}},"source":{"type":"object","properties":{"pointer":{"type":"string","example":"/data/attributes/username"},"parameter":{"type":"string","example":"username"},"header":{"type":"string","example":"Authorization"}}},"links":{"type":"object","properties":{"about":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors/INVALID_INPUT"},"type":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["id","status","code","title","source","links"]}}},"required":["errors"]}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[401]},"code":{"type":"string","enum":["UNAUTHORIZED"]},"title":{"type":"string","enum":["Unauthorized"]},"details":{"type":"string","example":"You need to be authenticated to access this resource"},"links":{"type":"object","properties":{"about":{"type":"string","example":"https://api.website.com/docs/errors/UNAUTHORIZED"},"type":{"type":"string","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[404]},"code":{"type":"string","enum":["NOT_FOUND"]},"title":{"type":"string","enum":["404 Not Found"]},"details":{"type":"string","default":"The resource does not exist"},"links":{"type":"object","properties":{"about":{"type":"string","default":"https://api.website.com/docs/errors/NOT_FOUND"},"type":{"type":"string","default":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}}}},"post":{"description":"Create new task list for a given team","parameters":[{"schema":{"type":"string","enum":["id","title","description","dueAt","teamId","projectId","listId","ownerId","assigneeId","position","isCompleted","completedAt","createdAt","updatedAt"]},"required":false,"name":"fields","in":"query"}],"requestBody":{"required":true,"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1},"description":{"type":"string","nullable":true},"dueAt":{"type":"string","nullable":true},"listId":{"type":"string"},"assigneeId":{"type":"string","nullable":true},"position":{"type":"integer","nullable":true,"minimum":0,"default":0},"isCompleted":{"type":"boolean"}},"required":["title","listId"]}}}},"responses":{"200":{"description":"The new task list","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"123456789"},"type":{"type":"string","example":"tasks"},"attributes":{"$ref":"#/components/schemas/Task"},"relationships":{"type":"object","properties":{}},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/tasks/123456789"}}}},"required":["id","type","attributes"]},"meta":{"type":"object","properties":{}},"included":{"type":"object","properties":{}}},"required":["data"]}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"68fd63j5"},"status":{"type":"integer","example":400},"code":{"type":"string","example":"INVALID_INPUT"},"title":{"type":"string","example":"Invalid Input"},"details":{"type":"string","example":"The input is invalid"},"meta":{"type":"object","properties":{"ZodIssue":{"type":"object","properties":{},"example":{"code":"too_small","minimum":3,"type":"string","inclusive":true,"exact":false,"message":"String must contain at least 3 character(s)","path":["username"]}}}},"source":{"type":"object","properties":{"pointer":{"type":"string","example":"/data/attributes/username"},"parameter":{"type":"string","example":"username"},"header":{"type":"string","example":"Authorization"}}},"links":{"type":"object","properties":{"about":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors/INVALID_INPUT"},"type":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","source","links"]}}},"required":["errors"]}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[401]},"code":{"type":"string","enum":["UNAUTHORIZED"]},"title":{"type":"string","enum":["Unauthorized"]},"details":{"type":"string","example":"You need to be authenticated to access this resource"},"links":{"type":"object","properties":{"about":{"type":"string","example":"https://api.website.com/docs/errors/UNAUTHORIZED"},"type":{"type":"string","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[404]},"code":{"type":"string","enum":["NOT_FOUND"]},"title":{"type":"string","enum":["404 Not Found"]},"details":{"type":"string","default":"The resource does not exist"},"links":{"type":"object","properties":{"about":{"type":"string","default":"https://api.website.com/docs/errors/NOT_FOUND"},"type":{"type":"string","default":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}}}}},"/task-lists":{"get":{"description":"Retrieve task lists for a given project","parameters":[{"schema":{"type":"string","enum":["id","title","description","dueAt","teamId","projectId","listId","ownerId","assigneeId","position","isCompleted","completedAt","createdAt","updatedAt"]},"required":false,"name":"fields","in":"query"},{"schema":{"type":"string","example":"123456789"},"required":true,"name":"projectId","in":"query"}],"responses":{"200":{"description":"Retrieve task lists","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"gy63blmknjbhvg43e2d"},"type":{"type":"string","default":"task-lists","example":"task-lists"},"attributes":{"$ref":"#/components/schemas/Task List"},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/task-lists/thgbw45brtb4rt5676uh"}},"required":["self"]}},"required":["id","attributes","links"]}},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/tasks?fields=id,title&sort=-createdAt&filter[isCompleted]=true&page[limit]=10&page[number]=2"},"first":{"type":"string","format":"uri","example":"https://api.website.com/tasks?fields=id,title&sort=-createdAt&filter[isCompleted]=true&page[limit]=10&page[number]=1"},"last":{"type":"string","format":"uri","example":"https://api.website.com/tasks?fields=id,title&sort=-createdAt&filter[isCompleted]=true&page[limit]=10&page[number]=12"},"prev":{"type":"string","format":"uri","example":"https://api.website.com/tasks?fields=id,title&sort=-createdAt&filter[isCompleted]=true&page[limit]=10&page[number]=1"},"next":{"type":"string","format":"uri","example":"https://api.website.com/tasks?fields=id,title&sort=-createdAt&filter[isCompleted]=true&page[limit]=10&page[number]=3"}},"required":["self","first","last","prev","next"]},"meta":{"type":"object","properties":{}},"included":{"type":"object","properties":{}}},"required":["data"]}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"68fd63j5"},"status":{"type":"integer","example":400},"code":{"type":"string","example":"INVALID_INPUT"},"title":{"type":"string","example":"Invalid Input"},"details":{"type":"string","example":"The input is invalid"},"meta":{"type":"object","properties":{"ZodIssue":{"type":"object","properties":{},"example":{"code":"too_small","minimum":3,"type":"string","inclusive":true,"exact":false,"message":"String must contain at least 3 character(s)","path":["username"]}}}},"source":{"type":"object","properties":{"pointer":{"type":"string","example":"/data/attributes/username"},"parameter":{"type":"string","example":"username"},"header":{"type":"string","example":"Authorization"}}},"links":{"type":"object","properties":{"about":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors/INVALID_INPUT"},"type":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["id","status","code","title","source","links"]}}},"required":["errors"]}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[401]},"code":{"type":"string","enum":["UNAUTHORIZED"]},"title":{"type":"string","enum":["Unauthorized"]},"details":{"type":"string","example":"You need to be authenticated to access this resource"},"links":{"type":"object","properties":{"about":{"type":"string","example":"https://api.website.com/docs/errors/UNAUTHORIZED"},"type":{"type":"string","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[404]},"code":{"type":"string","enum":["NOT_FOUND"]},"title":{"type":"string","enum":["404 Not Found"]},"details":{"type":"string","default":"The resource does not exist"},"links":{"type":"object","properties":{"about":{"type":"string","default":"https://api.website.com/docs/errors/NOT_FOUND"},"type":{"type":"string","default":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}}}},"post":{"description":"Create new task list for a given team","parameters":[{"schema":{"type":"string","enum":["id","title","teamId","projectId","ownerId","position","createdAt","updatedAt"]},"required":false,"name":"fields","in":"query"}],"requestBody":{"required":true,"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1},"projectId":{"type":"string"},"position":{"type":"integer","nullable":true,"minimum":0,"default":0}},"required":["title","projectId"]}}}},"responses":{"200":{"description":"The new task list","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"123456789"},"type":{"type":"string","example":"task-lists"},"attributes":{"$ref":"#/components/schemas/Task List"},"relationships":{"type":"object","properties":{}},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/task-lists/123456789"}}}},"required":["id","type","attributes"]},"meta":{"type":"object","properties":{}},"included":{"type":"object","properties":{}}},"required":["data"]}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"68fd63j5"},"status":{"type":"integer","example":400},"code":{"type":"string","example":"INVALID_INPUT"},"title":{"type":"string","example":"Invalid Input"},"details":{"type":"string","example":"The input is invalid"},"meta":{"type":"object","properties":{"ZodIssue":{"type":"object","properties":{},"example":{"code":"too_small","minimum":3,"type":"string","inclusive":true,"exact":false,"message":"String must contain at least 3 character(s)","path":["username"]}}}},"source":{"type":"object","properties":{"pointer":{"type":"string","example":"/data/attributes/username"},"parameter":{"type":"string","example":"username"},"header":{"type":"string","example":"Authorization"}}},"links":{"type":"object","properties":{"about":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors/INVALID_INPUT"},"type":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","source","links"]}}},"required":["errors"]}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[401]},"code":{"type":"string","enum":["UNAUTHORIZED"]},"title":{"type":"string","enum":["Unauthorized"]},"details":{"type":"string","example":"You need to be authenticated to access this resource"},"links":{"type":"object","properties":{"about":{"type":"string","example":"https://api.website.com/docs/errors/UNAUTHORIZED"},"type":{"type":"string","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[404]},"code":{"type":"string","enum":["NOT_FOUND"]},"title":{"type":"string","enum":["404 Not Found"]},"details":{"type":"string","default":"The resource does not exist"},"links":{"type":"object","properties":{"about":{"type":"string","default":"https://api.website.com/docs/errors/NOT_FOUND"},"type":{"type":"string","default":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}}}}},"/task-lists/{id}":{"patch":{"description":"Update given task list","parameters":[{"schema":{"type":"string","minLength":3,"example":"123456789"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","enum":["id","title","teamId","projectId","ownerId","position","createdAt","updatedAt"]},"required":false,"name":"fields","in":"query"}],"requestBody":{"required":true,"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1},"position":{"type":"integer","nullable":true,"minimum":0,"default":0}}}}}},"responses":{"200":{"description":"The updated task list","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"123456789"},"type":{"type":"string","example":"task-lists"},"attributes":{"$ref":"#/components/schemas/Task List"},"relationships":{"type":"object","properties":{}},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/task-lists/123456789"}}}},"required":["id","type","attributes"]},"meta":{"type":"object","properties":{}},"included":{"type":"object","properties":{}}},"required":["data"]}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"68fd63j5"},"status":{"type":"integer","example":400},"code":{"type":"string","example":"INVALID_INPUT"},"title":{"type":"string","example":"Invalid Input"},"details":{"type":"string","example":"The input is invalid"},"meta":{"type":"object","properties":{"ZodIssue":{"type":"object","properties":{},"example":{"code":"too_small","minimum":3,"type":"string","inclusive":true,"exact":false,"message":"String must contain at least 3 character(s)","path":["username"]}}}},"source":{"type":"object","properties":{"pointer":{"type":"string","example":"/data/attributes/username"},"parameter":{"type":"string","example":"username"},"header":{"type":"string","example":"Authorization"}}},"links":{"type":"object","properties":{"about":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors/INVALID_INPUT"},"type":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","source","links"]}}},"required":["errors"]}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[401]},"code":{"type":"string","enum":["UNAUTHORIZED"]},"title":{"type":"string","enum":["Unauthorized"]},"details":{"type":"string","example":"You need to be authenticated to access this resource"},"links":{"type":"object","properties":{"about":{"type":"string","example":"https://api.website.com/docs/errors/UNAUTHORIZED"},"type":{"type":"string","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[404]},"code":{"type":"string","enum":["NOT_FOUND"]},"title":{"type":"string","enum":["404 Not Found"]},"details":{"type":"string","default":"The resource does not exist"},"links":{"type":"object","properties":{"about":{"type":"string","default":"https://api.website.com/docs/errors/NOT_FOUND"},"type":{"type":"string","default":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}}}},"delete":{"description":"Delete given task list","parameters":[{"schema":{"type":"string","minLength":3,"example":"123456789"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"The deleted task list id","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"123456789"},"type":{"type":"string","example":"task-lists"},"attributes":{"type":"object","properties":{"id":{"type":"string","example":"123456789"}},"required":["id"]},"links":{"type":"object","properties":{"self":{"type":"string","format":"uri","example":"https://api.website.com/task-lists/123456789"}}}},"required":["id","type","attributes"]},"meta":{"type":"object","properties":{}}},"required":["data"]}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"68fd63j5"},"status":{"type":"integer","example":400},"code":{"type":"string","example":"INVALID_INPUT"},"title":{"type":"string","example":"Invalid Input"},"details":{"type":"string","example":"The input is invalid"},"meta":{"type":"object","properties":{"ZodIssue":{"type":"object","properties":{},"example":{"code":"too_small","minimum":3,"type":"string","inclusive":true,"exact":false,"message":"String must contain at least 3 character(s)","path":["username"]}}}},"source":{"type":"object","properties":{"pointer":{"type":"string","example":"/data/attributes/username"},"parameter":{"type":"string","example":"username"},"header":{"type":"string","example":"Authorization"}}},"links":{"type":"object","properties":{"about":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors/INVALID_INPUT"},"type":{"type":"string","format":"uri","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["id","status","code","title","source","links"]}}},"required":["errors"]}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[401]},"code":{"type":"string","enum":["UNAUTHORIZED"]},"title":{"type":"string","enum":["Unauthorized"]},"details":{"type":"string","example":"You need to be authenticated to access this resource"},"links":{"type":"object","properties":{"about":{"type":"string","example":"https://api.website.com/docs/errors/UNAUTHORIZED"},"type":{"type":"string","example":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number","enum":[404]},"code":{"type":"string","enum":["NOT_FOUND"]},"title":{"type":"string","enum":["404 Not Found"]},"details":{"type":"string","default":"The resource does not exist"},"links":{"type":"object","properties":{"about":{"type":"string","default":"https://api.website.com/docs/errors/NOT_FOUND"},"type":{"type":"string","default":"https://api.website.com/docs/errors"}},"required":["about","type"]}},"required":["status","code","title","details","links"]}}},"required":["errors"]}}}}}}}}}