{"openapi":"3.1.0","info":{"title":"Melonly API","description":"The Melonly public API","license":{"name":""},"version":"2.0.0"},"servers":[{"url":"/","description":"Current deployment"}],"paths":{"/api/v1/admin/server/{serverId}/rate-limit":{"get":{"tags":["admin"],"operationId":"rate_limit_status","parameters":[{"name":"serverId","in":"path","description":"Server ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Rate limit status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitStatusDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/applications":{"get":{"tags":["applications"],"operationId":"list_applications","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated applications","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageApplicationDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/applications/user/{userId}/responses":{"get":{"tags":["applications"],"operationId":"get_user_application_responses","parameters":[{"name":"userId","in":"path","description":"User ID","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated user application responses","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageApplicationResponseDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/applications/{applicationId}":{"get":{"tags":["applications"],"operationId":"get_application","parameters":[{"name":"applicationId","in":"path","description":"Application ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Application","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/applications/{applicationId}/responses":{"get":{"tags":["applications"],"operationId":"get_application_responses","parameters":[{"name":"applicationId","in":"path","description":"Application ID","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated application responses","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageApplicationResponseDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/audit-logs":{"get":{"tags":["audit-logs"],"operationId":"list_audit_logs","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated audit logs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageAuditLogEventDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/cad/calls":{"get":{"tags":["cad"],"operationId":"list_cad_calls","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated CAD calls","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageCadCallDoc"}}}},"404":{"description":"CAD not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/cad/calls/{callId}":{"get":{"tags":["cad"],"operationId":"get_cad_call","parameters":[{"name":"callId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CAD call","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CadCallDoc"}}}},"404":{"description":"CAD or call not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/cad/calls/{callId}/notes":{"get":{"tags":["cad"],"operationId":"list_cad_call_notes","parameters":[{"name":"callId","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated CAD call notes","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageCadCallNoteDoc"}}}},"404":{"description":"CAD not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/cad/calls/{callId}/notes/{noteId}":{"get":{"tags":["cad"],"operationId":"get_cad_call_note","parameters":[{"name":"callId","in":"path","required":true,"schema":{"type":"string"}},{"name":"noteId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CAD call note","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CadCallNoteDoc"}}}},"404":{"description":"CAD or call note not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/cad/court-hearings":{"get":{"tags":["cad"],"operationId":"list_cad_court_hearings","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated CAD court hearings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageCadCourtHearingDoc"}}}},"404":{"description":"CAD not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/cad/court-hearings/{hearingId}":{"get":{"tags":["cad"],"operationId":"get_cad_court_hearing","parameters":[{"name":"hearingId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CAD court hearing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CadCourtHearingDoc"}}}},"404":{"description":"CAD or hearing not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/cad/records":{"get":{"tags":["cad"],"operationId":"list_cad_records","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated CAD records","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageCadRecordDoc"}}}},"404":{"description":"CAD not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/cad/records/{recordId}":{"get":{"tags":["cad"],"operationId":"get_cad_record","parameters":[{"name":"recordId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CAD record","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CadRecordDoc"}}}},"404":{"description":"CAD or record not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/cad/unit-groups":{"get":{"tags":["cad"],"operationId":"list_cad_unit_groups","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated CAD unit groups","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageCadUnitGroupDoc"}}}},"404":{"description":"CAD not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/cad/unit-groups/{groupId}":{"get":{"tags":["cad"],"operationId":"get_cad_unit_group","parameters":[{"name":"groupId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"CAD unit group","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CadUnitGroupDoc"}}}},"404":{"description":"CAD or unit group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/cad/units":{"get":{"tags":["cad"],"operationId":"list_cad_units","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated CAD units","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageCadUnitDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}},"404":{"description":"CAD not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/cad/units/{unitId}":{"get":{"tags":["cad"],"operationId":"get_cad_unit","parameters":[{"name":"unitId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"CAD unit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CadUnitDoc"}}}},"404":{"description":"CAD or unit not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/departments":{"get":{"tags":["departments"],"operationId":"list_departments","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated departments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageDepartmentDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/departments/{departmentId}":{"get":{"tags":["departments"],"operationId":"get_department","parameters":[{"name":"departmentId","in":"path","description":"Department ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Department","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepartmentDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}},"404":{"description":"Department not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/departments/{departmentId}/audit-logs":{"get":{"tags":["department-audit-logs"],"operationId":"list_department_audit_logs","parameters":[{"name":"departmentId","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated department audit logs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageAuditLogEventDoc"}}}},"404":{"description":"Department not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/departments/{departmentId}/join-requests":{"get":{"tags":["department-join-requests"],"operationId":"list_department_join_requests","parameters":[{"name":"departmentId","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated department join requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageJoinRequestDoc"}}}},"404":{"description":"Department not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/departments/{departmentId}/join-requests/{userId}":{"get":{"tags":["department-join-requests"],"operationId":"get_department_join_request","parameters":[{"name":"departmentId","in":"path","required":true,"schema":{"type":"string"}},{"name":"userId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Department join request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinRequestDoc"}}}},"404":{"description":"Department or join request not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/departments/{departmentId}/loas":{"get":{"tags":["department-loas"],"operationId":"list_department_loas","parameters":[{"name":"departmentId","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated department LOAs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageLoaDoc"}}}},"404":{"description":"Department not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/departments/{departmentId}/loas/user/{memberId}":{"get":{"tags":["department-loas"],"operationId":"get_department_user_loas","parameters":[{"name":"departmentId","in":"path","required":true,"schema":{"type":"string"}},{"name":"memberId","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated department member LOAs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageLoaDoc"}}}},"404":{"description":"Department not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/departments/{departmentId}/loas/{loaId}":{"get":{"tags":["department-loas"],"operationId":"get_department_loa","parameters":[{"name":"departmentId","in":"path","required":true,"schema":{"type":"string"}},{"name":"loaId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Department LOA","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoaDoc"}}}},"404":{"description":"Department or LOA not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/departments/{departmentId}/members":{"get":{"tags":["department-members"],"operationId":"list_department_members","parameters":[{"name":"departmentId","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated department members","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageDepartmentMemberDoc"}}}},"404":{"description":"Department not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/departments/{departmentId}/members/discord/{discordId}":{"get":{"tags":["department-members"],"operationId":"get_department_member_by_discord","parameters":[{"name":"departmentId","in":"path","required":true,"schema":{"type":"string"}},{"name":"discordId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Department member","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepartmentMemberDoc"}}}},"404":{"description":"Department or member not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/departments/{departmentId}/members/{memberId}":{"get":{"tags":["department-members"],"operationId":"get_department_member","parameters":[{"name":"departmentId","in":"path","required":true,"schema":{"type":"string"}},{"name":"memberId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Department member","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepartmentMemberDoc"}}}},"404":{"description":"Department or member not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/departments/{departmentId}/members/{memberId}/discord":{"get":{"tags":["department-members"],"operationId":"get_department_discord_by_member","parameters":[{"name":"departmentId","in":"path","required":true,"schema":{"type":"string"}},{"name":"memberId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Discord ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordIdResponseDoc"}}}},"404":{"description":"Department, member, or Discord ID not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/departments/{departmentId}/ranks":{"get":{"tags":["department-ranks"],"operationId":"list_department_ranks","parameters":[{"name":"departmentId","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated department ranks","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageDepartmentRankDoc"}}}},"404":{"description":"Department not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/departments/{departmentId}/ranks/{rankId}":{"get":{"tags":["department-ranks"],"operationId":"get_department_rank","parameters":[{"name":"departmentId","in":"path","required":true,"schema":{"type":"string"}},{"name":"rankId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Department rank","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepartmentRankDoc"}}}},"404":{"description":"Department or rank not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/departments/{departmentId}/shifts":{"get":{"tags":["department-shifts"],"operationId":"list_department_shifts","parameters":[{"name":"departmentId","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated department shifts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageShiftDoc"}}}},"404":{"description":"Department not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/departments/{departmentId}/shifts/user/{memberId}":{"get":{"tags":["department-shifts"],"operationId":"get_department_member_shifts","parameters":[{"name":"departmentId","in":"path","required":true,"schema":{"type":"string"}},{"name":"memberId","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated department member shifts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageShiftDoc"}}}},"404":{"description":"Department not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/departments/{departmentId}/shifts/{shiftId}":{"get":{"tags":["department-shifts"],"operationId":"get_department_shift","parameters":[{"name":"departmentId","in":"path","required":true,"schema":{"type":"string"}},{"name":"shiftId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Department shift","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShiftDoc"}}}},"404":{"description":"Department or shift not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/info":{"get":{"tags":["server"],"operationId":"server_info","responses":{"200":{"description":"Server information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}},"404":{"description":"Server not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/join-requests":{"get":{"tags":["join-requests"],"operationId":"list_join_requests","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated join requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageJoinRequestDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/join-requests/{userId}":{"get":{"tags":["join-requests"],"operationId":"get_join_request","parameters":[{"name":"userId","in":"path","description":"User ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Join request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinRequestDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}},"404":{"description":"Join request not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/loas":{"get":{"tags":["loas"],"operationId":"list_loas","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated LOAs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageLoaDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/loas/user/{memberId}":{"get":{"tags":["loas"],"operationId":"get_user_loas","parameters":[{"name":"memberId","in":"path","description":"Member ID","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated user LOAs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageLoaDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/loas/{loaId}":{"get":{"tags":["loas"],"operationId":"get_loa","parameters":[{"name":"loaId","in":"path","description":"LOA ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"LOA","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoaDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}},"404":{"description":"LOA not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/logs":{"get":{"tags":["logs"],"operationId":"list_logs","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated logs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageLogDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/logs/staff/{staffId}":{"get":{"tags":["logs"],"operationId":"get_staff_logs","parameters":[{"name":"staffId","in":"path","description":"Staff member ID","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated staff logs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageLogDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/logs/user/{username}":{"get":{"tags":["logs"],"operationId":"get_user_logs","parameters":[{"name":"username","in":"path","description":"Username","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated user logs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageLogDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/logs/{logId}":{"get":{"tags":["logs"],"operationId":"get_log","parameters":[{"name":"logId","in":"path","description":"Log ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Log","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}},"404":{"description":"Log not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/members":{"get":{"tags":["members"],"operationId":"list_members","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated members","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageMemberDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/members/discord/{discordId}":{"get":{"tags":["members"],"operationId":"get_member_by_discord","parameters":[{"name":"discordId","in":"path","description":"Discord ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Member","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemberDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}},"404":{"description":"Member not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/members/{memberId}":{"get":{"tags":["members"],"operationId":"get_member","parameters":[{"name":"memberId","in":"path","description":"Member ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Member","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemberDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}},"404":{"description":"Member not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/members/{memberId}/discord":{"get":{"tags":["members"],"operationId":"get_discord_by_member","parameters":[{"name":"memberId","in":"path","description":"Member ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Discord ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordIdResponseDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}},"404":{"description":"Discord ID not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/roles":{"get":{"tags":["roles"],"operationId":"list_roles","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated roles","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageRoleDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/roles/{roleId}":{"get":{"tags":["roles"],"operationId":"get_role","parameters":[{"name":"roleId","in":"path","description":"Role ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Role","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}},"404":{"description":"Role not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/shifts":{"get":{"tags":["shifts"],"operationId":"list_shifts","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated shifts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageShiftDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/shifts/user/{memberId}":{"get":{"tags":["shifts"],"operationId":"get_member_shifts","parameters":[{"name":"memberId","in":"path","description":"Member ID","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"orderBy","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated member shifts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageShiftDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/server/shifts/{shiftId}":{"get":{"tags":["shifts"],"operationId":"get_shift","parameters":[{"name":"shiftId","in":"path","description":"Shift ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Shift","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShiftDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}},"404":{"description":"Shift not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/tokens":{"get":{"tags":["tokens"],"operationId":"list_tokens","responses":{"200":{"description":"Server tokens","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenListResponseDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]},"post":{"tags":["tokens"],"operationId":"create_token","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTokenRequestDoc"}}},"required":true},"responses":{"201":{"description":"Token created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenCreateResponseDoc"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/tokens/current":{"get":{"tags":["tokens"],"operationId":"current_token","responses":{"200":{"description":"Current token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenInfoResponseDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/tokens/{tokenId}":{"delete":{"tags":["tokens"],"operationId":"deactivate_token","parameters":[{"name":"tokenId","in":"path","description":"Token ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Token deactivated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenDeactivateResponseDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}},"404":{"description":"Token not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/verification/discord/{discordId}/roblox":{"get":{"tags":["verification"],"operationId":"roblox_by_discord","parameters":[{"name":"discordId","in":"path","description":"Discord ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Roblox connection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RobloxConnectionDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}},"404":{"description":"Roblox connection not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/api/v1/verification/roblox/{robloxId}/discord":{"get":{"tags":["verification"],"operationId":"discord_by_roblox","parameters":[{"name":"robloxId","in":"path","description":"Roblox ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Discord account","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountDoc"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}},"404":{"description":"Discord account not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponseDoc"}}}}},"security":[{"bearer_auth":[]}]}},"/health":{"get":{"tags":["health"],"operationId":"health","responses":{"200":{"description":"Database and Redis are available","content":{"text/plain":{"schema":{"type":"string"}}}},"503":{"description":"A required dependency is unavailable","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/livez":{"get":{"tags":["health"],"operationId":"livez","responses":{"200":{"description":"Liveness status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthStatusDoc"}}}}}}},"/metrics":{"get":{"tags":["health"],"operationId":"metrics","responses":{"200":{"description":"Basic runtime metrics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsDoc"}}}}}}},"/readyz":{"get":{"tags":["health"],"operationId":"readyz","responses":{"200":{"description":"Readiness status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReadyStatusDoc"}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReadyStatusDoc"}}}}}}}},"components":{"schemas":{"AccountDoc":{"type":"object","required":["providerAccountId"],"properties":{"providerAccountId":{"type":"string"},"userId":{"type":["string","null"]}}},"ApplicationDoc":{"type":"object","required":["id","serverId","title","createdAt","acceptingResponses","questions","description","banAppeal","sections","banAppealNote"],"properties":{"acceptanceRemoveRoles":{},"acceptingResponses":{"type":"boolean"},"allowMultipleSubmissions":{"type":["boolean","null"]},"appealCooldown":{"type":["integer","null"],"format":"int32"},"approvalRoles":{},"banAppeal":{"type":"integer","format":"int32"},"banAppealNote":{"type":"boolean"},"bannerKey":{"type":["string","null"]},"blockedDiscordRoles":{},"closedMessage":{"type":["string","null"]},"collectRobloxAccount":{"type":["boolean","null"]},"color":{"type":["string","null"]},"cooldown":{"type":["integer","null"],"format":"int32"},"createdAt":{"type":"integer","format":"int64"},"defaultQuestionPointValue":{"type":["integer","null"],"format":"int32"},"denialRemoveRoles":{},"denialRoles":{},"description":{"type":"string"},"eventsChannelId":{"type":["string","null"]},"folderId":{"type":["string","null"]},"giveRolesOnApproval":{},"guildMemberAge":{"type":["integer","null"],"format":"int32"},"id":{"type":"string"},"internalLastChecked":{"type":["integer","null"],"format":"int64"},"inviteOnApproval":{"type":["boolean","null"]},"lastUpdated":{"type":["integer","null"],"format":"int64"},"maxLogs":{"type":["integer","null"],"format":"int32"},"orgType":{"type":["string","null"]},"presets":{},"questions":{},"quiz":{"type":["boolean","null"]},"quizAutoAcceptThreshold":{"type":["integer","null"],"format":"int32"},"quizAutoDenyThreshold":{"type":["integer","null"],"format":"int32"},"quizReleaseType":{"type":["integer","null"],"format":"int32"},"requireApprovedReason":{"type":["boolean","null"]},"requireDiscordMember":{"type":["boolean","null"]},"requiredDenialReason":{"type":["boolean","null"]},"requiredDiscordRoles":{},"resultsChannelId":{"type":["string","null"]},"resultsMentionUser":{"type":["boolean","null"]},"revealReviewer":{"type":["boolean","null"]},"reviewOnlyRoles":{},"reviewerRoles":{},"robloxGroupId":{"type":["string","null"]},"sections":{},"sendResponses":{"type":["boolean","null"]},"serverId":{"type":"string"},"sharing":{"type":["string","null"]},"slug":{"type":["string","null"]},"stageResponses":{"type":["boolean","null"]},"submissionMessage":{"type":["string","null"]},"submitMentionRoles":{},"title":{"type":"string"},"type":{"type":["integer","null"],"format":"int32"}}},"ApplicationResponseDoc":{"type":"object","required":["id","applicationId","createdAt","answers","userId","status"],"properties":{"answers":{},"applicationId":{"type":"string"},"comments":{},"createdAt":{"type":"integer","format":"int64"},"finalizedAt":{"type":["integer","null"],"format":"int64"},"finalizedBy":{"type":["string","null"]},"flagged":{},"id":{"type":"string"},"reason":{"type":["string","null"]},"reviewedAt":{"type":["integer","null"],"format":"int64"},"reviewedBy":{"type":["string","null"]},"robloxId":{"type":["string","null"]},"scoreReleased":{},"scoring":{},"sectionsSorted":{},"stagingStatus":{"type":["integer","null"],"format":"int32"},"status":{"type":"integer","format":"int32"},"userId":{"type":"string"}}},"AuditLogEventDoc":{"type":"object","required":["id","serverId","timestamp","userId"],"properties":{"applicationId":{"type":["string","null"]},"description":{},"id":{"type":"string"},"serverId":{"type":"string"},"timestamp":{"type":"integer","format":"int64"},"type":{"type":["integer","null"],"format":"int32"},"userId":{"type":"string"}}},"CadCallDoc":{"type":"object","required":["id","serverId","type","createdByUserId","createdAt","status","units","title","description","records","panels","unitHistory"],"properties":{"address":{"type":["string","null"]},"apiId":{"type":["string","null"]},"closedAt":{"type":["integer","null"],"format":"int64"},"code":{"type":["string","null"]},"createdAt":{"type":"integer","format":"int64"},"createdByUnit":{},"createdByUserId":{"type":"string"},"description":{"type":"string"},"id":{"type":"string"},"loc":{},"origin":{"type":["string","null"]},"panels":{},"postal":{"type":["string","null"]},"primaryUnit":{},"priority":{"type":["string","null"]},"records":{},"serverId":{"type":"string"},"status":{"type":"integer","format":"int32"},"title":{"type":"string"},"type":{"type":"integer","format":"int32"},"unitHistory":{},"units":{}}},"CadCallNoteDoc":{"type":"object","required":["id","serverId","callId","createdByUserId","createdByUnit","createdAt","type","data"],"properties":{"callId":{"type":"string"},"createdAt":{"type":"integer","format":"int64"},"createdByUnit":{},"createdByUserId":{"type":"string"},"data":{},"id":{"type":"string"},"mergedFrom":{"type":["string","null"]},"serverId":{"type":"string"},"type":{"type":"integer","format":"int32"}}},"CadCourtHearingDoc":{"type":"object","required":["serverId","id","status","type","recordId","civId","createdAt"],"properties":{"civId":{"type":"string"},"closedAt":{"type":["integer","null"],"format":"int64"},"createdAt":{"type":"integer","format":"int64"},"id":{"type":"string"},"processedBy":{"type":["string","null"]},"recordId":{"type":"string"},"serverId":{"type":"string"},"status":{"type":"integer","format":"int32"},"type":{"type":"integer","format":"int32"}}},"CadRecordDoc":{"type":"object","required":["id","serverId","createdByUserId","createdAt","type","label","data","templateId","previewData","flags","meta","status","objects"],"properties":{"agency":{},"createdAt":{"type":"integer","format":"int64"},"createdByUnit":{},"createdByUserId":{"type":"string"},"data":{},"flags":{},"id":{"type":"string"},"label":{"type":"string"},"meta":{},"noCharge":{"type":["boolean","null"]},"objects":{},"previewData":{},"serverId":{"type":"string"},"status":{"type":"integer","format":"int32"},"templateId":{"type":"integer","format":"int32"},"type":{"type":"integer","format":"int32"}}},"CadUnitDoc":{"type":"object","required":["id","serverId","userId","status","panic","number","agency","loc","items"],"properties":{"agency":{"type":"string"},"customStatusId":{"type":["string","null"]},"id":{"type":"integer","format":"int32"},"items":{},"loc":{},"location":{"type":["string","null"]},"name":{"type":["string","null"]},"number":{"type":"string"},"panic":{"type":"boolean"},"rank":{"type":["string","null"]},"serverId":{"type":"string"},"status":{"type":"integer","format":"int32"},"subdivision":{"type":["string","null"]},"userId":{"type":"string"}}},"CadUnitGroupDoc":{"type":"object","required":["id","serverId","name","units","status","panic","premade"],"properties":{"customStatusId":{"type":["string","null"]},"id":{"type":"integer","format":"int32"},"maxUnits":{"type":["integer","null"],"format":"int32"},"name":{"type":"string"},"panic":{"type":"boolean"},"premade":{"type":"boolean"},"restrictAgency":{"type":["string","null"]},"serverId":{"type":"string"},"status":{"type":"integer","format":"int32"},"units":{}}},"CreateTokenRequestDoc":{"type":"object","required":["name"],"properties":{"expiresInDays":{"type":["integer","null"],"format":"int64"},"name":{"type":"string"}}},"DepartmentDoc":{"type":"object","required":["id","serverId","name","icon"],"properties":{"activated":{"type":["boolean","null"]},"discordGuildId":{"type":["string","null"]},"icon":{"type":"string"},"id":{"type":"string"},"joinCode":{"type":["string","null"]},"name":{"type":"string"},"serverId":{"type":"string"},"type":{"type":["integer","null"],"format":"int32"}}},"DepartmentMemberDoc":{"type":"object","required":["id","departmentId","rankId","createdAt","rankPosition","customColumnValues","supportFlags","roles"],"properties":{"createdAt":{"type":"integer","format":"int64"},"customColumnValues":{},"departmentId":{"type":"string"},"id":{"type":"string"},"inactive":{"type":["boolean","null"]},"inactiveLastShift":{"type":["integer","null"],"format":"int64"},"inactiveSince":{"type":["integer","null"],"format":"int64"},"rankId":{"type":"string"},"rankPosition":{"type":"integer","format":"int32"},"roles":{},"supportFlags":{}}},"DepartmentRankDoc":{"type":"object","required":["id","departmentId","name","permissions","position"],"properties":{"colour":{"type":["string","null"]},"departmentId":{"type":"string"},"id":{"type":"string"},"linkedDiscordRoleId":{"type":["string","null"]},"name":{"type":"string"},"permissions":{"type":"string"},"position":{"type":"integer","format":"int32"}}},"DiscordIdResponseDoc":{"type":"object","required":["discordId"],"properties":{"discordId":{"type":"string"}}},"ErrorBodyDoc":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"details":{},"message":{"type":"string"}}},"ErrorResponseDoc":{"type":"object","required":["error"],"properties":{"error":{"$ref":"#/components/schemas/ErrorBodyDoc"}}},"HealthStatusDoc":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}}},"JoinRequestDoc":{"type":"object","required":["userId","serverId","joinCode","createdAt"],"properties":{"createdAt":{"type":"integer","format":"int64"},"joinCode":{"type":"string"},"serverId":{"type":"string"},"userId":{"type":"string"}}},"LoaDoc":{"type":"object","required":["id","serverId","memberId","createdAt","status","startType","extensionRequests","reasonHistory"],"properties":{"cancelledAt":{"type":["integer","null"],"format":"int64"},"createdAt":{"type":"integer","format":"int64"},"denyReason":{"type":["string","null"]},"endAt":{"type":["integer","null"],"format":"int64"},"endedAt":{"type":["integer","null"],"format":"int64"},"endedBy":{"type":["string","null"]},"expiredAt":{"type":["integer","null"],"format":"int64"},"extensionRequests":{},"id":{"type":"string"},"memberId":{"type":"string"},"reason":{"type":["string","null"]},"reasonHistory":{},"reviewedAt":{"type":["integer","null"],"format":"int64"},"reviewedBy":{"type":["string","null"]},"serverId":{"type":"string"},"startAt":{"type":["integer","null"],"format":"int64"},"startType":{"type":"integer","format":"int32"},"startedAt":{"type":["integer","null"],"format":"int64"},"status":{"type":"integer","format":"int32"}}},"LogDoc":{"type":"object","required":["id","serverId","type","text","createdAt","createdBy","editedBy","username","proof"],"properties":{"completedBy":{"type":["string","null"]},"createdAt":{"type":"integer","format":"int64"},"createdBy":{"type":"string"},"deniedBy":{"type":["string","null"]},"description":{"type":["string","null"]},"editedBy":{},"expired":{"type":["boolean","null"]},"expiredAt":{"type":["integer","null"],"format":"int64"},"expiredBy":{"type":["string","null"]},"hidden":{"type":["boolean","null"]},"hiddenBy":{"type":["string","null"]},"id":{"type":"string"},"proof":{},"robloxId":{"type":["string","null"]},"serverId":{"type":"string"},"tempBan":{"type":["boolean","null"]},"text":{"type":"string"},"type":{"type":"integer","format":"int32"},"typeId":{"type":["string","null"]},"unbanAt":{"type":["integer","null"],"format":"int64"},"username":{"type":"string"}}},"MemberDoc":{"type":"object","required":["id","serverId","roles","createdAt"],"properties":{"createdAt":{"type":"integer","format":"int64"},"id":{"type":"string"},"roles":{},"serverId":{"type":"string"}}},"MetricsDoc":{"type":"object","required":["status","databasePoolSize"],"properties":{"databasePoolSize":{"type":"integer","format":"int32","minimum":0},"status":{"type":"string"}}},"PageApplicationDoc":{"type":"object","required":["page","pageSize","total","totalPages","data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationDoc"}},"page":{"type":"integer","format":"int64"},"pageSize":{"type":"integer","format":"int64"},"total":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int64"}}},"PageApplicationResponseDoc":{"type":"object","required":["page","pageSize","total","totalPages","data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationResponseDoc"}},"page":{"type":"integer","format":"int64"},"pageSize":{"type":"integer","format":"int64"},"total":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int64"}}},"PageAuditLogEventDoc":{"type":"object","required":["page","pageSize","total","totalPages","data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AuditLogEventDoc"}},"page":{"type":"integer","format":"int64"},"pageSize":{"type":"integer","format":"int64"},"total":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int64"}}},"PageCadCallDoc":{"type":"object","required":["page","pageSize","total","totalPages","data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CadCallDoc"}},"page":{"type":"integer","format":"int64"},"pageSize":{"type":"integer","format":"int64"},"total":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int64"}}},"PageCadCallNoteDoc":{"type":"object","required":["page","pageSize","total","totalPages","data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CadCallNoteDoc"}},"page":{"type":"integer","format":"int64"},"pageSize":{"type":"integer","format":"int64"},"total":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int64"}}},"PageCadCourtHearingDoc":{"type":"object","required":["page","pageSize","total","totalPages","data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CadCourtHearingDoc"}},"page":{"type":"integer","format":"int64"},"pageSize":{"type":"integer","format":"int64"},"total":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int64"}}},"PageCadRecordDoc":{"type":"object","required":["page","pageSize","total","totalPages","data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CadRecordDoc"}},"page":{"type":"integer","format":"int64"},"pageSize":{"type":"integer","format":"int64"},"total":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int64"}}},"PageCadUnitDoc":{"type":"object","required":["page","pageSize","total","totalPages","data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CadUnitDoc"}},"page":{"type":"integer","format":"int64"},"pageSize":{"type":"integer","format":"int64"},"total":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int64"}}},"PageCadUnitGroupDoc":{"type":"object","required":["page","pageSize","total","totalPages","data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CadUnitGroupDoc"}},"page":{"type":"integer","format":"int64"},"pageSize":{"type":"integer","format":"int64"},"total":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int64"}}},"PageDepartmentDoc":{"type":"object","required":["page","pageSize","total","totalPages","data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/DepartmentDoc"}},"page":{"type":"integer","format":"int64"},"pageSize":{"type":"integer","format":"int64"},"total":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int64"}}},"PageDepartmentMemberDoc":{"type":"object","required":["page","pageSize","total","totalPages","data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/DepartmentMemberDoc"}},"page":{"type":"integer","format":"int64"},"pageSize":{"type":"integer","format":"int64"},"total":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int64"}}},"PageDepartmentRankDoc":{"type":"object","required":["page","pageSize","total","totalPages","data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/DepartmentRankDoc"}},"page":{"type":"integer","format":"int64"},"pageSize":{"type":"integer","format":"int64"},"total":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int64"}}},"PageJoinRequestDoc":{"type":"object","required":["page","pageSize","total","totalPages","data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/JoinRequestDoc"}},"page":{"type":"integer","format":"int64"},"pageSize":{"type":"integer","format":"int64"},"total":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int64"}}},"PageLoaDoc":{"type":"object","required":["page","pageSize","total","totalPages","data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/LoaDoc"}},"page":{"type":"integer","format":"int64"},"pageSize":{"type":"integer","format":"int64"},"total":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int64"}}},"PageLogDoc":{"type":"object","required":["page","pageSize","total","totalPages","data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/LogDoc"}},"page":{"type":"integer","format":"int64"},"pageSize":{"type":"integer","format":"int64"},"total":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int64"}}},"PageMemberDoc":{"type":"object","required":["page","pageSize","total","totalPages","data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/MemberDoc"}},"page":{"type":"integer","format":"int64"},"pageSize":{"type":"integer","format":"int64"},"total":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int64"}}},"PageRoleDoc":{"type":"object","required":["page","pageSize","total","totalPages","data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/RoleDoc"}},"page":{"type":"integer","format":"int64"},"pageSize":{"type":"integer","format":"int64"},"total":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int64"}}},"PageShiftDoc":{"type":"object","required":["page","pageSize","total","totalPages","data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ShiftDoc"}},"page":{"type":"integer","format":"int64"},"pageSize":{"type":"integer","format":"int64"},"total":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int64"}}},"RateLimitStatusDoc":{"type":"object","required":["serverId","currentCount","limit","remaining","timeToResetMin","timeToResetHrs"],"properties":{"currentCount":{"type":"integer","format":"int64"},"limit":{"type":"integer","format":"int64"},"remaining":{"type":"integer","format":"int64"},"serverId":{"type":"string"},"timeToResetHrs":{"type":"number","format":"double"},"timeToResetMin":{"type":"integer","format":"int64"}}},"ReadyStatusDoc":{"type":"object","required":["database","redis"],"properties":{"database":{"type":"boolean"},"redis":{"type":"boolean"}}},"RobloxConnectionDoc":{"type":"object","required":["userId","createdAt","lastUpdatedAt","robloxId"],"properties":{"createdAt":{"type":"integer","format":"int64"},"headShotImage":{"type":["string","null"]},"lastUpdatedAt":{"type":"integer","format":"int64"},"name":{"type":["string","null"]},"nickname":{"type":["string","null"]},"preferredUsername":{"type":["string","null"]},"profile":{"type":["string","null"]},"robloxCreatedAt":{"type":["integer","null"],"format":"int64"},"robloxId":{"type":"string"},"userId":{"type":"string"}}},"RoleDoc":{"type":"object","required":["id","serverId","name","permissions","createdAt","extraPermissions"],"properties":{"colour":{"type":["string","null"]},"createdAt":{"type":"integer","format":"int64"},"extraPermissions":{"type":"integer","format":"int64"},"id":{"type":"string"},"linkedDiscordRoleId":{"type":["string","null"]},"name":{"type":"string"},"permissions":{"type":"string"},"serverId":{"type":"string"}}},"ServerDoc":{"type":"object","required":["id","ownerId","name","roles","createdAt"],"properties":{"createdAt":{"type":"integer","format":"int64"},"discordGuildId":{"type":["string","null"]},"id":{"type":"string"},"joinCode":{"type":["string","null"]},"name":{"type":"string"},"ownerId":{"type":"string"},"roles":{}}},"ServerTokenDoc":{"type":"object","required":["id","serverId","token","name","isActive","createdAt"],"properties":{"createdAt":{"type":"integer","format":"int64"},"expiresAt":{"type":["integer","null"],"format":"int64"},"id":{"type":"string"},"isActive":{"type":"boolean"},"lastUsedAt":{"type":["integer","null"],"format":"int64"},"name":{"type":"string"},"serverId":{"type":"string"},"token":{"type":"string"}}},"ShiftDoc":{"type":"object","required":["id","serverId","memberId","breakTimestamps","createdAt","wave"],"properties":{"autoEnd":{"type":["boolean","null"]},"breakTimestamps":{},"createdAt":{"type":"integer","format":"int64"},"endedAt":{"type":["integer","null"],"format":"int64"},"endedBy":{"type":["string","null"]},"id":{"type":"string"},"memberId":{"type":"string"},"serverId":{"type":"string"},"type":{"type":["string","null"]},"wave":{"type":"integer","format":"int32"}}},"TokenCreateResponseDoc":{"type":"object","required":["message","data"],"properties":{"data":{"$ref":"#/components/schemas/ServerTokenDoc"},"message":{"type":"string"}}},"TokenDeactivateResponseDoc":{"type":"object","required":["message"],"properties":{"message":{"type":"string"}}},"TokenInfoDoc":{"type":"object","required":["serverID","tokenID","tokenName"],"properties":{"serverID":{"type":"string"},"tokenID":{"type":"string"},"tokenName":{"type":"string"}}},"TokenInfoResponseDoc":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/TokenInfoDoc"}}},"TokenListResponseDoc":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ServerTokenDoc"}}}}},"securitySchemes":{"bearer_auth":{"type":"http","scheme":"bearer","bearerFormat":"API token"}}},"tags":[{"name":"server","description":"Authenticated server information"},{"name":"departments","description":"Departments owned by the authenticated server"},{"name":"cad","description":"CAD resources owned by the authenticated server"},{"name":"department-shifts","description":"Shifts for a specific department"},{"name":"department-members","description":"Department members"},{"name":"department-ranks","description":"Department ranks"},{"name":"department-join-requests","description":"Join requests for a specific department"},{"name":"department-audit-logs","description":"Audit logs for a specific department"},{"name":"department-loas","description":"Leave of absence records for a specific department"},{"name":"tokens","description":"Server token management"},{"name":"shifts","description":"Shift records"},{"name":"members","description":"Server members"},{"name":"roles","description":"Server roles"},{"name":"logs","description":"Moderation logs"},{"name":"join-requests","description":"Join requests"},{"name":"audit-logs","description":"Audit log events"},{"name":"loas","description":"Leave of absence records"},{"name":"applications","description":"Applications and application responses"},{"name":"verification","description":"Discord and Roblox account lookup"},{"name":"admin","description":"Operational inspection endpoints"},{"name":"health","description":"Health and readiness endpoints"}]}