{"openapi":"3.1.0","info":{"title":"Shrimp Tide — API","version":"1.0.0","description":"Reflective REST mirror of the Shrimp Tide tRPC API. Authenticate with an API key (create one in the app under API keys). See docs/api.md."},"servers":[{"url":"http://tide.shrimpdigital.de/api/v1"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Send your API key as `Authorization: Bearer <key>` (or the `x-api-key` header)."}}},"security":[{"bearerAuth":[]}],"tags":[{"name":"absences"},{"name":"analytics"},{"name":"apiKeys"},{"name":"approvals"},{"name":"auditLog"},{"name":"billablePackets"},{"name":"contracts"},{"name":"customers"},{"name":"daysOff"},{"name":"employees"},{"name":"holidayCalendars"},{"name":"holidays"},{"name":"invitations"},{"name":"members"},{"name":"organization"},{"name":"projects"},{"name":"sso"},{"name":"taskSources"},{"name":"tasks"},{"name":"timeEntries"},{"name":"timer"},{"name":"webhooks"}],"paths":{"/absences/adjustments.create":{"post":{"operationId":"absences.adjustments.create","tags":["absences"],"summary":"absences.adjustments.create","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"employeeId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"year":{"type":"integer","minimum":2000,"maximum":2100},"days":{"type":"number","minimum":-365,"maximum":365},"type":{"type":"string","enum":["carryover","bonus","correction"]},"note":{"type":"string"}},"required":["employeeId","year","days","type"]}}}}}},"/absences/adjustments.delete":{"post":{"operationId":"absences.adjustments.delete","tags":["absences"],"summary":"absences.adjustments.delete","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id"]}}}}}},"/absences/adjustments.list":{"get":{"operationId":"absences.adjustments.list","tags":["absences"],"summary":"absences.adjustments.list","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"employeeId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"year":{"type":"integer","minimum":2000,"maximum":2100}},"required":["employeeId"]}}}}]}},"/absences/balance":{"get":{"operationId":"absences.balance","tags":["absences"],"summary":"absences.balance","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"employeeId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"year":{"type":"integer","minimum":2000,"maximum":2100}},"required":["employeeId","year"]}}}}]}},"/absences/calendar":{"get":{"operationId":"absences.calendar","tags":["absences"],"summary":"absences.calendar","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"to":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["from","to"]}}}}]}},"/absences/createForEmployee":{"post":{"operationId":"absences.createForEmployee","tags":["absences"],"summary":"absences.createForEmployee","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"employeeId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"to":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"type":{"default":"vacation","type":"string","enum":["vacation","sick","holiday","other"]},"note":{"type":"string"}},"required":["employeeId","from","to"]}}}}}},"/absences/deleteForEmployee":{"post":{"operationId":"absences.deleteForEmployee","tags":["absences"],"summary":"absences.deleteForEmployee","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id"]}}}}}},"/absences/listByEmployee":{"get":{"operationId":"absences.listByEmployee","tags":["absences"],"summary":"absences.listByEmployee","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"employeeId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["employeeId"]}}}}]}},"/analytics/series":{"get":{"operationId":"analytics.series","tags":["analytics"],"summary":"analytics.series","description":"Requires an API key with level `read` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{},"to":{},"tz":{"type":"string","maxLength":64,"pattern":"^[A-Za-z0-9_+\\-/]+$"},"bucket":{"type":"string","enum":["day","none"]},"groupBy":{"type":"string","enum":["project","user","customer","billable","status","none"]}},"required":["from","to","tz","bucket","groupBy"]}}}}]}},"/analytics/summary":{"get":{"operationId":"analytics.summary","tags":["analytics"],"summary":"analytics.summary","description":"Requires an API key with level `read` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{},"to":{},"tz":{"type":"string","maxLength":64,"pattern":"^[A-Za-z0-9_+\\-/]+$"}},"required":["from","to","tz"]}}}}]}},"/analytics/userProjectMatrix":{"get":{"operationId":"analytics.userProjectMatrix","tags":["analytics"],"summary":"analytics.userProjectMatrix","description":"Requires an API key with level `read` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{},"to":{},"tz":{"type":"string","maxLength":64,"pattern":"^[A-Za-z0-9_+\\-/]+$"}},"required":["from","to","tz"]}}}}]}},"/apiKeys/create":{"post":{"operationId":"apiKeys.create","tags":["apiKeys"],"summary":"apiKeys.create","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":64},"level":{"type":"string","enum":["read","write","admin"]},"expiresInDays":{"type":"integer","minimum":1,"maximum":365}},"required":["name","level"]}}}}}},"/apiKeys/list":{"get":{"operationId":"apiKeys.list","tags":["apiKeys"],"summary":"apiKeys.list","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","schema":{"type":"string"}}]}},"/apiKeys/revoke":{"post":{"operationId":"apiKeys.revoke","tags":["apiKeys"],"summary":"apiKeys.revoke","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"keyId":{"type":"string"}},"required":["keyId"]}}}}}},"/approvals/decide":{"post":{"operationId":"approvals.decide","tags":["approvals"],"summary":"approvals.decide","description":"Requires an API key with level `write` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"decision":{"type":"string","enum":["approved","rejected"]}},"required":["id","decision"]}}}}}},"/approvals/listPending":{"get":{"operationId":"approvals.listPending","tags":["approvals"],"summary":"approvals.listPending","description":"Requires an API key with level `read` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","schema":{"type":"string"}}]}},"/auditLog/actors":{"get":{"operationId":"auditLog.actors","tags":["auditLog"],"summary":"auditLog.actors","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","schema":{"type":"string"}}]}},"/auditLog/list":{"get":{"operationId":"auditLog.list","tags":["auditLog"],"summary":"auditLog.list","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"resourceType":{"type":"string"},"resourceId":{"type":"string"},"actorId":{"type":"string"},"from":{},"to":{},"limit":{"default":50,"type":"integer","minimum":1,"maximum":100},"cursor":{"anyOf":[{"type":"object","properties":{"createdAt":{},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["createdAt","id"]},{"type":"null"}]}}}}}}]}},"/auditLog/resourceTypes":{"get":{"operationId":"auditLog.resourceTypes","tags":["auditLog"],"summary":"auditLog.resourceTypes","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","schema":{"type":"string"}}]}},"/billablePackets/create":{"post":{"operationId":"billablePackets.create","tags":["billablePackets"],"summary":"billablePackets.create","description":"Requires an API key with level `write` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1},"note":{"type":"string"},"customerId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"createdForUserId":{"type":"string"},"hourlyRateCents":{"type":"integer","minimum":0,"maximum":9007199254740991},"currency":{"type":"string","minLength":1},"grouping":{"type":"string","enum":["none","task","taskDay"]},"roundingMinutes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"filter":{"type":"object","properties":{"from":{},"to":{},"customerId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"userId":{"type":"string"}}}},"required":["name","filter"]}}}}}},"/billablePackets/delete":{"post":{"operationId":"billablePackets.delete","tags":["billablePackets"],"summary":"billablePackets.delete","description":"Requires an API key with level `write` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id"]}}}}}},"/billablePackets/get":{"get":{"operationId":"billablePackets.get","tags":["billablePackets"],"summary":"billablePackets.get","description":"Requires an API key with level `read` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id"]}}}}]}},"/billablePackets/list":{"get":{"operationId":"billablePackets.list","tags":["billablePackets"],"summary":"billablePackets.list","description":"Requires an API key with level `read` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","schema":{"type":"string"}}]}},"/billablePackets/preview":{"get":{"operationId":"billablePackets.preview","tags":["billablePackets"],"summary":"billablePackets.preview","description":"Requires an API key with level `read` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{},"to":{},"customerId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"userId":{"type":"string"}}}}}}]}},"/billablePackets/sendWebhook":{"post":{"operationId":"billablePackets.sendWebhook","tags":["billablePackets"],"summary":"billablePackets.sendWebhook","description":"Requires an API key with level `write` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id"]}}}}}},"/contracts/create":{"post":{"operationId":"contracts.create","tags":["contracts"],"summary":"contracts.create","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"employeeId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["permanent","fixed_term","freelance"]},"startDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"endDate":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"weeklyHours":{"anyOf":[{"type":"number","exclusiveMinimum":0,"maximum":168},{"type":"null"}]},"vacationDaysPerYear":{"type":"integer","minimum":0,"maximum":365},"compensationAmountCents":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"currency":{"anyOf":[{"type":"string","minLength":3,"maxLength":3},{"type":"null"}]},"compensationPeriod":{"anyOf":[{"type":"string","enum":["hourly","daily","monthly","yearly"]},{"type":"null"}]},"probationEndDate":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"note":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["employeeId","type","startDate"]}}}}}},"/contracts/delete":{"post":{"operationId":"contracts.delete","tags":["contracts"],"summary":"contracts.delete","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id"]}}}}}},"/contracts/listByEmployee":{"get":{"operationId":"contracts.listByEmployee","tags":["contracts"],"summary":"contracts.listByEmployee","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"employeeId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["employeeId"]}}}}]}},"/contracts/update":{"post":{"operationId":"contracts.update","tags":["contracts"],"summary":"contracts.update","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["permanent","fixed_term","freelance"]},"startDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"endDate":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"weeklyHours":{"anyOf":[{"type":"number","exclusiveMinimum":0,"maximum":168},{"type":"null"}]},"vacationDaysPerYear":{"type":"integer","minimum":0,"maximum":365},"compensationAmountCents":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"currency":{"anyOf":[{"type":"string","minLength":3,"maxLength":3},{"type":"null"}]},"compensationPeriod":{"anyOf":[{"type":"string","enum":["hourly","daily","monthly","yearly"]},{"type":"null"}]},"probationEndDate":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"note":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id"]}}}}}},"/customers/create":{"post":{"operationId":"customers.create","tags":["customers"],"summary":"customers.create","description":"Requires an API key with level `write` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1},"addressLine1":{"type":"string"},"addressLine2":{"type":"string"},"postalCode":{"type":"string"},"city":{"type":"string"},"country":{"type":"string"},"notes":{"type":"string"}},"required":["name"]}}}}}},"/customers/delete":{"post":{"operationId":"customers.delete","tags":["customers"],"summary":"customers.delete","description":"Requires an API key with level `write` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id"]}}}}}},"/customers/list":{"get":{"operationId":"customers.list","tags":["customers"],"summary":"customers.list","description":"Requires an API key with level `read` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","schema":{"type":"string"}}]}},"/customers/mine":{"get":{"operationId":"customers.mine","tags":["customers"],"summary":"customers.mine","description":"Requires an API key with level `read` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","schema":{"type":"string"}}]}},"/customers/update":{"post":{"operationId":"customers.update","tags":["customers"],"summary":"customers.update","description":"Requires an API key with level `write` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1},"addressLine1":{"type":"string"},"addressLine2":{"type":"string"},"postalCode":{"type":"string"},"city":{"type":"string"},"country":{"type":"string"},"notes":{"type":"string"}},"required":["id"]}}}}}},"/daysOff/create":{"post":{"operationId":"daysOff.create","tags":["daysOff"],"summary":"daysOff.create","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"to":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"type":{"default":"vacation","type":"string","enum":["vacation","sick","holiday","other"]},"note":{"type":"string"}},"required":["from","to"]}}}}}},"/daysOff/delete":{"post":{"operationId":"daysOff.delete","tags":["daysOff"],"summary":"daysOff.delete","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id"]}}}}}},"/daysOff/list":{"get":{"operationId":"daysOff.list","tags":["daysOff"],"summary":"daysOff.list","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"to":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}}}}}}]}},"/employees/byId":{"get":{"operationId":"employees.byId","tags":["employees"],"summary":"employees.byId","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id"]}}}}]}},"/employees/create":{"post":{"operationId":"employees.create","tags":["employees"],"summary":"employees.create","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"firstName":{"type":"string","minLength":1},"lastName":{"type":"string","minLength":1},"email":{"anyOf":[{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},{"type":"null"}]},"employmentType":{"type":"string","enum":["employee","freelancer"]},"position":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string","enum":["active","inactive"]},"startDate":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"endDate":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"birthday":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"phone":{"anyOf":[{"type":"string"},{"type":"null"}]},"addressLine1":{"anyOf":[{"type":"string"},{"type":"null"}]},"addressLine2":{"anyOf":[{"type":"string"},{"type":"null"}]},"postalCode":{"anyOf":[{"type":"string"},{"type":"null"}]},"city":{"anyOf":[{"type":"string"},{"type":"null"}]},"country":{"anyOf":[{"type":"string"},{"type":"null"}]},"holidayCalendarId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"emergencyContactName":{"anyOf":[{"type":"string"},{"type":"null"}]},"emergencyContactPhone":{"anyOf":[{"type":"string"},{"type":"null"}]},"iban":{"anyOf":[{"type":"string"},{"type":"null"}]},"taxId":{"anyOf":[{"type":"string"},{"type":"null"}]},"note":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["firstName","lastName","employmentType"]}}}}}},"/employees/delete":{"post":{"operationId":"employees.delete","tags":["employees"],"summary":"employees.delete","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id"]}}}}}},"/employees/invite":{"post":{"operationId":"employees.invite","tags":["employees"],"summary":"employees.invite","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"employeeId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"role":{"default":"member","type":"string","enum":["member","manager"]}},"required":["employeeId"]}}}}}},"/employees/linkUser":{"post":{"operationId":"employees.linkUser","tags":["employees"],"summary":"employees.linkUser","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"employeeId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"userId":{"type":"string"}},"required":["employeeId","userId"]}}}}}},"/employees/list":{"get":{"operationId":"employees.list","tags":["employees"],"summary":"employees.list","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","schema":{"type":"string"}}]}},"/employees/myProfile":{"get":{"operationId":"employees.myProfile","tags":["employees"],"summary":"employees.myProfile","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","schema":{"type":"string"}}]}},"/employees/unlinkUser":{"post":{"operationId":"employees.unlinkUser","tags":["employees"],"summary":"employees.unlinkUser","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"employeeId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["employeeId"]}}}}}},"/employees/update":{"post":{"operationId":"employees.update","tags":["employees"],"summary":"employees.update","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"firstName":{"type":"string","minLength":1},"lastName":{"type":"string","minLength":1},"email":{"anyOf":[{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},{"type":"null"}]},"employmentType":{"type":"string","enum":["employee","freelancer"]},"position":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string","enum":["active","inactive"]},"startDate":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"endDate":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"birthday":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"phone":{"anyOf":[{"type":"string"},{"type":"null"}]},"addressLine1":{"anyOf":[{"type":"string"},{"type":"null"}]},"addressLine2":{"anyOf":[{"type":"string"},{"type":"null"}]},"postalCode":{"anyOf":[{"type":"string"},{"type":"null"}]},"city":{"anyOf":[{"type":"string"},{"type":"null"}]},"country":{"anyOf":[{"type":"string"},{"type":"null"}]},"holidayCalendarId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"emergencyContactName":{"anyOf":[{"type":"string"},{"type":"null"}]},"emergencyContactPhone":{"anyOf":[{"type":"string"},{"type":"null"}]},"iban":{"anyOf":[{"type":"string"},{"type":"null"}]},"taxId":{"anyOf":[{"type":"string"},{"type":"null"}]},"note":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id"]}}}}}},"/holidayCalendars/addHoliday":{"post":{"operationId":"holidayCalendars.addHoliday","tags":["holidayCalendars"],"summary":"holidayCalendars.addHoliday","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"calendarId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"name":{"type":"string","minLength":1}},"required":["calendarId","date","name"]}}}}}},"/holidayCalendars/availableCountries":{"get":{"operationId":"holidayCalendars.availableCountries","tags":["holidayCalendars"],"summary":"holidayCalendars.availableCountries","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","schema":{"type":"string"}}]}},"/holidayCalendars/availableRegions":{"get":{"operationId":"holidayCalendars.availableRegions","tags":["holidayCalendars"],"summary":"holidayCalendars.availableRegions","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"countryCode":{"type":"string","pattern":"^[A-Z]{2}$"}},"required":["countryCode"]}}}}]}},"/holidayCalendars/createCustom":{"post":{"operationId":"holidayCalendars.createCustom","tags":["holidayCalendars"],"summary":"holidayCalendars.createCustom","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1}},"required":["name"]}}}}}},"/holidayCalendars/createFromGermanRegion":{"post":{"operationId":"holidayCalendars.createFromGermanRegion","tags":["holidayCalendars"],"summary":"holidayCalendars.createFromGermanRegion","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"region":{"type":"string","enum":["BW","BY","BE","BB","HB","HH","HE","MV","NI","NW","RP","SL","SN","ST","SH","TH"]},"name":{"type":"string","minLength":1}},"required":["region"]}}}}}},"/holidayCalendars/delete":{"post":{"operationId":"holidayCalendars.delete","tags":["holidayCalendars"],"summary":"holidayCalendars.delete","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id"]}}}}}},"/holidayCalendars/holidays":{"get":{"operationId":"holidayCalendars.holidays","tags":["holidayCalendars"],"summary":"holidayCalendars.holidays","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"calendarId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"year":{"type":"integer","minimum":2000,"maximum":2100}},"required":["calendarId","year"]}}}}]}},"/holidayCalendars/importFromNager":{"post":{"operationId":"holidayCalendars.importFromNager","tags":["holidayCalendars"],"summary":"holidayCalendars.importFromNager","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"countryCode":{"type":"string","pattern":"^[A-Z]{2}$"},"region":{"anyOf":[{"type":"string","pattern":"^[A-Z]{2}-[A-Z0-9]{1,5}$"},{"type":"null"}]},"name":{"type":"string","minLength":1}},"required":["countryCode","name"]}}}}}},"/holidayCalendars/list":{"get":{"operationId":"holidayCalendars.list","tags":["holidayCalendars"],"summary":"holidayCalendars.list","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","schema":{"type":"string"}}]}},"/holidayCalendars/refresh":{"post":{"operationId":"holidayCalendars.refresh","tags":["holidayCalendars"],"summary":"holidayCalendars.refresh","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"throughYear":{"type":"integer","minimum":2000,"maximum":2100}},"required":["id"]}}}}}},"/holidayCalendars/removeHoliday":{"post":{"operationId":"holidayCalendars.removeHoliday","tags":["holidayCalendars"],"summary":"holidayCalendars.removeHoliday","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id"]}}}}}},"/holidayCalendars/rename":{"post":{"operationId":"holidayCalendars.rename","tags":["holidayCalendars"],"summary":"holidayCalendars.rename","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1}},"required":["id","name"]}}}}}},"/holidayCalendars/setDefault":{"post":{"operationId":"holidayCalendars.setDefault","tags":["holidayCalendars"],"summary":"holidayCalendars.setDefault","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id"]}}}}}},"/holidays/list":{"get":{"operationId":"holidays.list","tags":["holidays"],"summary":"holidays.list","description":"Requires an API key with level `read` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"year":{"type":"integer","minimum":2000,"maximum":2100}},"required":["year"]}}}}]}},"/invitations/cancel":{"post":{"operationId":"invitations.cancel","tags":["invitations"],"summary":"invitations.cancel","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"invitationId":{"type":"string"}},"required":["invitationId"]}}}}}},"/invitations/invite":{"post":{"operationId":"invitations.invite","tags":["invitations"],"summary":"invitations.invite","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"role":{"type":"string","enum":["owner","manager","member"]}},"required":["email","role"]}}}}}},"/invitations/listForOrg":{"get":{"operationId":"invitations.listForOrg","tags":["invitations"],"summary":"invitations.listForOrg","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","schema":{"type":"string"}}]}},"/invitations/listMine":{"get":{"operationId":"invitations.listMine","tags":["invitations"],"summary":"invitations.listMine","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","schema":{"type":"string"}}]}},"/members/list":{"get":{"operationId":"members.list","tags":["members"],"summary":"members.list","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","schema":{"type":"string"}}]}},"/members/me":{"get":{"operationId":"members.me","tags":["members"],"summary":"members.me","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","schema":{"type":"string"}}]}},"/members/remove":{"post":{"operationId":"members.remove","tags":["members"],"summary":"members.remove","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"userId":{"type":"string"}},"required":["userId"]}}}}}},"/members/setRequiresApproval":{"post":{"operationId":"members.setRequiresApproval","tags":["members"],"summary":"members.setRequiresApproval","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"userId":{"type":"string"},"requiresApproval":{"type":"boolean"}},"required":["userId","requiresApproval"]}}}}}},"/members/setRole":{"post":{"operationId":"members.setRole","tags":["members"],"summary":"members.setRole","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"userId":{"type":"string"},"role":{"type":"string","enum":["owner","manager","member"]}},"required":["userId","role"]}}}}}},"/organization/delete":{"post":{"operationId":"organization.delete","tags":["organization"],"summary":"organization.delete","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":false}}},"/organization/get":{"get":{"operationId":"organization.get","tags":["organization"],"summary":"organization.get","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","schema":{"type":"string"}}]}},"/organization/update":{"post":{"operationId":"organization.update","tags":["organization"],"summary":"organization.update","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1},"logo":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"defaultRequiresApproval":{"type":"boolean"},"timezone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}]},"language":{"anyOf":[{"type":"string","enum":["en","de"]},{"type":"null"}]},"auditRetentionDays":{"anyOf":[{"type":"integer","minimum":30,"maximum":3650},{"type":"null"}]}}}}}}}},"/projects/assign":{"post":{"operationId":"projects.assign","tags":["projects"],"summary":"projects.assign","description":"Requires an API key with level `write` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"userId":{"type":"string"}},"required":["projectId","userId"]}}}}}},"/projects/assignable":{"get":{"operationId":"projects.assignable","tags":["projects"],"summary":"projects.assignable","description":"Requires an API key with level `read` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","schema":{"type":"string"}}]}},"/projects/create":{"post":{"operationId":"projects.create","tags":["projects"],"summary":"projects.create","description":"Requires an API key with level `write` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1},"description":{"type":"string"},"color":{"anyOf":[{"type":"string"},{"type":"null"}]},"metadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"archived":{"type":"boolean"}},"required":["customerId","name"]}}}}}},"/projects/delete":{"post":{"operationId":"projects.delete","tags":["projects"],"summary":"projects.delete","description":"Requires an API key with level `write` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id"]}}}}}},"/projects/list":{"get":{"operationId":"projects.list","tags":["projects"],"summary":"projects.list","description":"Requires an API key with level `read` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","schema":{"type":"string"}}]}},"/projects/listAssignments":{"get":{"operationId":"projects.listAssignments","tags":["projects"],"summary":"projects.listAssignments","description":"Requires an API key with level `read` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["projectId"]}}}}]}},"/projects/mine":{"get":{"operationId":"projects.mine","tags":["projects"],"summary":"projects.mine","description":"Requires an API key with level `read` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","schema":{"type":"string"}}]}},"/projects/unassign":{"post":{"operationId":"projects.unassign","tags":["projects"],"summary":"projects.unassign","description":"Requires an API key with level `write` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"userId":{"type":"string"}},"required":["projectId","userId"]}}}}}},"/projects/update":{"post":{"operationId":"projects.update","tags":["projects"],"summary":"projects.update","description":"Requires an API key with level `write` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"customerId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1},"description":{"type":"string"},"color":{"anyOf":[{"type":"string"},{"type":"null"}]},"metadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"archived":{"type":"boolean"}},"required":["id"]}}}}}},"/sso/create":{"post":{"operationId":"sso.create","tags":["sso"],"summary":"sso.create","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"protocol":{"type":"string","const":"oidc"},"providerId":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9-]+$"},"domain":{"type":"string","minLength":1,"maxLength":253},"issuer":{"type":"string","format":"uri"},"clientId":{"type":"string","minLength":1},"clientSecret":{"type":"string","minLength":1},"mapping":{"type":"object","properties":{"id":{"type":"string","minLength":1},"email":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"emailVerified":{"type":"string","minLength":1}},"required":["id","email","name"]}},"required":["protocol","providerId","domain","issuer","clientId","clientSecret"]},{"type":"object","properties":{"protocol":{"type":"string","const":"saml"},"providerId":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9-]+$"},"domain":{"type":"string","minLength":1,"maxLength":253},"entryPoint":{"type":"string","format":"uri"},"cert":{"type":"string","minLength":1},"idpEntityId":{"type":"string","minLength":1},"mapping":{"type":"object","properties":{"id":{"type":"string","minLength":1},"email":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"emailVerified":{"type":"string","minLength":1}},"required":["id","email","name"]}},"required":["protocol","providerId","domain","entryPoint","cert"]}]}}}}}},"/sso/delete":{"post":{"operationId":"sso.delete","tags":["sso"],"summary":"sso.delete","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"}},"required":["id"]}}}}}},"/sso/list":{"get":{"operationId":"sso.list","tags":["sso"],"summary":"sso.list","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","schema":{"type":"string"}}]}},"/sso/requestDomainVerification":{"post":{"operationId":"sso.requestDomainVerification","tags":["sso"],"summary":"sso.requestDomainVerification","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"}},"required":["id"]}}}}}},"/sso/setEnabled":{"post":{"operationId":"sso.setEnabled","tags":["sso"],"summary":"sso.setEnabled","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"organizationId":{"type":"string"},"enabled":{"type":"boolean"}},"required":["organizationId","enabled"]}}}}}},"/sso/verifyDomain":{"post":{"operationId":"sso.verifyDomain","tags":["sso"],"summary":"sso.verifyDomain","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"}},"required":["id"]}}}}}},"/tasks/create":{"post":{"operationId":"tasks.create","tags":["tasks"],"summary":"tasks.create","description":"Requires an API key with level `write` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1},"description":{"type":"string"},"billable":{"type":"boolean"},"archived":{"type":"boolean"}},"required":["projectId","name"]}}}}}},"/tasks/delete":{"post":{"operationId":"tasks.delete","tags":["tasks"],"summary":"tasks.delete","description":"Requires an API key with level `write` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id"]}}}}}},"/tasks/list":{"get":{"operationId":"tasks.list","tags":["tasks"],"summary":"tasks.list","description":"Requires an API key with level `read` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["projectId"]}}}}]}},"/tasks/update":{"post":{"operationId":"tasks.update","tags":["tasks"],"summary":"tasks.update","description":"Requires an API key with level `write` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1},"description":{"type":"string"},"billable":{"type":"boolean"},"archived":{"type":"boolean"}},"required":["id"]}}}}}},"/taskSources/create":{"post":{"operationId":"taskSources.create","tags":["taskSources"],"summary":"taskSources.create","description":"Requires an API key with level `write` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"github"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1},"owner":{"type":"string","minLength":1},"repo":{"type":"string","minLength":1},"token":{"type":"string","minLength":1}},"required":["type","projectId","name","owner","repo","token"]},{"type":"object","properties":{"type":{"type":"string","const":"http"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1},"url":{"type":"string","format":"uri"},"headers":{"default":[],"type":"array","items":{"type":"object","properties":{"key":{"type":"string","minLength":1},"value":{"type":"string"}},"required":["key","value"]}},"mapping":{"type":"object","properties":{"id":{"type":"string","minLength":1},"title":{"type":"string","minLength":1},"state":{"type":"string","minLength":1},"url":{"type":"string","minLength":1},"assignees":{"type":"string"}},"required":["id","title","state","url"]}},"required":["type","projectId","name","url","mapping"]},{"type":"object","properties":{"type":{"type":"string","const":"jira"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1},"site":{"type":"string","minLength":1},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"token":{"type":"string","minLength":1},"projectKey":{"type":"string"},"jql":{"type":"string"}},"required":["type","projectId","name","site","email","token"]}]}}}}}},"/taskSources/delete":{"post":{"operationId":"taskSources.delete","tags":["taskSources"],"summary":"taskSources.delete","description":"Requires an API key with level `write` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id"]}}}}}},"/taskSources/fetchItems":{"get":{"operationId":"taskSources.fetchItems","tags":["taskSources"],"summary":"taskSources.fetchItems","description":"Requires an API key with level `read` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"sourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"search":{"type":"string"},"state":{"default":"all","type":"string","enum":["all","open","closed"]}},"required":["sourceId"]}}}}]}},"/taskSources/list":{"get":{"operationId":"taskSources.list","tags":["taskSources"],"summary":"taskSources.list","description":"Requires an API key with level `read` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["projectId"]}}}}]}},"/taskSources/materialize":{"post":{"operationId":"taskSources.materialize","tags":["taskSources"],"summary":"taskSources.materialize","description":"Requires an API key with level `write` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"sourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"externalId":{"type":"string","minLength":1},"title":{"type":"string","minLength":1},"url":{"type":"string"}},"required":["sourceId","externalId","title"]}}}}}},"/taskSources/update":{"post":{"operationId":"taskSources.update","tags":["taskSources"],"summary":"taskSources.update","description":"Requires an API key with level `write` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"github"},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1},"owner":{"type":"string","minLength":1},"repo":{"type":"string","minLength":1},"token":{"type":"string"}},"required":["type","id","name","owner","repo"]},{"type":"object","properties":{"type":{"type":"string","const":"http"},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1},"url":{"type":"string","format":"uri"},"headers":{"default":[],"type":"array","items":{"type":"object","properties":{"key":{"type":"string","minLength":1},"value":{"type":"string"}},"required":["key","value"]}},"mapping":{"type":"object","properties":{"id":{"type":"string","minLength":1},"title":{"type":"string","minLength":1},"state":{"type":"string","minLength":1},"url":{"type":"string","minLength":1},"assignees":{"type":"string"}},"required":["id","title","state","url"]}},"required":["type","id","name","url","mapping"]},{"type":"object","properties":{"type":{"type":"string","const":"jira"},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1},"site":{"type":"string","minLength":1},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"token":{"type":"string"},"projectKey":{"type":"string"},"jql":{"type":"string"}},"required":["type","id","name","site","email"]}]}}}}}},"/timeEntries/create":{"post":{"operationId":"timeEntries.create","tags":["timeEntries"],"summary":"timeEntries.create","description":"Requires an API key with level `write` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"taskId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"description":{"type":"string"},"startedAt":{},"endedAt":{},"billable":{"type":"boolean"}},"required":["projectId","taskId","startedAt","endedAt"]}}}}}},"/timeEntries/delete":{"post":{"operationId":"timeEntries.delete","tags":["timeEntries"],"summary":"timeEntries.delete","description":"Requires an API key with level `write` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id"]}}}}}},"/timeEntries/list":{"get":{"operationId":"timeEntries.list","tags":["timeEntries"],"summary":"timeEntries.list","description":"Requires an API key with level `read` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{},"to":{},"userId":{"type":"string"},"customerId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"taskIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"billable":{"type":"boolean"},"status":{"type":"string","enum":["open","pending","approved","rejected","packaged"]}}}}}}]}},"/timeEntries/slice":{"post":{"operationId":"timeEntries.slice","tags":["timeEntries"],"summary":"timeEntries.slice","description":"Requires an API key with level `write` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"slices":{"minItems":2,"maxItems":50,"type":"array","items":{"type":"object","properties":{"startedAt":{},"endedAt":{},"taskId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["startedAt","endedAt","taskId"]}}},"required":["id","slices"]}}}}}},"/timeEntries/update":{"post":{"operationId":"timeEntries.update","tags":["timeEntries"],"summary":"timeEntries.update","description":"Requires an API key with level `write` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"taskId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"description":{"type":"string"},"startedAt":{},"endedAt":{},"billable":{"type":"boolean"}},"required":["id"]}}}}}},"/timer/getActive":{"get":{"operationId":"timer.getActive","tags":["timer"],"summary":"timer.getActive","description":"Requires an API key with level `read` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","schema":{"type":"string"}}]}},"/timer/start":{"post":{"operationId":"timer.start","tags":["timer"],"summary":"timer.start","description":"Requires an API key with level `write` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"taskId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"description":{"type":"string"}},"required":["projectId","taskId"]}}}}}},"/timer/stop":{"post":{"operationId":"timer.stop","tags":["timer"],"summary":"timer.stop","description":"Requires an API key with level `write` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":false}}},"/webhooks/create":{"post":{"operationId":"webhooks.create","tags":["webhooks"],"summary":"webhooks.create","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"url":{"type":"string","format":"uri"},"events":{"default":[],"type":"array","items":{"type":"string","enum":["customer.created","customer.updated","customer.deleted","project.created","project.updated","project.deleted","project.member_assigned","project.member_unassigned","task.created","task.updated","task.deleted","time_entry.created","time_entry.updated","time_entry.deleted","time_entry.approved","time_entry.rejected","timer.started","timer.stopped","day_off.created","day_off.deleted","member.role_updated","member.requires_approval_updated","member.removed","organization.updated","billable_packet.created","billable_packet.sent","billable_packet.deleted","employee.created","employee.updated","employee.deleted","contract.created","contract.updated","contract.deleted","vacation_adjustment.created","vacation_adjustment.deleted"]}},"description":{"type":"string"}},"required":["url"]}}}}}},"/webhooks/delete":{"post":{"operationId":"webhooks.delete","tags":["webhooks"],"summary":"webhooks.delete","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id"]}}}}}},"/webhooks/events":{"get":{"operationId":"webhooks.events","tags":["webhooks"],"summary":"webhooks.events","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","schema":{"type":"string"}}]}},"/webhooks/list":{"get":{"operationId":"webhooks.list","tags":["webhooks"],"summary":"webhooks.list","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","schema":{"type":"string"}}]}},"/webhooks/listDeliveries":{"get":{"operationId":"webhooks.listDeliveries","tags":["webhooks"],"summary":"webhooks.listDeliveries","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"parameters":[{"name":"input","in":"query","required":false,"description":"URL-encoded JSON procedure input.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"endpointId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"limit":{"default":25,"type":"integer","minimum":1,"maximum":100}}}}}}]}},"/webhooks/rotateSecret":{"post":{"operationId":"webhooks.rotateSecret","tags":["webhooks"],"summary":"webhooks.rotateSecret","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id"]}}}}}},"/webhooks/test":{"post":{"operationId":"webhooks.test","tags":["webhooks"],"summary":"webhooks.test","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id"]}}}}}},"/webhooks/update":{"post":{"operationId":"webhooks.update","tags":["webhooks"],"summary":"webhooks.update","description":"Requires an API key with level `admin` or higher.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{}}}}}},"401":{"description":"Missing or invalid API key"},"403":{"description":"API key level too low for this procedure"},"429":{"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"url":{"type":"string","format":"uri"},"events":{"type":"array","items":{"type":"string","enum":["customer.created","customer.updated","customer.deleted","project.created","project.updated","project.deleted","project.member_assigned","project.member_unassigned","task.created","task.updated","task.deleted","time_entry.created","time_entry.updated","time_entry.deleted","time_entry.approved","time_entry.rejected","timer.started","timer.stopped","day_off.created","day_off.deleted","member.role_updated","member.requires_approval_updated","member.removed","organization.updated","billable_packet.created","billable_packet.sent","billable_packet.deleted","employee.created","employee.updated","employee.deleted","contract.created","contract.updated","contract.deleted","vacation_adjustment.created","vacation_adjustment.deleted"]}},"enabled":{"type":"boolean"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id"]}}}}}}}}