{"openapi":"3.1.0","info":{"title":"PROTESTIM API","description":"AI-powered educational assessment & scholarship platform. Schema + endpoint contract: backend/DATABASE.md.","version":"0.1.0"},"paths":{"/v1/health/live":{"get":{"tags":["health"],"summary":"Liveness probe — process is up","operationId":"live_v1_health_live_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Live V1 Health Live Get"}}}}}}},"/v1/health/ready":{"get":{"tags":["health"],"summary":"Readiness probe — dependencies reachable","operationId":"ready_v1_health_ready_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Ready V1 Health Ready Get"}}}}}}},"/v1/auth/signup":{"post":{"tags":["identity / auth"],"summary":"Start signup — creates unverified user, sends OTP","operationId":"signup_v1_auth_signup_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/signup/verify":{"post":{"tags":["identity / auth"],"summary":"Verify signup OTP, mark phone verified, issue tokens","operationId":"signup_verify_v1_auth_signup_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OtpVerifyIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OtpVerifyOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/otp/request":{"post":{"tags":["identity / auth"],"summary":"Request OTP for an existing user (login)","operationId":"otp_request_v1_auth_otp_request_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OtpRequestIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OtpRequestOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/otp/verify":{"post":{"tags":["identity / auth"],"summary":"Verify OTP, login, mint JWTs","operationId":"otp_verify_v1_auth_otp_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OtpVerifyIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OtpVerifyOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/otp/resend":{"post":{"tags":["identity / auth"],"summary":"Resend the OTP for an in-progress request_id","operationId":"otp_resend_v1_auth_otp_resend_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OtpResendIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OtpRequestOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/login/password":{"post":{"tags":["identity / auth"],"summary":"Login with phone + password (requires phone already verified)","operationId":"login_password_v1_auth_login_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordLoginIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OtpVerifyOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/logout":{"post":{"tags":["identity / auth"],"summary":"Logout the current session","operationId":"logout_v1_auth_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogoutOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me":{"get":{"tags":["identity / me"],"summary":"Current user (whoami)","operationId":"me_v1_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/onboarding":{"get":{"tags":["identity / me"],"summary":"Where am I in the onboarding flow?","operationId":"onboarding_status_v1_me_onboarding_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnboardingStatusOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/onboarding/profile":{"patch":{"tags":["identity / me"],"summary":"Onboarding screen 1 — first name, last name, gender","operationId":"onboarding_profile_v1_me_onboarding_profile_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnboardingProfileIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnboardingStepOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/onboarding/contact":{"patch":{"tags":["identity / me"],"summary":"Onboarding screen 2 — email + weekly newsletter","operationId":"onboarding_contact_v1_me_onboarding_contact_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnboardingContactIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnboardingStepOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/onboarding/class":{"patch":{"tags":["identity / me"],"summary":"Onboarding screen 3 — class level (6..12 or none)","operationId":"onboarding_class_v1_me_onboarding_class_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnboardingClassIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnboardingStepOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/onboarding/exams":{"patch":{"tags":["identity / me"],"summary":"Onboarding screen 4 — multi-select target exams","operationId":"onboarding_exams_v1_me_onboarding_exams_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnboardingExamsIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnboardingStepOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/profile":{"patch":{"tags":["identity / me"],"summary":"Update profile (any subset of fields). Use this for edits after onboarding.","operationId":"update_my_profile_v1_me_profile_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProfileIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/profile/photo":{"post":{"tags":["identity / me"],"summary":"Upload a profile photo (multipart). Returns the updated user.","operationId":"upload_my_profile_photo_v1_me_profile_photo_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_my_profile_photo_v1_me_profile_photo_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/auth/login":{"post":{"tags":["admin"],"summary":"Step 1: email + password → issues an email OTP challenge","operationId":"admin_login_v1_admin_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminLoginIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminLoginChallengeOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/auth/login/verify":{"post":{"tags":["admin"],"summary":"Step 2: verify the email OTP → issue tokens","operationId":"admin_login_verify_endpoint_v1_admin_auth_login_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminLoginVerifyIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminLoginVerifyOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/auth/login/resend":{"post":{"tags":["admin"],"summary":"Resend the email OTP for an in-progress challenge_id","operationId":"admin_login_resend_v1_admin_auth_login_resend_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminLoginResendIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminLoginChallengeOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/auth/forgot":{"post":{"tags":["admin"],"summary":"Send a set-password link to the email if it belongs to an admin","operationId":"admin_forgot_v1_admin_auth_forgot_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForgotPasswordIn"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/auth/set-password":{"post":{"tags":["admin"],"summary":"Consume a set-password token and set a new password","operationId":"admin_set_password_endpoint_v1_admin_auth_set_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetPasswordIn"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/me":{"get":{"tags":["admin"],"summary":"Current admin user (whoami)","operationId":"admin_me_v1_admin_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminMeOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/auth/logout":{"post":{"tags":["admin"],"summary":"Logout admin session","operationId":"admin_logout_v1_admin_auth_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogoutOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/users":{"get":{"tags":["admin"],"summary":"List admin users","operationId":"list_admin_users_v1_admin_users_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AdminUserOut"},"type":"array","title":"Response List Admin Users V1 Admin Users Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["admin"],"summary":"Create an admin user (super_admin only). Sends a set-password email.","operationId":"create_admin_user_v1_admin_users_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminCreateUserIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUserCreatedOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/users/{user_id}":{"patch":{"tags":["admin"],"summary":"Update role or status of an admin user (super_admin only)","operationId":"update_admin_user_v1_admin_users__user_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUpdateUserIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUserOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["admin"],"summary":"Soft-delete an admin user (super_admin only)","operationId":"delete_admin_user_v1_admin_users__user_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/universities":{"get":{"tags":["admin"],"summary":"List universities","operationId":"list_universities_v1_admin_universities_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app__domains__admin__schemas__UniversityOut"},"type":"array","title":"Response List Universities V1 Admin Universities Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["admin"],"summary":"Create a university + first uni_admin (super_admin only)","operationId":"create_university_v1_admin_universities_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminCreateUniversityIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminCreateUniversityOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/universities/{uni_id}":{"patch":{"tags":["admin"],"summary":"Update a university (super_admin only)","operationId":"update_university_v1_admin_universities__uni_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"uni_id","in":"path","required":true,"schema":{"type":"integer","title":"Uni Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUpdateUniversityIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__domains__admin__schemas__UniversityOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["admin"],"summary":"Get a single university","operationId":"get_university_v1_admin_universities__uni_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"uni_id","in":"path","required":true,"schema":{"type":"integer","title":"Uni Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__domains__admin__schemas__UniversityOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/taxonomy/exams":{"get":{"tags":["admin / content"],"summary":"List exams (reference data)","operationId":"get_exams_v1_admin_taxonomy_exams_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ExamOut"},"type":"array","title":"Response Get Exams V1 Admin Taxonomy Exams Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/taxonomy/subjects":{"get":{"tags":["admin / content"],"summary":"List subjects (reference data)","operationId":"get_subjects_v1_admin_taxonomy_subjects_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SubjectOut"},"type":"array","title":"Response Get Subjects V1 Admin Taxonomy Subjects Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/taxonomy/topics":{"get":{"tags":["admin / content"],"summary":"List topics, optionally filtered by subject","operationId":"get_topics_v1_admin_taxonomy_topics_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"subject_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subject Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TopicOut"},"title":"Response Get Topics V1 Admin Taxonomy Topics Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / content"],"summary":"Create a topic / chapter / subtopic (super_admin only)","operationId":"post_topic_v1_admin_taxonomy_topics_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopicCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopicOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/questions":{"get":{"tags":["admin / content"],"summary":"List questions with filters (module, exam, subject, lifecycle, ...)","operationId":"list_questions_endpoint_v1_admin_questions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"module","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Module"}},{"name":"exam_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exam Id"}},{"name":"subject_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subject Id"}},{"name":"topic_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Topic Id"}},{"name":"difficulty","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Difficulty"}},{"name":"lifecycle","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lifecycle"}},{"name":"creator_admin_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Creator Admin Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuestionListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / content"],"summary":"Create a draft question","operationId":"create_question_endpoint_v1_admin_questions_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuestionCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuestionDetailOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/questions/{question_id}":{"get":{"tags":["admin / content"],"summary":"Get full question detail (with content)","operationId":"get_question_endpoint_v1_admin_questions__question_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"question_id","in":"path","required":true,"schema":{"type":"integer","title":"Question Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuestionDetailOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["admin / content"],"summary":"Update a question (drafts / changes_requested only)","operationId":"update_question_endpoint_v1_admin_questions__question_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"question_id","in":"path","required":true,"schema":{"type":"integer","title":"Question Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuestionUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuestionDetailOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["admin / content"],"summary":"Soft-delete a question (super_admin only)","operationId":"delete_question_endpoint_v1_admin_questions__question_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"question_id","in":"path","required":true,"schema":{"type":"integer","title":"Question Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/questions/{question_id}/submit":{"post":{"tags":["admin / content"],"summary":"Submit a draft for review","operationId":"submit_endpoint_v1_admin_questions__question_id__submit_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"question_id","in":"path","required":true,"schema":{"type":"integer","title":"Question Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuestionDetailOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/questions/{question_id}/approve":{"post":{"tags":["admin / content"],"summary":"Approve a submitted question (senior_reviewer / super_admin)","operationId":"approve_endpoint_v1_admin_questions__question_id__approve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"question_id","in":"path","required":true,"schema":{"type":"integer","title":"Question Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuestionDetailOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/questions/{question_id}/changes-request":{"post":{"tags":["admin / content"],"summary":"Request changes — sends back to creator (senior_reviewer / super_admin)","operationId":"changes_request_endpoint_v1_admin_questions__question_id__changes_request_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"question_id","in":"path","required":true,"schema":{"type":"integer","title":"Question Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangesRequestedIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuestionDetailOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/questions/{question_id}/publish":{"post":{"tags":["admin / content"],"summary":"Publish an approved question (super_admin only)","operationId":"publish_endpoint_v1_admin_questions__question_id__publish_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"question_id","in":"path","required":true,"schema":{"type":"integer","title":"Question Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuestionDetailOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/questions/{question_id}/archive":{"post":{"tags":["admin / content"],"summary":"Archive a question (super_admin only)","operationId":"archive_endpoint_v1_admin_questions__question_id__archive_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"question_id","in":"path","required":true,"schema":{"type":"integer","title":"Question Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArchiveIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuestionDetailOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/questions/{question_id}/comments":{"get":{"tags":["admin / content"],"summary":"List review comments for a question","operationId":"list_comments_endpoint_v1_admin_questions__question_id__comments_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"question_id","in":"path","required":true,"schema":{"type":"integer","title":"Question Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ReviewCommentOut"},"title":"Response List Comments Endpoint V1 Admin Questions  Question Id  Comments Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / content"],"summary":"Add a review comment (senior_reviewer / super_admin)","operationId":"add_comment_endpoint_v1_admin_questions__question_id__comments_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"question_id","in":"path","required":true,"schema":{"type":"integer","title":"Question Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewCommentIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewCommentOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/questions/{question_id}/revisions":{"get":{"tags":["admin / content"],"summary":"List edit revisions (newest first) for a question","operationId":"list_revisions_endpoint_v1_admin_questions__question_id__revisions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"question_id","in":"path","required":true,"schema":{"type":"integer","title":"Question Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RevisionOut"},"title":"Response List Revisions Endpoint V1 Admin Questions  Question Id  Revisions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/content/reviews":{"get":{"tags":["admin / content · editorial"],"summary":"List question reviews (filter by reviewer, state, or only-open)","operationId":"admin_list_reviews_v1_admin_content_reviews_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"reviewer_admin_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Reviewer Admin Id"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ReviewState"},{"type":"null"}],"title":"State"}},{"name":"only_open","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Only Open"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / content · editorial"],"summary":"Assign a reviewer to a submitted question (auto-balance if reviewer omitted)","operationId":"admin_assign_review_v1_admin_content_reviews_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignReviewIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/content/my-reviews":{"get":{"tags":["admin / content · editorial"],"summary":"My open reviews (shortcut for `?reviewer_admin_id=me&only_open=true`)","operationId":"admin_my_reviews_v1_admin_content_my_reviews_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/content/reviews/{review_id}/claim":{"post":{"tags":["admin / content · editorial"],"summary":"Mark a review as in_progress (reviewer claims their assignment)","operationId":"admin_claim_review_v1_admin_content_reviews__review_id__claim_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"review_id","in":"path","required":true,"schema":{"type":"integer","title":"Review Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewClaimIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/content/reviews/{review_id}/decide":{"post":{"tags":["admin / content · editorial"],"summary":"Decide a review (approved / changes_requested / escalated)","operationId":"admin_decide_review_v1_admin_content_reviews__review_id__decide_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"review_id","in":"path","required":true,"schema":{"type":"integer","title":"Review Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewDecideIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/content/questions/{question_id}/reviews":{"get":{"tags":["admin / content · editorial"],"summary":"All reviews ever assigned for a question (history)","operationId":"admin_question_reviews_v1_admin_content_questions__question_id__reviews_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"question_id","in":"path","required":true,"schema":{"type":"integer","title":"Question Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/content/questions/{question_id}/comments":{"get":{"tags":["admin / content · editorial"],"summary":"List threaded inline review comments for a question","operationId":"admin_list_comments_v1_admin_content_questions__question_id__comments_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"question_id","in":"path","required":true,"schema":{"type":"integer","title":"Question Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommentListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / content · editorial"],"summary":"Add an inline comment (field_path required; optional parent_comment_id for threading)","operationId":"admin_add_comment_v1_admin_content_questions__question_id__comments_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"question_id","in":"path","required":true,"schema":{"type":"integer","title":"Question Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommentCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommentOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/content/comments/{comment_id}/resolve":{"post":{"tags":["admin / content · editorial"],"summary":"Resolve a comment (mark addressed)","operationId":"admin_resolve_comment_v1_admin_content_comments__comment_id__resolve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"comment_id","in":"path","required":true,"schema":{"type":"integer","title":"Comment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommentOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/content/questions/{question_id}/pilot-runs":{"get":{"tags":["admin / content · editorial"],"summary":"Pilot run history for a question (most recent first)","operationId":"admin_list_pilots_v1_admin_content_questions__question_id__pilot_runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"question_id","in":"path","required":true,"schema":{"type":"integer","title":"Question Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PilotListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / content · editorial"],"summary":"Start a pilot run (spec §12.4: default 200-user calibration)","operationId":"admin_start_pilot_v1_admin_content_questions__question_id__pilot_runs_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"question_id","in":"path","required":true,"schema":{"type":"integer","title":"Question Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PilotStartIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PilotOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/content/pilot-runs/{pilot_id}/conclude":{"post":{"tags":["admin / content · editorial"],"summary":"Conclude a pilot run with observed metrics + decision","operationId":"admin_conclude_pilot_v1_admin_content_pilot_runs__pilot_id__conclude_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"pilot_id","in":"path","required":true,"schema":{"type":"integer","title":"Pilot Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PilotConcludeIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PilotOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/content/questions/{question_id}/lifecycle-events":{"get":{"tags":["admin / content · editorial"],"summary":"Question lifecycle state-transition audit (most recent first)","operationId":"admin_list_question_lifecycle_v1_admin_content_questions__question_id__lifecycle_events_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"question_id","in":"path","required":true,"schema":{"type":"integer","title":"Question Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__domains__content__editorial__schemas__LifecycleEventListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/content/authors":{"get":{"tags":["admin / content · editorial"],"summary":"List content authors (admin → subject expertise mapping)","operationId":"admin_list_authors_v1_admin_content_authors_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Active Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/content/authors/{admin_user_id}":{"put":{"tags":["admin / content · editorial"],"summary":"Upsert a content author (super_admin only)","operationId":"admin_upsert_author_v1_admin_content_authors__admin_user_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"admin_user_id","in":"path","required":true,"schema":{"type":"integer","title":"Admin User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorUpsertIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/content/reviewer-assignments":{"get":{"tags":["admin / content · editorial"],"summary":"List reviewer↔subject assignments (auto-balancer pool)","operationId":"admin_list_assignments_v1_admin_content_reviewer_assignments_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"subject_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subject Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignmentListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["admin / content · editorial"],"summary":"Upsert a reviewer↔subject assignment (super_admin only)","operationId":"admin_upsert_assignment_v1_admin_content_reviewer_assignments_put","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignmentUpsertIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignmentOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/content/questions/{question_id}/plagiarism":{"get":{"tags":["admin / content · editorial"],"summary":"List plagiarism scan results for a question (most recent first)","operationId":"admin_list_plagiarism_v1_admin_content_questions__question_id__plagiarism_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"question_id","in":"path","required":true,"schema":{"type":"integer","title":"Question Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlagiarismListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / content · editorial"],"summary":"Ingest a plagiarism score (manual in Phase A; ML pipeline in Phase B)","operationId":"admin_ingest_plagiarism_v1_admin_content_questions__question_id__plagiarism_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"question_id","in":"path","required":true,"schema":{"type":"integer","title":"Question Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlagiarismIngestIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlagiarismOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/sla/timers":{"get":{"tags":["admin / content · editorial"],"summary":"List SLA timers (filter by entity_type and/or status open|breached|resolved)","operationId":"admin_list_sla_timers_v1_admin_sla_timers_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SlaEntityType"},{"type":"null"}],"title":"Entity Type"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlaTimerListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/tests":{"post":{"tags":["admin / tests"],"summary":"Create a draft test","operationId":"admin_create_test_v1_admin_tests_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestDetailOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["admin / tests"],"summary":"List tests with filters (module, exam, status)","operationId":"admin_list_tests_v1_admin_tests_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"module","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Module"}},{"name":"exam_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exam Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/tests/{test_id}":{"get":{"tags":["admin / tests"],"summary":"Get test detail (includes question list)","operationId":"admin_get_test_v1_admin_tests__test_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"test_id","in":"path","required":true,"schema":{"type":"integer","title":"Test Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestDetailOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["admin / tests"],"summary":"Update a draft test","operationId":"admin_update_test_v1_admin_tests__test_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"test_id","in":"path","required":true,"schema":{"type":"integer","title":"Test Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestDetailOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["admin / tests"],"summary":"Soft-delete a draft test (super_admin only)","operationId":"admin_delete_test_v1_admin_tests__test_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"test_id","in":"path","required":true,"schema":{"type":"integer","title":"Test Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/tests/{test_id}/questions":{"post":{"tags":["admin / tests"],"summary":"Add questions to a draft test","operationId":"admin_add_questions_v1_admin_tests__test_id__questions_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"test_id","in":"path","required":true,"schema":{"type":"integer","title":"Test Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestQuestionBulkIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TestQuestionOut"},"title":"Response Admin Add Questions V1 Admin Tests  Test Id  Questions Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/tests/{test_id}/questions/{test_question_id}":{"delete":{"tags":["admin / tests"],"summary":"Remove a question from a draft test","operationId":"admin_remove_question_v1_admin_tests__test_id__questions__test_question_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"test_id","in":"path","required":true,"schema":{"type":"integer","title":"Test Id"}},{"name":"test_question_id","in":"path","required":true,"schema":{"type":"integer","title":"Test Question Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/tests/{test_id}/publish":{"post":{"tags":["admin / tests"],"summary":"Publish a test (super_admin only)","operationId":"admin_publish_test_v1_admin_tests__test_id__publish_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"test_id","in":"path","required":true,"schema":{"type":"integer","title":"Test Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestDetailOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/tests/{test_id}/archive":{"post":{"tags":["admin / tests"],"summary":"Archive a test (super_admin only)","operationId":"admin_archive_test_v1_admin_tests__test_id__archive_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"test_id","in":"path","required":true,"schema":{"type":"integer","title":"Test Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArchiveIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestDetailOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tests":{"get":{"tags":["student / tests"],"summary":"List published tests available to students","operationId":"public_list_tests_v1_tests_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"module","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Module"}},{"name":"exam_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exam Id"}},{"name":"difficulty","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Difficulty"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicTestListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tests/{test_id}":{"get":{"tags":["student / tests"],"summary":"Get a published test's metadata (does NOT include questions)","operationId":"public_get_test_v1_tests__test_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"test_id","in":"path","required":true,"schema":{"type":"integer","title":"Test Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicTestDetailOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tests/{test_id}/start":{"post":{"tags":["student / tests"],"summary":"Start (or resume) an attempt on this test","operationId":"public_start_attempt_v1_tests__test_id__start_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"test_id","in":"path","required":true,"schema":{"type":"integer","title":"Test Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartTestIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartTestOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/attempts":{"get":{"tags":["student / tests"],"summary":"My attempt history","operationId":"public_my_attempts_v1_attempts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttemptListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/attempts/{attempt_id}/questions":{"get":{"tags":["student / tests"],"summary":"Fetch the question batch for an in-progress attempt","operationId":"public_attempt_questions_v1_attempts__attempt_id__questions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"attempt_id","in":"path","required":true,"schema":{"type":"integer","title":"Attempt Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttemptQuestionsOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/attempts/{attempt_id}/answer":{"post":{"tags":["student / tests"],"summary":"Submit / update an answer for a single question (by seq)","operationId":"public_submit_answer_v1_attempts__attempt_id__answer_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"attempt_id","in":"path","required":true,"schema":{"type":"integer","title":"Attempt Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnswerIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnswerOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/attempts/{attempt_id}/submit":{"post":{"tags":["student / tests"],"summary":"Submit the attempt — server grades it and materialises the result","operationId":"public_submit_attempt_v1_attempts__attempt_id__submit_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"attempt_id","in":"path","required":true,"schema":{"type":"integer","title":"Attempt Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__domains__tests__schemas__SubmitOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/attempts/{attempt_id}":{"get":{"tags":["student / tests"],"summary":"Result + per-question breakdown (after submit)","operationId":"public_attempt_result_v1_attempts__attempt_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"attempt_id","in":"path","required":true,"schema":{"type":"integer","title":"Attempt Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttemptResultOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/tests/{test_id}/difficulty":{"get":{"tags":["admin / tests · configuration"],"summary":"Read the difficulty mix (null if never set)","operationId":"admin_get_difficulty_v1_admin_tests__test_id__difficulty_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"test_id","in":"path","required":true,"schema":{"type":"integer","title":"Test Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DifficultyDistributionOut"},{"type":"null"}],"title":"Response Admin Get Difficulty V1 Admin Tests  Test Id  Difficulty Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["admin / tests · configuration"],"summary":"Set the easy/medium/hard mix (must sum to 100)","operationId":"admin_set_difficulty_v1_admin_tests__test_id__difficulty_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"test_id","in":"path","required":true,"schema":{"type":"integer","title":"Test Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DifficultyDistributionIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DifficultyDistributionOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/tests/{test_id}/proctor-config":{"get":{"tags":["admin / tests · configuration"],"summary":"Read the per-test proctor config (null if never set)","operationId":"admin_get_proctor_config_v1_admin_tests__test_id__proctor_config_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"test_id","in":"path","required":true,"schema":{"type":"integer","title":"Test Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ProctorConfigOut"},{"type":"null"}],"title":"Response Admin Get Proctor Config V1 Admin Tests  Test Id  Proctor Config Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["admin / tests · configuration"],"summary":"Create or update the per-test proctor config","operationId":"admin_set_proctor_config_v1_admin_tests__test_id__proctor_config_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"test_id","in":"path","required":true,"schema":{"type":"integer","title":"Test Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProctorConfigUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProctorConfigOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/tests/{test_id}/pricing-history":{"get":{"tags":["admin / tests · configuration"],"summary":"History-tracked pricing for a test (most recent first)","operationId":"admin_list_pricing_history_v1_admin_tests__test_id__pricing_history_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"test_id","in":"path","required":true,"schema":{"type":"integer","title":"Test Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PriceHistoryOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / tests · configuration"],"summary":"Append a new price (applies from `effective_from`, defaults to now)","operationId":"admin_add_price_v1_admin_tests__test_id__pricing_history_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"test_id","in":"path","required":true,"schema":{"type":"integer","title":"Test Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PriceCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PriceOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/tests/tags":{"get":{"tags":["admin / tests · configuration"],"summary":"List the test-tag vocabulary","operationId":"admin_list_tags_v1_admin_tests_tags_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Active Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TagListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / tests · configuration"],"summary":"Create a new tag (super_admin / senior_reviewer)","operationId":"admin_create_tag_v1_admin_tests_tags_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TagCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TagOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/tests/tags/{tag_id}":{"patch":{"tags":["admin / tests · configuration"],"summary":"Edit a tag's label / active state","operationId":"admin_update_tag_v1_admin_tests_tags__tag_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tag_id","in":"path","required":true,"schema":{"type":"integer","title":"Tag Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TagUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TagOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["admin / tests · configuration"],"summary":"Hard-delete a tag (cascades to test_categorisations)","operationId":"admin_delete_tag_v1_admin_tests_tags__tag_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tag_id","in":"path","required":true,"schema":{"type":"integer","title":"Tag Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/tests/{test_id}/categorisations":{"get":{"tags":["admin / tests · configuration"],"summary":"List the tags currently attached to a test","operationId":"admin_get_categorisations_v1_admin_tests__test_id__categorisations_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"test_id","in":"path","required":true,"schema":{"type":"integer","title":"Test Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CategorisationOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["admin / tests · configuration"],"summary":"Replace the test's tag set (PUT semantics — idempotent)","operationId":"admin_set_categorisations_v1_admin_tests__test_id__categorisations_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"test_id","in":"path","required":true,"schema":{"type":"integer","title":"Test Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CategorisationSetIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CategorisationOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/tests/{test_id}/metadata":{"get":{"tags":["admin / tests · configuration"],"summary":"Read test metadata (instructions, cover image, share slug, SEO)","operationId":"admin_get_metadata_v1_admin_tests__test_id__metadata_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"test_id","in":"path","required":true,"schema":{"type":"integer","title":"Test Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/app__domains__tests__configuration__schemas__MetadataOut"},{"type":"null"}],"title":"Response Admin Get Metadata V1 Admin Tests  Test Id  Metadata Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["admin / tests · configuration"],"summary":"Create or update test metadata (PATCH semantics; share_slug is unique)","operationId":"admin_set_metadata_v1_admin_tests__test_id__metadata_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"test_id","in":"path","required":true,"schema":{"type":"integer","title":"Test Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetadataUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__domains__tests__configuration__schemas__MetadataOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/tests/{test_id}/lifecycle-events":{"get":{"tags":["admin / tests · configuration"],"summary":"Read the test's status-transition audit trail (most recent first)","operationId":"admin_list_lifecycle_events_v1_admin_tests__test_id__lifecycle_events_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"test_id","in":"path","required":true,"schema":{"type":"integer","title":"Test Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__domains__tests__configuration__schemas__LifecycleEventListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tests/by-slug/{slug}":{"get":{"tags":["public / tests"],"summary":"Resolve a share-slug to a published-test preview (anonymous-OK)","operationId":"public_test_by_slug_v1_tests_by_slug__slug__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestBySlugOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/scholarships/windows":{"post":{"tags":["admin / scholarships"],"summary":"Create a draft scholarship window","operationId":"admin_create_window_v1_admin_scholarships_windows_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WindowCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WindowOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["admin / scholarships"],"summary":"List windows","operationId":"admin_list_windows_v1_admin_scholarships_windows_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"exam_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exam Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WindowListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/scholarships/windows/{window_id}":{"get":{"tags":["admin / scholarships"],"summary":"Window detail with counts","operationId":"admin_get_window_v1_admin_scholarships_windows__window_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"window_id","in":"path","required":true,"schema":{"type":"integer","title":"Window Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WindowOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["admin / scholarships"],"summary":"Update a draft window","operationId":"admin_update_window_v1_admin_scholarships_windows__window_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"window_id","in":"path","required":true,"schema":{"type":"integer","title":"Window Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WindowUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WindowOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/scholarships/windows/{window_id}/publish":{"post":{"tags":["admin / scholarships"],"summary":"Publish a window (super_admin only)","operationId":"admin_publish_window_v1_admin_scholarships_windows__window_id__publish_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"window_id","in":"path","required":true,"schema":{"type":"integer","title":"Window Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WindowOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/scholarships/windows/{window_id}/close":{"post":{"tags":["admin / scholarships"],"summary":"Close a window — required before awarding grants","operationId":"admin_close_window_v1_admin_scholarships_windows__window_id__close_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"window_id","in":"path","required":true,"schema":{"type":"integer","title":"Window Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WindowOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/scholarships/windows/{window_id}/eligibility":{"get":{"tags":["admin / scholarships"],"summary":"List registered students for a window","operationId":"admin_window_eligibility_v1_admin_scholarships_windows__window_id__eligibility_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"window_id","in":"path","required":true,"schema":{"type":"integer","title":"Window Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EligibilityRowOut"},"title":"Response Admin Window Eligibility V1 Admin Scholarships Windows  Window Id  Eligibility Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/scholarships/windows/{window_id}/award":{"post":{"tags":["admin / scholarships"],"summary":"Award grants to top performers (super_admin only)","operationId":"admin_award_window_v1_admin_scholarships_windows__window_id__award_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"window_id","in":"path","required":true,"schema":{"type":"integer","title":"Window Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AwardIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AwardOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/scholarships/windows/{window_id}/grants":{"get":{"tags":["admin / scholarships"],"summary":"List grants awarded for a window","operationId":"admin_list_grants_for_window_v1_admin_scholarships_windows__window_id__grants_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"window_id","in":"path","required":true,"schema":{"type":"integer","title":"Window Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrantListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/scholarships/windows":{"get":{"tags":["student / scholarships"],"summary":"List visible scholarship windows (scheduled / running / closed)","operationId":"public_list_windows_v1_scholarships_windows_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WindowListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/scholarships/windows/{window_id}":{"get":{"tags":["student / scholarships"],"summary":"Window detail (public-safe)","operationId":"public_get_window_v1_scholarships_windows__window_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"window_id","in":"path","required":true,"schema":{"type":"integer","title":"Window Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WindowOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/scholarships/eligibility":{"get":{"tags":["student / scholarships"],"summary":"My eligibility snapshot across all visible windows","operationId":"public_my_eligibility_v1_scholarships_eligibility_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyEligibilityListOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/scholarships/windows/{window_id}/register":{"post":{"tags":["student / scholarships"],"summary":"Register (book your slot) for a running window — requires passed eligibility test","operationId":"public_register_v1_scholarships_windows__window_id__register_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"window_id","in":"path","required":true,"schema":{"type":"integer","title":"Window Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__domains__scholarship__schemas__RegisterOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/scholarships/me/grants":{"get":{"tags":["student / scholarships"],"summary":"My awarded grants","operationId":"public_my_grants_v1_scholarships_me_grants_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyGrantsOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/tests/{test_id}/leaderboard":{"get":{"tags":["admin / leaderboards"],"summary":"Admin leaderboard (real names + user_id + attempt_id)","operationId":"admin_test_leaderboard_v1_admin_tests__test_id__leaderboard_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"test_id","in":"path","required":true,"schema":{"type":"integer","title":"Test Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminLeaderboardOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/leaderboards":{"post":{"tags":["admin / leaderboards"],"summary":"Generate a new leaderboard config (draft) — entries are computed live","operationId":"admin_generate_leaderboard_v1_admin_leaderboards_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateLeaderboardIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeaderboardOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["admin / leaderboards"],"summary":"List leaderboards (any status)","operationId":"admin_list_leaderboards_v1_admin_leaderboards_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"exam_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exam Id"}},{"name":"subject_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subject Id"}},{"name":"class_level","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Class Level"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeaderboardListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/leaderboards/{lb_id}":{"get":{"tags":["admin / leaderboards"],"summary":"Full leaderboard detail (entries + excluded list) — always live","operationId":"admin_get_leaderboard_v1_admin_leaderboards__lb_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"lb_id","in":"path","required":true,"schema":{"type":"integer","title":"Lb Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeaderboardDetailOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["admin / leaderboards"],"summary":"Edit title / notes (any non-archived state)","operationId":"admin_update_leaderboard_v1_admin_leaderboards__lb_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"lb_id","in":"path","required":true,"schema":{"type":"integer","title":"Lb Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateLeaderboardIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeaderboardOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["admin / leaderboards"],"summary":"Hard-delete a draft leaderboard (super_admin only). Use /archive for non-drafts.","operationId":"admin_delete_v1_admin_leaderboards__lb_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"lb_id","in":"path","required":true,"schema":{"type":"integer","title":"Lb Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/leaderboards/{lb_id}/overrides/{user_id}":{"put":{"tags":["admin / leaderboards"],"summary":"Upsert an override (exclude / pin rank / note) for one user","operationId":"admin_set_override_v1_admin_leaderboards__lb_id__overrides__user_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"lb_id","in":"path","required":true,"schema":{"type":"integer","title":"Lb Id"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OverrideIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeaderboardDetailOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["admin / leaderboards"],"summary":"Clear an override (restore default ranking for this user)","operationId":"admin_clear_override_v1_admin_leaderboards__lb_id__overrides__user_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"lb_id","in":"path","required":true,"schema":{"type":"integer","title":"Lb Id"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/leaderboards/{lb_id}/approve":{"post":{"tags":["admin / leaderboards"],"summary":"Approve a draft (or republished) leaderboard","operationId":"admin_approve_v1_admin_leaderboards__lb_id__approve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"lb_id","in":"path","required":true,"schema":{"type":"integer","title":"Lb Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeaderboardOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/leaderboards/{lb_id}/publish":{"post":{"tags":["admin / leaderboards"],"summary":"Publish to students (super_admin only). Sets expires_at if visibility_days given.","operationId":"admin_publish_v1_admin_leaderboards__lb_id__publish_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"lb_id","in":"path","required":true,"schema":{"type":"integer","title":"Lb Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublishIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeaderboardOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/leaderboards/{lb_id}/unpublish":{"post":{"tags":["admin / leaderboards"],"summary":"Revert published → approved (hides from students again)","operationId":"admin_unpublish_v1_admin_leaderboards__lb_id__unpublish_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"lb_id","in":"path","required":true,"schema":{"type":"integer","title":"Lb Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeaderboardOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/leaderboards/{lb_id}/archive":{"post":{"tags":["admin / leaderboards"],"summary":"Archive (super_admin only)","operationId":"admin_archive_v1_admin_leaderboards__lb_id__archive_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"lb_id","in":"path","required":true,"schema":{"type":"integer","title":"Lb Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArchiveLeaderboardIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeaderboardOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tests/{test_id}/leaderboard":{"get":{"tags":["student / leaderboards"],"summary":"Public leaderboard for a test (anonymised names, includes your rank)","operationId":"public_test_leaderboard_v1_tests__test_id__leaderboard_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"test_id","in":"path","required":true,"schema":{"type":"integer","title":"Test Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"rank-based cursor (last rank seen)","title":"Cursor"},"description":"rank-based cursor (last rank seen)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"include_self","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Self"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeaderboardOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/rankings":{"get":{"tags":["student / leaderboards"],"summary":"My rank in every test I have submitted","operationId":"public_my_rankings_v1_me_rankings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyRankingsOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/leaderboards":{"get":{"tags":["student / leaderboards"],"summary":"List currently-published leaderboards (filter by type / exam / subject / class)","operationId":"public_list_leaderboards_v1_leaderboards_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"}},{"name":"exam_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exam Id"}},{"name":"subject_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subject Id"}},{"name":"class_level","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Class Level"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicLeaderboardListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/leaderboards/{lb_id}":{"get":{"tags":["student / leaderboards"],"summary":"Public leaderboard detail — anonymised names; rank updates daily","operationId":"public_get_leaderboard_v1_leaderboards__lb_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"lb_id","in":"path","required":true,"schema":{"type":"integer","title":"Lb Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicLeaderboardOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/files":{"post":{"tags":["admin / files"],"summary":"Upload a file (admin). Multipart 'file' + 'purpose'. Max 5 MB.","operationId":"upload_v1_admin_files_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_v1_admin_files_post"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["admin / files"],"summary":"List my uploaded files","operationId":"list_files_endpoint_v1_admin_files_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"purpose","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Purpose"}},{"name":"uploader_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Uploader Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/files/{file_id}":{"get":{"tags":["admin / files"],"summary":"Get file metadata","operationId":"get_file_endpoint_v1_admin_files__file_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["admin / files"],"summary":"Soft-delete a file (super_admin only). Bytes stay on disk for audit.","operationId":"delete_file_endpoint_v1_admin_files__file_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/files/{file_id}/metadata":{"get":{"tags":["admin / files"],"summary":"Read extracted metadata for a file (EXIF / NSFW / dimensions)","operationId":"admin_get_file_metadata_v1_admin_files__file_id__metadata_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/app__domains__files__schemas__MetadataOut"},{"type":"null"}],"title":"Response Admin Get File Metadata V1 Admin Files  File Id  Metadata Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["admin / files"],"summary":"Ingest extracted metadata (super_admin only; Phase A: manual)","operationId":"admin_ingest_file_metadata_v1_admin_files__file_id__metadata_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetadataIngestIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__domains__files__schemas__MetadataOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/files/{file_id}/thumbnails":{"get":{"tags":["admin / files"],"summary":"List image thumbnail variants for a file","operationId":"admin_list_thumbnails_v1_admin_files__file_id__thumbnails_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThumbnailListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["admin / files"],"summary":"Register a thumbnail variant (upsert on file_id + size)","operationId":"admin_register_thumbnail_v1_admin_files__file_id__thumbnails_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThumbnailRegisterIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThumbnailOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/files/{file_id}/video-jobs":{"get":{"tags":["admin / files"],"summary":"List video processing jobs for a file (or use ?status= filter)","operationId":"admin_list_video_jobs_v1_admin_files__file_id__video_jobs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/VideoJobStatus"},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoJobListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / files"],"summary":"Queue a new video processing job for a file","operationId":"admin_queue_video_job_v1_admin_files__file_id__video_jobs_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoJobQueueIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoJobOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/files/video-jobs/{job_id}/complete":{"post":{"tags":["admin / files"],"summary":"Record a video job completion (done | failed)","operationId":"admin_complete_video_job_v1_admin_files_video_jobs__job_id__complete_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"integer","title":"Job Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoJobCompleteIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoJobOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/files/signed-urls/audit":{"get":{"tags":["admin / files"],"summary":"Audit of pre-signed URL issuance (filter by file / admin / user)","operationId":"admin_list_signed_url_audit_v1_admin_files_signed_urls_audit_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":26},{"type":"null"}],"title":"File Id"}},{"name":"issued_to_admin_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Issued To Admin Id"}},{"name":"issued_to_user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Issued To User Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignedUrlListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/files/retention-policies":{"get":{"tags":["admin / files"],"summary":"List per-purpose retention policies","operationId":"admin_list_retention_policies_v1_admin_files_retention_policies_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetentionPolicyListOut"}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["admin / files"],"summary":"Upsert a retention policy (matched on purpose)","operationId":"admin_upsert_retention_policy_v1_admin_files_retention_policies_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetentionPolicyUpsertIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetentionPolicyOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/files/{file_id}/raw":{"get":{"tags":["files"],"summary":"Stream the raw file bytes (auth required)","operationId":"stream_file_v1_files__file_id__raw_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"responses":{"200":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/arena/competitions":{"post":{"tags":["admin / arena"],"summary":"Create a draft competition","operationId":"admin_create_comp_v1_admin_arena_competitions_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompetitionCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompetitionOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["admin / arena"],"summary":"List competitions","operationId":"admin_list_comps_v1_admin_arena_competitions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"exam_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exam Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompetitionListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/arena/competitions/{competition_id}":{"get":{"tags":["admin / arena"],"summary":"Competition detail with rounds + counts","operationId":"admin_get_comp_v1_admin_arena_competitions__competition_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"competition_id","in":"path","required":true,"schema":{"type":"integer","title":"Competition Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompetitionDetailOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["admin / arena"],"summary":"Update a draft competition","operationId":"admin_update_comp_v1_admin_arena_competitions__competition_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"competition_id","in":"path","required":true,"schema":{"type":"integer","title":"Competition Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompetitionUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompetitionOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/arena/competitions/{competition_id}/open":{"post":{"tags":["admin / arena"],"summary":"Open registrations (super_admin only)","operationId":"admin_open_comp_v1_admin_arena_competitions__competition_id__open_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"competition_id","in":"path","required":true,"schema":{"type":"integer","title":"Competition Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompetitionOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/arena/competitions/{competition_id}/cancel":{"post":{"tags":["admin / arena"],"summary":"Cancel a competition (super_admin only)","operationId":"admin_cancel_comp_v1_admin_arena_competitions__competition_id__cancel_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"competition_id","in":"path","required":true,"schema":{"type":"integer","title":"Competition Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompetitionOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/arena/competitions/{competition_id}/rounds":{"post":{"tags":["admin / arena"],"summary":"Add a round to a draft competition","operationId":"admin_add_round_v1_admin_arena_competitions__competition_id__rounds_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"competition_id","in":"path","required":true,"schema":{"type":"integer","title":"Competition Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoundCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoundOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/arena/rounds/{round_id}/open":{"post":{"tags":["admin / arena"],"summary":"Open a round (live) — super_admin only","operationId":"admin_open_round_v1_admin_arena_rounds__round_id__open_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"round_id","in":"path","required":true,"schema":{"type":"integer","title":"Round Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoundOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/arena/rounds/{round_id}/close":{"post":{"tags":["admin / arena"],"summary":"Close a round — super_admin only","operationId":"admin_close_round_v1_admin_arena_rounds__round_id__close_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"round_id","in":"path","required":true,"schema":{"type":"integer","title":"Round Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoundOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/arena/rounds/{round_id}/compute-qualifiers":{"post":{"tags":["admin / arena"],"summary":"Apply qualification rule + advance qualifiers to the next round","operationId":"admin_compute_qualifiers_v1_admin_arena_rounds__round_id__compute_qualifiers_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"round_id","in":"path","required":true,"schema":{"type":"integer","title":"Round Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComputeQualifiersOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/arena/competitions":{"get":{"tags":["student / arena"],"summary":"List visible competitions (open/running/completed)","operationId":"public_list_comps_v1_arena_competitions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCompetitionListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/arena/competitions/{competition_id}/register":{"post":{"tags":["student / arena"],"summary":"Register (free for Phase A) — competition must be in 'open' status","operationId":"public_register_v1_arena_competitions__competition_id__register_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"competition_id","in":"path","required":true,"schema":{"type":"integer","title":"Competition Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__domains__arena__schemas__RegisterOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/arena/rounds/{round_id}/start":{"post":{"tags":["student / arena"],"summary":"Start (or resume) the round attempt — creates a normal test_attempt","operationId":"public_start_round_v1_arena_rounds__round_id__start_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"round_id","in":"path","required":true,"schema":{"type":"integer","title":"Round Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartRoundOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/arena/rounds/{round_id}/result":{"get":{"tags":["student / arena"],"summary":"My round result (qualified flag is null until admin runs compute-qualifiers)","operationId":"public_round_result_v1_arena_rounds__round_id__result_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"round_id","in":"path","required":true,"schema":{"type":"integer","title":"Round Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoundResultOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/arena/me":{"get":{"tags":["student / arena"],"summary":"My competitions + next-round pointer","operationId":"public_my_competitions_v1_arena_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyCompetitionsOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/consents/purposes":{"get":{"tags":["admin / consents"],"summary":"List consent purposes (current versions by default)","operationId":"admin_list_purposes_v1_admin_consents_purposes_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"all_versions","in":"query","required":false,"schema":{"type":"boolean","description":"include retired versions","default":false,"title":"All Versions"},"description":"include retired versions"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PurposeListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / consents"],"summary":"Create a new consent purpose (super_admin only)","operationId":"admin_create_purpose_v1_admin_consents_purposes_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PurposeCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PurposeOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/consents/purposes/{purpose_id}/bump-version":{"post":{"tags":["admin / consents"],"summary":"Publish a revised version of a purpose; retires the prior version (super_admin only)","operationId":"admin_bump_version_v1_admin_consents_purposes__purpose_id__bump_version_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"purpose_id","in":"path","required":true,"schema":{"type":"integer","title":"Purpose Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PurposeBumpVersionIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PurposeOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/consents/users/{user_id}/audit":{"get":{"tags":["admin / consents"],"summary":"Per-user consent audit trail (append-only)","operationId":"admin_user_audit_v1_admin_consents_users__user_id__audit_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsentHistoryOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/consents/users/record":{"post":{"tags":["admin / consents"],"summary":"Record consent on behalf of a user (paper, parental call, court order)","operationId":"admin_record_v1_admin_consents_users_record_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminRecordConsentIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkConsentOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/consents/access-logs":{"get":{"tags":["admin / consents"],"summary":"Per-subject PII access audit (filter by subject / actor)","operationId":"admin_list_access_logs_v1_admin_consents_access_logs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"subject_user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subject User Id"}},{"name":"actor_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Actor Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessLogListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/consents/exports":{"get":{"tags":["admin / consents"],"summary":"List data export requests (filter by status)","operationId":"admin_list_exports_v1_admin_consents_exports_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ExportStatus"},{"type":"null"}],"title":"Status"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportRequestListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/consents/exports/{export_id}/claim":{"post":{"tags":["admin / consents"],"summary":"Mark queued → processing (so admins don't double-work)","operationId":"admin_claim_export_v1_admin_consents_exports__export_id__claim_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"export_id","in":"path","required":true,"schema":{"type":"integer","title":"Export Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportRequestOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/consents/exports/{export_id}/ready":{"post":{"tags":["admin / consents"],"summary":"Mark export ready (provide file_id + TTL hours; default 7 days)","operationId":"admin_mark_export_ready_v1_admin_consents_exports__export_id__ready_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"export_id","in":"path","required":true,"schema":{"type":"integer","title":"Export Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportProcessIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportRequestOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/consents/exports/{export_id}/fail":{"post":{"tags":["admin / consents"],"summary":"Mark export failed with error message","operationId":"admin_fail_export_v1_admin_consents_exports__export_id__fail_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"export_id","in":"path","required":true,"schema":{"type":"integer","title":"Export Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportFailIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportRequestOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/consents/erasures":{"get":{"tags":["admin / consents"],"summary":"List data erasure requests (filter by status)","operationId":"admin_list_erasures_v1_admin_consents_erasures_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ErasureStatus"},{"type":"null"}],"title":"Status"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErasureRequestListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/consents/erasures/{erasure_id}/review":{"post":{"tags":["admin / consents"],"summary":"Approve or reject an erasure request (super_admin only)","operationId":"admin_review_erasure_v1_admin_consents_erasures__erasure_id__review_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"erasure_id","in":"path","required":true,"schema":{"type":"integer","title":"Erasure Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErasureReviewIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErasureRequestOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/consents/erasures/{erasure_id}/execute":{"post":{"tags":["admin / consents"],"summary":"Record erasure execution (super_admin only; payload describes what was anonymised)","operationId":"admin_execute_erasure_v1_admin_consents_erasures__erasure_id__execute_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"erasure_id","in":"path","required":true,"schema":{"type":"integer","title":"Erasure Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErasureExecuteIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErasureRequestOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/consents":{"get":{"tags":["student / consents"],"summary":"My consent state across every current purpose","operationId":"my_consents_v1_me_consents_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyConsentsOut"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["student / consents"],"summary":"Bulk grant/revoke. Each item: {purpose_key, granted}. Mandatory purposes cannot be revoked.","operationId":"update_my_consents_v1_me_consents_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkConsentIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkConsentOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/consents/history":{"get":{"tags":["student / consents"],"summary":"My append-only consent history","operationId":"my_history_v1_me_consents_history_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsentHistoryOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/consents/data/exports":{"get":{"tags":["student / consents"],"summary":"My export requests (most recent first)","operationId":"me_list_exports_v1_me_consents_data_exports_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportRequestListOut"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["student / consents"],"summary":"Request an export of my data (DPDPA right-to-access; one open at a time)","operationId":"me_request_export_v1_me_consents_data_exports_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportRequestIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportRequestOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/consents/data/exports/{export_id}":{"get":{"tags":["student / consents"],"summary":"Read one of my export requests","operationId":"me_get_export_v1_me_consents_data_exports__export_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"export_id","in":"path","required":true,"schema":{"type":"integer","title":"Export Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportRequestOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/consents/data/exports/{export_id}/downloaded":{"post":{"tags":["student / consents"],"summary":"Mark my export as downloaded (called after fetching the file)","operationId":"me_mark_export_downloaded_v1_me_consents_data_exports__export_id__downloaded_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"export_id","in":"path","required":true,"schema":{"type":"integer","title":"Export Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportRequestOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/consents/data/erasures":{"get":{"tags":["student / consents"],"summary":"My erasure requests (most recent first)","operationId":"me_list_erasures_v1_me_consents_data_erasures_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErasureRequestListOut"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["student / consents"],"summary":"Request data erasure (DPDPA right-to-erasure; super_admin must approve)","operationId":"me_request_erasure_v1_me_consents_data_erasures_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErasureRequestIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErasureRequestOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/consents/data/erasures/{erasure_id}":{"get":{"tags":["student / consents"],"summary":"Read one of my erasure requests","operationId":"me_get_erasure_v1_me_consents_data_erasures__erasure_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"erasure_id","in":"path","required":true,"schema":{"type":"integer","title":"Erasure Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErasureRequestOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/notifications/email/templates":{"get":{"tags":["admin / notifications · email templates"],"summary":"List email templates","operationId":"email_list_templates_v1_admin_notifications_email_templates_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"filter by lifecycle status","title":"Status"},"description":"filter by lifecycle status"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplateListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / notifications · email templates"],"summary":"Create an email template (initial status = 'draft')","operationId":"email_create_template_v1_admin_notifications_email_templates_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTemplateCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplateOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/notifications/email/templates/{template_id}":{"get":{"tags":["admin / notifications · email templates"],"summary":"Get an email template","operationId":"email_get_template_v1_admin_notifications_email_templates__template_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"integer","title":"Template Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplateOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["admin / notifications · email templates"],"summary":"Edit an email template. Allowed in draft/rejected; in_review is read-only; approved auto-demotes to draft (requires confirm_demote_from_approved=true).","operationId":"email_update_template_v1_admin_notifications_email_templates__template_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"integer","title":"Template Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTemplateUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplateOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["admin / notifications · email templates"],"summary":"Hard-delete an email template (super_admin only). Log rows keep template_key.","operationId":"email_delete_template_v1_admin_notifications_email_templates__template_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"integer","title":"Template Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/notifications/email/templates/{template_id}/submit-for-review":{"post":{"tags":["admin / notifications · email templates"],"summary":"Submit a draft/rejected email template for review","operationId":"email_submit_v1_admin_notifications_email_templates__template_id__submit_for_review_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"integer","title":"Template Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitForReviewIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplateOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/notifications/email/templates/{template_id}/approve":{"post":{"tags":["admin / notifications · email templates"],"summary":"Approve an in_review email template (super_admin only)","operationId":"email_approve_v1_admin_notifications_email_templates__template_id__approve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"integer","title":"Template Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveTemplateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplateOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/notifications/email/templates/{template_id}/reject":{"post":{"tags":["admin / notifications · email templates"],"summary":"Reject an in_review email template — sends it back to draft (super_admin only)","operationId":"email_reject_v1_admin_notifications_email_templates__template_id__reject_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"integer","title":"Template Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RejectTemplateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplateOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/notifications/push/templates":{"get":{"tags":["admin / notifications · push templates"],"summary":"List push templates","operationId":"push_list_templates_v1_admin_notifications_push_templates_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplateListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / notifications · push templates"],"summary":"Create a push template (initial status = 'draft')","operationId":"push_create_template_v1_admin_notifications_push_templates_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PushTemplateCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplateOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/notifications/push/templates/{template_id}":{"get":{"tags":["admin / notifications · push templates"],"summary":"Get a push template","operationId":"push_get_template_v1_admin_notifications_push_templates__template_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"integer","title":"Template Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplateOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["admin / notifications · push templates"],"summary":"Edit a push template. Allowed in draft/rejected; in_review is read-only; approved auto-demotes to draft (requires confirm_demote_from_approved=true).","operationId":"push_update_template_v1_admin_notifications_push_templates__template_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"integer","title":"Template Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PushTemplateUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplateOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["admin / notifications · push templates"],"summary":"Hard-delete a push template (super_admin only). Log rows keep template_key.","operationId":"push_delete_template_v1_admin_notifications_push_templates__template_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"integer","title":"Template Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/notifications/push/templates/{template_id}/submit-for-review":{"post":{"tags":["admin / notifications · push templates"],"summary":"Submit a draft/rejected push template for review","operationId":"push_submit_v1_admin_notifications_push_templates__template_id__submit_for_review_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"integer","title":"Template Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitForReviewIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplateOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/notifications/push/templates/{template_id}/approve":{"post":{"tags":["admin / notifications · push templates"],"summary":"Approve an in_review push template (super_admin only)","operationId":"push_approve_v1_admin_notifications_push_templates__template_id__approve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"integer","title":"Template Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveTemplateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplateOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/notifications/push/templates/{template_id}/reject":{"post":{"tags":["admin / notifications · push templates"],"summary":"Reject an in_review push template (super_admin only)","operationId":"push_reject_v1_admin_notifications_push_templates__template_id__reject_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"integer","title":"Template Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RejectTemplateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplateOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/notifications/send":{"post":{"tags":["admin / notifications · send + log"],"summary":"Dispatch a notification by template_key. Template must be in 'approved' state. Channel is implicit (template's single channel).","operationId":"admin_send_v1_admin_notifications_send_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/notifications/log":{"get":{"tags":["admin / notifications · send + log"],"summary":"Notification log (filter by user/channel/status/template/correlation_id)","operationId":"admin_list_log_v1_admin_notifications_log_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"}},{"name":"channel","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"template_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Key"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"correlation_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Correlation Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/notifications/log/{log_id}":{"get":{"tags":["admin / notifications · send + log"],"summary":"Single log entry","operationId":"admin_log_detail_v1_admin_notifications_log__log_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"log_id","in":"path","required":true,"schema":{"type":"integer","title":"Log Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogItemOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/notifications/campaigns":{"get":{"tags":["admin / notifications · send + log"],"summary":"List campaigns (filter by status)","operationId":"admin_list_campaigns_v1_admin_notifications_campaigns_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/CampaignStatus"},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / notifications · send + log"],"summary":"Create a campaign (template must be approved)","operationId":"admin_create_campaign_v1_admin_notifications_campaigns_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/notifications/campaigns/{campaign_id}":{"patch":{"tags":["admin / notifications · send + log"],"summary":"Edit a draft/scheduled campaign","operationId":"admin_update_campaign_v1_admin_notifications_campaigns__campaign_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"integer","title":"Campaign Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/notifications/campaigns/{campaign_id}/targets":{"get":{"tags":["admin / notifications · send + log"],"summary":"List campaign targets (cohorts / user lists)","operationId":"admin_list_targets_v1_admin_notifications_campaigns__campaign_id__targets_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"integer","title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TargetListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / notifications · send + log"],"summary":"Add a target to a campaign (cohort_id OR user_ids)","operationId":"admin_add_target_v1_admin_notifications_campaigns__campaign_id__targets_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"integer","title":"Campaign Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TargetUpsertIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TargetOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/notifications/campaigns/{campaign_id}/start":{"post":{"tags":["admin / notifications · send + log"],"summary":"Start a campaign (resolves audience + fans out via existing notify_user path)","operationId":"admin_start_campaign_v1_admin_notifications_campaigns__campaign_id__start_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"integer","title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignStartOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/notifications/campaigns/{campaign_id}/cancel":{"post":{"tags":["admin / notifications · send + log"],"summary":"Cancel a draft/scheduled campaign","operationId":"admin_cancel_campaign_v1_admin_notifications_campaigns__campaign_id__cancel_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"integer","title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/notifications/delivery-webhooks":{"post":{"tags":["admin / notifications · send + log"],"summary":"Ingest a provider delivery webhook (mirrors terminal status onto notification_log)","operationId":"admin_ingest_webhook_v1_admin_notifications_delivery_webhooks_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookIngestIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["admin / notifications · send + log"],"summary":"List delivery webhook events (filter by log id / kind)","operationId":"admin_list_webhooks_v1_admin_notifications_delivery_webhooks_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"notification_log_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Notification Log Id"}},{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DeliveryEventKind"},{"type":"null"}],"title":"Kind"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/notifications/providers":{"get":{"tags":["admin / notifications · send + log"],"summary":"List provider configs (credentials are NOT exposed)","operationId":"admin_list_providers_v1_admin_notifications_providers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderConfigListOut"}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["admin / notifications · send + log"],"summary":"Upsert a provider config (super_admin only)","operationId":"admin_upsert_provider_v1_admin_notifications_providers_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderConfigUpsertIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderConfigOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/notifications/providers/{provider}/health":{"post":{"tags":["admin / notifications · send + log"],"summary":"Set health status for a provider","operationId":"admin_set_provider_health_v1_admin_notifications_providers__provider__health_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"provider","in":"path","required":true,"schema":{"$ref":"#/components/schemas/ProviderKind"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderHealthIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderConfigOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/notifications/dlt-templates":{"get":{"tags":["admin / notifications · send + log"],"summary":"List DLT registrations (filter by template_key)","operationId":"admin_list_dlt_v1_admin_notifications_dlt_templates_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Template Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DltTemplateListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["admin / notifications · send + log"],"summary":"Upsert a DLT registration (editing resets to `pending`)","operationId":"admin_upsert_dlt_v1_admin_notifications_dlt_templates_put","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DltTemplateUpsertIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DltTemplateOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/notifications/dlt-templates/{dlt_id}/decide":{"post":{"tags":["admin / notifications · send + log"],"summary":"Approve / reject / suspend a DLT registration","operationId":"admin_approve_dlt_v1_admin_notifications_dlt_templates__dlt_id__decide_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dlt_id","in":"path","required":true,"schema":{"type":"integer","title":"Dlt Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DltApproveIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DltTemplateOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/push-tokens":{"get":{"tags":["student / notifications"],"summary":"My active push tokens","operationId":"my_list_push_v1_me_push_tokens_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PushTokenListOut"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["student / notifications"],"summary":"Register (or refresh) my device's FCM push token","operationId":"my_register_push_v1_me_push_tokens_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterPushTokenIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PushTokenOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/push-tokens/{token_id}":{"delete":{"tags":["student / notifications"],"summary":"Revoke a push token","operationId":"my_revoke_push_v1_me_push_tokens__token_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"integer","title":"Token Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/notifications/preferences":{"get":{"tags":["student / notifications"],"summary":"My per-category mute preferences","operationId":"my_prefs_v1_me_notifications_preferences_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreferenceListOut"}}}}},"security":[{"HTTPBearer":[]}]},"patch":{"tags":["student / notifications"],"summary":"Mute/unmute one notification category","operationId":"my_update_pref_v1_me_notifications_preferences_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreferenceUpdateIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreferenceOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/notifications":{"get":{"tags":["student / notifications"],"summary":"My notification history (across all channels)","operationId":"my_feed_v1_me_notifications_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyNotificationListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/notifications/unsubscribes":{"get":{"tags":["student / notifications"],"summary":"My active unsubscribes (per category)","operationId":"me_list_unsubs_v1_me_notifications_unsubscribes_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnsubscribeListOut"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["student / notifications"],"summary":"Unsubscribe from a category (global; bypasses consent & mute checks at send time)","operationId":"me_unsubscribe_v1_me_notifications_unsubscribes_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnsubscribeIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnsubscribeOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/notifications/unsubscribes/{category}":{"delete":{"tags":["student / notifications"],"summary":"Re-subscribe to a category","operationId":"me_resubscribe_v1_me_notifications_unsubscribes__category__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"category","in":"path","required":true,"schema":{"$ref":"#/components/schemas/NotifCategory"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/kyc/queue":{"get":{"tags":["admin / kyc"],"summary":"KYC review queue (default: in_review + submitted, newest first)","operationId":"admin_queue_v1_admin_kyc_queue_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"status filter; omit for everything","title":"Status"},"description":"status filter; omit for everything"},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__domains__kyc__schemas__QueueListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/kyc/attempts/{attempt_id}":{"get":{"tags":["admin / kyc"],"summary":"KYC attempt detail (with docs)","operationId":"admin_attempt_detail_v1_admin_kyc_attempts__attempt_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"attempt_id","in":"path","required":true,"schema":{"type":"integer","title":"Attempt Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KycAttemptOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/kyc/attempts/{attempt_id}/verify":{"post":{"tags":["admin / kyc"],"summary":"Verify a submitted/in_review attempt (senior_reviewer / super_admin)","operationId":"admin_verify_v1_admin_kyc_attempts__attempt_id__verify_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"attempt_id","in":"path","required":true,"schema":{"type":"integer","title":"Attempt Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KycAttemptOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/kyc/attempts/{attempt_id}/reject":{"post":{"tags":["admin / kyc"],"summary":"Reject — student can submit a new attempt (senior_reviewer / super_admin)","operationId":"admin_reject_v1_admin_kyc_attempts__attempt_id__reject_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"attempt_id","in":"path","required":true,"schema":{"type":"integer","title":"Attempt Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RejectIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KycAttemptOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/kyc/users/{user_id}/history":{"get":{"tags":["admin / kyc"],"summary":"Full KYC history for one user","operationId":"admin_user_history_v1_admin_kyc_users__user_id__history_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__domains__kyc__schemas__QueueListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/kyc":{"get":{"tags":["student / kyc"],"summary":"My KYC snapshot — current status, latest attempt, history","operationId":"me_get_kyc_v1_me_kyc_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyKycOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/kyc/attempts":{"post":{"tags":["student / kyc"],"summary":"Start a new KYC attempt (status='submitted'). Upload docs next, then /submit.","operationId":"me_start_kyc_v1_me_kyc_attempts_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartKycIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartKycOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/kyc/attempts/{attempt_id}/documents":{"post":{"tags":["student / kyc"],"summary":"Upload a KYC document (multipart: 'file' + 'doc_type'). Idempotent per doc_type.","operationId":"me_upload_doc_v1_me_kyc_attempts__attempt_id__documents_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"attempt_id","in":"path","required":true,"schema":{"type":"integer","title":"Attempt Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_me_upload_doc_v1_me_kyc_attempts__attempt_id__documents_post"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadDocOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/kyc/attempts/{attempt_id}/submit":{"post":{"tags":["student / kyc"],"summary":"Submit attempt for admin review (status → in_review). Requires all required docs uploaded.","operationId":"me_submit_attempt_v1_me_kyc_attempts__attempt_id__submit_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"attempt_id","in":"path","required":true,"schema":{"type":"integer","title":"Attempt Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__domains__kyc__schemas__SubmitOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/money/disbursements/scholarship/{grant_id}":{"post":{"tags":["admin / money"],"summary":"Create a disbursement attempt for an approved scholarship grant (KYC-gated)","operationId":"admin_create_disbursement_v1_admin_money_disbursements_scholarship__grant_id__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"grant_id","in":"path","required":true,"schema":{"type":"integer","title":"Grant Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDisbursementIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DisbursementOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/money/disbursements/{id}/mark-processing":{"post":{"tags":["admin / money"],"summary":"Move queued → processing","operationId":"admin_mark_processing_v1_admin_money_disbursements__id__mark_processing_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","title":"Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarkProcessingIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DisbursementOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/money/disbursements/{id}/mark-sent":{"post":{"tags":["admin / money"],"summary":"Record bank UTR / provider txn id (status → sent)","operationId":"admin_mark_sent_v1_admin_money_disbursements__id__mark_sent_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","title":"Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarkSentIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DisbursementOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/money/disbursements/{id}/mark-succeeded":{"post":{"tags":["admin / money"],"summary":"Confirm bank credit (status → succeeded; grant → paid; ledger + escrow + notif)","operationId":"admin_mark_succeeded_v1_admin_money_disbursements__id__mark_succeeded_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","title":"Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarkSucceededIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DisbursementOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/money/disbursements/{id}/mark-failed":{"post":{"tags":["admin / money"],"summary":"Bank declined (grant reverts to 'approved' for retry)","operationId":"admin_mark_failed_v1_admin_money_disbursements__id__mark_failed_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","title":"Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarkFailedIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DisbursementOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/money/disbursements/{id}/reverse":{"post":{"tags":["admin / money"],"summary":"Clawback after success (super_admin only; reverses ledger + grant)","operationId":"admin_reverse_v1_admin_money_disbursements__id__reverse_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","title":"Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReverseIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DisbursementOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/money/disbursements":{"get":{"tags":["admin / money"],"summary":"List grant disbursements","operationId":"admin_list_disbursements_v1_admin_money_disbursements_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"grant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Grant Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DisbursementListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/money/disbursements/{id}":{"get":{"tags":["admin / money"],"summary":"Get one disbursement","operationId":"admin_get_disbursement_v1_admin_money_disbursements__id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DisbursementOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/money/accounts/{user_id}":{"get":{"tags":["admin / money"],"summary":"Per-user materialised balance","operationId":"admin_get_account_v1_admin_money_accounts__user_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningAccountOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/money/ledger":{"get":{"tags":["admin / money"],"summary":"Append-only ledger across all users (filter by reason)","operationId":"admin_list_ledger_v1_admin_money_ledger_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"reason","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LedgerListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/money/users/{user_id}/ledger":{"get":{"tags":["admin / money"],"summary":"Per-user ledger entries (debit + credit history)","operationId":"admin_user_ledger_v1_admin_money_users__user_id__ledger_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LedgerListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/money/gateways":{"get":{"tags":["admin / money"],"summary":"List payment gateways + their health","operationId":"admin_list_gateways_v1_admin_money_gateways_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayListOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/money/gateways/{slug}":{"put":{"tags":["admin / money"],"summary":"Register / update a gateway's primary flag (super_admin only)","operationId":"admin_upsert_gateway_v1_admin_money_gateways__slug__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"is_primary","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Is Primary"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/money/gateways/{slug}/circuit-breaker":{"post":{"tags":["admin / money"],"summary":"Open or close a gateway's circuit breaker (super_admin only)","operationId":"admin_toggle_breaker_v1_admin_money_gateways__slug__circuit_breaker_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"open_breaker","in":"query","required":true,"schema":{"type":"boolean","title":"Open Breaker"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/money/payments":{"get":{"tags":["admin / money"],"summary":"List payments","operationId":"admin_list_payments_v1_admin_money_payments_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/money/refunds":{"get":{"tags":["admin / money"],"summary":"List refunds","operationId":"admin_list_refunds_v1_admin_money_refunds_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"payment_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Payment Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefundListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/money/chargebacks":{"get":{"tags":["admin / money"],"summary":"List chargebacks","operationId":"admin_list_chargebacks_v1_admin_money_chargebacks_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChargebackListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/money/settlements":{"get":{"tags":["admin / money"],"summary":"List settlements","operationId":"admin_list_settlements_v1_admin_money_settlements_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/money/escrow":{"get":{"tags":["admin / money"],"summary":"List escrow movements","operationId":"admin_list_escrow_v1_admin_money_escrow_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EscrowListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/money/bundle-purchases":{"get":{"tags":["admin / money"],"summary":"List bundle purchase events","operationId":"admin_list_bundles_v1_admin_money_bundle_purchases_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BundlePurchaseListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/money/credit-grants":{"get":{"tags":["admin / money"],"summary":"Audit of test-credit add/consume events","operationId":"admin_list_credit_grants_v1_admin_money_credit_grants_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditGrantListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/money/account":{"get":{"tags":["student / money"],"summary":"My materialised balance","operationId":"my_account_v1_me_money_account_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningAccountOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/money/ledger":{"get":{"tags":["student / money"],"summary":"My ledger entries","operationId":"my_ledger_v1_me_money_ledger_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LedgerListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/money/disbursements":{"get":{"tags":["student / money"],"summary":"My scholarship disbursements","operationId":"my_disbursements_v1_me_money_disbursements_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DisbursementListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/money/saved-methods":{"get":{"tags":["student / money"],"summary":"My saved one-click payment methods","operationId":"my_saved_methods_v1_me_money_saved_methods_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedMethodListOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/tax/hsn-codes":{"get":{"tags":["admin / tax"],"summary":"List HSN codes","operationId":"admin_list_hsn_v1_admin_tax_hsn_codes_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HsnCodeListOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/tax/hsn-codes/{code}":{"put":{"tags":["admin / tax"],"summary":"Upsert an HSN code (super_admin only)","operationId":"admin_upsert_hsn_v1_admin_tax_hsn_codes__code__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string","title":"Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HsnCodeIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HsnCodeOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/tax/tds":{"get":{"tags":["admin / tax"],"summary":"List TDS rows (filter by user_id / financial_year)","operationId":"admin_list_tds_v1_admin_tax_tds_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"}},{"name":"financial_year","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Financial Year"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdsListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / tax"],"summary":"Record a manual TDS (vendor payout / professional fees / etc.)","operationId":"admin_record_manual_tds_v1_admin_tax_tds_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordTdsManualIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdsRowOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/tax/tds/{tds_id}":{"patch":{"tags":["admin / tax"],"summary":"Update TDS row — typically to add challan_ref + paid_to_govt_at","operationId":"admin_update_tds_v1_admin_tax_tds__tds_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tds_id","in":"path","required":true,"schema":{"type":"integer","title":"Tds Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTdsIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdsRowOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/tax/gst-invoices":{"get":{"tags":["admin / tax"],"summary":"List GST invoices (populated when paid tests/bundles land)","operationId":"admin_list_gst_invoices_v1_admin_tax_gst_invoices_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GstInvoiceListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/tax/gst-returns":{"get":{"tags":["admin / tax"],"summary":"List GST returns (admin filing log)","operationId":"admin_list_gst_returns_v1_admin_tax_gst_returns_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GstReturnListOut"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["admin / tax"],"summary":"Create a GST return draft","operationId":"admin_create_gst_return_v1_admin_tax_gst_returns_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GstReturnCreateIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GstReturnOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/tax/gst-returns/{return_id}/mark-filed":{"post":{"tags":["admin / tax"],"summary":"Mark a draft GST return as filed (records acknowledgement_no)","operationId":"admin_mark_filed_v1_admin_tax_gst_returns__return_id__mark_filed_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"return_id","in":"path","required":true,"schema":{"type":"integer","title":"Return Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GstReturnFileIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GstReturnOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/tax/form-16a":{"get":{"tags":["admin / tax"],"summary":"List all Form 16A records","operationId":"admin_list_form_16a_v1_admin_tax_form_16a_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Form16AListOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/tax/form-16a/generate":{"post":{"tags":["admin / tax"],"summary":"Generate/refresh a user's Form 16A for an FY (sums their TDS rows)","operationId":"admin_generate_form_16a_v1_admin_tax_form_16a_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateForm16AIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Form16AOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/tax/audit-logs":{"get":{"tags":["admin / tax"],"summary":"External auditor reports","operationId":"admin_list_audit_logs_v1_admin_tax_audit_logs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaxAuditLogListOut"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["admin / tax"],"summary":"Record an external auditor's report (super_admin only)","operationId":"admin_record_audit_v1_admin_tax_audit_logs_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaxAuditLogIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaxAuditLogOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/tax/form-16a":{"get":{"tags":["student / tax"],"summary":"My Form 16A certificates (one per FY)","operationId":"me_form_16a_v1_me_tax_form_16a_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyForm16AListOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/tax/tds":{"get":{"tags":["student / tax"],"summary":"My TDS records (with current-FY total)","operationId":"me_tds_v1_me_tax_tds_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"financial_year","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Financial Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyTdsListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/audit/logs":{"get":{"tags":["admin / audit"],"summary":"Query the audit_logs spine. Filter by actor, entity, action, severity, time range. Cursor pagination.","operationId":"admin_list_logs_v1_admin_audit_logs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"actor_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Actor Type"}},{"name":"actor_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Actor Id"}},{"name":"action","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Action"}},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type"}},{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id"}},{"name":"severity","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Severity"}},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Since"}},{"name":"until","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Until"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditLogListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/audit/logs/{log_id}":{"get":{"tags":["admin / audit"],"summary":"Get a single audit log entry","operationId":"admin_log_detail_v1_admin_audit_logs__log_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"log_id","in":"path","required":true,"schema":{"type":"string","title":"Log Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditLogOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/audit/users/{user_id}/timeline":{"get":{"tags":["admin / audit"],"summary":"All audit_logs where actor_id == user_id (or entity refers to this user)","operationId":"admin_user_timeline_v1_admin_audit_users__user_id__timeline_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditLogListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/audit/entities/{entity_type}/{entity_id}/history":{"get":{"tags":["admin / audit"],"summary":"All audit_logs for one entity","operationId":"admin_entity_history_v1_admin_audit_entities__entity_type___entity_id__history_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"entity_type","in":"path","required":true,"schema":{"type":"string","title":"Entity Type"}},{"name":"entity_id","in":"path","required":true,"schema":{"type":"string","title":"Entity Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditLogListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/audit/admin-actions":{"post":{"tags":["admin / audit"],"summary":"Record a high-risk admin action (specialised audit row)","operationId":"admin_create_admin_action_v1_admin_audit_admin_actions_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminActionRecordIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminActionOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["admin / audit"],"summary":"List high-risk admin actions","operationId":"admin_list_admin_actions_v1_admin_audit_admin_actions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"actor_admin_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Actor Admin Id"}},{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kind"}},{"name":"entity_ref_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Ref Type"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminActionListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/audit/four-eye":{"post":{"tags":["admin / audit"],"summary":"Raise a second-approver request (24h TTL)","operationId":"admin_create_four_eye_v1_admin_audit_four_eye_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FourEyeCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FourEyeOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["admin / audit"],"summary":"List approval requests","operationId":"admin_list_four_eye_v1_admin_audit_four_eye_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"request_kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Kind"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FourEyeListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/audit/four-eye/{approval_id}/approve":{"post":{"tags":["admin / audit"],"summary":"Co-approve a pending request (must differ from requester)","operationId":"admin_approve_four_eye_v1_admin_audit_four_eye__approval_id__approve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"integer","title":"Approval Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FourEyeDecideIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FourEyeOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/audit/four-eye/{approval_id}/reject":{"post":{"tags":["admin / audit"],"summary":"Reject a pending request (must differ from requester)","operationId":"admin_reject_four_eye_v1_admin_audit_four_eye__approval_id__reject_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"integer","title":"Approval Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FourEyeDecideIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FourEyeOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/audit/security-events":{"post":{"tags":["admin / audit"],"summary":"Record a security event (manual entry; auto-detection lands in Phase B)","operationId":"admin_record_sec_event_v1_admin_audit_security_events_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecurityEventRecordIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecurityEventOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["admin / audit"],"summary":"List security events","operationId":"admin_list_sec_events_v1_admin_audit_security_events_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kind"}},{"name":"severity","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Severity"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecurityEventListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/audit/breaches":{"get":{"tags":["admin / audit"],"summary":"List recorded breaches","operationId":"admin_list_breaches_v1_admin_audit_breaches_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BreachListOut"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["admin / audit"],"summary":"Record a data-breach notification (super_admin only)","operationId":"admin_create_breach_v1_admin_audit_breaches_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BreachCreateIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BreachOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/audit/breaches/{breach_id}":{"patch":{"tags":["admin / audit"],"summary":"Update breach status / mitigation / authority-notified timestamp","operationId":"admin_update_breach_v1_admin_audit_breaches__breach_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"breach_id","in":"path","required":true,"schema":{"type":"integer","title":"Breach Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BreachUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BreachOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/audit/compliance-reviews":{"get":{"tags":["admin / audit"],"summary":"List compliance reviews","operationId":"admin_list_compliance_v1_admin_audit_compliance_reviews_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComplianceReviewListOut"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["admin / audit"],"summary":"Record a compliance review (super_admin only)","operationId":"admin_create_compliance_review_v1_admin_audit_compliance_reviews_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComplianceReviewIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComplianceReviewOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/uni/auth/login":{"post":{"tags":["university"],"summary":"Step 1: email + password → email OTP challenge","operationId":"uni_login_v1_uni_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UniLoginIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UniLoginChallengeOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/uni/auth/login/verify":{"post":{"tags":["university"],"summary":"Step 2: verify email OTP → issue tokens","operationId":"uni_login_verify_endpoint_v1_uni_auth_login_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UniLoginVerifyIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UniLoginVerifyOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/uni/auth/login/resend":{"post":{"tags":["university"],"summary":"Resend the email OTP for an in-progress challenge_id","operationId":"uni_login_resend_v1_uni_auth_login_resend_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UniLoginResendIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UniLoginChallengeOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/uni/auth/forgot":{"post":{"tags":["university"],"summary":"Send a set-password link if the email belongs to a uni user","operationId":"uni_forgot_v1_uni_auth_forgot_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForgotPasswordIn"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/uni/auth/set-password":{"post":{"tags":["university"],"summary":"Consume a set-password token (initial setup or reset)","operationId":"uni_set_password_endpoint_v1_uni_auth_set_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetPasswordIn"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/uni/auth/logout":{"post":{"tags":["university"],"summary":"Logout uni session","operationId":"uni_logout_v1_uni_auth_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogoutOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/uni/me":{"get":{"tags":["university"],"summary":"Current uni user (whoami) + tenant context","operationId":"uni_me_v1_uni_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UniMeOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/uni/users":{"get":{"tags":["university"],"summary":"List colleagues at your university","operationId":"list_uni_users_endpoint_v1_uni_users_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UniUserOut"},"type":"array","title":"Response List Uni Users Endpoint V1 Uni Users Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["university"],"summary":"Invite a new uni colleague (uni_admin only)","operationId":"invite_uni_user_v1_uni_users_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UniInviteUserIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UniUserCreatedOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/uni/users/{user_id}":{"patch":{"tags":["university"],"summary":"Change role/status of a uni colleague (uni_admin only)","operationId":"update_uni_user_endpoint_v1_uni_users__user_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UniUpdateUserIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UniUserOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["university"],"summary":"Soft-delete a uni colleague (uni_admin only)","operationId":"delete_uni_user_endpoint_v1_uni_users__user_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/uni/discovery/search":{"post":{"tags":["university / discovery"],"summary":"Search the masked-aspirant index by exam, score band, rank band, and region","operationId":"uni_discovery_search_v1_uni_discovery_search_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchFilters"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResultsOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/uni/discovery/profiles/{masked_id}":{"get":{"tags":["university / discovery"],"summary":"View one masked aspirant profile (writes a university_views audit row)","operationId":"uni_view_profile_v1_uni_discovery_profiles__masked_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"masked_id","in":"path","required":true,"schema":{"type":"string","title":"Masked Id"}},{"name":"via","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ViewedVia","default":"discovery"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileViewOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/uni/discovery/intros":{"post":{"tags":["university / discovery"],"summary":"Send an intro request to an aspirant (14-day default expiry)","operationId":"uni_create_intro_v1_uni_discovery_intros_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntroCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntroOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["university / discovery"],"summary":"List intros sent by your university","operationId":"uni_list_intros_v1_uni_discovery_intros_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/IntroStatus"},{"type":"null"}],"title":"Status"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntroListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/discovery/profile":{"get":{"tags":["student / discovery"],"summary":"My discovery profile (null until uni_discovery consent is granted)","operationId":"me_discovery_profile_v1_me_discovery_profile_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/MyDiscoveryProfileOut"},{"type":"null"}],"title":"Response Me Discovery Profile V1 Me Discovery Profile Get"}}}}},"security":[{"HTTPBearer":[]}]},"delete":{"tags":["student / discovery"],"summary":"Withdraw my profile from discovery (also revoke the consent for permanence)","operationId":"me_delete_profile_v1_me_discovery_profile_delete","responses":{"204":{"description":"Successful Response"}},"security":[{"HTTPBearer":[]}]}},"/v1/me/discovery/profile/refresh":{"post":{"tags":["student / discovery"],"summary":"Manually recompute my discovery score/rank bands (rate-limited soon)","operationId":"me_refresh_profile_v1_me_discovery_profile_refresh_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyDiscoveryProfileOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/discovery/intros":{"get":{"tags":["student / discovery"],"summary":"List intros sent to me by universities","operationId":"me_list_intros_v1_me_discovery_intros_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/IntroStatus"},{"type":"null"}],"title":"Status"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntroListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/discovery/intros/{intro_id}":{"get":{"tags":["student / discovery"],"summary":"Read the (decrypted) message body of an intro sent to me","operationId":"me_get_intro_message_v1_me_discovery_intros__intro_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"intro_id","in":"path","required":true,"schema":{"type":"integer","title":"Intro Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntroMessageOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/discovery/intros/{intro_id}/accept":{"post":{"tags":["student / discovery"],"summary":"Accept an intro and choose which optional PII to unmask","operationId":"me_accept_intro_v1_me_discovery_intros__intro_id__accept_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"intro_id","in":"path","required":true,"schema":{"type":"integer","title":"Intro Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntroAcceptIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntroOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/discovery/intros/{intro_id}/decline":{"post":{"tags":["student / discovery"],"summary":"Decline an intro","operationId":"me_decline_intro_v1_me_discovery_intros__intro_id__decline_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"intro_id","in":"path","required":true,"schema":{"type":"integer","title":"Intro Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntroOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/discovery/views":{"get":{"tags":["student / discovery"],"summary":"Who at which universities viewed my profile (DPDPA access log)","operationId":"me_view_audit_v1_me_discovery_views_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyViewAuditOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/discovery/stats":{"get":{"tags":["admin / discovery"],"summary":"Discovery snapshot stats (last 7 days)","operationId":"admin_discovery_stats_v1_admin_discovery_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminDiscoveryStatsOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/discovery/refresh":{"post":{"tags":["admin / discovery"],"summary":"Recompute discovery profile rows (omit user_ids → all consenting profiles)","operationId":"admin_refresh_profiles_v1_admin_discovery_refresh_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminRefreshIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminRefreshOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/discovery/views":{"get":{"tags":["admin / discovery"],"summary":"Global DPDPA view audit (paginated by ULID)","operationId":"admin_views_audit_v1_admin_discovery_views_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminViewAuditOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/proctor/sessions/start":{"post":{"tags":["student / proctoring"],"summary":"Start a proctoring session for an in-progress test attempt","operationId":"me_start_session_v1_me_proctor_sessions_start_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionStartIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionStartOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/proctor/sessions/{session_id}/events":{"post":{"tags":["student / proctoring"],"summary":"Batch-ingest proctoring events (max 500 per call)","operationId":"me_ingest_events_v1_me_proctor_sessions__session_id__events_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventBatchIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventBatchOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/proctor/sessions/{session_id}/chunks/video":{"post":{"tags":["student / proctoring"],"summary":"Register a video chunk (file already uploaded via /files)","operationId":"me_register_video_chunk_v1_me_proctor_sessions__session_id__chunks_video_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChunkRegisterIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChunkOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/proctor/sessions/{session_id}/chunks/audio":{"post":{"tags":["student / proctoring"],"summary":"Register an audio chunk (file already uploaded via /files)","operationId":"me_register_audio_chunk_v1_me_proctor_sessions__session_id__chunks_audio_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChunkRegisterIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChunkOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/proctor/sessions/{session_id}/heartbeat":{"post":{"tags":["student / proctoring"],"summary":"Client liveness ping (also recorded as a proctoring_event)","operationId":"me_heartbeat_v1_me_proctor_sessions__session_id__heartbeat_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HeartbeatIn"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/proctor/sessions/{session_id}/end":{"post":{"tags":["student / proctoring"],"summary":"End the proctoring session (runs auto-decision, may enqueue review)","operationId":"me_end_session_v1_me_proctor_sessions__session_id__end_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionEndIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionEndOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/proctor/sessions/{session_id}":{"get":{"tags":["student / proctoring"],"summary":"Read my proctoring session summary","operationId":"me_get_session_v1_me_proctor_sessions__session_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/proctor/appeals":{"post":{"tags":["student / proctoring"],"summary":"File an appeal against a disqualification (within 72 hours)","operationId":"me_create_appeal_v1_me_proctor_appeals_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppealCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppealOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["student / proctoring"],"summary":"List my appeals","operationId":"me_list_appeals_v1_me_proctor_appeals_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppealListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/proctor/queue":{"get":{"tags":["admin / proctoring"],"summary":"Review queue (open entries, ordered by priority + SLA)","operationId":"admin_list_queue_v1_admin_proctor_queue_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"priority","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ReviewPriority"},{"type":"null"}],"title":"Priority"}},{"name":"assigned_to_admin_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Assigned To Admin Id"}},{"name":"only_unassigned","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Only Unassigned"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__domains__proctoring__schemas__QueueListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/proctor/queue/{session_id}/claim":{"post":{"tags":["admin / proctoring"],"summary":"Claim a queue entry (senior_reviewer / super_admin)","operationId":"admin_claim_queue_entry_v1_admin_proctor_queue__session_id__claim_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueClaimOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/proctor/queue/{session_id}/decide":{"post":{"tags":["admin / proctoring"],"summary":"Decide a queue entry (clean / warning / disqualified)","operationId":"admin_decide_queue_entry_v1_admin_proctor_queue__session_id__decide_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueDecideIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueEntryOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/proctor/sessions/{session_id}":{"get":{"tags":["admin / proctoring"],"summary":"Full reviewer view: session + events + scores + chunks + decisions + appeal","operationId":"admin_session_detail_v1_admin_proctor_sessions__session_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionDetailOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/proctor/sessions/{session_id}/events":{"get":{"tags":["admin / proctoring"],"summary":"Paginated events for a session","operationId":"admin_list_session_events_v1_admin_proctor_sessions__session_id__events_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":2000,"minimum":1,"default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__domains__proctoring__schemas__EventListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/proctor/sessions/{session_id}/decisions":{"post":{"tags":["admin / proctoring"],"summary":"Free-form decision ledger entry (escalations, post-review notes)","operationId":"admin_record_decision_v1_admin_proctor_sessions__session_id__decisions_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DecisionInAdmin"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DecisionOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/proctor/sessions/{session_id}/anomaly-scores":{"post":{"tags":["admin / proctoring"],"summary":"Ingest an ML anomaly score (manual in Phase A; ML pipeline in Phase B)","operationId":"admin_ingest_anomaly_score_v1_admin_proctor_sessions__session_id__anomaly_scores_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnomalyScoreIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnomalyScoreOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/proctor/models":{"get":{"tags":["admin / proctoring"],"summary":"List ML models (proctor + others)","operationId":"admin_list_models_v1_admin_proctor_models_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/MlModelKind"},{"type":"null"}],"title":"Kind"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MlModelListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / proctoring"],"summary":"Register a new ML model","operationId":"admin_create_model_v1_admin_proctor_models_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MlModelCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MlModelOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/proctor/models/{model_id}":{"patch":{"tags":["admin / proctoring"],"summary":"Update bundle / metadata / promote / deprecate an ML model","operationId":"admin_update_model_v1_admin_proctor_models__model_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"model_id","in":"path","required":true,"schema":{"type":"integer","title":"Model Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MlModelUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MlModelOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/proctor/models/{model_id}/versions":{"get":{"tags":["admin / proctoring"],"summary":"List versions of an ML model","operationId":"admin_list_model_versions_v1_admin_proctor_models__model_id__versions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"model_id","in":"path","required":true,"schema":{"type":"integer","title":"Model Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MlVersionListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / proctoring"],"summary":"Append a new version (optionally promote, which demotes the prior live)","operationId":"admin_create_model_version_v1_admin_proctor_models__model_id__versions_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"model_id","in":"path","required":true,"schema":{"type":"integer","title":"Model Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MlVersionCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MlVersionOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/proctor/automation":{"get":{"tags":["admin / proctoring"],"summary":"Read the global proctor automation settings (singleton)","operationId":"admin_get_automation_v1_admin_proctor_automation_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutomationSettingsOut"}}}}},"security":[{"HTTPBearer":[]}]},"patch":{"tags":["admin / proctoring"],"summary":"Update proctor automation knobs (super_admin only; PATCH semantics)","operationId":"admin_update_automation_v1_admin_proctor_automation_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutomationSettingsUpdateIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutomationSettingsOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/proctor/rules":{"get":{"tags":["admin / proctoring"],"summary":"List proctor rules (priority ASC). Set ?enabled=true to filter.","operationId":"admin_list_rules_v1_admin_proctor_rules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"enabled","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Enabled"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / proctoring"],"summary":"Create a new proctor rule (super_admin only)","operationId":"admin_create_rule_v1_admin_proctor_rules_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/proctor/rules/{rule_id}":{"patch":{"tags":["admin / proctoring"],"summary":"Edit any field of a rule (PATCH semantics; super_admin only)","operationId":"admin_update_rule_v1_admin_proctor_rules__rule_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"integer","title":"Rule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["admin / proctoring"],"summary":"Hard-delete a rule (super_admin only)","operationId":"admin_delete_rule_v1_admin_proctor_rules__rule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"integer","title":"Rule Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/proctor/modules":{"get":{"tags":["admin / proctoring"],"summary":"Per-module proctoring on/off + default level (always returns all 3 modules)","operationId":"admin_list_module_settings_v1_admin_proctor_modules_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModuleSettingsListOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/proctor/modules/{module}":{"patch":{"tags":["admin / proctoring"],"summary":"Toggle proctoring for a module + set defaults (super_admin only)","operationId":"admin_update_module_settings_v1_admin_proctor_modules__module__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"module","in":"path","required":true,"schema":{"$ref":"#/components/schemas/ProctoredModule"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModuleSettingsUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModuleSettingsOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/proctor/appeals":{"get":{"tags":["admin / proctoring"],"summary":"List proctor appeals (filter by decided/undecided)","operationId":"admin_list_appeals_v1_admin_proctor_appeals_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"decided","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Decided"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppealListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/proctor/appeals/{appeal_id}/decide":{"post":{"tags":["admin / proctoring"],"summary":"Decide an appeal (reinstated = revert disqualification on the attempt)","operationId":"admin_decide_appeal_v1_admin_proctor_appeals__appeal_id__decide_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"appeal_id","in":"path","required":true,"schema":{"type":"integer","title":"Appeal Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppealDecideIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppealOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/support/kb":{"get":{"tags":["student / support"],"summary":"List published knowledge-base articles (anonymous-OK)","operationId":"public_list_kb_v1_support_kb_get","parameters":[{"name":"category_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Category Id"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":2,"maxLength":100},{"type":"null"}],"title":"Search"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KbListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/support/kb/{slug}":{"get":{"tags":["student / support"],"summary":"Read a published KB article by slug","operationId":"public_get_kb_v1_support_kb__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KbArticleOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/support/faq":{"get":{"tags":["student / support"],"summary":"List published FAQ entries (anonymous-OK)","operationId":"public_list_faq_v1_support_faq_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}],"title":"Category"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FaqListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/support/categories":{"get":{"tags":["student / support"],"summary":"List active ticket categories (used when filing a ticket)","operationId":"public_list_categories_v1_support_categories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CategoryListOut"}}}}}}},"/v1/support/grievance":{"post":{"tags":["student / support"],"summary":"File a grievance (IT Rules 2021 §3.H6 · 7-day SLA · anonymous OK)","operationId":"public_create_grievance_v1_support_grievance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrievanceCreateIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrievanceOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/support/tickets":{"get":{"tags":["student / support"],"summary":"List my support tickets","operationId":"me_list_tickets_v1_me_support_tickets_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"only_open","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Only Open"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["student / support"],"summary":"File a new support ticket","operationId":"me_create_ticket_v1_me_support_tickets_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/support/tickets/{ticket_id}":{"get":{"tags":["student / support"],"summary":"Read one of my tickets","operationId":"me_get_ticket_v1_me_support_tickets__ticket_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"integer","title":"Ticket Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/support/tickets/{ticket_id}/replies":{"get":{"tags":["student / support"],"summary":"Read the conversation log (internal admin notes are hidden)","operationId":"me_list_replies_v1_me_support_tickets__ticket_id__replies_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"integer","title":"Ticket Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketRepliesOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["student / support"],"summary":"Reply to my ticket","operationId":"me_reply_v1_me_support_tickets__ticket_id__replies_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"integer","title":"Ticket Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketReplyIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketReplyOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/support/tickets/{ticket_id}/reopen":{"post":{"tags":["student / support"],"summary":"Reopen a resolved/closed ticket of mine","operationId":"me_reopen_ticket_v1_me_support_tickets__ticket_id__reopen_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"integer","title":"Ticket Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketReopenIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/support/tickets/{ticket_id}/csat":{"post":{"tags":["student / support"],"summary":"Submit a CSAT score (1–5) on a resolved/closed ticket","operationId":"me_submit_csat_v1_me_support_tickets__ticket_id__csat_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"integer","title":"Ticket Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketCsatIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/support/surveys":{"post":{"tags":["student / support"],"summary":"Submit a generic survey (post-test/post-arena/post-grant/etc.)","operationId":"me_submit_survey_v1_me_support_surveys_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveySubmitIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/support/kb/{article_id}/vote":{"post":{"tags":["student / support"],"summary":"Vote on a KB article (helpful or not)","operationId":"public_vote_kb_v1_support_kb__article_id__vote_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"article_id","in":"path","required":true,"schema":{"type":"integer","title":"Article Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KbVoteIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KbArticleOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/support/categories":{"get":{"tags":["admin / support + grievance"],"summary":"List ticket categories (admin)","operationId":"admin_list_categories_v1_admin_support_categories_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Active Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CategoryListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / support + grievance"],"summary":"Create a new ticket category (super_admin only)","operationId":"admin_create_category_v1_admin_support_categories_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CategoryCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CategoryOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/support/categories/{category_id}":{"patch":{"tags":["admin / support + grievance"],"summary":"Edit a ticket category (super_admin only)","operationId":"admin_update_category_v1_admin_support_categories__category_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"category_id","in":"path","required":true,"schema":{"type":"integer","title":"Category Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CategoryUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CategoryOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/support/tickets":{"get":{"tags":["admin / support + grievance"],"summary":"List support tickets (filterable by status / assignee / priority / only-open)","operationId":"admin_list_tickets_v1_admin_support_tickets_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/TicketStatus"},{"type":"null"}],"title":"Status"}},{"name":"assignee_admin_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Assignee Admin Id"}},{"name":"priority","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/TicketPriority"},{"type":"null"}],"title":"Priority"}},{"name":"only_open","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Only Open"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/support/tickets/{ticket_id}":{"get":{"tags":["admin / support + grievance"],"summary":"Read a ticket (admin)","operationId":"admin_get_ticket_v1_admin_support_tickets__ticket_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"integer","title":"Ticket Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/support/tickets/{ticket_id}/replies":{"get":{"tags":["admin / support + grievance"],"summary":"Read all replies including internal notes","operationId":"admin_list_replies_v1_admin_support_tickets__ticket_id__replies_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"integer","title":"Ticket Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketRepliesOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / support + grievance"],"summary":"Reply to a ticket (admin) — set is_internal_note=true for staff-only","operationId":"admin_reply_v1_admin_support_tickets__ticket_id__replies_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"integer","title":"Ticket Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketReplyIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketReplyOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/support/tickets/{ticket_id}/assign":{"post":{"tags":["admin / support + grievance"],"summary":"Assign a ticket to an admin","operationId":"admin_assign_ticket_v1_admin_support_tickets__ticket_id__assign_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"integer","title":"Ticket Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketAssignIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/support/tickets/{ticket_id}/resolve":{"post":{"tags":["admin / support + grievance"],"summary":"Mark a ticket resolved (optionally with a final reply)","operationId":"admin_resolve_ticket_v1_admin_support_tickets__ticket_id__resolve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"integer","title":"Ticket Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketResolveIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/support/tickets/{ticket_id}/close":{"post":{"tags":["admin / support + grievance"],"summary":"Close a ticket (final)","operationId":"admin_close_ticket_v1_admin_support_tickets__ticket_id__close_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"integer","title":"Ticket Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/support/tickets/{ticket_id}/escalate":{"post":{"tags":["admin / support + grievance"],"summary":"Escalate to the category's escalation_admin (or super_admin)","operationId":"admin_escalate_ticket_v1_admin_support_tickets__ticket_id__escalate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"integer","title":"Ticket Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketEscalateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/support/kb":{"get":{"tags":["admin / support + grievance"],"summary":"List KB articles (admin · drafts included)","operationId":"admin_list_kb_v1_admin_support_kb_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"category_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Category Id"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":100},{"type":"null"}],"title":"Search"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KbListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / support + grievance"],"summary":"Create a KB article","operationId":"admin_create_kb_v1_admin_support_kb_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KbCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KbArticleOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/support/kb/{article_id}":{"patch":{"tags":["admin / support + grievance"],"summary":"Edit / publish / unpublish a KB article","operationId":"admin_update_kb_v1_admin_support_kb__article_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"article_id","in":"path","required":true,"schema":{"type":"integer","title":"Article Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KbUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KbArticleOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/support/faq":{"get":{"tags":["admin / support + grievance"],"summary":"List FAQs (admin · drafts included)","operationId":"admin_list_faq_v1_admin_support_faq_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}],"title":"Category"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FaqListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / support + grievance"],"summary":"Create an FAQ entry","operationId":"admin_create_faq_v1_admin_support_faq_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FaqCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FaqOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/support/faq/{faq_id}":{"patch":{"tags":["admin / support + grievance"],"summary":"Edit an FAQ","operationId":"admin_update_faq_v1_admin_support_faq__faq_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"faq_id","in":"path","required":true,"schema":{"type":"integer","title":"Faq Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FaqUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FaqOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["admin / support + grievance"],"summary":"Delete an FAQ","operationId":"admin_delete_faq_v1_admin_support_faq__faq_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"faq_id","in":"path","required":true,"schema":{"type":"integer","title":"Faq Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/grievance":{"get":{"tags":["admin / support + grievance"],"summary":"List grievances (most recent first; filter by outcome / only-open)","operationId":"admin_list_grievances_v1_admin_grievance_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"outcome","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/GrievanceOutcome"},{"type":"null"}],"title":"Outcome"}},{"name":"only_open","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Only Open"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrievanceListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/grievance/{grievance_id}":{"get":{"tags":["admin / support + grievance"],"summary":"Read a grievance","operationId":"admin_get_grievance_v1_admin_grievance__grievance_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"grievance_id","in":"path","required":true,"schema":{"type":"integer","title":"Grievance Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrievanceOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/grievance/{grievance_id}/actions":{"get":{"tags":["admin / support + grievance"],"summary":"Read the action log for a grievance","operationId":"admin_list_grievance_actions_v1_admin_grievance__grievance_id__actions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"grievance_id","in":"path","required":true,"schema":{"type":"integer","title":"Grievance Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrievanceActionListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / support + grievance"],"summary":"Record a grievance action (acknowledge / resolve / escalate / close / reopen)","operationId":"admin_record_grievance_action_v1_admin_grievance__grievance_id__actions_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"grievance_id","in":"path","required":true,"schema":{"type":"integer","title":"Grievance Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrievanceActionIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrievanceActionOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/support/surveys":{"get":{"tags":["admin / support + grievance"],"summary":"List satisfaction surveys (filter by surface)","operationId":"admin_list_surveys_v1_admin_support_surveys_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"surface","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SurveySurface"},{"type":"null"}],"title":"Surface"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/feature-flags/{flag_key}/enabled":{"get":{"tags":["public / ops"],"summary":"Resolve a feature flag for the current user (anonymous OK; uses hash bucket if authenticated)","operationId":"public_eval_flag_v1_feature_flags__flag_key__enabled_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"flag_key","in":"path","required":true,"schema":{"type":"string","title":"Flag Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlagEvalOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/experiments/{experiment_key}/variant":{"get":{"tags":["public / ops"],"summary":"Resolve which variant the authenticated user is bucketed into","operationId":"public_assign_variant_v1_experiments__experiment_key__variant_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"experiment_key","in":"path","required":true,"schema":{"type":"string","title":"Experiment Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VariantAssignOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/ops/flags":{"get":{"tags":["admin / ops"],"summary":"List feature flags (filter by owner_team)","operationId":"admin_list_flags_v1_admin_ops_flags_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"owner_team","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/OwnerTeam"},{"type":"null"}],"title":"Owner Team"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureFlagListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / ops"],"summary":"Create a feature flag (super_admin only)","operationId":"admin_create_flag_v1_admin_ops_flags_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureFlagCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureFlagOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/ops/flags/{flag_key}":{"patch":{"tags":["admin / ops"],"summary":"Update a feature flag (super_admin only)","operationId":"admin_update_flag_v1_admin_ops_flags__flag_key__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"flag_key","in":"path","required":true,"schema":{"type":"string","title":"Flag Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureFlagUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureFlagOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/ops/experiments":{"get":{"tags":["admin / ops"],"summary":"List A/B experiments","operationId":"admin_list_experiments_v1_admin_ops_experiments_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ExperimentStatus"},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / ops"],"summary":"Create an A/B experiment (starts in `design` state)","operationId":"admin_create_experiment_v1_admin_ops_experiments_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/ops/experiments/{experiment_key}":{"patch":{"tags":["admin / ops"],"summary":"Update an experiment (transition status, change end_at, etc.)","operationId":"admin_update_experiment_v1_admin_ops_experiments__experiment_key__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"experiment_key","in":"path","required":true,"schema":{"type":"string","title":"Experiment Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/ops/experiments/{experiment_id}/variants":{"get":{"tags":["admin / ops"],"summary":"List variants of an experiment","operationId":"admin_list_variants_v1_admin_ops_experiments__experiment_id__variants_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"experiment_id","in":"path","required":true,"schema":{"type":"integer","title":"Experiment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VariantListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["admin / ops"],"summary":"Upsert a variant (experiment must NOT be running)","operationId":"admin_upsert_variant_v1_admin_ops_experiments__experiment_id__variants_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"experiment_id","in":"path","required":true,"schema":{"type":"integer","title":"Experiment Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VariantUpsertIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VariantOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/ops/experiments/variants/{variant_id}":{"delete":{"tags":["admin / ops"],"summary":"Delete a variant (experiment must NOT be running)","operationId":"admin_delete_variant_v1_admin_ops_experiments_variants__variant_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"variant_id","in":"path","required":true,"schema":{"type":"integer","title":"Variant Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/ops/kill-switches":{"get":{"tags":["admin / ops"],"summary":"List kill switches","operationId":"admin_list_kill_switches_v1_admin_ops_kill_switches_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KillSwitchListOut"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["admin / ops"],"summary":"Create a kill switch (super_admin only)","operationId":"admin_create_kill_switch_v1_admin_ops_kill_switches_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KillSwitchCreateIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KillSwitchOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/ops/kill-switches/{key}/toggle":{"post":{"tags":["admin / ops"],"summary":"Engage / disengage a kill switch (super_admin only)","operationId":"admin_toggle_kill_switch_v1_admin_ops_kill_switches__key__toggle_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string","title":"Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KillSwitchToggleIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KillSwitchOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/ops/runbooks/start":{"post":{"tags":["admin / ops"],"summary":"Record the start of a runbook execution","operationId":"admin_start_runbook_v1_admin_ops_runbooks_start_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunbookStartIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunbookExecutionOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/ops/runbooks/{execution_id}/complete":{"post":{"tags":["admin / ops"],"summary":"Mark a runbook execution complete (only executor can complete)","operationId":"admin_complete_runbook_v1_admin_ops_runbooks__execution_id__complete_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"execution_id","in":"path","required":true,"schema":{"type":"integer","title":"Execution Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunbookCompleteIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunbookExecutionOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/ops/runbooks":{"get":{"tags":["admin / ops"],"summary":"List runbook executions (filter by slug or executor)","operationId":"admin_list_runbook_executions_v1_admin_ops_runbooks_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"runbook_slug","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Runbook Slug"}},{"name":"executor_admin_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Executor Admin Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunbookExecutionListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/ops/oncall":{"get":{"tags":["admin / ops"],"summary":"List oncall shifts","operationId":"admin_list_oncall_v1_admin_ops_oncall_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/OncallTeam"},{"type":"null"}],"title":"Team"}},{"name":"upcoming_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Upcoming Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OncallShiftListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / ops"],"summary":"Schedule an oncall shift (super_admin only)","operationId":"admin_create_oncall_v1_admin_ops_oncall_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OncallShiftCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OncallShiftOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/ops/oncall/{team}/now":{"get":{"tags":["admin / ops"],"summary":"Who is oncall right now for a given team?","operationId":"admin_who_is_oncall_v1_admin_ops_oncall__team__now_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team","in":"path","required":true,"schema":{"$ref":"#/components/schemas/OncallTeam"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhoIsOncallOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/predictor/{exam_slug}/predict":{"post":{"tags":["student / predictor"],"summary":"Predict my rank for a given exam (requires at least one submitted attempt)","operationId":"me_predict_v1_me_predictor__exam_slug__predict_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"exam_slug","in":"path","required":true,"schema":{"type":"string","title":"Exam Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/predictor/predictions":{"get":{"tags":["student / predictor"],"summary":"My prediction history (most recent first)","operationId":"me_list_predictions_v1_me_predictor_predictions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictionHistoryListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/predictor/models":{"get":{"tags":["admin / predictor"],"summary":"List predictor models (filter by exam_id / status)","operationId":"admin_list_models_v1_admin_predictor_models_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"exam_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exam Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/PredictorStatus"},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / predictor"],"summary":"Register a new predictor model (super_admin only; starts as draft)","operationId":"admin_create_model_v1_admin_predictor_models_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/predictor/models/{model_id}":{"patch":{"tags":["admin / predictor"],"summary":"Edit / promote-live (auto-demotes prior live for the exam) / deprecate","operationId":"admin_update_model_v1_admin_predictor_models__model_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"model_id","in":"path","required":true,"schema":{"type":"integer","title":"Model Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/predictor/models/{model_id}/features":{"get":{"tags":["admin / predictor"],"summary":"List features for a model (sorted by importance DESC)","operationId":"admin_list_features_v1_admin_predictor_models__model_id__features_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"model_id","in":"path","required":true,"schema":{"type":"integer","title":"Model Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["admin / predictor"],"summary":"Upsert a feature (super_admin only)","operationId":"admin_upsert_feature_v1_admin_predictor_models__model_id__features_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"model_id","in":"path","required":true,"schema":{"type":"integer","title":"Model Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureUpsertIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/predictor/features/{feature_id}":{"delete":{"tags":["admin / predictor"],"summary":"Delete a feature row","operationId":"admin_delete_feature_v1_admin_predictor_features__feature_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"feature_id","in":"path","required":true,"schema":{"type":"integer","title":"Feature Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/predictor/models/{model_id}/training-runs":{"get":{"tags":["admin / predictor"],"summary":"List training runs for a model (most recent first)","operationId":"admin_list_training_runs_v1_admin_predictor_models__model_id__training_runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"model_id","in":"path","required":true,"schema":{"type":"integer","title":"Model Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrainingRunListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / predictor"],"summary":"Record a training run start (super_admin only)","operationId":"admin_start_training_run_v1_admin_predictor_models__model_id__training_runs_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"model_id","in":"path","required":true,"schema":{"type":"integer","title":"Model Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrainingRunStartIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrainingRunOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/predictor/training-runs/{run_id}/complete":{"post":{"tags":["admin / predictor"],"summary":"Record a training run completion (success | failed) with metrics","operationId":"admin_complete_training_run_v1_admin_predictor_training_runs__run_id__complete_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"integer","title":"Run Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrainingRunCompleteIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrainingRunOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/predictor/models/{model_id}/backtests":{"get":{"tags":["admin / predictor"],"summary":"List backtest results for a model","operationId":"admin_list_backtests_v1_admin_predictor_models__model_id__backtests_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"model_id","in":"path","required":true,"schema":{"type":"integer","title":"Model Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BacktestListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / predictor"],"summary":"Ingest a backtest result (super_admin only)","operationId":"admin_ingest_backtest_v1_admin_predictor_models__model_id__backtests_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"model_id","in":"path","required":true,"schema":{"type":"integer","title":"Model Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BacktestIngestIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BacktestOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/predictor/models/{model_id}/calibration":{"get":{"tags":["admin / predictor"],"summary":"List per-band calibration metrics (most recent first)","operationId":"admin_list_calibration_v1_admin_predictor_models__model_id__calibration_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"model_id","in":"path","required":true,"schema":{"type":"integer","title":"Model Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalibrationListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / predictor"],"summary":"Ingest a calibration data point (super_admin only)","operationId":"admin_ingest_calibration_v1_admin_predictor_models__model_id__calibration_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"model_id","in":"path","required":true,"schema":{"type":"integer","title":"Model Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalibrationIngestIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalibrationOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/predictor/models/{model_id}/versions":{"get":{"tags":["admin / predictor"],"summary":"List version history for a model","operationId":"admin_list_versions_v1_admin_predictor_models__model_id__versions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"model_id","in":"path","required":true,"schema":{"type":"integer","title":"Model Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VersionListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / predictor"],"summary":"Record a new version (super_admin only; doesn't auto-promote)","operationId":"admin_create_version_v1_admin_predictor_models__model_id__versions_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"model_id","in":"path","required":true,"schema":{"type":"integer","title":"Model Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VersionCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VersionOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/predictor/inference-counts":{"get":{"tags":["admin / predictor"],"summary":"Hourly inference counts (filter by model_id)","operationId":"admin_inference_counts_v1_admin_predictor_inference_counts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Model Id"}},{"name":"hours","in":"query","required":false,"schema":{"type":"integer","maximum":720,"minimum":1,"default":24,"title":"Hours"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferenceCountListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/predictor/predictions/{prediction_id}/actual-rank":{"post":{"tags":["admin / predictor"],"summary":"Stamp the true rank on a past prediction (drives future backtests)","operationId":"admin_stamp_actual_rank_v1_admin_predictor_predictions__prediction_id__actual_rank_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"prediction_id","in":"path","required":true,"schema":{"type":"string","title":"Prediction Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActualRankIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictionHistoryOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/insights/refresh":{"post":{"tags":["student / insights"],"summary":"Recompute every aspirant_* table for me (idempotent)","operationId":"me_refresh_v1_me_insights_refresh_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/insights/readiness":{"get":{"tags":["student / insights"],"summary":"My readiness score time-series (most recent first; per exam if filtered)","operationId":"me_readiness_v1_me_insights_readiness_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"exam_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exam Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReadinessHistoryOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/insights/strengths":{"get":{"tags":["student / insights"],"summary":"My per-topic strength (sorted by strength_pct DESC)","operationId":"me_strengths_v1_me_insights_strengths_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StrengthListOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/insights/weaknesses":{"get":{"tags":["student / insights"],"summary":"My top-N weak topics (with recommended practice test if available)","operationId":"me_weaknesses_v1_me_insights_weaknesses_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WeaknessListOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/insights/predictions":{"get":{"tags":["student / insights"],"summary":"My cached predictor outputs (one row per exam)","operationId":"me_cached_predictions_v1_me_insights_predictions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CachedPredictionListOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/insights/recommendations":{"get":{"tags":["student / insights"],"summary":"My active recommendations (sorted by score DESC)","operationId":"me_recommendations_v1_me_insights_recommendations_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"include_dismissed","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Dismissed"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecommendationListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/insights/recommendations/{recommendation_id}/served":{"post":{"tags":["student / insights"],"summary":"Mark a recommendation as served (impression tracking)","operationId":"me_mark_served_v1_me_insights_recommendations__recommendation_id__served_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"recommendation_id","in":"path","required":true,"schema":{"type":"integer","title":"Recommendation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecommendationOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/insights/recommendations/{recommendation_id}/clicked":{"post":{"tags":["student / insights"],"summary":"Mark a recommendation as clicked","operationId":"me_mark_clicked_v1_me_insights_recommendations__recommendation_id__clicked_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"recommendation_id","in":"path","required":true,"schema":{"type":"integer","title":"Recommendation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecommendationOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/insights/recommendations/{recommendation_id}/dismissed":{"post":{"tags":["student / insights"],"summary":"Dismiss a recommendation","operationId":"me_mark_dismissed_v1_me_insights_recommendations__recommendation_id__dismissed_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"recommendation_id","in":"path","required":true,"schema":{"type":"integer","title":"Recommendation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecommendationOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/insights/progress":{"get":{"tags":["student / insights"],"summary":"My 30-day rolling progress + next milestone (null if never refreshed)","operationId":"me_progress_v1_me_insights_progress_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ProgressOut"},{"type":"null"}],"title":"Response Me Progress V1 Me Insights Progress Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/insights/attempts-summary":{"get":{"tags":["student / insights"],"summary":"My attempts aggregated by (exam, module)","operationId":"me_attempts_summary_v1_me_insights_attempts_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttemptsSummaryListOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/insights/topic-mastery":{"get":{"tags":["student / insights"],"summary":"My per-topic mastery with confidence interval","operationId":"me_topic_mastery_v1_me_insights_topic_mastery_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopicMasteryListOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/insights/difficulty-progression":{"get":{"tags":["student / insights"],"summary":"My easy/medium/hard distribution + correct% over the last 30 days","operationId":"me_difficulty_progression_v1_me_insights_difficulty_progression_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DifficultyProgressionListOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/insights/users/{user_id}/refresh":{"post":{"tags":["admin / insights"],"summary":"Recompute every aspirant_* table for a user (super_admin only)","operationId":"admin_refresh_v1_admin_insights_users__user_id__refresh_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/insights/users/{user_id}/readiness":{"get":{"tags":["admin / insights"],"summary":"A user's readiness history (admin)","operationId":"admin_user_readiness_v1_admin_insights_users__user_id__readiness_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}},{"name":"exam_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exam Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReadinessHistoryOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/insights/users/{user_id}/weaknesses":{"get":{"tags":["admin / insights"],"summary":"A user's weakness leaderboard (admin)","operationId":"admin_user_weaknesses_v1_admin_insights_users__user_id__weaknesses_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WeaknessListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/insights/users/{user_id}/progress":{"get":{"tags":["admin / insights"],"summary":"A user's progress + milestone (admin)","operationId":"admin_user_progress_v1_admin_insights_users__user_id__progress_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ProgressOut"},{"type":"null"}],"title":"Response Admin User Progress V1 Admin Insights Users  User Id  Progress Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/insights/state-history":{"get":{"tags":["admin / insights"],"summary":"Account state transitions (filterable by user_id)","operationId":"admin_state_history_v1_admin_insights_state_history_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StateHistoryListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/geo/countries":{"get":{"tags":["public / geo"],"summary":"List countries","operationId":"public_countries_v1_geo_countries_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CountryListOut"}}}}}}},"/v1/geo/states":{"get":{"tags":["public / geo"],"summary":"List states (filter by country_iso2)","operationId":"public_states_v1_geo_states_get","parameters":[{"name":"country_iso2","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":2,"maxLength":2},{"type":"null"}],"title":"Country Iso2"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StateListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/geo/cities":{"get":{"tags":["public / geo"],"summary":"List cities (filter by state_id)","operationId":"public_cities_v1_geo_cities_get","parameters":[{"name":"state_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"State Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CityListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/geo/languages":{"get":{"tags":["public / geo"],"summary":"List languages (supported_ui_only=true filters to UI-supported)","operationId":"public_languages_v1_geo_languages_get","parameters":[{"name":"supported_ui_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Supported Ui Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LanguageListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/geo/exam-categories":{"get":{"tags":["public / geo"],"summary":"List exam categories","operationId":"public_exam_categories_v1_geo_exam_categories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExamCategoryListOut"}}}}}}},"/v1/admin/geo/countries":{"put":{"tags":["admin / geo"],"summary":"Upsert country (PK = iso2)","operationId":"admin_upsert_country_v1_admin_geo_countries_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CountryUpsertIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CountryOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/geo/states":{"put":{"tags":["admin / geo"],"summary":"Upsert state (unique on country_iso2+code)","operationId":"admin_upsert_state_v1_admin_geo_states_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StateUpsertIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StateOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/geo/cities":{"put":{"tags":["admin / geo"],"summary":"Upsert city (matched on state_id+name)","operationId":"admin_upsert_city_v1_admin_geo_cities_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CityUpsertIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CityOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/geo/languages":{"put":{"tags":["admin / geo"],"summary":"Upsert language (PK = code)","operationId":"admin_upsert_language_v1_admin_geo_languages_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LanguageUpsertIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LanguageOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/geo/exam-categories":{"post":{"tags":["admin / geo"],"summary":"Create an exam category","operationId":"admin_create_exam_category_v1_admin_geo_exam_categories_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExamCategoryCreateIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExamCategoryOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/geo/exam-categories/{category_id}":{"patch":{"tags":["admin / geo"],"summary":"Update an exam category","operationId":"admin_update_exam_category_v1_admin_geo_exam_categories__category_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"category_id","in":"path","required":true,"schema":{"type":"integer","title":"Category Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExamCategoryUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExamCategoryOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/webhooks/endpoints":{"get":{"tags":["admin / webhooks + api-keys"],"summary":"List webhook endpoints (filter by owner)","operationId":"admin_list_endpoints_v1_admin_webhooks_endpoints_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"owner_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/WebhookOwnerType"},{"type":"null"}],"title":"Owner Type"}},{"name":"owner_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Owner Id"}},{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Active Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / webhooks + api-keys"],"summary":"Register an endpoint (returns the plaintext secret ONCE; store it now)","operationId":"admin_create_endpoint_v1_admin_webhooks_endpoints_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointCreatedOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/webhooks/endpoints/{endpoint_id}":{"patch":{"tags":["admin / webhooks + api-keys"],"summary":"Update an endpoint","operationId":"admin_update_endpoint_v1_admin_webhooks_endpoints__endpoint_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"integer","title":"Endpoint Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["admin / webhooks + api-keys"],"summary":"Delete an endpoint","operationId":"admin_delete_endpoint_v1_admin_webhooks_endpoints__endpoint_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"integer","title":"Endpoint Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/webhooks/endpoints/{endpoint_id}/rotate-secret":{"post":{"tags":["admin / webhooks + api-keys"],"summary":"Rotate an endpoint's HMAC secret (returns plaintext ONCE)","operationId":"admin_rotate_secret_v1_admin_webhooks_endpoints__endpoint_id__rotate_secret_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"integer","title":"Endpoint Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RotateSecretOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/webhooks/deliveries":{"get":{"tags":["admin / webhooks + api-keys"],"summary":"List webhook deliveries (filter by endpoint, event, final_state)","operationId":"admin_list_deliveries_v1_admin_webhooks_deliveries_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"endpoint_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Endpoint Id"}},{"name":"event","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}],"title":"Event"}},{"name":"final_state","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DeliveryState"},{"type":"null"}],"title":"Final State"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliveryListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/webhooks/deliveries/{delivery_id}/retry":{"post":{"tags":["admin / webhooks + api-keys"],"summary":"Manually re-attempt a delivery (regardless of state)","operationId":"admin_retry_delivery_v1_admin_webhooks_deliveries__delivery_id__retry_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"delivery_id","in":"path","required":true,"schema":{"type":"string","title":"Delivery Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliveryOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/webhooks/emit":{"post":{"tags":["admin / webhooks + api-keys"],"summary":"Manually emit an event (admin testing) — fans out to matching endpoints","operationId":"admin_manual_emit_v1_admin_webhooks_emit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManualEmitIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmitResultOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/api-keys":{"get":{"tags":["admin / webhooks + api-keys"],"summary":"List partner API keys","operationId":"admin_list_api_keys_v1_admin_api_keys_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"owner_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ApiKeyOwnerType"},{"type":"null"}],"title":"Owner Type"}},{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Revoked"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / webhooks + api-keys"],"summary":"Mint a partner API key (returns plaintext ONCE)","operationId":"admin_create_api_key_v1_admin_api_keys_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyCreatedOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/api-keys/{api_key_id}/revoke":{"post":{"tags":["admin / webhooks + api-keys"],"summary":"Revoke a partner API key (irreversible)","operationId":"admin_revoke_api_key_v1_admin_api_keys__api_key_id__revoke_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"api_key_id","in":"path","required":true,"schema":{"type":"integer","title":"Api Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/api-keys/{api_key_id}/usage":{"get":{"tags":["admin / webhooks + api-keys"],"summary":"Hourly usage for an API key","operationId":"admin_api_key_usage_v1_admin_api_keys__api_key_id__usage_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"api_key_id","in":"path","required":true,"schema":{"type":"integer","title":"Api Key Id"}},{"name":"hours","in":"query","required":false,"schema":{"type":"integer","maximum":720,"minimum":1,"default":24,"title":"Hours"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/integrations":{"get":{"tags":["admin / webhooks + api-keys"],"summary":"List third-party integrations + their health status","operationId":"admin_list_integrations_v1_admin_integrations_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/IntegrationKind"},{"type":"null"}],"title":"Kind"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["admin / webhooks + api-keys"],"summary":"Upsert a third-party integration (super_admin only)","operationId":"admin_upsert_integration_v1_admin_integrations_put","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationUpsertIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/integrations/{integration_id}/status":{"post":{"tags":["admin / webhooks + api-keys"],"summary":"Record a health-check result (super_admin only)","operationId":"admin_set_integration_status_v1_admin_integrations__integration_id__status_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"integer","title":"Integration Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationStatusUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/cms/pages/{slug}":{"get":{"tags":["public / cms + blog"],"summary":"Read a published CMS page by slug","operationId":"public_get_page_v1_cms_pages__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CmsPageOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/cms/partners":{"get":{"tags":["public / cms + blog"],"summary":"List active partner logos (optionally filter by kind)","operationId":"public_partners_v1_cms_partners_get","parameters":[{"name":"partner_kind","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/PartnerKind"},{"type":"null"}],"title":"Partner Kind"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerLogoListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/cms/redirects/resolve":{"get":{"tags":["public / cms + blog"],"summary":"Resolve a redirect (Flutter app / SSR can pre-check)","operationId":"public_resolve_redirect_v1_cms_redirects_resolve_get","parameters":[{"name":"path","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":500,"title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedirectResolveOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/blog/posts":{"get":{"tags":["public / cms + blog"],"summary":"List published blog posts (most recent first; cards omit body)","operationId":"public_list_posts_v1_blog_posts_get","parameters":[{"name":"category_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Category Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogPostListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/blog/posts/{slug}":{"get":{"tags":["public / cms + blog"],"summary":"Read a published blog post (increments views_count)","operationId":"public_get_post_v1_blog_posts__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogPostOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/blog/categories":{"get":{"tags":["public / cms + blog"],"summary":"List active blog categories","operationId":"public_list_blog_categories_v1_blog_categories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogCategoryListOut"}}}}}}},"/v1/blog/authors":{"get":{"tags":["public / cms + blog"],"summary":"List blog author profiles","operationId":"public_list_blog_authors_v1_blog_authors_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogAuthorListOut"}}}}}}},"/v1/cms/press-releases":{"get":{"tags":["public / cms + blog"],"summary":"List published press releases (filter by grant_id)","operationId":"public_press_releases_v1_cms_press_releases_get","parameters":[{"name":"grant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Grant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PressReleaseListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/cms/pages":{"get":{"tags":["admin / cms + blog"],"summary":"List CMS pages (admin sees drafts too)","operationId":"admin_list_pages_v1_admin_cms_pages_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"published_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Published Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CmsPageListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / cms + blog"],"summary":"Create a CMS page","operationId":"admin_create_page_v1_admin_cms_pages_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CmsPageCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CmsPageOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/cms/pages/{page_id}":{"patch":{"tags":["admin / cms + blog"],"summary":"Update a CMS page (version bumps on body/title change)","operationId":"admin_update_page_v1_admin_cms_pages__page_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page_id","in":"path","required":true,"schema":{"type":"integer","title":"Page Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CmsPageUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CmsPageOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/cms/blog/categories":{"get":{"tags":["admin / cms + blog"],"summary":"List blog categories (admin)","operationId":"admin_list_blog_categories_v1_admin_cms_blog_categories_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Active Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogCategoryListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["admin / cms + blog"],"summary":"Upsert a blog category (matched on slug)","operationId":"admin_upsert_blog_category_v1_admin_cms_blog_categories_put","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogCategoryUpsertIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogCategoryOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/cms/blog/posts":{"get":{"tags":["admin / cms + blog"],"summary":"List blog posts (admin sees drafts too)","operationId":"admin_list_posts_v1_admin_cms_blog_posts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"category_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Category Id"}},{"name":"published_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Published Only"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogPostListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / cms + blog"],"summary":"Create a blog post","operationId":"admin_create_post_v1_admin_cms_blog_posts_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogPostCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogPostOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/cms/blog/posts/{post_id}":{"patch":{"tags":["admin / cms + blog"],"summary":"Update a blog post","operationId":"admin_update_post_v1_admin_cms_blog_posts__post_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"post_id","in":"path","required":true,"schema":{"type":"integer","title":"Post Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogPostUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogPostOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/cms/blog/authors":{"get":{"tags":["admin / cms + blog"],"summary":"List blog authors (admin)","operationId":"admin_list_blog_authors_v1_admin_cms_blog_authors_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogAuthorListOut"}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["admin / cms + blog"],"summary":"Upsert a blog author profile","operationId":"admin_upsert_blog_author_v1_admin_cms_blog_authors_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogAuthorUpsertIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogAuthorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/cms/press-releases":{"get":{"tags":["admin / cms + blog"],"summary":"List press releases (admin sees drafts too)","operationId":"admin_list_press_releases_v1_admin_cms_press_releases_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"grant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Grant Id"}},{"name":"published_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Published Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PressReleaseListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / cms + blog"],"summary":"Create a press release for a scholarship grant","operationId":"admin_create_press_release_v1_admin_cms_press_releases_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PressReleaseCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PressReleaseOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/cms/press-releases/{press_release_id}":{"patch":{"tags":["admin / cms + blog"],"summary":"Update a press release","operationId":"admin_update_press_release_v1_admin_cms_press_releases__press_release_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"press_release_id","in":"path","required":true,"schema":{"type":"integer","title":"Press Release Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PressReleaseUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PressReleaseOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/cms/partners":{"get":{"tags":["admin / cms + blog"],"summary":"List partner logos (admin sees inactive too)","operationId":"admin_list_partners_v1_admin_cms_partners_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"partner_kind","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/PartnerKind"},{"type":"null"}],"title":"Partner Kind"}},{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Active Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerLogoListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / cms + blog"],"summary":"Create a partner logo entry","operationId":"admin_create_partner_v1_admin_cms_partners_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerLogoCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerLogoOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/cms/partners/{logo_id}":{"patch":{"tags":["admin / cms + blog"],"summary":"Update a partner logo","operationId":"admin_update_partner_v1_admin_cms_partners__logo_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"logo_id","in":"path","required":true,"schema":{"type":"integer","title":"Logo Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerLogoUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerLogoOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["admin / cms + blog"],"summary":"Delete a partner logo","operationId":"admin_delete_partner_v1_admin_cms_partners__logo_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"logo_id","in":"path","required":true,"schema":{"type":"integer","title":"Logo Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/cms/redirects":{"get":{"tags":["admin / cms + blog"],"summary":"List redirects (admin)","operationId":"admin_list_redirects_v1_admin_cms_redirects_get","security":[{"HTTPBearer":[]}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedirectListOut"}}}}}},"put":{"tags":["admin / cms + blog"],"summary":"Upsert a redirect (matched on from_path)","operationId":"admin_upsert_redirect_v1_admin_cms_redirects_put","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedirectUpsertIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedirectOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["admin / cms + blog"],"summary":"Delete a redirect by from_path","operationId":"admin_delete_redirect_v1_admin_cms_redirects_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"from_path","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":500,"title":"From Path"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/realtime/ws-sessions":{"get":{"tags":["admin / realtime forensics"],"summary":"Recent WebSocket sessions (filter by user / open-only)","operationId":"admin_list_ws_sessions_v1_admin_realtime_ws_sessions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"}},{"name":"open_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Open Only"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WsSessionListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/realtime/rounds/{round_id}":{"get":{"tags":["admin / realtime forensics"],"summary":"Forensic snapshot for a round (session + participants + recent warnings + recent messages)","operationId":"admin_round_forensic_v1_admin_realtime_rounds__round_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"round_id","in":"path","required":true,"schema":{"type":"integer","title":"Round Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoundForensicOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/realtime/rounds/{round_id}/end":{"post":{"tags":["admin / realtime forensics"],"summary":"Force-end a stuck round session (super_admin only)","operationId":"admin_force_end_v1_admin_realtime_rounds__round_id__end_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"round_id","in":"path","required":true,"schema":{"type":"integer","title":"Round Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForceEndRoundIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoundSessionOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/realtime/rounds/{round_id}/messages":{"get":{"tags":["admin / realtime forensics"],"summary":"Forensic message sample for a round (paginated)","operationId":"admin_round_messages_v1_admin_realtime_rounds__round_id__messages_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"round_id","in":"path","required":true,"schema":{"type":"integer","title":"Round Id"}},{"name":"op","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Op"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoundMessageListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/realtime/rounds/{round_id}/warnings":{"get":{"tags":["admin / realtime forensics"],"summary":"Warnings raised during a round (filter by user / severity)","operationId":"admin_round_warnings_v1_admin_realtime_rounds__round_id__warnings_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"round_id","in":"path","required":true,"schema":{"type":"integer","title":"Round Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"}},{"name":"severity","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/WarningSeverity"},{"type":"null"}],"title":"Severity"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoundWarningListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin / realtime forensics"],"summary":"Manually record a warning during a round (admin override)","operationId":"admin_record_warning_v1_admin_realtime_rounds__round_id__warnings_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"round_id","in":"path","required":true,"schema":{"type":"integer","title":"Round Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordWarningIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoundWarningOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/realtime/kafka-offsets":{"get":{"tags":["admin / realtime forensics"],"summary":"List Kafka consumer-offset checkpoints (filter by worker / topic)","operationId":"admin_list_offsets_v1_admin_realtime_kafka_offsets_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"worker_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Worker Id"}},{"name":"topic","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Topic"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KafkaOffsetListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/analytics/events":{"post":{"tags":["admin / analytics"],"summary":"Bulk-ingest events (internal — service-to-service). Max 1000 per call.","operationId":"admin_ingest_events_v1_admin_analytics_events_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventBatchIngestIn"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"integer"},"title":"Response Admin Ingest Events V1 Admin Analytics Events Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["admin / analytics"],"summary":"Query raw events (filter by event name / user / since timestamp)","operationId":"admin_list_events_v1_admin_analytics_events_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"event","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Event"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"}},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Since"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__domains__analytics__schemas__EventListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/analytics/events/counts":{"get":{"tags":["admin / analytics"],"summary":"Event counts grouped by name since `hours` ago (default 24)","operationId":"admin_event_counts_v1_admin_analytics_events_counts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"hours","in":"query","required":false,"schema":{"type":"integer","maximum":720,"minimum":1,"default":24,"title":"Hours"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventCountListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/analytics/kpis/{grain}":{"put":{"tags":["admin / analytics"],"summary":"Upsert a KPI bucket (`grain` = `hourly` | `daily`)","operationId":"admin_upsert_kpi_v1_admin_analytics_kpis__grain__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"grain","in":"path","required":true,"schema":{"type":"string","title":"Grain"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KpiUpsertIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KpiOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["admin / analytics"],"summary":"Read KPI rows (filter by key / since / dim1)","operationId":"admin_list_kpis_v1_admin_analytics_kpis__grain__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"grain","in":"path","required":true,"schema":{"type":"string","title":"Grain"}},{"name":"kpi_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}],"title":"Kpi Key"}},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Since"}},{"name":"dim1_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Dim1 Key"}},{"name":"dim1_val","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Dim1 Val"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KpiListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/analytics/cohorts":{"get":{"tags":["admin / analytics"],"summary":"List cohort definitions","operationId":"admin_list_cohorts_v1_admin_analytics_cohorts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CohortDefinitionListOut"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["admin / analytics"],"summary":"Define a cohort (query_sql stored but NOT auto-executed in Phase A)","operationId":"admin_create_cohort_v1_admin_analytics_cohorts_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CohortDefinitionCreateIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CohortDefinitionOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/analytics/cohorts/{cohort_id}/assign":{"post":{"tags":["admin / analytics"],"summary":"Bulk-assign users to a cohort (idempotent on existing rows)","operationId":"admin_assign_to_cohort_v1_admin_analytics_cohorts__cohort_id__assign_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cohort_id","in":"path","required":true,"schema":{"type":"integer","title":"Cohort Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CohortAssignIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"integer"},"title":"Response Admin Assign To Cohort V1 Admin Analytics Cohorts  Cohort Id  Assign Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/analytics/cohorts/{cohort_id}/assignments":{"get":{"tags":["admin / analytics"],"summary":"List cohort assignments (most recent first)","operationId":"admin_list_cohort_assignments_v1_admin_analytics_cohorts__cohort_id__assignments_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cohort_id","in":"path","required":true,"schema":{"type":"integer","title":"Cohort Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CohortAssignmentListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/analytics/cohorts/{cohort_id}/retention/compute":{"post":{"tags":["admin / analytics"],"summary":"Compute retention metrics for a cohort (admin-triggered; specify day_offsets + activity_event)","operationId":"admin_compute_retention_v1_admin_analytics_cohorts__cohort_id__retention_compute_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cohort_id","in":"path","required":true,"schema":{"type":"integer","title":"Cohort Id"}},{"name":"day_offsets","in":"query","required":false,"schema":{"type":"array","items":{"type":"integer"},"default":[1,7,14,30],"title":"Day Offsets"}},{"name":"activity_event","in":"query","required":false,"schema":{"type":"string","maxLength":40,"default":"app_open","title":"Activity Event"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetentionListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/analytics/cohorts/{cohort_id}/retention":{"get":{"tags":["admin / analytics"],"summary":"Read computed retention metrics for a cohort","operationId":"admin_read_retention_v1_admin_analytics_cohorts__cohort_id__retention_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cohort_id","in":"path","required":true,"schema":{"type":"integer","title":"Cohort Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetentionListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/analytics/funnels":{"get":{"tags":["admin / analytics"],"summary":"List funnel definitions","operationId":"admin_list_funnels_v1_admin_analytics_funnels_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FunnelDefinitionListOut"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["admin / analytics"],"summary":"Define a funnel (steps_json = ordered array of event names)","operationId":"admin_create_funnel_v1_admin_analytics_funnels_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FunnelDefinitionCreateIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FunnelDefinitionOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/analytics/funnels/{funnel_id}/compute":{"post":{"tags":["admin / analytics"],"summary":"Compute funnel for a specific cohort (admin-triggered)","operationId":"admin_compute_funnel_v1_admin_analytics_funnels__funnel_id__compute_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"funnel_id","in":"path","required":true,"schema":{"type":"integer","title":"Funnel Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FunnelComputeIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FunnelResultListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/analytics/funnels/{funnel_id}/results":{"get":{"tags":["admin / analytics"],"summary":"Read computed funnel results for a cohort","operationId":"admin_read_funnel_results_v1_admin_analytics_funnels__funnel_id__results_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"funnel_id","in":"path","required":true,"schema":{"type":"integer","title":"Funnel Id"}},{"name":"cohort_id","in":"query","required":true,"schema":{"type":"integer","title":"Cohort Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FunnelResultListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/analytics/ab/{experiment_id}/outcomes":{"post":{"tags":["admin / analytics"],"summary":"Record an outcome event for a bucketed user (returns null if user not bucketed)","operationId":"admin_record_outcome_v1_admin_analytics_ab__experiment_id__outcomes_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"experiment_id","in":"path","required":true,"schema":{"type":"integer","title":"Experiment Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AbOutcomeRecordIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AbOutcomeOut"},{"type":"null"}],"title":"Response Admin Record Outcome V1 Admin Analytics Ab  Experiment Id  Outcomes Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/analytics/ab/{experiment_id}/results":{"get":{"tags":["admin / analytics"],"summary":"Per-variant assignment count + outcome stats","operationId":"admin_ab_results_v1_admin_analytics_ab__experiment_id__results_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"experiment_id","in":"path","required":true,"schema":{"type":"integer","title":"Experiment Id"}},{"name":"metric_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Metric Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AbResultsOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/analytics/aspirants/{user_id}/funnel/refresh":{"post":{"tags":["admin / analytics"],"summary":"Recompute the per-user funnel cache","operationId":"admin_recompute_aspirant_funnel_v1_admin_analytics_aspirants__user_id__funnel_refresh_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AspirantFunnelOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/analytics/aspirants/{user_id}/funnel":{"get":{"tags":["admin / analytics"],"summary":"Read the per-user funnel cache (null if never computed)","operationId":"admin_get_aspirant_funnel_v1_admin_analytics_aspirants__user_id__funnel_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AspirantFunnelOut"},{"type":"null"}],"title":"Response Admin Get Aspirant Funnel V1 Admin Analytics Aspirants  User Id  Funnel Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AbOutcomeOut":{"properties":{"id":{"type":"integer","title":"Id"},"experiment_id":{"type":"integer","title":"Experiment Id"},"variant":{"type":"string","title":"Variant"},"user_id":{"type":"integer","title":"User Id"},"metric_key":{"type":"string","title":"Metric Key"},"value":{"type":"number","title":"Value"},"at":{"type":"string","format":"date-time","title":"At"}},"type":"object","required":["id","experiment_id","variant","user_id","metric_key","value","at"],"title":"AbOutcomeOut"},"AbOutcomeRecordIn":{"properties":{"metric_key":{"type":"string","maxLength":40,"minLength":1,"title":"Metric Key"},"value":{"type":"number","title":"Value"},"user_id":{"type":"integer","title":"User Id"}},"type":"object","required":["metric_key","value","user_id"],"title":"AbOutcomeRecordIn"},"AbResultsOut":{"properties":{"experiment_id":{"type":"integer","title":"Experiment Id"},"variants":{"items":{"$ref":"#/components/schemas/AbVariantSummary"},"type":"array","title":"Variants"}},"type":"object","required":["experiment_id","variants"],"title":"AbResultsOut"},"AbVariantSummary":{"properties":{"variant":{"type":"string","title":"Variant"},"assignments":{"type":"integer","title":"Assignments"},"metric_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metric Key"},"metric_sum":{"type":"number","title":"Metric Sum"},"metric_avg":{"type":"number","title":"Metric Avg"},"sample_count":{"type":"integer","title":"Sample Count"}},"type":"object","required":["variant","assignments","metric_key","metric_sum","metric_avg","sample_count"],"title":"AbVariantSummary"},"AccessActorType":{"type":"string","enum":["admin_user","system","user","partner_api"],"title":"AccessActorType"},"AccessLogListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AccessLogOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"AccessLogListOut"},"AccessLogOut":{"properties":{"id":{"type":"string","title":"Id"},"actor_type":{"$ref":"#/components/schemas/AccessActorType"},"actor_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Actor Id"},"subject_user_id":{"type":"integer","title":"Subject User Id"},"fields_accessed":{"items":{"type":"string"},"type":"array","title":"Fields Accessed"},"reason":{"type":"string","title":"Reason"},"ip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ip"},"at":{"type":"string","format":"date-time","title":"At"}},"type":"object","required":["id","actor_type","actor_id","subject_user_id","fields_accessed","reason","ip","at"],"title":"AccessLogOut"},"ActualRankIn":{"properties":{"actual_rank":{"type":"integer","minimum":1.0,"title":"Actual Rank"}},"type":"object","required":["actual_rank"],"title":"ActualRankIn"},"AdminActionListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AdminActionOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"AdminActionListOut"},"AdminActionOut":{"properties":{"id":{"type":"string","title":"Id"},"actor_admin_id":{"type":"integer","title":"Actor Admin Id"},"kind":{"type":"string","enum":["user_suspend","kyc_override","refund_approve","payout_approve","grant_approve","test_publish","round_cancel","feature_flag_toggle","rbac_change","data_export","other"],"title":"Kind"},"requires_4_eye":{"type":"boolean","title":"Requires 4 Eye"},"co_approver_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Co Approver Admin Id"},"four_eye_approval_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Four Eye Approval Id"},"entity_ref_type":{"type":"string","title":"Entity Ref Type"},"entity_ref_id":{"type":"string","title":"Entity Ref Id"},"reason_text":{"type":"string","title":"Reason Text"},"before_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Before Json"},"after_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"After Json"},"at":{"type":"string","format":"date-time","title":"At"}},"type":"object","required":["id","actor_admin_id","kind","requires_4_eye","entity_ref_type","entity_ref_id","reason_text","at"],"title":"AdminActionOut"},"AdminActionRecordIn":{"properties":{"kind":{"type":"string","enum":["user_suspend","kyc_override","refund_approve","payout_approve","grant_approve","test_publish","round_cancel","feature_flag_toggle","rbac_change","data_export","other"],"title":"Kind"},"entity_ref_type":{"type":"string","maxLength":60,"minLength":1,"title":"Entity Ref Type"},"entity_ref_id":{"type":"string","maxLength":80,"minLength":1,"title":"Entity Ref Id"},"reason_text":{"type":"string","minLength":1,"title":"Reason Text"},"before_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Before Json"},"after_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"After Json"},"requires_4_eye":{"type":"boolean","title":"Requires 4 Eye","default":false},"four_eye_approval_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Four Eye Approval Id"}},"type":"object","required":["kind","entity_ref_type","entity_ref_id","reason_text"],"title":"AdminActionRecordIn"},"AdminCreateUniversityIn":{"properties":{"name":{"type":"string","maxLength":200,"minLength":2,"title":"Name"},"slug":{"type":"string","maxLength":64,"minLength":2,"pattern":"^[a-z0-9][a-z0-9-]*$","title":"Slug"},"contact_email":{"type":"string","format":"email","title":"Contact Email"},"gst_number":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Gst Number"},"billing_address":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Billing Address"},"admin_full_name":{"type":"string","maxLength":120,"minLength":1,"title":"Admin Full Name"},"admin_email":{"type":"string","format":"email","title":"Admin Email"}},"type":"object","required":["name","slug","contact_email","admin_full_name","admin_email"],"title":"AdminCreateUniversityIn"},"AdminCreateUniversityOut":{"properties":{"university":{"$ref":"#/components/schemas/app__domains__admin__schemas__UniversityOut"},"first_admin":{"$ref":"#/components/schemas/UniUserOut"},"set_password_url":{"type":"string","title":"Set Password Url"}},"type":"object","required":["university","first_admin","set_password_url"],"title":"AdminCreateUniversityOut"},"AdminCreateUserIn":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"full_name":{"type":"string","maxLength":120,"minLength":1,"title":"Full Name"},"role":{"type":"string","enum":["content_creator","senior_reviewer","proctor","finance_exec"],"title":"Role"}},"type":"object","required":["email","full_name","role"],"title":"AdminCreateUserIn"},"AdminDiscoveryStatsOut":{"properties":{"consenting_profiles":{"type":"integer","title":"Consenting Profiles"},"intros_last_7d":{"type":"integer","title":"Intros Last 7D"},"intros_accepted_last_7d":{"type":"integer","title":"Intros Accepted Last 7D"},"intros_declined_last_7d":{"type":"integer","title":"Intros Declined Last 7D"},"views_last_7d":{"type":"integer","title":"Views Last 7D"},"searches_last_7d":{"type":"integer","title":"Searches Last 7D"}},"type":"object","required":["consenting_profiles","intros_last_7d","intros_accepted_last_7d","intros_declined_last_7d","views_last_7d","searches_last_7d"],"title":"AdminDiscoveryStatsOut"},"AdminLeaderboardEntryOut":{"properties":{"rank":{"type":"integer","title":"Rank"},"user_id":{"type":"integer","title":"User Id"},"attempt_id":{"type":"integer","title":"Attempt Id"},"display_name":{"type":"string","title":"Display Name"},"total_marks":{"type":"number","title":"Total Marks"},"accuracy_pct":{"type":"number","title":"Accuracy Pct"},"time_taken_secs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Time Taken Secs"},"submitted_at":{"type":"string","format":"date-time","title":"Submitted At"}},"type":"object","required":["rank","user_id","attempt_id","display_name","total_marks","accuracy_pct","submitted_at"],"title":"AdminLeaderboardEntryOut","description":"Admin row — real names + user_id + attempt_id."},"AdminLeaderboardOut":{"properties":{"test_id":{"type":"integer","title":"Test Id"},"test_title":{"type":"string","title":"Test Title"},"total_entrants":{"type":"integer","title":"Total Entrants"},"items":{"items":{"$ref":"#/components/schemas/AdminLeaderboardEntryOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["test_id","test_title","total_entrants","items"],"title":"AdminLeaderboardOut"},"AdminLoginChallengeOut":{"properties":{"challenge_id":{"type":"string","title":"Challenge Id"},"expires_in":{"type":"integer","title":"Expires In"},"mfa_required":{"type":"boolean","const":true,"title":"Mfa Required","default":true}},"type":"object","required":["challenge_id","expires_in"],"title":"AdminLoginChallengeOut","description":"Returned after a successful email+password — frontend now collects email OTP."},"AdminLoginIn":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","maxLength":128,"minLength":1,"title":"Password"}},"type":"object","required":["email","password"],"title":"AdminLoginIn"},"AdminLoginResendIn":{"properties":{"challenge_id":{"type":"string","title":"Challenge Id"}},"type":"object","required":["challenge_id"],"title":"AdminLoginResendIn"},"AdminLoginVerifyIn":{"properties":{"challenge_id":{"type":"string","title":"Challenge Id"},"code":{"type":"string","maxLength":8,"minLength":4,"title":"Code"},"device_info":{"$ref":"#/components/schemas/app__domains__admin__schemas__DeviceInfoIn"}},"type":"object","required":["challenge_id","code","device_info"],"title":"AdminLoginVerifyIn"},"AdminLoginVerifyOut":{"properties":{"user":{"$ref":"#/components/schemas/AdminUserOut"},"tokens":{"$ref":"#/components/schemas/TokenPair"}},"type":"object","required":["user","tokens"],"title":"AdminLoginVerifyOut"},"AdminMeOut":{"properties":{"id":{"type":"integer","title":"Id"},"email":{"type":"string","format":"email","title":"Email"},"full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Name"},"role":{"type":"string","enum":["super_admin","content_creator","senior_reviewer","proctor","finance_exec"],"title":"Role"},"status":{"type":"string","enum":["invited","active","suspended","deleted"],"title":"Status"},"last_login_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Login At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"permissions":{"items":{"type":"string"},"type":"array","title":"Permissions"}},"type":"object","required":["id","email","role","status","created_at"],"title":"AdminMeOut"},"AdminRecordConsentIn":{"properties":{"user_id":{"type":"integer","title":"User Id"},"items":{"items":{"$ref":"#/components/schemas/ConsentToggleIn"},"type":"array","maxItems":50,"minItems":1,"title":"Items"},"granted_via":{"type":"string","enum":["admin","parental"],"title":"Granted Via","default":"admin"},"proof_blob_s3_key":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Proof Blob S3 Key"},"note":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Note"}},"type":"object","required":["user_id","items"],"title":"AdminRecordConsentIn","description":"Admin records consent on behalf of a user (e.g. paper signature, parental phone consent)."},"AdminRefreshIn":{"properties":{"user_ids":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"User Ids","description":"if omitted, refreshes every consenting profile"}},"type":"object","title":"AdminRefreshIn"},"AdminRefreshOut":{"properties":{"refreshed":{"type":"integer","title":"Refreshed"},"skipped_no_consent":{"type":"integer","title":"Skipped No Consent"},"skipped_no_attempts":{"type":"integer","title":"Skipped No Attempts"}},"type":"object","required":["refreshed","skipped_no_consent","skipped_no_attempts"],"title":"AdminRefreshOut"},"AdminUpdateUniversityIn":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":200,"minLength":2},{"type":"null"}],"title":"Name"},"contact_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Contact Email"},"gst_number":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Gst Number"},"billing_address":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Billing Address"},"status":{"anyOf":[{"type":"string","enum":["active","suspended"]},{"type":"null"}],"title":"Status"}},"type":"object","title":"AdminUpdateUniversityIn"},"AdminUpdateUserIn":{"properties":{"role":{"anyOf":[{"type":"string","enum":["content_creator","senior_reviewer","proctor","finance_exec"]},{"type":"null"}],"title":"Role"},"status":{"anyOf":[{"type":"string","enum":["active","suspended"]},{"type":"null"}],"title":"Status"}},"type":"object","title":"AdminUpdateUserIn"},"AdminUserCreatedOut":{"properties":{"user":{"$ref":"#/components/schemas/AdminUserOut"},"set_password_url":{"type":"string","title":"Set Password Url"}},"type":"object","required":["user","set_password_url"],"title":"AdminUserCreatedOut"},"AdminUserOut":{"properties":{"id":{"type":"integer","title":"Id"},"email":{"type":"string","format":"email","title":"Email"},"full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Name"},"role":{"type":"string","enum":["super_admin","content_creator","senior_reviewer","proctor","finance_exec"],"title":"Role"},"status":{"type":"string","enum":["invited","active","suspended","deleted"],"title":"Status"},"last_login_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Login At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","email","role","status","created_at"],"title":"AdminUserOut"},"AdminViewAuditOut":{"properties":{"items":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"AdminViewAuditOut"},"AnomalyCategory":{"type":"string","enum":["phone","face","gaze","audio","combined"],"title":"AnomalyCategory"},"AnomalyScoreIn":{"properties":{"model_id":{"type":"integer","title":"Model Id"},"score":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Score"},"category":{"$ref":"#/components/schemas/AnomalyCategory"}},"type":"object","required":["model_id","score","category"],"title":"AnomalyScoreIn"},"AnomalyScoreOut":{"properties":{"id":{"type":"integer","title":"Id"},"session_id":{"type":"string","title":"Session Id"},"model_id":{"type":"integer","title":"Model Id"},"score":{"type":"number","title":"Score"},"category":{"$ref":"#/components/schemas/AnomalyCategory"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","session_id","model_id","score","category","created_at"],"title":"AnomalyScoreOut"},"AnswerBreakdownOut":{"properties":{"seq":{"type":"integer","title":"Seq"},"question_id":{"type":"integer","title":"Question Id"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"is_correct":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Correct"},"marks_awarded":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Marks Awarded"},"correct_answer":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Correct Answer"},"explanation_md":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Explanation Md"},"time_taken_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Time Taken Ms"}},"type":"object","required":["seq","question_id"],"title":"AnswerBreakdownOut"},"AnswerIn":{"properties":{"seq":{"type":"integer","minimum":1.0,"title":"Seq"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"time_taken_ms":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Time Taken Ms"},"client_ts":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Client Ts"},"flagged_for_review":{"type":"boolean","title":"Flagged For Review","default":false}},"type":"object","required":["seq"],"title":"AnswerIn"},"AnswerOut":{"properties":{"seq":{"type":"integer","title":"Seq"},"recorded":{"type":"boolean","title":"Recorded"}},"type":"object","required":["seq","recorded"],"title":"AnswerOut"},"ApiKeyCreateIn":{"properties":{"owner_type":{"$ref":"#/components/schemas/ApiKeyOwnerType"},"owner_id":{"type":"integer","minimum":1.0,"title":"Owner Id"},"scopes":{"items":{"type":"string"},"type":"array","maxItems":100,"title":"Scopes"},"description":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Description"},"rate_limit_rpm":{"type":"integer","maximum":100000.0,"minimum":1.0,"title":"Rate Limit Rpm","default":60}},"type":"object","required":["owner_type","owner_id"],"title":"ApiKeyCreateIn"},"ApiKeyCreatedOut":{"properties":{"api_key":{"$ref":"#/components/schemas/ApiKeyOut"},"key_plain":{"type":"string","title":"Key Plain"}},"type":"object","required":["api_key","key_plain"],"title":"ApiKeyCreatedOut","description":"Returned ONCE at creation — contains the plaintext key. Store it now."},"ApiKeyListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ApiKeyOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"ApiKeyListOut"},"ApiKeyOut":{"properties":{"id":{"type":"integer","title":"Id"},"key_prefix":{"type":"string","title":"Key Prefix"},"owner_type":{"$ref":"#/components/schemas/ApiKeyOwnerType"},"owner_id":{"type":"integer","title":"Owner Id"},"scopes":{"items":{"type":"string"},"type":"array","title":"Scopes"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"revoked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Revoked At"},"last_used_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Used At"},"rate_limit_rpm":{"type":"integer","title":"Rate Limit Rpm"}},"type":"object","required":["id","key_prefix","owner_type","owner_id","scopes","description","created_at","revoked_at","last_used_at","rate_limit_rpm"],"title":"ApiKeyOut"},"ApiKeyOwnerType":{"type":"string","enum":["university","admin","internal_service"],"title":"ApiKeyOwnerType"},"AppealCreateIn":{"properties":{"session_id":{"type":"string","maxLength":40,"minLength":1,"title":"Session Id"},"appeal_text":{"type":"string","maxLength":4000,"minLength":30,"title":"Appeal Text"}},"type":"object","required":["session_id","appeal_text"],"title":"AppealCreateIn"},"AppealDecideIn":{"properties":{"decision":{"$ref":"#/components/schemas/AppealDecision"},"notes":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Notes"}},"type":"object","required":["decision"],"title":"AppealDecideIn"},"AppealDecision":{"type":"string","enum":["reinstated","upheld"],"title":"AppealDecision"},"AppealListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AppealOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"AppealListOut"},"AppealOut":{"properties":{"id":{"type":"integer","title":"Id"},"session_id":{"type":"string","title":"Session Id"},"appellant_user_id":{"type":"integer","title":"Appellant User Id"},"appeal_text":{"type":"string","title":"Appeal Text"},"decision":{"anyOf":[{"$ref":"#/components/schemas/AppealDecision"},{"type":"null"}]},"decided_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Decided At"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"human_reviewer_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Human Reviewer Admin Id"},"decision_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Decision Notes"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","session_id","appellant_user_id","appeal_text","decision","decided_at","expires_at","human_reviewer_admin_id","decision_notes","created_at"],"title":"AppealOut"},"ApproveIn":{"properties":{"note":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Note"}},"type":"object","title":"ApproveIn"},"ApproveTemplateIn":{"properties":{"note":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Note"}},"type":"object","title":"ApproveTemplateIn"},"ArchiveIn":{"properties":{"reason":{"type":"string","maxLength":200,"minLength":1,"title":"Reason"}},"type":"object","required":["reason"],"title":"ArchiveIn"},"ArchiveLeaderboardIn":{"properties":{"reason":{"type":"string","maxLength":200,"minLength":1,"title":"Reason"}},"type":"object","required":["reason"],"title":"ArchiveLeaderboardIn"},"ArchiveTo":{"type":"string","enum":["glacier","none"],"title":"ArchiveTo"},"AspirantFunnelOut":{"properties":{"user_id":{"type":"integer","title":"User Id"},"signup_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Signup At"},"first_test_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"First Test At"},"first_paid_test_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"First Paid Test At"},"points_unlock_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Points Unlock At"},"mega_register_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Mega Register At"},"awardee_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Awardee At"},"last_refreshed_at":{"type":"string","format":"date-time","title":"Last Refreshed At"}},"type":"object","required":["user_id","signup_at","first_test_at","first_paid_test_at","points_unlock_at","mega_register_at","awardee_at","last_refreshed_at"],"title":"AspirantFunnelOut"},"AssignReviewIn":{"properties":{"question_id":{"type":"integer","title":"Question Id"},"reviewer_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Reviewer Admin Id"},"sla_hours":{"type":"integer","maximum":720.0,"minimum":1.0,"title":"Sla Hours","default":24}},"type":"object","required":["question_id"],"title":"AssignReviewIn","description":"Admin manually assigns a reviewer (override auto-balancer)."},"AssignmentListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AssignmentOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"AssignmentListOut"},"AssignmentOut":{"properties":{"id":{"type":"integer","title":"Id"},"reviewer_admin_id":{"type":"integer","title":"Reviewer Admin Id"},"subject_id":{"type":"integer","title":"Subject Id"},"weight":{"type":"number","title":"Weight"},"current_load":{"type":"integer","title":"Current Load"},"cap":{"type":"integer","title":"Cap"}},"type":"object","required":["id","reviewer_admin_id","subject_id","weight","current_load","cap"],"title":"AssignmentOut"},"AssignmentUpsertIn":{"properties":{"reviewer_admin_id":{"type":"integer","title":"Reviewer Admin Id"},"subject_id":{"type":"integer","title":"Subject Id"},"weight":{"type":"number","maximum":10.0,"minimum":0.0,"title":"Weight","default":1.0},"cap":{"type":"integer","maximum":10000.0,"minimum":1.0,"title":"Cap","default":20}},"type":"object","required":["reviewer_admin_id","subject_id"],"title":"AssignmentUpsertIn"},"AttemptListItemOut":{"properties":{"attempt_id":{"type":"integer","title":"Attempt Id"},"test_id":{"type":"integer","title":"Test Id"},"test_title":{"type":"string","title":"Test Title"},"module":{"type":"string","enum":["sample","eligibility","mega","arena"],"title":"Module"},"status":{"type":"string","enum":["in_progress","submitted","expired","cancelled"],"title":"Status"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"submitted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Submitted At"},"total_marks":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Marks"},"accuracy_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Accuracy Pct"}},"type":"object","required":["attempt_id","test_id","test_title","module","status","started_at"],"title":"AttemptListItemOut"},"AttemptListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AttemptListItemOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"AttemptListOut"},"AttemptQuestionOut":{"properties":{"seq":{"type":"integer","title":"Seq"},"question_id":{"type":"integer","title":"Question Id"},"public_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Id"},"format":{"type":"string","enum":["mcq","msq","numerical","integer"],"title":"Format"},"stem_md":{"type":"string","title":"Stem Md"},"options":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Options"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"marks_correct":{"type":"integer","title":"Marks Correct"},"marks_negative":{"type":"number","title":"Marks Negative"},"time_limit_secs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Time Limit Secs"}},"type":"object","required":["seq","question_id","format","stem_md","marks_correct","marks_negative"],"title":"AttemptQuestionOut","description":"A question as seen by the student during the attempt — no correct_answer / explanation."},"AttemptQuestionsOut":{"properties":{"attempt_id":{"type":"integer","title":"Attempt Id"},"test_id":{"type":"integer","title":"Test Id"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"items":{"items":{"$ref":"#/components/schemas/AttemptQuestionOut"},"type":"array","title":"Items"}},"type":"object","required":["attempt_id","test_id","expires_at","items"],"title":"AttemptQuestionsOut"},"AttemptResultOut":{"properties":{"attempt_id":{"type":"integer","title":"Attempt Id"},"test_id":{"type":"integer","title":"Test Id"},"test_title":{"type":"string","title":"Test Title"},"status":{"type":"string","enum":["in_progress","submitted","expired","cancelled"],"title":"Status"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"submitted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Submitted At"},"result":{"anyOf":[{"$ref":"#/components/schemas/ResultBreakdownOut"},{"type":"null"}]},"answers":{"items":{"$ref":"#/components/schemas/AnswerBreakdownOut"},"type":"array","title":"Answers"}},"type":"object","required":["attempt_id","test_id","test_title","status","started_at"],"title":"AttemptResultOut"},"AttemptsSummaryListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AttemptsSummaryOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"AttemptsSummaryListOut"},"AttemptsSummaryOut":{"properties":{"id":{"type":"integer","title":"Id"},"user_id":{"type":"integer","title":"User Id"},"exam_id":{"type":"integer","title":"Exam Id"},"module":{"$ref":"#/components/schemas/Module"},"attempts":{"type":"integer","title":"Attempts"},"avg_score":{"type":"number","title":"Avg Score"},"avg_accuracy":{"type":"number","title":"Avg Accuracy"},"avg_speed":{"type":"number","title":"Avg Speed"},"best_score":{"type":"number","title":"Best Score"},"points_earned":{"type":"integer","title":"Points Earned"},"period_start":{"type":"string","format":"date-time","title":"Period Start"},"period_end":{"type":"string","format":"date-time","title":"Period End"}},"type":"object","required":["id","user_id","exam_id","module","attempts","avg_score","avg_accuracy","avg_speed","best_score","points_earned","period_start","period_end"],"title":"AttemptsSummaryOut"},"AudienceFilterIn":{"properties":{"user_ids":{"anyOf":[{"items":{"type":"integer"},"type":"array","maxItems":10000},{"type":"null"}],"title":"User Ids"},"all_students":{"type":"boolean","title":"All Students","default":false},"only_verified_phone":{"type":"boolean","title":"Only Verified Phone","default":true}},"type":"object","title":"AudienceFilterIn","description":"All filters AND-ed together. At least one of user_ids / all_students must be set."},"AuditLogListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AuditLogOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"AuditLogListOut"},"AuditLogOut":{"properties":{"id":{"type":"string","title":"Id"},"actor_type":{"type":"string","enum":["admin_user","uni_user","user","system","partner_api"],"title":"Actor Type"},"actor_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Actor Id"},"actor_name_at_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Actor Name At Time"},"action":{"type":"string","title":"Action"},"entity_type":{"type":"string","title":"Entity Type"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id"},"before_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Before Json"},"after_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"After Json"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id"},"ip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ip"},"user_agent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Agent"},"severity":{"type":"string","enum":["info","warning","severe","critical"],"title":"Severity"},"at":{"type":"string","format":"date-time","title":"At"}},"type":"object","required":["id","actor_type","action","entity_type","severity","at"],"title":"AuditLogOut"},"AuthorListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AuthorOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"AuthorListOut"},"AuthorOut":{"properties":{"admin_user_id":{"type":"integer","title":"Admin User Id"},"subjects":{"items":{"type":"integer"},"type":"array","title":"Subjects"},"seniority":{"$ref":"#/components/schemas/AuthorSeniority"},"monthly_quota":{"type":"integer","title":"Monthly Quota"},"active":{"type":"boolean","title":"Active"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["admin_user_id","subjects","seniority","monthly_quota","active","updated_at"],"title":"AuthorOut"},"AuthorSeniority":{"type":"string","enum":["junior","mid","senior"],"title":"AuthorSeniority"},"AuthorUpsertIn":{"properties":{"subjects":{"items":{"type":"integer"},"type":"array","title":"Subjects"},"seniority":{"$ref":"#/components/schemas/AuthorSeniority","default":"junior"},"monthly_quota":{"type":"integer","maximum":10000.0,"minimum":0.0,"title":"Monthly Quota","default":50},"active":{"type":"boolean","title":"Active","default":true}},"type":"object","title":"AuthorUpsertIn"},"AutoDecision":{"type":"string","enum":["clean","review","flagged","disqualified"],"title":"AutoDecision"},"AutomationSettingsOut":{"properties":{"auto_decision_enabled":{"type":"boolean","title":"Auto Decision Enabled"},"force_disqualify_on_tab_switch_enabled":{"type":"boolean","title":"Force Disqualify On Tab Switch Enabled"},"cheat_score_review":{"type":"number","title":"Cheat Score Review"},"cheat_score_flagged":{"type":"number","title":"Cheat Score Flagged"},"cheat_score_disqualified":{"type":"number","title":"Cheat Score Disqualified"},"severe_events_review":{"type":"integer","title":"Severe Events Review"},"severe_events_flagged":{"type":"integer","title":"Severe Events Flagged"},"severe_events_disqualified":{"type":"integer","title":"Severe Events Disqualified"},"tab_switch_auto_submit_limit":{"type":"integer","title":"Tab Switch Auto Submit Limit"},"queue_sla_hours":{"type":"integer","title":"Queue Sla Hours"},"appeal_window_hours":{"type":"integer","title":"Appeal Window Hours"},"chunk_retention_days":{"type":"integer","title":"Chunk Retention Days"},"per_level":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/LevelThresholdsIn"},"type":"object"},{"type":"null"}],"title":"Per Level"},"updated_by_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated By Admin Id"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["auto_decision_enabled","force_disqualify_on_tab_switch_enabled","cheat_score_review","cheat_score_flagged","cheat_score_disqualified","severe_events_review","severe_events_flagged","severe_events_disqualified","tab_switch_auto_submit_limit","queue_sla_hours","appeal_window_hours","chunk_retention_days","updated_by_admin_id","updated_at"],"title":"AutomationSettingsOut"},"AutomationSettingsUpdateIn":{"properties":{"auto_decision_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Decision Enabled"},"force_disqualify_on_tab_switch_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Force Disqualify On Tab Switch Enabled"},"cheat_score_review":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Cheat Score Review"},"cheat_score_flagged":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Cheat Score Flagged"},"cheat_score_disqualified":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Cheat Score Disqualified"},"severe_events_review":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Severe Events Review"},"severe_events_flagged":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Severe Events Flagged"},"severe_events_disqualified":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Severe Events Disqualified"},"tab_switch_auto_submit_limit":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Tab Switch Auto Submit Limit"},"queue_sla_hours":{"anyOf":[{"type":"integer","maximum":720.0,"minimum":1.0},{"type":"null"}],"title":"Queue Sla Hours"},"appeal_window_hours":{"anyOf":[{"type":"integer","maximum":720.0,"minimum":1.0},{"type":"null"}],"title":"Appeal Window Hours"},"chunk_retention_days":{"anyOf":[{"type":"integer","maximum":365.0,"minimum":1.0},{"type":"null"}],"title":"Chunk Retention Days"},"per_level":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/LevelThresholdsIn"},"type":"object"},{"type":"null"}],"title":"Per Level","description":"Map of `L1|L2|L3|L4` → partial threshold overrides. Send {} to clear."}},"type":"object","title":"AutomationSettingsUpdateIn","description":"All fields optional → PATCH semantics. Only provided fields change."},"AwardIn":{"properties":{"max_awards":{"anyOf":[{"type":"integer","maximum":10000.0,"minimum":1.0},{"type":"null"}],"title":"Max Awards"},"notes":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Notes"}},"type":"object","title":"AwardIn"},"AwardOut":{"properties":{"window_id":{"type":"integer","title":"Window Id"},"awarded_count":{"type":"integer","title":"Awarded Count"},"skipped_count":{"type":"integer","title":"Skipped Count"},"grants":{"items":{"$ref":"#/components/schemas/GrantOut"},"type":"array","title":"Grants"}},"type":"object","required":["window_id","awarded_count","skipped_count","grants"],"title":"AwardOut"},"BacktestIngestIn":{"properties":{"backtest_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Backtest Date"},"samples":{"type":"integer","minimum":0.0,"title":"Samples"},"rmse":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Rmse"},"r2":{"anyOf":[{"type":"number","maximum":1.0,"minimum":-1.0},{"type":"null"}],"title":"R2"},"mae":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Mae"},"band_coverage_pct":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Band Coverage Pct"}},"type":"object","required":["samples"],"title":"BacktestIngestIn"},"BacktestListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/BacktestOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"BacktestListOut"},"BacktestOut":{"properties":{"id":{"type":"integer","title":"Id"},"model_id":{"type":"integer","title":"Model Id"},"backtest_date":{"type":"string","format":"date-time","title":"Backtest Date"},"samples":{"type":"integer","title":"Samples"},"rmse":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rmse"},"r2":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"R2"},"mae":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mae"},"band_coverage_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Band Coverage Pct"}},"type":"object","required":["id","model_id","backtest_date","samples","rmse","r2","mae","band_coverage_pct"],"title":"BacktestOut"},"BlogAuthorListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/BlogAuthorOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"BlogAuthorListOut"},"BlogAuthorOut":{"properties":{"id":{"type":"integer","title":"Id"},"admin_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Admin User Id"},"display_name":{"type":"string","title":"Display Name"},"bio_md":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bio Md"},"avatar_s3_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar S3 Key"},"linkedin_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linkedin Url"},"twitter_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Twitter Url"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","admin_user_id","display_name","bio_md","avatar_s3_key","linkedin_url","twitter_url","created_at"],"title":"BlogAuthorOut"},"BlogAuthorUpsertIn":{"properties":{"admin_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Admin User Id"},"display_name":{"type":"string","maxLength":120,"minLength":1,"title":"Display Name"},"bio_md":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}],"title":"Bio Md"},"avatar_s3_key":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Avatar S3 Key"},"linkedin_url":{"anyOf":[{"type":"string","maxLength":2083,"minLength":1,"format":"uri"},{"type":"null"}],"title":"Linkedin Url"},"twitter_url":{"anyOf":[{"type":"string","maxLength":2083,"minLength":1,"format":"uri"},{"type":"null"}],"title":"Twitter Url"}},"type":"object","required":["display_name"],"title":"BlogAuthorUpsertIn"},"BlogCategoryListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/BlogCategoryOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"BlogCategoryListOut"},"BlogCategoryOut":{"properties":{"id":{"type":"integer","title":"Id"},"slug":{"type":"string","title":"Slug"},"display":{"type":"string","title":"Display"},"active":{"type":"boolean","title":"Active"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","slug","display","active","created_at"],"title":"BlogCategoryOut"},"BlogCategoryUpsertIn":{"properties":{"slug":{"type":"string","maxLength":60,"minLength":1,"title":"Slug"},"display":{"type":"string","maxLength":120,"minLength":1,"title":"Display"},"active":{"type":"boolean","title":"Active","default":true}},"type":"object","required":["slug","display"],"title":"BlogCategoryUpsertIn"},"BlogPostCreateIn":{"properties":{"slug":{"type":"string","maxLength":120,"minLength":1,"title":"Slug"},"title":{"type":"string","maxLength":200,"minLength":1,"title":"Title"},"excerpt":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Excerpt"},"body_md":{"type":"string","maxLength":200000,"minLength":1,"title":"Body Md"},"cover_image_s3_key":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Cover Image S3 Key"},"category_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Category Id"},"tags_json":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags Json"},"read_minutes":{"type":"integer","maximum":120.0,"minimum":1.0,"title":"Read Minutes","default":3},"publish":{"type":"boolean","title":"Publish","default":false}},"type":"object","required":["slug","title","body_md"],"title":"BlogPostCreateIn"},"BlogPostListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/BlogPostSummaryOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"BlogPostListOut"},"BlogPostOut":{"properties":{"id":{"type":"integer","title":"Id"},"slug":{"type":"string","title":"Slug"},"title":{"type":"string","title":"Title"},"excerpt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Excerpt"},"body_md":{"type":"string","title":"Body Md"},"cover_image_s3_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cover Image S3 Key"},"author_admin_id":{"type":"integer","title":"Author Admin Id"},"category_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Category Id"},"tags_json":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags Json"},"read_minutes":{"type":"integer","title":"Read Minutes"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"views_count":{"type":"integer","title":"Views Count"},"comments_count":{"type":"integer","title":"Comments Count"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","slug","title","excerpt","body_md","cover_image_s3_key","author_admin_id","category_id","tags_json","read_minutes","published_at","views_count","comments_count","created_at","updated_at"],"title":"BlogPostOut"},"BlogPostSummaryOut":{"properties":{"id":{"type":"integer","title":"Id"},"slug":{"type":"string","title":"Slug"},"title":{"type":"string","title":"Title"},"excerpt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Excerpt"},"cover_image_s3_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cover Image S3 Key"},"author_admin_id":{"type":"integer","title":"Author Admin Id"},"category_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Category Id"},"tags_json":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags Json"},"read_minutes":{"type":"integer","title":"Read Minutes"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"views_count":{"type":"integer","title":"Views Count"}},"type":"object","required":["id","slug","title","excerpt","cover_image_s3_key","author_admin_id","category_id","tags_json","read_minutes","published_at","views_count"],"title":"BlogPostSummaryOut","description":"Light card-style payload for listings (no full body)."},"BlogPostUpdateIn":{"properties":{"title":{"anyOf":[{"type":"string","maxLength":200,"minLength":1},{"type":"null"}],"title":"Title"},"excerpt":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Excerpt"},"body_md":{"anyOf":[{"type":"string","maxLength":200000,"minLength":1},{"type":"null"}],"title":"Body Md"},"cover_image_s3_key":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Cover Image S3 Key"},"category_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Category Id"},"tags_json":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags Json"},"read_minutes":{"anyOf":[{"type":"integer","maximum":120.0,"minimum":1.0},{"type":"null"}],"title":"Read Minutes"},"publish":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Publish"}},"type":"object","title":"BlogPostUpdateIn"},"Body_me_upload_doc_v1_me_kyc_attempts__attempt_id__documents_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File","description":"image/* or application/pdf"},"doc_type":{"type":"string","title":"Doc Type","description":"pan | aadhaar | passport | driving_license | bank_proof"}},"type":"object","required":["file","doc_type"],"title":"Body_me_upload_doc_v1_me_kyc_attempts__attempt_id__documents_post"},"Body_upload_my_profile_photo_v1_me_profile_photo_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File","description":"JPEG / PNG / WebP, ≤ 4 MB"}},"type":"object","required":["file"],"title":"Body_upload_my_profile_photo_v1_me_profile_photo_post"},"Body_upload_v1_admin_files_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File","description":"binary upload"},"purpose":{"type":"string","title":"Purpose","description":"question_media | question_option_media | admin_upload | university_doc | cms"}},"type":"object","required":["file","purpose"],"title":"Body_upload_v1_admin_files_post"},"BreachCreateIn":{"properties":{"breach_kind":{"type":"string","enum":["data_leak","unauthorized_access","ransomware","vendor_breach","phishing","other"],"title":"Breach Kind"},"discovered_at":{"type":"string","format":"date-time","title":"Discovered At"},"affected_users_count":{"type":"integer","minimum":0.0,"title":"Affected Users Count","default":0},"affected_data_types":{"items":{"type":"string"},"type":"array","title":"Affected Data Types"},"mitigation_summary":{"type":"string","minLength":1,"title":"Mitigation Summary"},"dpia_doc_s3_key":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Dpia Doc S3 Key"}},"type":"object","required":["breach_kind","discovered_at","mitigation_summary"],"title":"BreachCreateIn"},"BreachListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/BreachOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"BreachListOut"},"BreachOut":{"properties":{"id":{"type":"integer","title":"Id"},"breach_kind":{"type":"string","enum":["data_leak","unauthorized_access","ransomware","vendor_breach","phishing","other"],"title":"Breach Kind"},"discovered_at":{"type":"string","format":"date-time","title":"Discovered At"},"notified_authority_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Notified Authority At"},"affected_users_count":{"type":"integer","title":"Affected Users Count"},"affected_data_types":{"items":{"type":"string"},"type":"array","title":"Affected Data Types"},"mitigation_summary":{"type":"string","title":"Mitigation Summary"},"status":{"type":"string","enum":["investigating","contained","resolved","disclosed_to_users"],"title":"Status"},"dpia_doc_s3_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dpia Doc S3 Key"},"recorded_by_admin_id":{"type":"integer","title":"Recorded By Admin Id"},"sla_hours_remaining":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Sla Hours Remaining"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","breach_kind","discovered_at","affected_users_count","affected_data_types","mitigation_summary","status","recorded_by_admin_id","created_at","updated_at"],"title":"BreachOut"},"BreachUpdateIn":{"properties":{"notified_authority_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Notified Authority At"},"affected_users_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Affected Users Count"},"affected_data_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Affected Data Types"},"mitigation_summary":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Mitigation Summary"},"status":{"anyOf":[{"type":"string","enum":["investigating","contained","resolved","disclosed_to_users"]},{"type":"null"}],"title":"Status"},"dpia_doc_s3_key":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Dpia Doc S3 Key"}},"type":"object","title":"BreachUpdateIn"},"BulkConsentIn":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ConsentToggleIn"},"type":"array","maxItems":50,"minItems":1,"title":"Items"},"granted_via":{"type":"string","enum":["settings","prompt","signup"],"title":"Granted Via","default":"settings"}},"type":"object","required":["items"],"title":"BulkConsentIn"},"BulkConsentOut":{"properties":{"updated":{"type":"integer","title":"Updated"},"no_op":{"type":"integer","title":"No Op"},"errors":{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array","title":"Errors"},"state":{"items":{"$ref":"#/components/schemas/ConsentStateOut"},"type":"array","title":"State"}},"type":"object","required":["updated","no_op","state"],"title":"BulkConsentOut"},"BundlePurchaseListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/BundlePurchaseOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"BundlePurchaseListOut"},"BundlePurchaseOut":{"properties":{"id":{"type":"integer","title":"Id"},"user_id":{"type":"integer","title":"User Id"},"bundle_id":{"type":"integer","title":"Bundle Id"},"payment_id":{"type":"integer","title":"Payment Id"},"credits_granted":{"type":"integer","title":"Credits Granted"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"purchased_at":{"type":"string","format":"date-time","title":"Purchased At"}},"type":"object","required":["id","user_id","bundle_id","payment_id","credits_granted","expires_at","purchased_at"],"title":"BundlePurchaseOut"},"CachedPredictionListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CachedPredictionOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"CachedPredictionListOut"},"CachedPredictionOut":{"properties":{"user_id":{"type":"integer","title":"User Id"},"exam_id":{"type":"integer","title":"Exam Id"},"predicted_rank":{"type":"integer","title":"Predicted Rank"},"band_lower":{"type":"integer","title":"Band Lower"},"band_upper":{"type":"integer","title":"Band Upper"},"model_version":{"type":"string","title":"Model Version"},"computed_at":{"type":"string","format":"date-time","title":"Computed At"}},"type":"object","required":["user_id","exam_id","predicted_rank","band_lower","band_upper","model_version","computed_at"],"title":"CachedPredictionOut"},"CalibrationBand":{"type":"string","enum":["top_100","top_1k","top_10k","top_50k","over_50k"],"title":"CalibrationBand","description":"Values match StrEnum names (SQLAlchemy stores names by default)."},"CalibrationIngestIn":{"properties":{"band":{"$ref":"#/components/schemas/CalibrationBand"},"predicted_avg":{"type":"integer","minimum":1.0,"title":"Predicted Avg"},"actual_avg":{"type":"integer","minimum":1.0,"title":"Actual Avg"}},"type":"object","required":["band","predicted_avg","actual_avg"],"title":"CalibrationIngestIn"},"CalibrationListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CalibrationOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"CalibrationListOut"},"CalibrationOut":{"properties":{"id":{"type":"integer","title":"Id"},"model_id":{"type":"integer","title":"Model Id"},"band":{"$ref":"#/components/schemas/CalibrationBand"},"predicted_avg":{"type":"integer","title":"Predicted Avg"},"actual_avg":{"type":"integer","title":"Actual Avg"},"miscalibration_pct":{"type":"number","title":"Miscalibration Pct"},"computed_at":{"type":"string","format":"date-time","title":"Computed At"}},"type":"object","required":["id","model_id","band","predicted_avg","actual_avg","miscalibration_pct","computed_at"],"title":"CalibrationOut"},"CampaignCreateIn":{"properties":{"code":{"type":"string","maxLength":60,"minLength":1,"title":"Code"},"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"template_key":{"type":"string","maxLength":80,"minLength":1,"title":"Template Key"},"vars_defaults":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Vars Defaults"},"scheduled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled At"}},"type":"object","required":["code","name","template_key"],"title":"CampaignCreateIn"},"CampaignListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CampaignOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"CampaignListOut"},"CampaignOut":{"properties":{"id":{"type":"integer","title":"Id"},"code":{"type":"string","title":"Code"},"name":{"type":"string","title":"Name"},"template_key":{"type":"string","title":"Template Key"},"vars_defaults":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Vars Defaults"},"scheduled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled At"},"status":{"$ref":"#/components/schemas/CampaignStatus"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"audience_size":{"type":"integer","title":"Audience Size"},"sent_count":{"type":"integer","title":"Sent Count"},"skipped_count":{"type":"integer","title":"Skipped Count"},"failed_count":{"type":"integer","title":"Failed Count"},"created_by_admin_id":{"type":"integer","title":"Created By Admin Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","code","name","template_key","vars_defaults","scheduled_at","status","started_at","completed_at","audience_size","sent_count","skipped_count","failed_count","created_by_admin_id","created_at","updated_at"],"title":"CampaignOut"},"CampaignStartOut":{"properties":{"campaign":{"$ref":"#/components/schemas/CampaignOut"},"resolved_audience_size":{"type":"integer","title":"Resolved Audience Size"}},"type":"object","required":["campaign","resolved_audience_size"],"title":"CampaignStartOut"},"CampaignStatus":{"type":"string","enum":["draft","scheduled","sending","paused","sent","cancelled"],"title":"CampaignStatus"},"CampaignUpdateIn":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":200,"minLength":1},{"type":"null"}],"title":"Name"},"template_key":{"anyOf":[{"type":"string","maxLength":80,"minLength":1},{"type":"null"}],"title":"Template Key"},"vars_defaults":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Vars Defaults"},"scheduled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled At"}},"type":"object","title":"CampaignUpdateIn"},"CancelIn":{"properties":{"reason":{"type":"string","maxLength":200,"minLength":1,"title":"Reason"}},"type":"object","required":["reason"],"title":"CancelIn"},"CategorisationOut":{"properties":{"test_id":{"type":"integer","title":"Test Id"},"tags":{"items":{"$ref":"#/components/schemas/TagOut"},"type":"array","title":"Tags"}},"type":"object","required":["test_id","tags"],"title":"CategorisationOut"},"CategorisationSetIn":{"properties":{"tag_ids":{"items":{"type":"integer"},"type":"array","title":"Tag Ids"}},"type":"object","title":"CategorisationSetIn"},"CategoryCreateIn":{"properties":{"slug":{"type":"string","maxLength":40,"minLength":1,"title":"Slug"},"display":{"type":"string","maxLength":120,"minLength":1,"title":"Display"},"sla_minutes":{"type":"integer","maximum":10080.0,"minimum":1.0,"title":"Sla Minutes","default":1440},"escalation_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Escalation Admin Id"},"parent_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent Id"}},"type":"object","required":["slug","display"],"title":"CategoryCreateIn"},"CategoryListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CategoryOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"CategoryListOut"},"CategoryOut":{"properties":{"id":{"type":"integer","title":"Id"},"slug":{"type":"string","title":"Slug"},"display":{"type":"string","title":"Display"},"sla_minutes":{"type":"integer","title":"Sla Minutes"},"escalation_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Escalation Admin Id"},"parent_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent Id"},"active":{"type":"boolean","title":"Active"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","slug","display","sla_minutes","escalation_admin_id","parent_id","active","created_at"],"title":"CategoryOut"},"CategoryUpdateIn":{"properties":{"display":{"anyOf":[{"type":"string","maxLength":120,"minLength":1},{"type":"null"}],"title":"Display"},"sla_minutes":{"anyOf":[{"type":"integer","maximum":10080.0,"minimum":1.0},{"type":"null"}],"title":"Sla Minutes"},"escalation_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Escalation Admin Id"},"parent_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent Id"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"}},"type":"object","title":"CategoryUpdateIn"},"ChangesRequestedIn":{"properties":{"comments":{"items":{"type":"string"},"type":"array","maxItems":20,"minItems":1,"title":"Comments"}},"type":"object","required":["comments"],"title":"ChangesRequestedIn"},"ChargebackListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ChargebackOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"ChargebackListOut"},"ChargebackOut":{"properties":{"id":{"type":"integer","title":"Id"},"payment_id":{"type":"integer","title":"Payment Id"},"provider_dispute_id":{"type":"string","title":"Provider Dispute Id"},"amount_paise":{"type":"integer","title":"Amount Paise"},"reason_code":{"type":"string","title":"Reason Code"},"evidence_attached":{"type":"boolean","title":"Evidence Attached"},"status":{"type":"string","enum":["open","representment_filed","won","lost","expired"],"title":"Status"},"evidence_s3_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evidence S3 Key"},"received_at":{"type":"string","format":"date-time","title":"Received At"},"representment_due_at":{"type":"string","format":"date-time","title":"Representment Due At"},"resolved_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Resolved At"}},"type":"object","required":["id","payment_id","provider_dispute_id","amount_paise","reason_code","evidence_attached","status","received_at","representment_due_at"],"title":"ChargebackOut"},"ChunkOut":{"properties":{"id":{"type":"integer","title":"Id"},"session_id":{"type":"string","title":"Session Id"},"chunk_no":{"type":"integer","title":"Chunk No"},"s3_key":{"type":"string","title":"S3 Key"},"bytes":{"type":"integer","title":"Bytes"},"duration_secs":{"type":"integer","title":"Duration Secs"},"uploaded_at":{"type":"string","format":"date-time","title":"Uploaded At"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"}},"type":"object","required":["id","session_id","chunk_no","s3_key","bytes","duration_secs","uploaded_at","expires_at"],"title":"ChunkOut"},"ChunkRegisterIn":{"properties":{"chunk_no":{"type":"integer","maximum":100000.0,"minimum":0.0,"title":"Chunk No"},"s3_key":{"type":"string","maxLength":300,"minLength":1,"title":"S3 Key"},"bytes":{"type":"integer","minimum":0.0,"title":"Bytes"},"duration_secs":{"type":"integer","maximum":3600.0,"minimum":0.0,"title":"Duration Secs"},"retention_days":{"type":"integer","maximum":365.0,"minimum":1.0,"title":"Retention Days","default":90}},"type":"object","required":["chunk_no","s3_key","bytes","duration_secs"],"title":"ChunkRegisterIn"},"CityListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CityOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"CityListOut"},"CityOut":{"properties":{"id":{"type":"integer","title":"Id"},"state_id":{"type":"integer","title":"State Id"},"name":{"type":"string","title":"Name"},"popularity_rank":{"type":"integer","title":"Popularity Rank"},"pincode_sample":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pincode Sample"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","state_id","name","popularity_rank","pincode_sample","created_at"],"title":"CityOut"},"CityUpsertIn":{"properties":{"state_id":{"type":"integer","title":"State Id"},"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name"},"popularity_rank":{"type":"integer","maximum":100000.0,"minimum":1.0,"title":"Popularity Rank","default":1000},"pincode_sample":{"anyOf":[{"type":"string","maxLength":6},{"type":"null"}],"title":"Pincode Sample"}},"type":"object","required":["state_id","name"],"title":"CityUpsertIn"},"CmsPageCreateIn":{"properties":{"slug":{"type":"string","maxLength":120,"minLength":1,"title":"Slug"},"title":{"type":"string","maxLength":200,"minLength":1,"title":"Title"},"body_md":{"type":"string","maxLength":200000,"minLength":1,"title":"Body Md"},"seo_title":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Seo Title"},"seo_description":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Seo Description"},"cover_image_s3_key":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Cover Image S3 Key"},"publish":{"type":"boolean","title":"Publish","default":false}},"type":"object","required":["slug","title","body_md"],"title":"CmsPageCreateIn"},"CmsPageListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CmsPageOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"CmsPageListOut"},"CmsPageOut":{"properties":{"id":{"type":"integer","title":"Id"},"slug":{"type":"string","title":"Slug"},"title":{"type":"string","title":"Title"},"body_md":{"type":"string","title":"Body Md"},"seo_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seo Title"},"seo_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seo Description"},"cover_image_s3_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cover Image S3 Key"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"author_admin_id":{"type":"integer","title":"Author Admin Id"},"version":{"type":"integer","title":"Version"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","slug","title","body_md","seo_title","seo_description","cover_image_s3_key","published_at","author_admin_id","version","created_at","updated_at"],"title":"CmsPageOut"},"CmsPageUpdateIn":{"properties":{"title":{"anyOf":[{"type":"string","maxLength":200,"minLength":1},{"type":"null"}],"title":"Title"},"body_md":{"anyOf":[{"type":"string","maxLength":200000,"minLength":1},{"type":"null"}],"title":"Body Md"},"seo_title":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Seo Title"},"seo_description":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Seo Description"},"cover_image_s3_key":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Cover Image S3 Key"},"publish":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Publish"}},"type":"object","title":"CmsPageUpdateIn"},"CohortAssignIn":{"properties":{"user_ids":{"items":{"type":"integer"},"type":"array","maxItems":10000,"minItems":1,"title":"User Ids"}},"type":"object","required":["user_ids"],"title":"CohortAssignIn"},"CohortAssignmentListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CohortAssignmentOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"CohortAssignmentListOut"},"CohortAssignmentOut":{"properties":{"cohort_id":{"type":"integer","title":"Cohort Id"},"user_id":{"type":"integer","title":"User Id"},"entered_at":{"type":"string","format":"date-time","title":"Entered At"},"exited_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Exited At"}},"type":"object","required":["cohort_id","user_id","entered_at","exited_at"],"title":"CohortAssignmentOut"},"CohortDefinitionCreateIn":{"properties":{"name":{"type":"string","maxLength":80,"minLength":1,"title":"Name"},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Description"},"query_sql":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}],"title":"Query Sql"},"materialised_table_name":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}],"title":"Materialised Table Name"},"refresh_schedule_cron":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Refresh Schedule Cron"}},"type":"object","required":["name"],"title":"CohortDefinitionCreateIn"},"CohortDefinitionListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CohortDefinitionOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"CohortDefinitionListOut"},"CohortDefinitionOut":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"query_sql":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query Sql"},"materialised_table_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Materialised Table Name"},"last_refresh_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Refresh At"},"refresh_schedule_cron":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refresh Schedule Cron"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","name","description","query_sql","materialised_table_name","last_refresh_at","refresh_schedule_cron","created_at"],"title":"CohortDefinitionOut"},"CommentCreateIn":{"properties":{"field_path":{"type":"string","maxLength":120,"minLength":1,"title":"Field Path"},"comment":{"type":"string","maxLength":4000,"minLength":1,"title":"Comment"},"option_letter":{"anyOf":[{"type":"string","maxLength":1},{"type":"null"}],"title":"Option Letter"},"parent_comment_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent Comment Id"}},"type":"object","required":["field_path","comment"],"title":"CommentCreateIn"},"CommentListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CommentOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"CommentListOut"},"CommentOut":{"properties":{"id":{"type":"integer","title":"Id"},"question_id":{"type":"integer","title":"Question Id"},"option_letter":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Option Letter"},"field_path":{"type":"string","title":"Field Path"},"comment":{"type":"string","title":"Comment"},"author_admin_id":{"type":"integer","title":"Author Admin Id"},"parent_comment_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent Comment Id"},"resolved_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Resolved At"},"resolved_by_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved By Admin Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","question_id","option_letter","field_path","comment","author_admin_id","parent_comment_id","resolved_at","resolved_by_admin_id","created_at"],"title":"CommentOut"},"CompetitionCreateIn":{"properties":{"code":{"type":"string","maxLength":40,"minLength":2,"pattern":"^[A-Za-z0-9_-]+$","title":"Code"},"name":{"type":"string","maxLength":200,"minLength":2,"title":"Name"},"exam_id":{"type":"integer","title":"Exam Id"},"class_level":{"anyOf":[{"type":"string","enum":["c6","c7","c8","c9","c10","c11","c12","none"]},{"type":"null"}],"title":"Class Level"},"total_entrants_cap":{"type":"integer","maximum":1000000.0,"minimum":1.0,"title":"Total Entrants Cap","default":1000},"total_rounds":{"type":"integer","maximum":10.0,"minimum":1.0,"title":"Total Rounds"},"qualification_pct_default":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Qualification Pct Default","default":50.0},"starts_at":{"type":"string","format":"date-time","title":"Starts At"},"ends_at_estimate":{"type":"string","format":"date-time","title":"Ends At Estimate"}},"type":"object","required":["code","name","exam_id","total_rounds","starts_at","ends_at_estimate"],"title":"CompetitionCreateIn"},"CompetitionDetailOut":{"properties":{"id":{"type":"integer","title":"Id"},"code":{"type":"string","title":"Code"},"name":{"type":"string","title":"Name"},"exam_id":{"type":"integer","title":"Exam Id"},"class_level":{"anyOf":[{"type":"string","enum":["c6","c7","c8","c9","c10","c11","c12","none"]},{"type":"null"}],"title":"Class Level"},"total_entrants_cap":{"type":"integer","title":"Total Entrants Cap"},"total_rounds":{"type":"integer","title":"Total Rounds"},"qualification_pct_default":{"type":"number","title":"Qualification Pct Default"},"starts_at":{"type":"string","format":"date-time","title":"Starts At"},"ends_at_estimate":{"type":"string","format":"date-time","title":"Ends At Estimate"},"status":{"type":"string","enum":["draft","open","running","completed","cancelled"],"title":"Status"},"cancelled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Cancelled At"},"cancel_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cancel Reason"},"created_by_admin_id":{"type":"integer","title":"Created By Admin Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"registrations_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Registrations Count"},"rounds_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rounds Count"},"rounds":{"items":{"$ref":"#/components/schemas/RoundOut"},"type":"array","title":"Rounds"}},"type":"object","required":["id","code","name","exam_id","total_entrants_cap","total_rounds","qualification_pct_default","starts_at","ends_at_estimate","status","created_by_admin_id","created_at","updated_at"],"title":"CompetitionDetailOut"},"CompetitionListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CompetitionOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"CompetitionListOut"},"CompetitionOut":{"properties":{"id":{"type":"integer","title":"Id"},"code":{"type":"string","title":"Code"},"name":{"type":"string","title":"Name"},"exam_id":{"type":"integer","title":"Exam Id"},"class_level":{"anyOf":[{"type":"string","enum":["c6","c7","c8","c9","c10","c11","c12","none"]},{"type":"null"}],"title":"Class Level"},"total_entrants_cap":{"type":"integer","title":"Total Entrants Cap"},"total_rounds":{"type":"integer","title":"Total Rounds"},"qualification_pct_default":{"type":"number","title":"Qualification Pct Default"},"starts_at":{"type":"string","format":"date-time","title":"Starts At"},"ends_at_estimate":{"type":"string","format":"date-time","title":"Ends At Estimate"},"status":{"type":"string","enum":["draft","open","running","completed","cancelled"],"title":"Status"},"cancelled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Cancelled At"},"cancel_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cancel Reason"},"created_by_admin_id":{"type":"integer","title":"Created By Admin Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"registrations_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Registrations Count"},"rounds_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rounds Count"}},"type":"object","required":["id","code","name","exam_id","total_entrants_cap","total_rounds","qualification_pct_default","starts_at","ends_at_estimate","status","created_by_admin_id","created_at","updated_at"],"title":"CompetitionOut"},"CompetitionUpdateIn":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":200,"minLength":2},{"type":"null"}],"title":"Name"},"total_entrants_cap":{"anyOf":[{"type":"integer","maximum":1000000.0,"minimum":1.0},{"type":"null"}],"title":"Total Entrants Cap"},"total_rounds":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":1.0},{"type":"null"}],"title":"Total Rounds"},"qualification_pct_default":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Qualification Pct Default"},"starts_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Starts At"},"ends_at_estimate":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ends At Estimate"}},"type":"object","title":"CompetitionUpdateIn"},"ComplianceReviewIn":{"properties":{"review_date":{"type":"string","format":"date-time","title":"Review Date"},"cdr_ids_reviewed":{"items":{"type":"integer"},"type":"array","title":"Cdr Ids Reviewed"},"findings_summary":{"type":"string","minLength":1,"title":"Findings Summary"},"actions_assigned":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Actions Assigned"},"next_review_due":{"type":"string","format":"date-time","title":"Next Review Due"}},"type":"object","required":["review_date","findings_summary","next_review_due"],"title":"ComplianceReviewIn"},"ComplianceReviewListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ComplianceReviewOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"ComplianceReviewListOut"},"ComplianceReviewOut":{"properties":{"id":{"type":"integer","title":"Id"},"review_date":{"type":"string","format":"date-time","title":"Review Date"},"cdr_ids_reviewed":{"items":{"type":"integer"},"type":"array","title":"Cdr Ids Reviewed"},"findings_summary":{"type":"string","title":"Findings Summary"},"actions_assigned":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Actions Assigned"},"next_review_due":{"type":"string","format":"date-time","title":"Next Review Due"},"signed_off_by_admin_id":{"type":"integer","title":"Signed Off By Admin Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","review_date","cdr_ids_reviewed","findings_summary","actions_assigned","next_review_due","signed_off_by_admin_id","created_at"],"title":"ComplianceReviewOut"},"ComputeQualifiersOut":{"properties":{"round_id":{"type":"integer","title":"Round Id"},"entrants":{"type":"integer","title":"Entrants"},"qualifiers":{"type":"integer","title":"Qualifiers"},"threshold_used":{"additionalProperties":true,"type":"object","title":"Threshold Used"}},"type":"object","required":["round_id","entrants","qualifiers","threshold_used"],"title":"ComputeQualifiersOut"},"ComputedEntryOut":{"properties":{"rank":{"type":"integer","title":"Rank"},"user_id":{"type":"integer","title":"User Id"},"display_name":{"type":"string","title":"Display Name"},"total_marks":{"type":"number","title":"Total Marks"},"max_marks":{"type":"number","title":"Max Marks"},"accuracy_pct":{"type":"number","title":"Accuracy Pct"},"time_taken_secs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Time Taken Secs"},"submitted_at":{"type":"string","format":"date-time","title":"Submitted At"},"attempt_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Attempt Id"},"excluded":{"type":"boolean","title":"Excluded","default":false},"manual_rank_applied":{"type":"boolean","title":"Manual Rank Applied","default":false},"admin_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Admin Note"}},"type":"object","required":["rank","user_id","display_name","total_marks","max_marks","accuracy_pct","submitted_at"],"title":"ComputedEntryOut","description":"One row in the materialised-on-read leaderboard view."},"ConsentEventOut":{"properties":{"id":{"type":"integer","title":"Id"},"purpose_key":{"type":"string","title":"Purpose Key"},"purpose_version":{"type":"integer","title":"Purpose Version"},"granted":{"type":"boolean","title":"Granted"},"acted_at":{"type":"string","format":"date-time","title":"Acted At"},"granted_via":{"type":"string","enum":["signup","settings","prompt","admin","parental"],"title":"Granted Via"},"actor_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Actor Admin Id"},"actor_ip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Actor Ip"},"proof_blob_s3_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Proof Blob S3 Key"}},"type":"object","required":["id","purpose_key","purpose_version","granted","acted_at","granted_via"],"title":"ConsentEventOut"},"ConsentHistoryOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ConsentEventOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"ConsentHistoryOut"},"ConsentStateOut":{"properties":{"purpose_id":{"type":"integer","title":"Purpose Id"},"purpose_key":{"type":"string","title":"Purpose Key"},"purpose_version":{"type":"integer","title":"Purpose Version"},"title":{"type":"string","title":"Title"},"description_md":{"type":"string","title":"Description Md"},"default_state":{"type":"string","enum":["opt_in","opt_out"],"title":"Default State"},"mandatory_for":{"type":"string","enum":["none","signup","eligibility_test","mega_scholarship","arena_entry","withdraw","uni_discovery"],"title":"Mandatory For"},"is_granted":{"type":"boolean","title":"Is Granted"},"last_changed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Changed At"},"granted_via":{"anyOf":[{"type":"string","enum":["signup","settings","prompt","admin","parental"]},{"type":"null"}],"title":"Granted Via"}},"type":"object","required":["purpose_id","purpose_key","purpose_version","title","description_md","default_state","mandatory_for","is_granted"],"title":"ConsentStateOut","description":"One row per purpose — the student's current state."},"ConsentToggleIn":{"properties":{"purpose_key":{"type":"string","maxLength":64,"minLength":2,"title":"Purpose Key"},"granted":{"type":"boolean","title":"Granted"}},"type":"object","required":["purpose_key","granted"],"title":"ConsentToggleIn"},"CountryListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CountryOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"CountryListOut"},"CountryOut":{"properties":{"iso2":{"type":"string","title":"Iso2"},"name":{"type":"string","title":"Name"},"dial_code":{"type":"string","title":"Dial Code"},"currency":{"type":"string","title":"Currency"},"timezone":{"type":"string","title":"Timezone"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["iso2","name","dial_code","currency","timezone","created_at"],"title":"CountryOut"},"CountryUpsertIn":{"properties":{"iso2":{"type":"string","maxLength":2,"minLength":2,"title":"Iso2"},"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name"},"dial_code":{"type":"string","maxLength":6,"minLength":2,"title":"Dial Code"},"currency":{"type":"string","maxLength":3,"minLength":3,"title":"Currency"},"timezone":{"type":"string","maxLength":40,"minLength":3,"title":"Timezone"}},"type":"object","required":["iso2","name","dial_code","currency","timezone"],"title":"CountryUpsertIn"},"CreateDisbursementIn":{"properties":{"note":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Note"}},"type":"object","title":"CreateDisbursementIn","description":"Body for POST /admin/money/disbursements/scholarship/{grant_id}."},"CreditGrantListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CreditGrantOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"CreditGrantListOut"},"CreditGrantOut":{"properties":{"id":{"type":"integer","title":"Id"},"user_id":{"type":"integer","title":"User Id"},"delta":{"type":"integer","title":"Delta"},"reason":{"type":"string","title":"Reason"},"ref_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ref Type"},"ref_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ref Id"},"at":{"type":"string","format":"date-time","title":"At"}},"type":"object","required":["id","user_id","delta","reason","at"],"title":"CreditGrantOut"},"DecisionInAdmin":{"properties":{"decision":{"$ref":"#/components/schemas/ProctorDecisionKind"},"notes":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Notes"}},"type":"object","required":["decision"],"title":"DecisionInAdmin"},"DecisionOut":{"properties":{"id":{"type":"integer","title":"Id"},"session_id":{"type":"string","title":"Session Id"},"decided_by_admin_id":{"type":"integer","title":"Decided By Admin Id"},"decision":{"$ref":"#/components/schemas/ProctorDecisionKind"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"at":{"type":"string","format":"date-time","title":"At"}},"type":"object","required":["id","session_id","decided_by_admin_id","decision","notes","at"],"title":"DecisionOut"},"DeliveryEventKind":{"type":"string","enum":["queued","sent","delivered","opened","clicked","bounced","spam_complaint","unsubscribed","failed"],"title":"DeliveryEventKind"},"DeliveryListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/DeliveryOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"DeliveryListOut"},"DeliveryOut":{"properties":{"id":{"type":"string","title":"Id"},"endpoint_id":{"type":"integer","title":"Endpoint Id"},"event":{"type":"string","title":"Event"},"payload_json":{"additionalProperties":true,"type":"object","title":"Payload Json"},"signature":{"type":"string","title":"Signature"},"attempt_no":{"type":"integer","title":"Attempt No"},"http_status":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Http Status"},"response_body_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response Body Summary"},"delivered_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Delivered At"},"next_retry_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Next Retry At"},"final_state":{"$ref":"#/components/schemas/DeliveryState"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","endpoint_id","event","payload_json","signature","attempt_no","http_status","response_body_summary","delivered_at","next_retry_at","final_state","created_at"],"title":"DeliveryOut"},"DeliveryState":{"type":"string","enum":["delivered","failed_permanent","retrying"],"title":"DeliveryState"},"DifficultyDistributionIn":{"properties":{"easy_pct":{"type":"integer","maximum":100.0,"minimum":0.0,"title":"Easy Pct"},"medium_pct":{"type":"integer","maximum":100.0,"minimum":0.0,"title":"Medium Pct"},"hard_pct":{"type":"integer","maximum":100.0,"minimum":0.0,"title":"Hard Pct"}},"type":"object","required":["easy_pct","medium_pct","hard_pct"],"title":"DifficultyDistributionIn"},"DifficultyDistributionOut":{"properties":{"test_id":{"type":"integer","title":"Test Id"},"easy_pct":{"type":"integer","title":"Easy Pct"},"medium_pct":{"type":"integer","title":"Medium Pct"},"hard_pct":{"type":"integer","title":"Hard Pct"},"updated_by_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated By Admin Id"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["test_id","easy_pct","medium_pct","hard_pct","updated_by_admin_id","updated_at"],"title":"DifficultyDistributionOut"},"DifficultyProgressionListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/DifficultyProgressionOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"DifficultyProgressionListOut"},"DifficultyProgressionOut":{"properties":{"user_id":{"type":"integer","title":"User Id"},"period_start":{"type":"string","format":"date-time","title":"Period Start"},"easy_attempted":{"type":"integer","title":"Easy Attempted"},"medium_attempted":{"type":"integer","title":"Medium Attempted"},"hard_attempted":{"type":"integer","title":"Hard Attempted"},"easy_correct_pct":{"type":"number","title":"Easy Correct Pct"},"medium_correct_pct":{"type":"number","title":"Medium Correct Pct"},"hard_correct_pct":{"type":"number","title":"Hard Correct Pct"}},"type":"object","required":["user_id","period_start","easy_attempted","medium_attempted","hard_attempted","easy_correct_pct","medium_correct_pct","hard_correct_pct"],"title":"DifficultyProgressionOut"},"DisbursementListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/DisbursementOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"DisbursementListOut"},"DisbursementOut":{"properties":{"id":{"type":"integer","title":"Id"},"grant_id":{"type":"integer","title":"Grant Id"},"provider":{"type":"string","enum":["manual_neft","razorpayx","imps","upi"],"title":"Provider"},"status":{"type":"string","enum":["queued","processing","sent","succeeded","failed","reversed"],"title":"Status"},"transfer_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transfer Ref"},"bank_account_last4":{"type":"string","title":"Bank Account Last4"},"bank_ifsc":{"type":"string","title":"Bank Ifsc"},"bank_holder_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bank Holder Name"},"pan_verified":{"type":"boolean","title":"Pan Verified"},"attempted_at":{"type":"string","format":"date-time","title":"Attempted At"},"succeeded_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Succeeded At"},"failed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Failed At"},"failure_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failure Reason"},"initiated_by_admin_id":{"type":"integer","title":"Initiated By Admin Id"},"last_actor_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Actor Admin Id"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","grant_id","provider","status","bank_account_last4","bank_ifsc","pan_verified","attempted_at","initiated_by_admin_id","created_at"],"title":"DisbursementOut"},"DltApprovalStatus":{"type":"string","enum":["pending","approved","rejected","suspended"],"title":"DltApprovalStatus"},"DltApproveIn":{"properties":{"status":{"$ref":"#/components/schemas/DltApprovalStatus"},"rejected_reason":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Rejected Reason"}},"type":"object","required":["status"],"title":"DltApproveIn"},"DltTemplateListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/DltTemplateOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"DltTemplateListOut"},"DltTemplateOut":{"properties":{"id":{"type":"integer","title":"Id"},"template_key":{"type":"string","title":"Template Key"},"dlt_entity_id":{"type":"string","title":"Dlt Entity Id"},"dlt_template_id":{"type":"string","title":"Dlt Template Id"},"category":{"type":"string","title":"Category"},"status":{"$ref":"#/components/schemas/DltApprovalStatus"},"approved_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Approved At"},"rejected_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rejected Reason"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","template_key","dlt_entity_id","dlt_template_id","category","status","approved_at","rejected_reason","created_at"],"title":"DltTemplateOut"},"DltTemplateUpsertIn":{"properties":{"template_key":{"type":"string","maxLength":80,"minLength":1,"title":"Template Key"},"dlt_entity_id":{"type":"string","maxLength":40,"minLength":1,"title":"Dlt Entity Id"},"dlt_template_id":{"type":"string","maxLength":40,"minLength":1,"title":"Dlt Template Id"},"category":{"type":"string","maxLength":40,"minLength":1,"title":"Category"}},"type":"object","required":["template_key","dlt_entity_id","dlt_template_id","category"],"title":"DltTemplateUpsertIn"},"EligibilityRowOut":{"properties":{"id":{"type":"integer","title":"Id"},"window_id":{"type":"integer","title":"Window Id"},"user_id":{"type":"integer","title":"User Id"},"eligibility_attempt_id":{"type":"integer","title":"Eligibility Attempt Id"},"eligibility_accuracy_pct":{"type":"number","title":"Eligibility Accuracy Pct"},"mega_attempt_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Mega Attempt Id"},"status":{"type":"string","enum":["registered","completed","abandoned"],"title":"Status"},"registered_at":{"type":"string","format":"date-time","title":"Registered At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"user_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Display Name"}},"type":"object","required":["id","window_id","user_id","eligibility_attempt_id","eligibility_accuracy_pct","status","registered_at"],"title":"EligibilityRowOut"},"EmailTemplateCreateIn":{"properties":{"key":{"type":"string","maxLength":80,"minLength":2,"pattern":"^[a-z][a-z0-9_.]*$","title":"Key"},"title":{"type":"string","maxLength":200,"minLength":2,"title":"Title"},"description_md":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Description Md"},"category":{"type":"string","enum":["transactional","scholarship","test","arena","leaderboard","marketing"],"title":"Category"},"email_subject":{"type":"string","maxLength":300,"minLength":1,"title":"Email Subject"},"email_body_md":{"type":"string","minLength":1,"title":"Email Body Md"},"vars":{"items":{"type":"string"},"type":"array","maxItems":20,"title":"Vars"}},"type":"object","required":["key","title","category","email_subject","email_body_md"],"title":"EmailTemplateCreateIn"},"EmailTemplateUpdateIn":{"properties":{"title":{"anyOf":[{"type":"string","maxLength":200,"minLength":2},{"type":"null"}],"title":"Title"},"description_md":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description Md"},"category":{"anyOf":[{"type":"string","enum":["transactional","scholarship","test","arena","leaderboard","marketing"]},{"type":"null"}],"title":"Category"},"email_subject":{"anyOf":[{"type":"string","maxLength":300,"minLength":1},{"type":"null"}],"title":"Email Subject"},"email_body_md":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Email Body Md"},"vars":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vars"},"confirm_demote_from_approved":{"type":"boolean","title":"Confirm Demote From Approved","default":false}},"type":"object","title":"EmailTemplateUpdateIn"},"EmitResultOut":{"properties":{"event":{"type":"string","title":"Event"},"matched_endpoints":{"type":"integer","title":"Matched Endpoints"},"deliveries":{"items":{"$ref":"#/components/schemas/DeliveryOut"},"type":"array","title":"Deliveries"}},"type":"object","required":["event","matched_endpoints","deliveries"],"title":"EmitResultOut"},"EndpointCreateIn":{"properties":{"owner_type":{"$ref":"#/components/schemas/WebhookOwnerType"},"owner_id":{"type":"integer","minimum":1.0,"title":"Owner Id"},"url":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Url"},"event_filters":{"items":{"type":"string"},"type":"array","maxItems":200,"title":"Event Filters"},"description":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Description"}},"type":"object","required":["owner_type","owner_id","url"],"title":"EndpointCreateIn"},"EndpointCreatedOut":{"properties":{"endpoint":{"$ref":"#/components/schemas/EndpointOut"},"secret_plain":{"type":"string","title":"Secret Plain"}},"type":"object","required":["endpoint","secret_plain"],"title":"EndpointCreatedOut","description":"Returned ONCE at creation — contains the plaintext secret. Store it now."},"EndpointListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/EndpointOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"EndpointListOut"},"EndpointOut":{"properties":{"id":{"type":"integer","title":"Id"},"owner_type":{"$ref":"#/components/schemas/WebhookOwnerType"},"owner_id":{"type":"integer","title":"Owner Id"},"url":{"type":"string","title":"Url"},"event_filters":{"items":{"type":"string"},"type":"array","title":"Event Filters"},"active":{"type":"boolean","title":"Active"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","owner_type","owner_id","url","event_filters","active","description","created_at"],"title":"EndpointOut"},"EndpointUpdateIn":{"properties":{"url":{"anyOf":[{"type":"string","maxLength":2083,"minLength":1,"format":"uri"},{"type":"null"}],"title":"Url"},"event_filters":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":200},{"type":"null"}],"title":"Event Filters"},"description":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Description"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"}},"type":"object","title":"EndpointUpdateIn"},"ErasureExecuteIn":{"properties":{"execution_summary":{"additionalProperties":true,"type":"object","title":"Execution Summary"},"error_msg":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Error Msg"}},"type":"object","required":["execution_summary"],"title":"ErasureExecuteIn","description":"Admin manually runs the erasure (Phase A is admin-driven; Phase B\nhas an executor worker). Provides the summary that gets stored."},"ErasureRequestIn":{"properties":{"scope":{"$ref":"#/components/schemas/ErasureScope","default":"full_account"},"reason":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Reason"}},"type":"object","title":"ErasureRequestIn"},"ErasureRequestListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ErasureRequestOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"ErasureRequestListOut"},"ErasureRequestOut":{"properties":{"id":{"type":"integer","title":"Id"},"user_id":{"type":"integer","title":"User Id"},"requested_at":{"type":"string","format":"date-time","title":"Requested At"},"scope":{"$ref":"#/components/schemas/ErasureScope"},"status":{"$ref":"#/components/schemas/ErasureStatus"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"reviewed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Reviewed At"},"reviewed_by_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Reviewed By Admin Id"},"review_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Review Notes"},"executed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Executed At"},"executed_by_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Executed By Admin Id"},"execution_summary_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Execution Summary Json"},"error_msg":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Msg"}},"type":"object","required":["id","user_id","requested_at","scope","status","reason","reviewed_at","reviewed_by_admin_id","review_notes","executed_at","executed_by_admin_id","execution_summary_json","error_msg"],"title":"ErasureRequestOut"},"ErasureReviewIn":{"properties":{"approve":{"type":"boolean","title":"Approve"},"review_notes":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Review Notes"}},"type":"object","required":["approve"],"title":"ErasureReviewIn"},"ErasureScope":{"type":"string","enum":["full_account","marketing_data_only","test_history_only","custom"],"title":"ErasureScope","description":"Granularity of what the user wants erased."},"ErasureStatus":{"type":"string","enum":["submitted","approved","rejected","executed","failed"],"title":"ErasureStatus"},"EscrowListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/EscrowMovementOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"EscrowListOut"},"EscrowMovementOut":{"properties":{"id":{"type":"integer","title":"Id"},"direction":{"type":"string","enum":["inbound_from_gateway","outbound_to_operating","outbound_to_funder_pool","outbound_to_user"],"title":"Direction"},"amount_paise":{"type":"integer","title":"Amount Paise"},"reference":{"type":"string","title":"Reference"},"reference_id":{"type":"string","title":"Reference Id"},"at":{"type":"string","format":"date-time","title":"At"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"}},"type":"object","required":["id","direction","amount_paise","reference","reference_id","at"],"title":"EscrowMovementOut"},"EventBatchIn":{"properties":{"events":{"items":{"$ref":"#/components/schemas/EventIn"},"type":"array","maxItems":500,"minItems":1,"title":"Events"}},"type":"object","required":["events"],"title":"EventBatchIn"},"EventBatchIngestIn":{"properties":{"events":{"items":{"$ref":"#/components/schemas/EventIngestIn"},"type":"array","maxItems":1000,"minItems":1,"title":"Events"}},"type":"object","required":["events"],"title":"EventBatchIngestIn"},"EventBatchOut":{"properties":{"accepted":{"type":"integer","title":"Accepted"},"severe_total":{"type":"integer","title":"Severe Total"},"tab_switch_warns":{"type":"integer","title":"Tab Switch Warns"},"auto_submit_triggered":{"type":"boolean","title":"Auto Submit Triggered"}},"type":"object","required":["accepted","severe_total","tab_switch_warns","auto_submit_triggered"],"title":"EventBatchOut"},"EventCountListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/EventCountOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"EventCountListOut"},"EventCountOut":{"properties":{"event":{"type":"string","title":"Event"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["event","count"],"title":"EventCountOut"},"EventIn":{"properties":{"kind":{"$ref":"#/components/schemas/EventKind"},"severity":{"$ref":"#/components/schemas/EventSeverity","default":"info"},"confidence":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Confidence"},"raw_blob_s3_key":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Raw Blob S3 Key"},"ts":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ts"}},"type":"object","required":["kind","confidence"],"title":"EventIn"},"EventIngestIn":{"properties":{"event":{"type":"string","maxLength":40,"minLength":1,"title":"Event"},"user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"},"session_id":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Session Id"},"device_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Device Id"},"ip":{"anyOf":[{"type":"string","maxLength":45},{"type":"null"}],"title":"Ip"},"country":{"anyOf":[{"type":"string","maxLength":2},{"type":"null"}],"title":"Country"},"state":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"State"},"exam":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Exam"},"module":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Module"},"ref_type":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Ref Type"},"ref_id":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Ref Id"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"ts":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ts"}},"type":"object","required":["event"],"title":"EventIngestIn"},"EventKind":{"type":"string","enum":["face_check","tab_switch","blur","phone_detected","multi_face","audio_anomaly","accel_spike","heartbeat","geo_change"],"title":"EventKind"},"EventSeverity":{"type":"string","enum":["info","warn","severe"],"title":"EventSeverity"},"ExamCategoryCreateIn":{"properties":{"slug":{"type":"string","maxLength":40,"minLength":2,"title":"Slug"},"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name"},"governing_body":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Governing Body"},"years_calibrated_against":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Years Calibrated Against"},"predictor_supported":{"type":"boolean","title":"Predictor Supported","default":false},"irt_supported":{"type":"boolean","title":"Irt Supported","default":false},"default_pattern_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Pattern Json"}},"type":"object","required":["slug","name"],"title":"ExamCategoryCreateIn"},"ExamCategoryListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ExamCategoryOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"ExamCategoryListOut"},"ExamCategoryOut":{"properties":{"id":{"type":"integer","title":"Id"},"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"},"governing_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Governing Body"},"years_calibrated_against":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Years Calibrated Against"},"predictor_supported":{"type":"boolean","title":"Predictor Supported"},"irt_supported":{"type":"boolean","title":"Irt Supported"},"default_pattern_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Pattern Json"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","slug","name","governing_body","years_calibrated_against","predictor_supported","irt_supported","default_pattern_json","created_at"],"title":"ExamCategoryOut"},"ExamCategoryUpdateIn":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":120,"minLength":1},{"type":"null"}],"title":"Name"},"governing_body":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Governing Body"},"years_calibrated_against":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Years Calibrated Against"},"predictor_supported":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Predictor Supported"},"irt_supported":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Irt Supported"},"default_pattern_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Pattern Json"}},"type":"object","title":"ExamCategoryUpdateIn"},"ExamOut":{"properties":{"id":{"type":"integer","title":"Id"},"code":{"type":"string","title":"Code"},"name":{"type":"string","title":"Name"},"parent_exam_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent Exam Id"},"active":{"type":"boolean","title":"Active"}},"type":"object","required":["id","code","name","active"],"title":"ExamOut"},"ExperimentCreateIn":{"properties":{"key":{"type":"string","maxLength":60,"minLength":2,"title":"Key"},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Description"},"hypothesis":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Hypothesis"},"metric_primary":{"type":"string","maxLength":60,"minLength":1,"title":"Metric Primary"},"start_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start At"},"end_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End At"},"min_sample_size":{"type":"integer","minimum":1.0,"title":"Min Sample Size","default":1000},"significance_threshold":{"type":"number","exclusiveMaximum":1.0,"exclusiveMinimum":0.0,"title":"Significance Threshold","default":0.05}},"type":"object","required":["key","metric_primary"],"title":"ExperimentCreateIn"},"ExperimentListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ExperimentOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"ExperimentListOut"},"ExperimentOut":{"properties":{"id":{"type":"integer","title":"Id"},"key":{"type":"string","title":"Key"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"hypothesis":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hypothesis"},"metric_primary":{"type":"string","title":"Metric Primary"},"start_at":{"type":"string","format":"date-time","title":"Start At"},"end_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End At"},"status":{"$ref":"#/components/schemas/ExperimentStatus"},"min_sample_size":{"type":"integer","title":"Min Sample Size"},"significance_threshold":{"type":"number","title":"Significance Threshold"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"created_by_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created By Admin Id"}},"type":"object","required":["id","key","description","hypothesis","metric_primary","start_at","end_at","status","min_sample_size","significance_threshold","created_at","created_by_admin_id"],"title":"ExperimentOut"},"ExperimentStatus":{"type":"string","enum":["design","running","paused","completed","aborted"],"title":"ExperimentStatus"},"ExperimentUpdateIn":{"properties":{"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Description"},"hypothesis":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Hypothesis"},"end_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End At"},"status":{"anyOf":[{"$ref":"#/components/schemas/ExperimentStatus"},{"type":"null"}]},"min_sample_size":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Min Sample Size"},"significance_threshold":{"anyOf":[{"type":"number","exclusiveMaximum":1.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Significance Threshold"}},"type":"object","title":"ExperimentUpdateIn"},"ExportFailIn":{"properties":{"error_msg":{"type":"string","maxLength":2000,"minLength":1,"title":"Error Msg"}},"type":"object","required":["error_msg"],"title":"ExportFailIn"},"ExportProcessIn":{"properties":{"file_id":{"type":"string","maxLength":26,"minLength":1,"title":"File Id"},"ttl_hours":{"type":"integer","maximum":720.0,"minimum":1.0,"title":"Ttl Hours","default":168}},"type":"object","required":["file_id"],"title":"ExportProcessIn","description":"Admin marks the export ready: provides the file_id and TTL hours."},"ExportRequestIn":{"properties":{"notes":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Notes"}},"type":"object","title":"ExportRequestIn"},"ExportRequestListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ExportRequestOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"ExportRequestListOut"},"ExportRequestOut":{"properties":{"id":{"type":"integer","title":"Id"},"user_id":{"type":"integer","title":"User Id"},"requested_at":{"type":"string","format":"date-time","title":"Requested At"},"status":{"$ref":"#/components/schemas/ExportStatus"},"processed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Processed At"},"file_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Id"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"downloaded_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Downloaded At"},"error_msg":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Msg"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"processed_by_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Processed By Admin Id"}},"type":"object","required":["id","user_id","requested_at","status","processed_at","file_id","expires_at","downloaded_at","error_msg","notes","processed_by_admin_id"],"title":"ExportRequestOut"},"ExportStatus":{"type":"string","enum":["queued","processing","ready","downloaded","expired","failed"],"title":"ExportStatus"},"FaqCreateIn":{"properties":{"question":{"type":"string","maxLength":400,"minLength":3,"title":"Question"},"answer_md":{"type":"string","maxLength":20000,"minLength":1,"title":"Answer Md"},"category":{"type":"string","maxLength":60,"minLength":1,"title":"Category"},"display_order":{"type":"integer","maximum":10000.0,"minimum":0.0,"title":"Display Order","default":100},"published":{"type":"boolean","title":"Published","default":false}},"type":"object","required":["question","answer_md","category"],"title":"FaqCreateIn"},"FaqListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/FaqOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"FaqListOut"},"FaqOut":{"properties":{"id":{"type":"integer","title":"Id"},"question":{"type":"string","title":"Question"},"answer_md":{"type":"string","title":"Answer Md"},"category":{"type":"string","title":"Category"},"display_order":{"type":"integer","title":"Display Order"},"published":{"type":"boolean","title":"Published"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","question","answer_md","category","display_order","published","created_at","updated_at"],"title":"FaqOut"},"FaqUpdateIn":{"properties":{"question":{"anyOf":[{"type":"string","maxLength":400,"minLength":3},{"type":"null"}],"title":"Question"},"answer_md":{"anyOf":[{"type":"string","maxLength":20000,"minLength":1},{"type":"null"}],"title":"Answer Md"},"category":{"anyOf":[{"type":"string","maxLength":60,"minLength":1},{"type":"null"}],"title":"Category"},"display_order":{"anyOf":[{"type":"integer","maximum":10000.0,"minimum":0.0},{"type":"null"}],"title":"Display Order"},"published":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Published"}},"type":"object","title":"FaqUpdateIn"},"FeatureFlagCreateIn":{"properties":{"key":{"type":"string","maxLength":60,"minLength":2,"title":"Key"},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Description"},"enabled":{"type":"boolean","title":"Enabled","default":false},"cohort_query_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Cohort Query Json"},"rollout_pct":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Rollout Pct","default":0.0},"kill_switch":{"type":"boolean","title":"Kill Switch","default":false},"owner_team":{"$ref":"#/components/schemas/OwnerTeam","default":"backend"}},"type":"object","required":["key"],"title":"FeatureFlagCreateIn"},"FeatureFlagListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/FeatureFlagOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"FeatureFlagListOut"},"FeatureFlagOut":{"properties":{"id":{"type":"integer","title":"Id"},"key":{"type":"string","title":"Key"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"enabled":{"type":"boolean","title":"Enabled"},"cohort_query_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Cohort Query Json"},"rollout_pct":{"type":"number","title":"Rollout Pct"},"kill_switch":{"type":"boolean","title":"Kill Switch"},"owner_team":{"$ref":"#/components/schemas/OwnerTeam"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_changed_at":{"type":"string","format":"date-time","title":"Last Changed At"},"last_changed_by_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Changed By Admin Id"}},"type":"object","required":["id","key","description","enabled","cohort_query_json","rollout_pct","kill_switch","owner_team","created_at","last_changed_at","last_changed_by_admin_id"],"title":"FeatureFlagOut"},"FeatureFlagUpdateIn":{"properties":{"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Description"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"},"cohort_query_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Cohort Query Json"},"rollout_pct":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Rollout Pct"},"kill_switch":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Kill Switch"},"owner_team":{"anyOf":[{"$ref":"#/components/schemas/OwnerTeam"},{"type":"null"}]}},"type":"object","title":"FeatureFlagUpdateIn"},"FeatureKind":{"type":"string","enum":["numeric","categorical","derived"],"title":"FeatureKind"},"FeatureListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/FeatureOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"FeatureListOut"},"FeatureOut":{"properties":{"id":{"type":"integer","title":"Id"},"model_id":{"type":"integer","title":"Model Id"},"name":{"type":"string","title":"Name"},"kind":{"$ref":"#/components/schemas/FeatureKind"},"importance":{"type":"number","title":"Importance"}},"type":"object","required":["id","model_id","name","kind","importance"],"title":"FeatureOut"},"FeatureUpsertIn":{"properties":{"name":{"type":"string","maxLength":80,"minLength":1,"title":"Name"},"kind":{"$ref":"#/components/schemas/FeatureKind"},"importance":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Importance"}},"type":"object","required":["name","kind","importance"],"title":"FeatureUpsertIn"},"FileListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/FileOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"FileListOut"},"FileOut":{"properties":{"id":{"type":"string","title":"Id"},"filename":{"type":"string","title":"Filename"},"mime_type":{"type":"string","title":"Mime Type"},"bytes":{"type":"integer","title":"Bytes"},"sha256":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sha256"},"purpose":{"type":"string","enum":["question_media","question_option_media","admin_upload","university_doc","cms","kyc_doc"],"title":"Purpose"},"status":{"type":"string","enum":["pending","ready","deleted"],"title":"Status"},"storage_backend":{"type":"string","enum":["local","s3"],"title":"Storage Backend"},"public_url":{"type":"string","title":"Public Url"},"uploader_type":{"type":"string","enum":["admin","uni","user","system"],"title":"Uploader Type"},"uploader_id":{"type":"integer","title":"Uploader Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","filename","mime_type","bytes","purpose","status","storage_backend","public_url","uploader_type","uploader_id","created_at"],"title":"FileOut"},"FilePurpose":{"type":"string","enum":["question_media","question_option_media","admin_upload","university_doc","cms","kyc_doc"],"title":"FilePurpose"},"FlagEvalOut":{"properties":{"key":{"type":"string","title":"Key"},"enabled":{"type":"boolean","title":"Enabled"},"reason":{"type":"string","title":"Reason"}},"type":"object","required":["key","enabled","reason"],"title":"FlagEvalOut"},"ForceEndRoundIn":{"properties":{"reason":{"type":"string","maxLength":400,"minLength":1,"title":"Reason"}},"type":"object","required":["reason"],"title":"ForceEndRoundIn"},"ForgotPasswordIn":{"properties":{"email":{"type":"string","format":"email","title":"Email"}},"type":"object","required":["email"],"title":"ForgotPasswordIn"},"Form16AListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/Form16AOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"Form16AListOut"},"Form16AOut":{"properties":{"id":{"type":"integer","title":"Id"},"user_id":{"type":"integer","title":"User Id"},"financial_year":{"type":"string","title":"Financial Year"},"total_tds_paise":{"type":"integer","title":"Total Tds Paise"},"pdf_s3_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pdf S3 Key"},"generated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Generated At"},"sent_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Sent At"},"generated_by_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Generated By Admin Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","user_id","financial_year","total_tds_paise","created_at"],"title":"Form16AOut"},"FourEyeCreateIn":{"properties":{"request_kind":{"type":"string","maxLength":40,"minLength":1,"title":"Request Kind"},"request_ref_type":{"type":"string","maxLength":60,"minLength":1,"title":"Request Ref Type"},"request_ref_id":{"type":"string","maxLength":80,"minLength":1,"title":"Request Ref Id"},"reason":{"type":"string","maxLength":400,"minLength":1,"title":"Reason"}},"type":"object","required":["request_kind","request_ref_type","request_ref_id","reason"],"title":"FourEyeCreateIn"},"FourEyeDecideIn":{"properties":{"reason":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Reason"}},"type":"object","title":"FourEyeDecideIn"},"FourEyeListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/FourEyeOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"FourEyeListOut"},"FourEyeOut":{"properties":{"id":{"type":"integer","title":"Id"},"request_kind":{"type":"string","title":"Request Kind"},"request_ref_type":{"type":"string","title":"Request Ref Type"},"request_ref_id":{"type":"string","title":"Request Ref Id"},"requested_by_admin_id":{"type":"integer","title":"Requested By Admin Id"},"co_approver_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Co Approver Admin Id"},"requested_at":{"type":"string","format":"date-time","title":"Requested At"},"co_approved_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Co Approved At"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"status":{"type":"string","enum":["pending","approved","rejected","expired"],"title":"Status"},"reason_requested":{"type":"string","title":"Reason Requested"},"reason_decided":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason Decided"}},"type":"object","required":["id","request_kind","request_ref_type","request_ref_id","requested_by_admin_id","requested_at","expires_at","status","reason_requested"],"title":"FourEyeOut"},"FunnelComputeIn":{"properties":{"cohort_id":{"type":"integer","title":"Cohort Id"}},"type":"object","required":["cohort_id"],"title":"FunnelComputeIn"},"FunnelDefinitionCreateIn":{"properties":{"name":{"type":"string","maxLength":80,"minLength":1,"title":"Name"},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Description"},"steps_json":{"items":{"type":"string"},"type":"array","maxItems":20,"minItems":2,"title":"Steps Json"},"window_days":{"type":"integer","maximum":365.0,"minimum":1.0,"title":"Window Days","default":7}},"type":"object","required":["name","steps_json"],"title":"FunnelDefinitionCreateIn"},"FunnelDefinitionListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/FunnelDefinitionOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"FunnelDefinitionListOut"},"FunnelDefinitionOut":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"steps_json":{"items":{"type":"string"},"type":"array","title":"Steps Json"},"window_days":{"type":"integer","title":"Window Days"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","name","description","steps_json","window_days","created_at"],"title":"FunnelDefinitionOut"},"FunnelResultListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/FunnelResultRowOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"FunnelResultListOut"},"FunnelResultRowOut":{"properties":{"funnel_id":{"type":"integer","title":"Funnel Id"},"cohort_id":{"type":"integer","title":"Cohort Id"},"step_index":{"type":"integer","title":"Step Index"},"step_event":{"type":"string","title":"Step Event"},"users_count":{"type":"integer","title":"Users Count"},"computed_at":{"type":"string","format":"date-time","title":"Computed At"}},"type":"object","required":["funnel_id","cohort_id","step_index","step_event","users_count","computed_at"],"title":"FunnelResultRowOut"},"GatewayListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/GatewayOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"GatewayListOut"},"GatewayOut":{"properties":{"id":{"type":"integer","title":"Id"},"slug":{"type":"string","title":"Slug"},"is_primary":{"type":"boolean","title":"Is Primary"},"circuit_breaker_open":{"type":"boolean","title":"Circuit Breaker Open"},"failure_window_5m":{"type":"integer","title":"Failure Window 5M"},"success_rate_1h":{"type":"number","title":"Success Rate 1H"},"last_health_check_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Health Check At"}},"type":"object","required":["id","slug","is_primary","circuit_breaker_open","failure_window_5m","success_rate_1h"],"title":"GatewayOut"},"GenerateForm16AIn":{"properties":{"user_id":{"type":"integer","minimum":1.0,"title":"User Id"},"financial_year":{"type":"string","pattern":"^\\d{4}-\\d{2}$","title":"Financial Year"},"pdf_s3_key":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Pdf S3 Key"}},"type":"object","required":["user_id","financial_year"],"title":"GenerateForm16AIn"},"GenerateLeaderboardIn":{"properties":{"type":{"type":"string","enum":["eligibility","mega","arena"],"title":"Type"},"period_kind":{"type":"string","enum":["monthly","per_test","custom"],"title":"Period Kind"},"period_start":{"type":"string","format":"date-time","title":"Period Start"},"period_end":{"type":"string","format":"date-time","title":"Period End"},"exam_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exam Id"},"subject_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subject Id"},"class_level":{"anyOf":[{"type":"string","enum":["c6","c7","c8","c9","c10","c11","c12","none"]},{"type":"null"}],"title":"Class Level"},"source_test_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Source Test Id"},"title":{"anyOf":[{"type":"string","maxLength":200,"minLength":2},{"type":"null"}],"title":"Title"},"notes_md":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Notes Md"}},"type":"object","required":["type","period_kind","period_start","period_end"],"title":"GenerateLeaderboardIn","description":"All fields validated against the type:\n- mega: period_kind must be 'monthly', period_start/end auto-snap to month bounds\n- arena: period_kind must be 'per_test', source_test_id required\n- eligibility: period_kind must be 'custom', period_start + period_end required"},"GrantListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/GrantOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"GrantListOut"},"GrantOut":{"properties":{"id":{"type":"integer","title":"Id"},"code":{"type":"string","title":"Code"},"window_id":{"type":"integer","title":"Window Id"},"user_id":{"type":"integer","title":"User Id"},"mega_attempt_id":{"type":"integer","title":"Mega Attempt Id"},"amount_paise":{"type":"integer","title":"Amount Paise"},"rank_in_window":{"type":"integer","title":"Rank In Window"},"status":{"type":"string","enum":["approved","disbursing","paid","reversed","blocked"],"title":"Status"},"awarded_by_admin_id":{"type":"integer","title":"Awarded By Admin Id"},"awarded_at":{"type":"string","format":"date-time","title":"Awarded At"},"disbursed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Disbursed At"},"payout_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payout Ref"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"user_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Display Name"}},"type":"object","required":["id","code","window_id","user_id","mega_attempt_id","amount_paise","rank_in_window","status","awarded_by_admin_id","awarded_at","created_at"],"title":"GrantOut"},"GrievanceAction":{"type":"string","enum":["acknowledge","request_info","resolve","escalate","close","reopen"],"title":"GrievanceAction"},"GrievanceActionIn":{"properties":{"action":{"$ref":"#/components/schemas/GrievanceAction"},"notes":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Notes"},"outcome":{"anyOf":[{"$ref":"#/components/schemas/GrievanceOutcome"},{"type":"null"}]}},"type":"object","required":["action"],"title":"GrievanceActionIn"},"GrievanceActionListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/GrievanceActionOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"GrievanceActionListOut"},"GrievanceActionOut":{"properties":{"id":{"type":"integer","title":"Id"},"grievance_id":{"type":"integer","title":"Grievance Id"},"action":{"$ref":"#/components/schemas/GrievanceAction"},"actor_admin_id":{"type":"integer","title":"Actor Admin Id"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"at":{"type":"string","format":"date-time","title":"At"}},"type":"object","required":["id","grievance_id","action","actor_admin_id","notes","at"],"title":"GrievanceActionOut"},"GrievanceCategory":{"type":"string","enum":["content_takedown","payment_dispute","data_access","harassment","impersonation","other"],"title":"GrievanceCategory"},"GrievanceCreateIn":{"properties":{"complainant_email":{"type":"string","format":"email","title":"Complainant Email"},"complainant_phone":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Complainant Phone"},"complaint_text":{"type":"string","maxLength":10000,"minLength":20,"title":"Complaint Text"},"category":{"$ref":"#/components/schemas/GrievanceCategory"},"subject_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subject User Id"}},"type":"object","required":["complainant_email","complaint_text","category"],"title":"GrievanceCreateIn","description":"Anonymous-OK: complainant email is required, phone optional."},"GrievanceListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/GrievanceOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"GrievanceListOut"},"GrievanceOut":{"properties":{"id":{"type":"integer","title":"Id"},"subject_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subject User Id"},"complainant_email":{"type":"string","title":"Complainant Email"},"complainant_phone_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Complainant Phone Hash"},"complaint_text":{"type":"string","title":"Complaint Text"},"category":{"$ref":"#/components/schemas/GrievanceCategory"},"received_at":{"type":"string","format":"date-time","title":"Received At"},"acknowledged_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Acknowledged At"},"resolved_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Resolved At"},"due_at":{"type":"string","format":"date-time","title":"Due At"},"outcome":{"anyOf":[{"$ref":"#/components/schemas/GrievanceOutcome"},{"type":"null"}]},"grievance_officer_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Grievance Officer Admin Id"}},"type":"object","required":["id","subject_user_id","complainant_email","complainant_phone_hash","complaint_text","category","received_at","acknowledged_at","resolved_at","due_at","outcome","grievance_officer_admin_id"],"title":"GrievanceOut"},"GrievanceOutcome":{"type":"string","enum":["resolved","closed_no_action","escalated_to_court","transferred"],"title":"GrievanceOutcome"},"GstInvoiceListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/GstInvoiceOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"GstInvoiceListOut"},"GstInvoiceOut":{"properties":{"id":{"type":"integer","title":"Id"},"payment_id":{"type":"integer","title":"Payment Id"},"invoice_no":{"type":"string","title":"Invoice No"},"recipient_state":{"type":"string","title":"Recipient State"},"cgst_paise":{"type":"integer","title":"Cgst Paise"},"sgst_paise":{"type":"integer","title":"Sgst Paise"},"igst_paise":{"type":"integer","title":"Igst Paise"},"total_tax_paise":{"type":"integer","title":"Total Tax Paise"},"hsn_code":{"type":"string","title":"Hsn Code"},"pdf_s3_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pdf S3 Key"},"issued_at":{"type":"string","format":"date-time","title":"Issued At"}},"type":"object","required":["id","payment_id","invoice_no","recipient_state","cgst_paise","sgst_paise","igst_paise","total_tax_paise","hsn_code","issued_at"],"title":"GstInvoiceOut"},"GstReturnCreateIn":{"properties":{"period":{"type":"string","pattern":"^\\d{4}-\\d{2}$","title":"Period"},"kind":{"type":"string","enum":["GSTR1","GSTR3B","GSTR9","GSTR9C"],"title":"Kind"},"total_taxable_value_paise":{"type":"integer","minimum":0.0,"title":"Total Taxable Value Paise","default":0},"total_tax_paise":{"type":"integer","minimum":0.0,"title":"Total Tax Paise","default":0}},"type":"object","required":["period","kind"],"title":"GstReturnCreateIn"},"GstReturnFileIn":{"properties":{"acknowledgement_no":{"type":"string","maxLength":40,"minLength":4,"title":"Acknowledgement No"},"filed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Filed At"},"pdf_s3_key":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Pdf S3 Key"}},"type":"object","required":["acknowledgement_no"],"title":"GstReturnFileIn"},"GstReturnListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/GstReturnOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"GstReturnListOut"},"GstReturnOut":{"properties":{"id":{"type":"integer","title":"Id"},"period":{"type":"string","title":"Period"},"kind":{"type":"string","enum":["GSTR1","GSTR3B","GSTR9","GSTR9C"],"title":"Kind"},"status":{"type":"string","enum":["draft","filed","revised","rejected"],"title":"Status"},"filed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Filed At"},"acknowledgement_no":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Acknowledgement No"},"total_taxable_value_paise":{"type":"integer","title":"Total Taxable Value Paise"},"total_tax_paise":{"type":"integer","title":"Total Tax Paise"},"pdf_s3_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pdf S3 Key"},"filed_by_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Filed By Admin Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","period","kind","status","total_taxable_value_paise","total_tax_paise","created_at"],"title":"GstReturnOut"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HeartbeatIn":{"properties":{"ts":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ts"},"fps":{"anyOf":[{"type":"integer","maximum":120.0,"minimum":0.0},{"type":"null"}],"title":"Fps"},"cpu_pct":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Cpu Pct"}},"type":"object","title":"HeartbeatIn"},"HsnCodeIn":{"properties":{"code":{"type":"string","maxLength":8,"minLength":4,"pattern":"^[0-9]+$","title":"Code"},"description":{"type":"string","maxLength":300,"minLength":2,"title":"Description"},"gst_rate_pct":{"type":"number","maximum":50.0,"minimum":0.0,"title":"Gst Rate Pct","default":18.0},"effective_from":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Effective From"},"notes":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Notes"}},"type":"object","required":["code","description"],"title":"HsnCodeIn"},"HsnCodeListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/HsnCodeOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"HsnCodeListOut"},"HsnCodeOut":{"properties":{"code":{"type":"string","title":"Code"},"description":{"type":"string","title":"Description"},"gst_rate_pct":{"type":"number","title":"Gst Rate Pct"},"effective_from":{"type":"string","format":"date-time","title":"Effective From"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["code","description","gst_rate_pct","effective_from"],"title":"HsnCodeOut"},"InferenceCountListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/InferenceCountOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"InferenceCountListOut"},"InferenceCountOut":{"properties":{"id":{"type":"integer","title":"Id"},"model_id":{"type":"integer","title":"Model Id"},"hour_bucket":{"type":"string","format":"date-time","title":"Hour Bucket"},"inference_count":{"type":"integer","title":"Inference Count"},"avg_latency_ms":{"type":"integer","title":"Avg Latency Ms"},"error_rate":{"type":"number","title":"Error Rate"}},"type":"object","required":["id","model_id","hour_bucket","inference_count","avg_latency_ms","error_rate"],"title":"InferenceCountOut"},"IntegrationKind":{"type":"string","enum":["payment","sms","whatsapp","email","sso","kyc","signing","ml_serving","observability","crm"],"title":"IntegrationKind"},"IntegrationListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/IntegrationOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"IntegrationListOut"},"IntegrationOut":{"properties":{"id":{"type":"integer","title":"Id"},"slug":{"type":"string","title":"Slug"},"display_name":{"type":"string","title":"Display Name"},"kind":{"$ref":"#/components/schemas/IntegrationKind"},"health_check_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Health Check Url"},"last_status":{"$ref":"#/components/schemas/IntegrationStatus"},"last_check_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Check At"},"vendor_security_review_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Vendor Security Review At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","slug","display_name","kind","health_check_url","last_status","last_check_at","vendor_security_review_at","created_at"],"title":"IntegrationOut"},"IntegrationStatus":{"type":"string","enum":["up","degraded","down"],"title":"IntegrationStatus"},"IntegrationStatusUpdateIn":{"properties":{"last_status":{"$ref":"#/components/schemas/IntegrationStatus"},"last_check_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Check At"}},"type":"object","required":["last_status"],"title":"IntegrationStatusUpdateIn"},"IntegrationUpsertIn":{"properties":{"slug":{"type":"string","maxLength":40,"minLength":2,"title":"Slug"},"display_name":{"type":"string","maxLength":120,"minLength":1,"title":"Display Name"},"kind":{"$ref":"#/components/schemas/IntegrationKind"},"health_check_url":{"anyOf":[{"type":"string","maxLength":2083,"minLength":1,"format":"uri"},{"type":"null"}],"title":"Health Check Url"},"vendor_security_review_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Vendor Security Review At"}},"type":"object","required":["slug","display_name","kind"],"title":"IntegrationUpsertIn"},"IntroAcceptIn":{"properties":{"reveal_full_name":{"type":"boolean","title":"Reveal Full Name","default":false},"reveal_email":{"type":"boolean","title":"Reveal Email","default":false},"reveal_phone":{"type":"boolean","title":"Reveal Phone","default":false},"reveal_city":{"type":"boolean","title":"Reveal City","default":false}},"type":"object","title":"IntroAcceptIn","description":"Student picks which optional PII to reveal. All default False."},"IntroCreateIn":{"properties":{"masked_id":{"type":"string","maxLength":12,"title":"Masked Id"},"message_text":{"type":"string","maxLength":2000,"minLength":10,"title":"Message Text"},"ttl_days":{"type":"integer","maximum":30.0,"minimum":1.0,"title":"Ttl Days","default":14}},"type":"object","required":["masked_id","message_text"],"title":"IntroCreateIn"},"IntroListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/IntroOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"IntroListOut"},"IntroMessageOut":{"properties":{"id":{"type":"integer","title":"Id"},"university_name":{"type":"string","title":"University Name"},"requester_role":{"type":"string","title":"Requester Role"},"message_text":{"type":"string","title":"Message Text"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","university_name","requester_role","message_text","expires_at","created_at"],"title":"IntroMessageOut","description":"Decrypted message body shown to the student deciding on an intro."},"IntroOut":{"properties":{"id":{"type":"integer","title":"Id"},"university_id":{"type":"integer","title":"University Id"},"requester_uni_user_id":{"type":"integer","title":"Requester Uni User Id"},"subject_masked_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject Masked Id"},"subject_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subject User Id"},"status":{"$ref":"#/components/schemas/IntroStatus"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"decided_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Decided At"},"accepted_unmasks":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Accepted Unmasks"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","university_id","requester_uni_user_id","status","expires_at","decided_at","accepted_unmasks","created_at"],"title":"IntroOut"},"IntroStatus":{"type":"string","enum":["sent","delivered","accepted","declined","expired"],"title":"IntroStatus"},"KafkaOffsetListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/KafkaOffsetOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"KafkaOffsetListOut"},"KafkaOffsetOut":{"properties":{"id":{"type":"integer","title":"Id"},"worker_id":{"type":"string","title":"Worker Id"},"topic":{"type":"string","title":"Topic"},"partition":{"type":"integer","title":"Partition"},"offset":{"type":"integer","title":"Offset"},"committed_at":{"type":"string","format":"date-time","title":"Committed At"}},"type":"object","required":["id","worker_id","topic","partition","offset","committed_at"],"title":"KafkaOffsetOut"},"KbArticleOut":{"properties":{"id":{"type":"integer","title":"Id"},"slug":{"type":"string","title":"Slug"},"title":{"type":"string","title":"Title"},"body_md":{"type":"string","title":"Body Md"},"category_id":{"type":"integer","title":"Category Id"},"helpful_count":{"type":"integer","title":"Helpful Count"},"not_helpful_count":{"type":"integer","title":"Not Helpful Count"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"last_updated_at":{"type":"string","format":"date-time","title":"Last Updated At"},"created_by_admin_id":{"type":"integer","title":"Created By Admin Id"}},"type":"object","required":["id","slug","title","body_md","category_id","helpful_count","not_helpful_count","published_at","last_updated_at","created_by_admin_id"],"title":"KbArticleOut"},"KbCreateIn":{"properties":{"slug":{"type":"string","maxLength":120,"minLength":2,"title":"Slug"},"title":{"type":"string","maxLength":200,"minLength":2,"title":"Title"},"body_md":{"type":"string","maxLength":50000,"minLength":1,"title":"Body Md"},"category_id":{"type":"integer","title":"Category Id"},"publish":{"type":"boolean","title":"Publish","default":false}},"type":"object","required":["slug","title","body_md","category_id"],"title":"KbCreateIn"},"KbListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/KbArticleOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"KbListOut"},"KbUpdateIn":{"properties":{"title":{"anyOf":[{"type":"string","maxLength":200,"minLength":2},{"type":"null"}],"title":"Title"},"body_md":{"anyOf":[{"type":"string","maxLength":50000,"minLength":1},{"type":"null"}],"title":"Body Md"},"category_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Category Id"},"publish":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Publish"}},"type":"object","title":"KbUpdateIn"},"KbVoteIn":{"properties":{"helpful":{"type":"boolean","title":"Helpful"}},"type":"object","required":["helpful"],"title":"KbVoteIn"},"KillSwitchCreateIn":{"properties":{"key":{"type":"string","maxLength":40,"minLength":2,"title":"Key"},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Description"}},"type":"object","required":["key"],"title":"KillSwitchCreateIn"},"KillSwitchListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/KillSwitchOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"KillSwitchListOut"},"KillSwitchOut":{"properties":{"id":{"type":"integer","title":"Id"},"key":{"type":"string","title":"Key"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"engaged":{"type":"boolean","title":"Engaged"},"engaged_by_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Engaged By Admin Id"},"engaged_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Engaged At"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","key","description","engaged","engaged_by_admin_id","engaged_at","reason","created_at"],"title":"KillSwitchOut"},"KillSwitchToggleIn":{"properties":{"engaged":{"type":"boolean","title":"Engaged"},"reason":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Reason"}},"type":"object","required":["engaged"],"title":"KillSwitchToggleIn"},"KpiListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/KpiOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"KpiListOut"},"KpiOut":{"properties":{"id":{"type":"integer","title":"Id"},"kpi_key":{"type":"string","title":"Kpi Key"},"bucket":{"type":"string","format":"date-time","title":"Bucket"},"dim1_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dim1 Key"},"dim1_val":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dim1 Val"},"dim2_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dim2 Key"},"dim2_val":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dim2 Val"},"value":{"type":"number","title":"Value"},"computed_at":{"type":"string","format":"date-time","title":"Computed At"}},"type":"object","required":["id","kpi_key","bucket","dim1_key","dim1_val","dim2_key","dim2_val","value","computed_at"],"title":"KpiOut"},"KpiUpsertIn":{"properties":{"kpi_key":{"type":"string","maxLength":60,"minLength":1,"title":"Kpi Key"},"bucket":{"type":"string","format":"date-time","title":"Bucket"},"value":{"type":"number","title":"Value"},"dim1_key":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Dim1 Key"},"dim1_val":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Dim1 Val"},"dim2_key":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Dim2 Key"},"dim2_val":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Dim2 Val"}},"type":"object","required":["kpi_key","bucket","value"],"title":"KpiUpsertIn"},"KycAttemptOut":{"properties":{"id":{"type":"integer","title":"Id"},"user_id":{"type":"integer","title":"User Id"},"provider":{"type":"string","enum":["manual","digio","signzy"],"title":"Provider"},"status":{"type":"string","enum":["submitted","in_review","verified","rejected","expired"],"title":"Status"},"full_name":{"type":"string","title":"Full Name"},"dob":{"type":"string","format":"date","title":"Dob"},"pan_last4":{"type":"string","title":"Pan Last4"},"pan_match":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Pan Match"},"aadhaar_last4":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Aadhaar Last4"},"aadhaar_method":{"type":"string","enum":["not_provided","offline_xml","masked_image","okyc"],"title":"Aadhaar Method"},"aadhaar_match":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Aadhaar Match"},"bank_account_last4":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bank Account Last4"},"bank_ifsc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bank Ifsc"},"bank_holder_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bank Holder Name"},"dob_match":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Dob Match"},"name_match_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Name Match Score"},"rejection_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rejection Reason"},"provider_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Ref"},"submitted_at":{"type":"string","format":"date-time","title":"Submitted At"},"in_review_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"In Review At"},"reviewed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Reviewed At"},"reviewed_by_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Reviewed By Admin Id"},"documents":{"items":{"$ref":"#/components/schemas/KycDocumentOut"},"type":"array","title":"Documents"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","user_id","provider","status","full_name","dob","pan_last4","aadhaar_method","submitted_at","created_at","updated_at"],"title":"KycAttemptOut"},"KycDocumentOut":{"properties":{"id":{"type":"integer","title":"Id"},"doc_type":{"type":"string","enum":["pan","aadhaar","passport","driving_license","bank_proof"],"title":"Doc Type"},"file_id":{"type":"string","title":"File Id"},"file_url":{"type":"string","title":"File Url"},"received_at":{"type":"string","format":"date-time","title":"Received At"}},"type":"object","required":["id","doc_type","file_id","file_url","received_at"],"title":"KycDocumentOut"},"LanguageListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/LanguageOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"LanguageListOut"},"LanguageOut":{"properties":{"code":{"type":"string","title":"Code"},"display":{"type":"string","title":"Display"},"iso639_3":{"type":"string","title":"Iso639 3"},"is_supported_authoring":{"type":"boolean","title":"Is Supported Authoring"},"is_supported_ui":{"type":"boolean","title":"Is Supported Ui"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["code","display","iso639_3","is_supported_authoring","is_supported_ui","created_at"],"title":"LanguageOut"},"LanguageUpsertIn":{"properties":{"code":{"type":"string","maxLength":5,"minLength":2,"title":"Code"},"display":{"type":"string","maxLength":80,"minLength":1,"title":"Display"},"iso639_3":{"type":"string","maxLength":3,"minLength":3,"title":"Iso639 3"},"is_supported_authoring":{"type":"boolean","title":"Is Supported Authoring","default":false},"is_supported_ui":{"type":"boolean","title":"Is Supported Ui","default":false}},"type":"object","required":["code","display","iso639_3"],"title":"LanguageUpsertIn"},"LeaderboardDetailOut":{"properties":{"id":{"type":"integer","title":"Id"},"code":{"type":"string","title":"Code"},"type":{"type":"string","enum":["eligibility","mega","arena"],"title":"Type"},"period_kind":{"type":"string","enum":["monthly","per_test","custom"],"title":"Period Kind"},"period_start":{"type":"string","format":"date-time","title":"Period Start"},"period_end":{"type":"string","format":"date-time","title":"Period End"},"exam_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exam Id"},"subject_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subject Id"},"class_level":{"anyOf":[{"type":"string","enum":["c6","c7","c8","c9","c10","c11","c12","none"]},{"type":"null"}],"title":"Class Level"},"source_test_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Source Test Id"},"title":{"type":"string","title":"Title"},"notes_md":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes Md"},"status":{"type":"string","enum":["draft","approved","published","expired","archived"],"title":"Status"},"generated_at":{"type":"string","format":"date-time","title":"Generated At"},"generated_by_admin_id":{"type":"integer","title":"Generated By Admin Id"},"approved_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Approved At"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"visibility_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Visibility Days"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"archived_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Archived At"},"entry_count":{"type":"integer","title":"Entry Count"},"entries":{"items":{"$ref":"#/components/schemas/ComputedEntryOut"},"type":"array","title":"Entries"},"excluded_entries":{"items":{"$ref":"#/components/schemas/ComputedEntryOut"},"type":"array","title":"Excluded Entries"}},"type":"object","required":["id","code","type","period_kind","period_start","period_end","title","status","generated_at","generated_by_admin_id","entry_count","entries"],"title":"LeaderboardDetailOut"},"LeaderboardListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/LeaderboardOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"LeaderboardListOut"},"LeaderboardOut":{"properties":{"id":{"type":"integer","title":"Id"},"code":{"type":"string","title":"Code"},"type":{"type":"string","enum":["eligibility","mega","arena"],"title":"Type"},"period_kind":{"type":"string","enum":["monthly","per_test","custom"],"title":"Period Kind"},"period_start":{"type":"string","format":"date-time","title":"Period Start"},"period_end":{"type":"string","format":"date-time","title":"Period End"},"exam_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exam Id"},"subject_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subject Id"},"class_level":{"anyOf":[{"type":"string","enum":["c6","c7","c8","c9","c10","c11","c12","none"]},{"type":"null"}],"title":"Class Level"},"source_test_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Source Test Id"},"title":{"type":"string","title":"Title"},"notes_md":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes Md"},"status":{"type":"string","enum":["draft","approved","published","expired","archived"],"title":"Status"},"generated_at":{"type":"string","format":"date-time","title":"Generated At"},"generated_by_admin_id":{"type":"integer","title":"Generated By Admin Id"},"approved_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Approved At"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"visibility_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Visibility Days"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"archived_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Archived At"},"entry_count":{"type":"integer","title":"Entry Count"}},"type":"object","required":["id","code","type","period_kind","period_start","period_end","title","status","generated_at","generated_by_admin_id","entry_count"],"title":"LeaderboardOut","description":"Config-only (no entries)."},"LearningAccountOut":{"properties":{"user_id":{"type":"integer","title":"User Id"},"test_credits":{"type":"integer","title":"Test Credits"},"scholarship_credits_paise":{"type":"integer","title":"Scholarship Credits Paise"},"bank_balance_paise":{"type":"integer","title":"Bank Balance Paise"},"frozen":{"type":"boolean","title":"Frozen"},"frozen_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Frozen Reason"},"version":{"type":"integer","title":"Version"},"last_updated_at":{"type":"string","format":"date-time","title":"Last Updated At"}},"type":"object","required":["user_id","test_credits","scholarship_credits_paise","bank_balance_paise","frozen","version","last_updated_at"],"title":"LearningAccountOut"},"LedgerEntryOut":{"properties":{"id":{"type":"integer","title":"Id"},"txn_id":{"type":"string","title":"Txn Id"},"user_id":{"type":"integer","title":"User Id"},"entry_type":{"type":"string","enum":["debit","credit"],"title":"Entry Type"},"account":{"type":"string","enum":["test_credits","scholarship_credits","bank"],"title":"Account"},"amount_paise":{"type":"integer","title":"Amount Paise"},"balance_after":{"type":"integer","title":"Balance After"},"currency":{"type":"string","title":"Currency"},"reason_code":{"type":"string","enum":["test_purchase","bundle_purchase","arena_entry","scholarship_grant","scholarship_disbursement","refund","chargeback","reversal","admin_grant","admin_revoke"],"title":"Reason Code"},"ref_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ref Type"},"ref_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ref Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","txn_id","user_id","entry_type","account","amount_paise","balance_after","currency","reason_code","created_at"],"title":"LedgerEntryOut"},"LedgerListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/LedgerEntryOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"LedgerListOut"},"LevelThresholdsIn":{"properties":{"cheat_score_review":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Cheat Score Review"},"cheat_score_flagged":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Cheat Score Flagged"},"cheat_score_disqualified":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Cheat Score Disqualified"},"severe_events_review":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Severe Events Review"},"severe_events_flagged":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Severe Events Flagged"},"severe_events_disqualified":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Severe Events Disqualified"},"tab_switch_auto_submit_limit":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Tab Switch Auto Submit Limit"},"force_disqualify_on_tab_switch_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Force Disqualify On Tab Switch Enabled"}},"type":"object","title":"LevelThresholdsIn","description":"Sparse per-level override. Any field omitted falls back to the global value."},"LogItemOut":{"properties":{"id":{"type":"integer","title":"Id"},"user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"},"template_key":{"type":"string","title":"Template Key"},"channel":{"type":"string","enum":["email","push"],"title":"Channel"},"category":{"type":"string","enum":["transactional","scholarship","test","arena","leaderboard","marketing"],"title":"Category"},"status":{"type":"string","enum":["queued","sent","delivered","failed","skipped"],"title":"Status"},"to_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Email"},"to_push_token_preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Push Token Preview"},"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject"},"body_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body Text"},"triggered_by_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Triggered By Admin Id"},"triggered_by_system":{"type":"boolean","title":"Triggered By System"},"correlation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Correlation Id"},"queued_at":{"type":"string","format":"date-time","title":"Queued At"},"sent_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Sent At"},"delivered_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Delivered At"},"error_msg":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Msg"},"provider_msg_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Msg Id"}},"type":"object","required":["id","template_key","channel","category","status","triggered_by_system","queued_at"],"title":"LogItemOut"},"LogListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/LogItemOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"LogListOut"},"LogoutOut":{"properties":{"revoked":{"type":"boolean","title":"Revoked"}},"type":"object","required":["revoked"],"title":"LogoutOut"},"ManualEmitIn":{"properties":{"event":{"type":"string","maxLength":60,"minLength":1,"title":"Event"},"payload":{"additionalProperties":true,"type":"object","title":"Payload"},"owner_type":{"anyOf":[{"$ref":"#/components/schemas/WebhookOwnerType"},{"type":"null"}]},"owner_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Owner Id"}},"type":"object","required":["event","payload"],"title":"ManualEmitIn"},"MarkFailedIn":{"properties":{"reason":{"type":"string","maxLength":400,"minLength":1,"title":"Reason"}},"type":"object","required":["reason"],"title":"MarkFailedIn"},"MarkProcessingIn":{"properties":{"provider":{"type":"string","enum":["manual_neft","razorpayx","imps","upi"],"title":"Provider","default":"manual_neft"},"note":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Note"}},"type":"object","title":"MarkProcessingIn"},"MarkSentIn":{"properties":{"transfer_ref":{"type":"string","maxLength":80,"minLength":4,"title":"Transfer Ref"},"sent_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Sent At"},"note":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Note"}},"type":"object","required":["transfer_ref"],"title":"MarkSentIn"},"MarkSucceededIn":{"properties":{"succeeded_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Succeeded At"},"transfer_ref":{"anyOf":[{"type":"string","maxLength":80,"minLength":4},{"type":"null"}],"title":"Transfer Ref"},"note":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Note"}},"type":"object","title":"MarkSucceededIn"},"MaskedAspirantCard":{"properties":{"masked_id":{"type":"string","title":"Masked Id"},"score_band":{"anyOf":[{"$ref":"#/components/schemas/ScoreBand"},{"type":"null"}]},"rank_band":{"anyOf":[{"$ref":"#/components/schemas/RankBand"},{"type":"null"}]},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"exam_id":{"type":"integer","title":"Exam Id"},"language_pref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language Pref"},"improvement_30d_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Improvement 30D Pct"},"consistency_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Consistency Pct"},"last_refreshed_at":{"type":"string","format":"date-time","title":"Last Refreshed At"}},"type":"object","required":["masked_id","score_band","rank_band","region","exam_id","last_refreshed_at"],"title":"MaskedAspirantCard"},"MeOut":{"properties":{"id":{"type":"integer","title":"Id"},"phone_masked":{"type":"string","title":"Phone Masked"},"phone_verified":{"type":"boolean","title":"Phone Verified"},"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"},"gender":{"anyOf":[{"type":"string","enum":["male","female","other","prefer_not"]},{"type":"null"}],"title":"Gender"},"class_level":{"anyOf":[{"type":"string","enum":["c6","c7","c8","c9","c10","c11","c12","none"]},{"type":"null"}],"title":"Class Level"},"target_exams":{"items":{"type":"string"},"type":"array","title":"Target Exams"},"newsletter_opt_in":{"type":"boolean","title":"Newsletter Opt In","default":false},"language_pref":{"type":"string","title":"Language Pref"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"photo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Photo Url"},"kyc_status":{"type":"string","title":"Kyc Status"},"status":{"type":"string","title":"Status"},"onboarding_step":{"type":"integer","title":"Onboarding Step"},"onboarding_completed":{"type":"boolean","title":"Onboarding Completed"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"panel":{"type":"string","title":"Panel"},"role":{"type":"string","title":"Role"},"permissions":{"items":{"type":"string"},"type":"array","title":"Permissions"}},"type":"object","required":["id","phone_masked","phone_verified","language_pref","kyc_status","status","onboarding_step","onboarding_completed","created_at","panel","role"],"title":"MeOut","description":"Whatever a user can see about themselves. Subset of UserOut + role/permissions."},"MessageDirection":{"type":"string","enum":["inbound","outbound"],"title":"MessageDirection"},"MetadataIngestIn":{"properties":{"width":{"anyOf":[{"type":"integer","maximum":20000.0,"minimum":1.0},{"type":"null"}],"title":"Width"},"height":{"anyOf":[{"type":"integer","maximum":20000.0,"minimum":1.0},{"type":"null"}],"title":"Height"},"duration_secs":{"anyOf":[{"type":"integer","maximum":86400.0,"minimum":0.0},{"type":"null"}],"title":"Duration Secs"},"extracted_text":{"anyOf":[{"type":"string","maxLength":50000},{"type":"null"}],"title":"Extracted Text"},"safe_for_work":{"type":"boolean","title":"Safe For Work","default":true},"nsfw_score":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Nsfw Score"}},"type":"object","title":"MetadataIngestIn"},"MetadataUpdateIn":{"properties":{"instructions_md":{"anyOf":[{"type":"string","maxLength":20000},{"type":"null"}],"title":"Instructions Md"},"cover_image_s3_key":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Cover Image S3 Key"},"share_slug":{"anyOf":[{"type":"string","maxLength":80,"minLength":1},{"type":"null"}],"title":"Share Slug"},"seo_title":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Seo Title"},"seo_description":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Seo Description"}},"type":"object","title":"MetadataUpdateIn"},"MlModelCreateIn":{"properties":{"slug":{"type":"string","maxLength":60,"minLength":1,"title":"Slug"},"kind":{"$ref":"#/components/schemas/MlModelKind"},"version":{"type":"string","maxLength":40,"minLength":1,"title":"Version"},"framework":{"type":"string","maxLength":40,"minLength":1,"title":"Framework"},"s3_bundle_key":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"S3 Bundle Key"},"metadata_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata Json"},"promote_live":{"type":"boolean","title":"Promote Live","default":false}},"type":"object","required":["slug","kind","version","framework"],"title":"MlModelCreateIn"},"MlModelKind":{"type":"string","enum":["proctor","predictor","recommendation","recsys","similarity","translation"],"title":"MlModelKind"},"MlModelListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MlModelOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"MlModelListOut"},"MlModelOut":{"properties":{"id":{"type":"integer","title":"Id"},"slug":{"type":"string","title":"Slug"},"kind":{"$ref":"#/components/schemas/MlModelKind"},"version":{"type":"string","title":"Version"},"framework":{"type":"string","title":"Framework"},"s3_bundle_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"S3 Bundle Key"},"metadata_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata Json"},"live_since":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Live Since"},"deprecated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deprecated At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","slug","kind","version","framework","s3_bundle_key","metadata_json","live_since","deprecated_at","created_at"],"title":"MlModelOut"},"MlModelUpdateIn":{"properties":{"s3_bundle_key":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"S3 Bundle Key"},"metadata_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata Json"},"promote_live":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Promote Live"},"deprecate":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Deprecate"}},"type":"object","title":"MlModelUpdateIn"},"MlVersionCreateIn":{"properties":{"version":{"type":"string","maxLength":40,"minLength":1,"title":"Version"},"metrics_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics Json"},"promote":{"type":"boolean","title":"Promote","default":false}},"type":"object","required":["version"],"title":"MlVersionCreateIn"},"MlVersionListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MlVersionOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"MlVersionListOut"},"MlVersionOut":{"properties":{"id":{"type":"integer","title":"Id"},"model_id":{"type":"integer","title":"Model Id"},"version":{"type":"string","title":"Version"},"training_run_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Training Run Id"},"metrics_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics Json"},"promoted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Promoted At"},"demoted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Demoted At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","model_id","version","training_run_id","metrics_json","promoted_at","demoted_at","created_at"],"title":"MlVersionOut"},"ModelCreateIn":{"properties":{"exam_id":{"type":"integer","title":"Exam Id"},"slug":{"type":"string","maxLength":40,"minLength":1,"title":"Slug"},"algorithm":{"$ref":"#/components/schemas/PredictorAlgorithm","default":"composite_baseline"},"version":{"type":"string","maxLength":20,"minLength":1,"title":"Version"},"confidence_band_pct":{"type":"integer","maximum":99.0,"minimum":50.0,"title":"Confidence Band Pct","default":80},"notes":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Notes"},"s3_artifact_key":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"S3 Artifact Key"}},"type":"object","required":["exam_id","slug","version"],"title":"ModelCreateIn"},"ModelListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ModelOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"ModelListOut"},"ModelOut":{"properties":{"id":{"type":"integer","title":"Id"},"exam_id":{"type":"integer","title":"Exam Id"},"slug":{"type":"string","title":"Slug"},"algorithm":{"$ref":"#/components/schemas/PredictorAlgorithm"},"version":{"type":"string","title":"Version"},"status":{"$ref":"#/components/schemas/PredictorStatus"},"live_since":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Live Since"},"deprecated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deprecated At"},"confidence_band_pct":{"type":"integer","title":"Confidence Band Pct"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"s3_artifact_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"S3 Artifact Key"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","exam_id","slug","algorithm","version","status","live_since","deprecated_at","confidence_band_pct","notes","s3_artifact_key","created_at"],"title":"ModelOut"},"ModelUpdateIn":{"properties":{"confidence_band_pct":{"anyOf":[{"type":"integer","maximum":99.0,"minimum":50.0},{"type":"null"}],"title":"Confidence Band Pct"},"notes":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Notes"},"s3_artifact_key":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"S3 Artifact Key"},"promote_live":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Promote Live"},"deprecate":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Deprecate"}},"type":"object","title":"ModelUpdateIn"},"Module":{"type":"string","enum":["sample","eligibility","mega","arena"],"title":"Module","description":"Module-scoped sub-banks. A question is pinned to one module for life."},"ModuleSettingsListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ModuleSettingsOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"ModuleSettingsListOut"},"ModuleSettingsOut":{"properties":{"module":{"$ref":"#/components/schemas/ProctoredModule"},"enabled":{"type":"boolean","title":"Enabled"},"default_level":{"$ref":"#/components/schemas/ProctorLevel"},"tab_switch_auto_submit_limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tab Switch Auto Submit Limit"},"updated_by_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated By Admin Id"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["module","enabled","default_level","tab_switch_auto_submit_limit","updated_by_admin_id","updated_at"],"title":"ModuleSettingsOut"},"ModuleSettingsUpdateIn":{"properties":{"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"},"default_level":{"anyOf":[{"$ref":"#/components/schemas/ProctorLevel"},{"type":"null"}]},"tab_switch_auto_submit_limit":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Tab Switch Auto Submit Limit"}},"type":"object","title":"ModuleSettingsUpdateIn"},"MyCompetitionItemOut":{"properties":{"competition_id":{"type":"integer","title":"Competition Id"},"code":{"type":"string","title":"Code"},"name":{"type":"string","title":"Name"},"status":{"type":"string","enum":["draft","open","running","completed","cancelled"],"title":"Status"},"my_status":{"type":"string","enum":["registered","active","eliminated","awardee","withdrew"],"title":"My Status"},"my_current_round_no":{"type":"integer","title":"My Current Round No"},"next_round_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Round Id"},"next_round_no":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Round No"},"next_round_scheduled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Next Round Scheduled At"}},"type":"object","required":["competition_id","code","name","status","my_status","my_current_round_no"],"title":"MyCompetitionItemOut"},"MyCompetitionsOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MyCompetitionItemOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"MyCompetitionsOut"},"MyConsentsOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ConsentStateOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"MyConsentsOut"},"MyDiscoveryProfileOut":{"properties":{"consenting":{"type":"boolean","title":"Consenting"},"score_band":{"anyOf":[{"$ref":"#/components/schemas/ScoreBand"},{"type":"null"}]},"rank_band":{"anyOf":[{"$ref":"#/components/schemas/RankBand"},{"type":"null"}]},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"language_pref":{"type":"string","title":"Language Pref"},"improvement_30d_pct":{"type":"number","title":"Improvement 30D Pct"},"consistency_pct":{"type":"number","title":"Consistency Pct"},"last_refreshed_at":{"type":"string","format":"date-time","title":"Last Refreshed At"},"masked_ids":{"items":{"type":"string"},"type":"array","title":"Masked Ids","description":"active masked IDs across target exams"}},"type":"object","required":["consenting","score_band","rank_band","region","language_pref","improvement_30d_pct","consistency_pct","last_refreshed_at"],"title":"MyDiscoveryProfileOut"},"MyEligibilityListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MyEligibilityOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"MyEligibilityListOut"},"MyEligibilityOut":{"properties":{"window_id":{"type":"integer","title":"Window Id"},"window_code":{"type":"string","title":"Window Code"},"window_label":{"type":"string","title":"Window Label"},"window_status":{"type":"string","enum":["draft","scheduled","running","closed","cancelled"],"title":"Window Status"},"exam_id":{"type":"integer","title":"Exam Id"},"mega_test_id":{"type":"integer","title":"Mega Test Id"},"grant_paise":{"type":"integer","title":"Grant Paise"},"slot_count":{"type":"integer","title":"Slot Count"},"is_eligible":{"type":"boolean","title":"Is Eligible"},"reason":{"type":"string","title":"Reason"},"my_eligibility_attempt_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"My Eligibility Attempt Id"},"my_eligibility_accuracy_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"My Eligibility Accuracy Pct"},"my_registration_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"My Registration Id"},"my_mega_attempt_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"My Mega Attempt Id"},"my_grant_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"My Grant Id"}},"type":"object","required":["window_id","window_code","window_label","window_status","exam_id","mega_test_id","grant_paise","slot_count","is_eligible","reason"],"title":"MyEligibilityOut","description":"Per-window snapshot of where I stand."},"MyForm16AItem":{"properties":{"id":{"type":"integer","title":"Id"},"financial_year":{"type":"string","title":"Financial Year"},"total_tds_paise":{"type":"integer","title":"Total Tds Paise"},"pdf_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pdf Url"},"generated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Generated At"},"sent_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Sent At"}},"type":"object","required":["id","financial_year","total_tds_paise"],"title":"MyForm16AItem"},"MyForm16AListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MyForm16AItem"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"MyForm16AListOut"},"MyGrantOut":{"properties":{"id":{"type":"integer","title":"Id"},"code":{"type":"string","title":"Code"},"window_id":{"type":"integer","title":"Window Id"},"window_label":{"type":"string","title":"Window Label"},"amount_paise":{"type":"integer","title":"Amount Paise"},"rank_in_window":{"type":"integer","title":"Rank In Window"},"status":{"type":"string","enum":["approved","disbursing","paid","reversed","blocked"],"title":"Status"},"awarded_at":{"type":"string","format":"date-time","title":"Awarded At"},"disbursed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Disbursed At"}},"type":"object","required":["id","code","window_id","window_label","amount_paise","rank_in_window","status","awarded_at"],"title":"MyGrantOut","description":"Student-facing — masks admin-only fields."},"MyGrantsOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MyGrantOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"MyGrantsOut"},"MyKycOut":{"properties":{"is_verified":{"type":"boolean","title":"Is Verified"},"current_status":{"anyOf":[{"type":"string","enum":["submitted","in_review","verified","rejected","expired"]},{"type":"null"}],"title":"Current Status"},"latest_attempt":{"anyOf":[{"$ref":"#/components/schemas/KycAttemptOut"},{"type":"null"}]},"history":{"items":{"$ref":"#/components/schemas/KycAttemptOut"},"type":"array","title":"History"}},"type":"object","required":["is_verified"],"title":"MyKycOut"},"MyNotificationItemOut":{"properties":{"id":{"type":"integer","title":"Id"},"template_key":{"type":"string","title":"Template Key"},"channel":{"type":"string","enum":["email","push"],"title":"Channel"},"category":{"type":"string","enum":["transactional","scholarship","test","arena","leaderboard","marketing"],"title":"Category"},"status":{"type":"string","enum":["queued","sent","delivered","failed","skipped"],"title":"Status"},"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject"},"body_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body Text"},"queued_at":{"type":"string","format":"date-time","title":"Queued At"},"sent_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Sent At"},"delivered_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Delivered At"}},"type":"object","required":["id","template_key","channel","category","status","queued_at"],"title":"MyNotificationItemOut"},"MyNotificationListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MyNotificationItemOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"MyNotificationListOut"},"MyRankingItemOut":{"properties":{"test_id":{"type":"integer","title":"Test Id"},"test_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Test Code"},"test_title":{"type":"string","title":"Test Title"},"module":{"type":"string","enum":["sample","eligibility","mega","arena"],"title":"Module"},"exam_id":{"type":"integer","title":"Exam Id"},"attempt_id":{"type":"integer","title":"Attempt Id"},"submitted_at":{"type":"string","format":"date-time","title":"Submitted At"},"total_marks":{"type":"number","title":"Total Marks"},"accuracy_pct":{"type":"number","title":"Accuracy Pct"},"rank":{"type":"integer","title":"Rank"},"total_entrants":{"type":"integer","title":"Total Entrants"},"percentile":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Percentile"}},"type":"object","required":["test_id","test_title","module","exam_id","attempt_id","submitted_at","total_marks","accuracy_pct","rank","total_entrants","percentile"],"title":"MyRankingItemOut"},"MyRankingsOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MyRankingItemOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"MyRankingsOut"},"MyTdsListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MyTdsRowOut"},"type":"array","title":"Items"},"total_tds_paise_fy":{"type":"integer","title":"Total Tds Paise Fy"}},"type":"object","required":["items","total_tds_paise_fy"],"title":"MyTdsListOut"},"MyTdsRowOut":{"properties":{"id":{"type":"integer","title":"Id"},"financial_year":{"type":"string","title":"Financial Year"},"quarter":{"type":"string","title":"Quarter"},"gross_paise":{"type":"integer","title":"Gross Paise"},"tds_paise":{"type":"integer","title":"Tds Paise"},"net_paise":{"type":"integer","title":"Net Paise"},"tds_section":{"type":"string","title":"Tds Section"},"deducted_at":{"type":"string","format":"date-time","title":"Deducted At"},"challan_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Challan Ref"}},"type":"object","required":["id","financial_year","quarter","gross_paise","tds_paise","net_paise","tds_section","deducted_at"],"title":"MyTdsRowOut"},"MyViewAuditEntry":{"properties":{"id":{"type":"string","title":"Id"},"university_id":{"type":"integer","title":"University Id"},"university_name":{"type":"string","title":"University Name"},"uni_user_role":{"type":"string","title":"Uni User Role"},"viewed_via":{"$ref":"#/components/schemas/ViewedVia"},"at":{"type":"string","format":"date-time","title":"At"}},"type":"object","required":["id","university_id","university_name","uni_user_role","viewed_via","at"],"title":"MyViewAuditEntry"},"MyViewAuditOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MyViewAuditEntry"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"MyViewAuditOut"},"NotifCategory":{"type":"string","enum":["transactional","scholarship","test","arena","leaderboard","marketing"],"title":"NotifCategory"},"NpsCategory":{"type":"string","enum":["detractor","passive","promoter"],"title":"NpsCategory"},"OnboardingClassIn":{"properties":{"class_level":{"type":"string","enum":["c6","c7","c8","c9","c10","c11","c12","none"],"title":"Class Level"}},"type":"object","required":["class_level"],"title":"OnboardingClassIn","description":"Screen 3 — Class 6..12 or 'not in any class'."},"OnboardingContactIn":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"newsletter_opt_in":{"type":"boolean","title":"Newsletter Opt In","default":false}},"type":"object","required":["email"],"title":"OnboardingContactIn","description":"Screen 2 — email + weekly newsletter opt-in."},"OnboardingExamsIn":{"properties":{"target_exams":{"items":{"type":"string"},"type":"array","maxItems":20,"minItems":1,"title":"Target Exams"}},"type":"object","required":["target_exams"],"title":"OnboardingExamsIn","description":"Screen 4 — multi-select target exams.\n\n`target_exams` codes are validated against the allow-list in `app.shared.enums.ExamCode`."},"OnboardingProfileIn":{"properties":{"first_name":{"type":"string","maxLength":80,"minLength":1,"title":"First Name"},"last_name":{"type":"string","maxLength":80,"minLength":1,"title":"Last Name"},"gender":{"type":"string","enum":["male","female","other","prefer_not"],"title":"Gender"}},"type":"object","required":["first_name","last_name","gender"],"title":"OnboardingProfileIn","description":"Screen 1 — first name, last name, gender."},"OnboardingStatusOut":{"properties":{"step":{"type":"integer","title":"Step"},"completed":{"type":"boolean","title":"Completed"},"fields_filled":{"items":{"type":"string"},"type":"array","title":"Fields Filled"}},"type":"object","required":["step","completed","fields_filled"],"title":"OnboardingStatusOut"},"OnboardingStepOut":{"properties":{"step":{"type":"integer","title":"Step"},"completed":{"type":"boolean","title":"Completed"},"user":{"$ref":"#/components/schemas/UserOut"}},"type":"object","required":["step","completed","user"],"title":"OnboardingStepOut","description":"Returned after any /me/onboarding/* PATCH."},"OncallShiftCreateIn":{"properties":{"team":{"$ref":"#/components/schemas/OncallTeam"},"admin_user_id":{"type":"integer","title":"Admin User Id"},"start_at":{"type":"string","format":"date-time","title":"Start At"},"end_at":{"type":"string","format":"date-time","title":"End At"},"is_primary":{"type":"boolean","title":"Is Primary","default":true},"phone":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Phone"}},"type":"object","required":["team","admin_user_id","start_at","end_at"],"title":"OncallShiftCreateIn"},"OncallShiftListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/OncallShiftOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"OncallShiftListOut"},"OncallShiftOut":{"properties":{"id":{"type":"integer","title":"Id"},"team":{"$ref":"#/components/schemas/OncallTeam"},"admin_user_id":{"type":"integer","title":"Admin User Id"},"start_at":{"type":"string","format":"date-time","title":"Start At"},"end_at":{"type":"string","format":"date-time","title":"End At"},"is_primary":{"type":"boolean","title":"Is Primary"},"has_phone":{"type":"boolean","title":"Has Phone"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","team","admin_user_id","start_at","end_at","is_primary","has_phone","created_at"],"title":"OncallShiftOut"},"OncallTeam":{"type":"string","enum":["backend","realtime","ml","sre","finance","compliance"],"title":"OncallTeam"},"OtpRequestIn":{"properties":{"phone":{"type":"string","maxLength":15,"minLength":10,"title":"Phone","description":"E.164 e.g. +919876543210"},"purpose":{"type":"string","enum":["login","signup","withdraw","kyc","reauth"],"title":"Purpose","default":"login"}},"type":"object","required":["phone"],"title":"OtpRequestIn"},"OtpRequestOut":{"properties":{"request_id":{"type":"string","title":"Request Id"},"expires_in":{"type":"integer","title":"Expires In"}},"type":"object","required":["request_id","expires_in"],"title":"OtpRequestOut"},"OtpResendIn":{"properties":{"request_id":{"type":"string","title":"Request Id"}},"type":"object","required":["request_id"],"title":"OtpResendIn"},"OtpVerifyIn":{"properties":{"request_id":{"type":"string","title":"Request Id"},"code":{"type":"string","maxLength":8,"minLength":4,"title":"Code"},"device_info":{"$ref":"#/components/schemas/app__domains__identity__schemas__DeviceInfoIn"}},"type":"object","required":["request_id","code","device_info"],"title":"OtpVerifyIn"},"OtpVerifyOut":{"properties":{"is_new":{"type":"boolean","title":"Is New"},"user":{"$ref":"#/components/schemas/UserOut"},"tokens":{"$ref":"#/components/schemas/TokenPair"}},"type":"object","required":["is_new","user","tokens"],"title":"OtpVerifyOut"},"OverrideIn":{"properties":{"excluded":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Excluded"},"manual_rank":{"anyOf":[{"type":"integer","maximum":100000.0,"minimum":1.0},{"type":"null"}],"title":"Manual Rank"},"admin_note":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Admin Note"}},"type":"object","title":"OverrideIn"},"OwnerTeam":{"type":"string","enum":["backend","content","ml","finance","compliance","growth"],"title":"OwnerTeam"},"PartnerKind":{"type":"string","enum":["university","csr","government","tech"],"title":"PartnerKind"},"PartnerLogoCreateIn":{"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"logo_s3_key":{"type":"string","maxLength":300,"minLength":1,"title":"Logo S3 Key"},"link_url":{"anyOf":[{"type":"string","maxLength":2083,"minLength":1,"format":"uri"},{"type":"null"}],"title":"Link Url"},"display_order":{"type":"integer","maximum":10000.0,"minimum":0.0,"title":"Display Order","default":100},"partner_kind":{"$ref":"#/components/schemas/PartnerKind"},"active":{"type":"boolean","title":"Active","default":true}},"type":"object","required":["name","logo_s3_key","partner_kind"],"title":"PartnerLogoCreateIn"},"PartnerLogoListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PartnerLogoOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"PartnerLogoListOut"},"PartnerLogoOut":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"logo_s3_key":{"type":"string","title":"Logo S3 Key"},"link_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Link Url"},"display_order":{"type":"integer","title":"Display Order"},"partner_kind":{"$ref":"#/components/schemas/PartnerKind"},"active":{"type":"boolean","title":"Active"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","name","logo_s3_key","link_url","display_order","partner_kind","active","created_at"],"title":"PartnerLogoOut"},"PartnerLogoUpdateIn":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":200,"minLength":1},{"type":"null"}],"title":"Name"},"logo_s3_key":{"anyOf":[{"type":"string","maxLength":300,"minLength":1},{"type":"null"}],"title":"Logo S3 Key"},"link_url":{"anyOf":[{"type":"string","maxLength":2083,"minLength":1,"format":"uri"},{"type":"null"}],"title":"Link Url"},"display_order":{"anyOf":[{"type":"integer","maximum":10000.0,"minimum":0.0},{"type":"null"}],"title":"Display Order"},"partner_kind":{"anyOf":[{"$ref":"#/components/schemas/PartnerKind"},{"type":"null"}]},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"}},"type":"object","title":"PartnerLogoUpdateIn"},"PasswordLoginIn":{"properties":{"phone":{"type":"string","maxLength":15,"minLength":10,"title":"Phone"},"password":{"type":"string","maxLength":128,"minLength":1,"title":"Password"},"device_info":{"$ref":"#/components/schemas/app__domains__identity__schemas__DeviceInfoIn"}},"type":"object","required":["phone","password","device_info"],"title":"PasswordLoginIn"},"PaymentListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PaymentOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"PaymentListOut"},"PaymentOut":{"properties":{"id":{"type":"integer","title":"Id"},"code":{"type":"string","title":"Code"},"user_id":{"type":"integer","title":"User Id"},"provider":{"type":"string","enum":["razorpay","cashfree","phonepe","direct"],"title":"Provider"},"provider_order_id":{"type":"string","title":"Provider Order Id"},"provider_payment_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Payment Id"},"amount_paise":{"type":"integer","title":"Amount Paise"},"gst_paise":{"type":"integer","title":"Gst Paise"},"net_paise":{"type":"integer","title":"Net Paise"},"currency":{"type":"string","title":"Currency"},"status":{"type":"string","enum":["initiated","authorized","succeeded","failed","refunded","partially_refunded","disputed","chargeback_lost"],"title":"Status"},"purpose":{"type":"string","enum":["test","bundle","arena_entry","mega_scholarship","retake","other"],"title":"Purpose"},"purpose_ref_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Purpose Ref Id"},"payment_method":{"type":"string","title":"Payment Method"},"failure_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failure Code"},"failure_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failure Reason"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"authorized_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Authorized At"},"succeeded_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Succeeded At"},"settled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Settled At"}},"type":"object","required":["id","code","user_id","provider","provider_order_id","amount_paise","gst_paise","net_paise","currency","status","purpose","payment_method","created_at"],"title":"PaymentOut"},"PilotConcludeIn":{"properties":{"actual_takers":{"type":"integer","minimum":0.0,"title":"Actual Takers"},"observed_p_correct":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Observed P Correct"},"observed_avg_time":{"type":"integer","minimum":0.0,"title":"Observed Avg Time"},"decision":{"$ref":"#/components/schemas/PilotDecision"}},"type":"object","required":["actual_takers","observed_p_correct","observed_avg_time","decision"],"title":"PilotConcludeIn"},"PilotDecision":{"type":"string","enum":["promote","retire","recalibrate"],"title":"PilotDecision"},"PilotListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PilotOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"PilotListOut"},"PilotOut":{"properties":{"id":{"type":"integer","title":"Id"},"question_id":{"type":"integer","title":"Question Id"},"target_takers":{"type":"integer","title":"Target Takers"},"actual_takers":{"type":"integer","title":"Actual Takers"},"observed_p_correct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Observed P Correct"},"observed_avg_time":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Observed Avg Time"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"concluded_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Concluded At"},"decision":{"anyOf":[{"$ref":"#/components/schemas/PilotDecision"},{"type":"null"}]},"decided_by_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Decided By Admin Id"}},"type":"object","required":["id","question_id","target_takers","actual_takers","observed_p_correct","observed_avg_time","started_at","concluded_at","decision","decided_by_admin_id"],"title":"PilotOut"},"PilotStartIn":{"properties":{"target_takers":{"type":"integer","maximum":10000.0,"minimum":1.0,"title":"Target Takers","default":200}},"type":"object","title":"PilotStartIn"},"PlagiarismDecision":{"type":"string","enum":["clean","review","duplicate"],"title":"PlagiarismDecision"},"PlagiarismIngestIn":{"properties":{"against_question_id":{"type":"integer","title":"Against Question Id"},"cosine_similarity":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Cosine Similarity"},"decision":{"$ref":"#/components/schemas/PlagiarismDecision","default":"clean"}},"type":"object","required":["against_question_id","cosine_similarity"],"title":"PlagiarismIngestIn"},"PlagiarismListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PlagiarismOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"PlagiarismListOut"},"PlagiarismOut":{"properties":{"id":{"type":"integer","title":"Id"},"question_id":{"type":"integer","title":"Question Id"},"against_question_id":{"type":"integer","title":"Against Question Id"},"cosine_similarity":{"type":"number","title":"Cosine Similarity"},"decision":{"$ref":"#/components/schemas/PlagiarismDecision"},"checked_at":{"type":"string","format":"date-time","title":"Checked At"}},"type":"object","required":["id","question_id","against_question_id","cosine_similarity","decision","checked_at"],"title":"PlagiarismOut"},"PredictOut":{"properties":{"prediction_id":{"type":"string","title":"Prediction Id"},"model_id":{"type":"integer","title":"Model Id"},"model_version":{"type":"string","title":"Model Version"},"exam_id":{"type":"integer","title":"Exam Id"},"exam_slug":{"type":"string","title":"Exam Slug"},"predicted_rank":{"type":"integer","title":"Predicted Rank"},"band_lower":{"type":"integer","title":"Band Lower"},"band_upper":{"type":"integer","title":"Band Upper"},"confidence_band_pct":{"type":"integer","title":"Confidence Band Pct"},"served_at":{"type":"string","format":"date-time","title":"Served At"},"inputs":{"additionalProperties":true,"type":"object","title":"Inputs"}},"type":"object","required":["prediction_id","model_id","model_version","exam_id","exam_slug","predicted_rank","band_lower","band_upper","confidence_band_pct","served_at","inputs"],"title":"PredictOut"},"PredictionHistoryListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PredictionHistoryOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"PredictionHistoryListOut"},"PredictionHistoryOut":{"properties":{"id":{"type":"string","title":"Id"},"model_id":{"type":"integer","title":"Model Id"},"predicted_rank":{"type":"integer","title":"Predicted Rank"},"band_lower":{"type":"integer","title":"Band Lower"},"band_upper":{"type":"integer","title":"Band Upper"},"served_at":{"type":"string","format":"date-time","title":"Served At"},"actual_rank":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Actual Rank"},"actual_rank_known_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Actual Rank Known At"}},"type":"object","required":["id","model_id","predicted_rank","band_lower","band_upper","served_at","actual_rank","actual_rank_known_at"],"title":"PredictionHistoryOut"},"PredictorAlgorithm":{"type":"string","enum":["GBR","IRT_2PL","composite_baseline"],"title":"PredictorAlgorithm","description":"Algorithm names match StrEnum names exactly to avoid DB-vs-Python mismatch\n(SQLAlchemy stores enum names by default). Display layer can prettify."},"PredictorStatus":{"type":"string","enum":["draft","training","live","deprecated"],"title":"PredictorStatus"},"PreferenceListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PreferenceOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"PreferenceListOut"},"PreferenceOut":{"properties":{"category":{"type":"string","enum":["transactional","scholarship","test","arena","leaderboard","marketing"],"title":"Category"},"muted":{"type":"boolean","title":"Muted"},"muteable":{"type":"boolean","title":"Muteable"},"last_changed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Changed At"}},"type":"object","required":["category","muted","muteable"],"title":"PreferenceOut"},"PreferenceUpdateIn":{"properties":{"category":{"type":"string","enum":["scholarship","test","arena","leaderboard","marketing"],"title":"Category"},"muted":{"type":"boolean","title":"Muted"}},"type":"object","required":["category","muted"],"title":"PreferenceUpdateIn"},"PressReleaseCreateIn":{"properties":{"grant_id":{"type":"integer","title":"Grant Id"},"body_md":{"type":"string","maxLength":50000,"minLength":1,"title":"Body Md"},"media_kit_s3_key":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Media Kit S3 Key"},"publish":{"type":"boolean","title":"Publish","default":false}},"type":"object","required":["grant_id","body_md"],"title":"PressReleaseCreateIn"},"PressReleaseListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PressReleaseOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"PressReleaseListOut"},"PressReleaseOut":{"properties":{"id":{"type":"integer","title":"Id"},"grant_id":{"type":"integer","title":"Grant Id"},"body_md":{"type":"string","title":"Body Md"},"media_kit_s3_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Media Kit S3 Key"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"created_by_admin_id":{"type":"integer","title":"Created By Admin Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","grant_id","body_md","media_kit_s3_key","published_at","created_by_admin_id","created_at"],"title":"PressReleaseOut"},"PressReleaseUpdateIn":{"properties":{"body_md":{"anyOf":[{"type":"string","maxLength":50000,"minLength":1},{"type":"null"}],"title":"Body Md"},"media_kit_s3_key":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Media Kit S3 Key"},"publish":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Publish"}},"type":"object","title":"PressReleaseUpdateIn"},"PriceCreateIn":{"properties":{"price_paise":{"type":"integer","minimum":0.0,"title":"Price Paise"},"effective_from":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Effective From"},"reason":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Reason"}},"type":"object","required":["price_paise"],"title":"PriceCreateIn"},"PriceHistoryOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PriceOut"},"type":"array","title":"Items"},"current_price_paise":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Price Paise"}},"type":"object","required":["items"],"title":"PriceHistoryOut"},"PriceOut":{"properties":{"id":{"type":"integer","title":"Id"},"test_id":{"type":"integer","title":"Test Id"},"price_paise":{"type":"integer","title":"Price Paise"},"effective_from":{"type":"string","format":"date-time","title":"Effective From"},"created_by_admin_id":{"type":"integer","title":"Created By Admin Id"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","test_id","price_paise","effective_from","created_by_admin_id","reason","created_at"],"title":"PriceOut"},"ProctorConfigOut":{"properties":{"test_id":{"type":"integer","title":"Test Id"},"level":{"$ref":"#/components/schemas/ProctorLevel"},"face_check":{"type":"boolean","title":"Face Check"},"audio_sample":{"type":"boolean","title":"Audio Sample"},"accel_sample":{"type":"boolean","title":"Accel Sample"},"screen_share":{"type":"boolean","title":"Screen Share"},"tab_switch_warns_max":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tab Switch Warns Max"},"auto_submit_after_warns":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Auto Submit After Warns"},"updated_by_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated By Admin Id"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["test_id","level","face_check","audio_sample","accel_sample","screen_share","tab_switch_warns_max","auto_submit_after_warns","updated_by_admin_id","updated_at"],"title":"ProctorConfigOut"},"ProctorConfigUpdateIn":{"properties":{"level":{"anyOf":[{"$ref":"#/components/schemas/ProctorLevel"},{"type":"null"}]},"face_check":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Face Check"},"audio_sample":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Audio Sample"},"accel_sample":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Accel Sample"},"screen_share":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Screen Share"},"tab_switch_warns_max":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Tab Switch Warns Max"},"auto_submit_after_warns":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Auto Submit After Warns"}},"type":"object","title":"ProctorConfigUpdateIn"},"ProctorDecisionKind":{"type":"string","enum":["clean","warning","suspend_session","disqualify","escalate"],"title":"ProctorDecisionKind"},"ProctorLevel":{"type":"string","enum":["L1","L2","L3","L4"],"title":"ProctorLevel"},"ProctoredModule":{"type":"string","enum":["eligibility","mega","arena"],"title":"ProctoredModule","description":"The three test modules that support proctoring.\n\nValues match `content.Module` enum values exactly so we can compare directly\nagainst a `Test.module` field without any translation layer."},"ProfileViewOut":{"properties":{"masked_id":{"type":"string","title":"Masked Id"},"score_band":{"anyOf":[{"$ref":"#/components/schemas/ScoreBand"},{"type":"null"}]},"rank_band":{"anyOf":[{"$ref":"#/components/schemas/RankBand"},{"type":"null"}]},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"exam_id":{"type":"integer","title":"Exam Id"},"language_pref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language Pref"},"improvement_30d_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Improvement 30D Pct"},"consistency_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Consistency Pct"},"last_refreshed_at":{"type":"string","format":"date-time","title":"Last Refreshed At"},"unmasked_full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unmasked Full Name"},"unmasked_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unmasked Email"},"unmasked_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unmasked Phone"},"unmasked_city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unmasked City"},"intro_status":{"anyOf":[{"$ref":"#/components/schemas/IntroStatus"},{"type":"null"}]}},"type":"object","required":["masked_id","score_band","rank_band","region","exam_id","last_refreshed_at"],"title":"ProfileViewOut","description":"Single aspirant profile (masked unless intro accepted with unmasks)."},"ProgressOut":{"properties":{"user_id":{"type":"integer","title":"User Id"},"tests_taken_30d":{"type":"integer","title":"Tests Taken 30D"},"points_earned_30d":{"type":"integer","title":"Points Earned 30D"},"consistency_score":{"type":"number","title":"Consistency Score"},"last_active_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Active At"},"next_milestone_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Milestone Label"},"next_milestone_progress_pct":{"type":"number","title":"Next Milestone Progress Pct"},"computed_at":{"type":"string","format":"date-time","title":"Computed At"}},"type":"object","required":["user_id","tests_taken_30d","points_earned_30d","consistency_score","last_active_at","next_milestone_label","next_milestone_progress_pct","computed_at"],"title":"ProgressOut"},"ProviderConfigListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ProviderConfigOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"ProviderConfigListOut"},"ProviderConfigOut":{"properties":{"id":{"type":"integer","title":"Id"},"provider":{"$ref":"#/components/schemas/ProviderKind"},"enabled":{"type":"boolean","title":"Enabled"},"rate_limit_rpm":{"type":"integer","title":"Rate Limit Rpm"},"health":{"$ref":"#/components/schemas/ProviderHealth"},"last_health_check_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Health Check At"},"updated_by_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated By Admin Id"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","provider","enabled","rate_limit_rpm","health","last_health_check_at","updated_by_admin_id","updated_at"],"title":"ProviderConfigOut"},"ProviderConfigUpsertIn":{"properties":{"provider":{"$ref":"#/components/schemas/ProviderKind"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"rate_limit_rpm":{"type":"integer","maximum":100000.0,"minimum":1.0,"title":"Rate Limit Rpm","default":600},"enabled":{"type":"boolean","title":"Enabled","default":true}},"type":"object","required":["provider","config"],"title":"ProviderConfigUpsertIn"},"ProviderHealth":{"type":"string","enum":["up","degraded","down"],"title":"ProviderHealth"},"ProviderHealthIn":{"properties":{"health":{"$ref":"#/components/schemas/ProviderHealth"}},"type":"object","required":["health"],"title":"ProviderHealthIn"},"ProviderKind":{"type":"string","enum":["email_ses","email_mailgun","push_fcm","sms_msg91","whatsapp_meta"],"title":"ProviderKind"},"PublicCompetitionListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PublicCompetitionOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"PublicCompetitionListOut"},"PublicCompetitionOut":{"properties":{"id":{"type":"integer","title":"Id"},"code":{"type":"string","title":"Code"},"name":{"type":"string","title":"Name"},"exam_id":{"type":"integer","title":"Exam Id"},"class_level":{"anyOf":[{"type":"string","enum":["c6","c7","c8","c9","c10","c11","c12","none"]},{"type":"null"}],"title":"Class Level"},"total_entrants_cap":{"type":"integer","title":"Total Entrants Cap"},"total_rounds":{"type":"integer","title":"Total Rounds"},"starts_at":{"type":"string","format":"date-time","title":"Starts At"},"ends_at_estimate":{"type":"string","format":"date-time","title":"Ends At Estimate"},"status":{"type":"string","enum":["draft","open","running","completed","cancelled"],"title":"Status"},"registrations_count":{"type":"integer","title":"Registrations Count"},"my_registration_status":{"anyOf":[{"type":"string","enum":["registered","active","eliminated","awardee","withdrew"]},{"type":"null"}],"title":"My Registration Status"},"my_current_round_no":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"My Current Round No"}},"type":"object","required":["id","code","name","exam_id","total_entrants_cap","total_rounds","starts_at","ends_at_estimate","status","registrations_count"],"title":"PublicCompetitionOut"},"PublicEntryOut":{"properties":{"rank":{"type":"integer","title":"Rank"},"display_name":{"type":"string","title":"Display Name"},"total_marks":{"type":"number","title":"Total Marks"},"max_marks":{"type":"number","title":"Max Marks"},"accuracy_pct":{"type":"number","title":"Accuracy Pct"},"time_taken_secs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Time Taken Secs"},"is_you":{"type":"boolean","title":"Is You","default":false}},"type":"object","required":["rank","display_name","total_marks","max_marks","accuracy_pct"],"title":"PublicEntryOut"},"PublicLeaderboardListItemOut":{"properties":{"id":{"type":"integer","title":"Id"},"code":{"type":"string","title":"Code"},"type":{"type":"string","enum":["eligibility","mega","arena"],"title":"Type"},"period_start":{"type":"string","format":"date-time","title":"Period Start"},"period_end":{"type":"string","format":"date-time","title":"Period End"},"exam_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exam Id"},"subject_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subject Id"},"class_level":{"anyOf":[{"type":"string","enum":["c6","c7","c8","c9","c10","c11","c12","none"]},{"type":"null"}],"title":"Class Level"},"title":{"type":"string","title":"Title"},"published_at":{"type":"string","format":"date-time","title":"Published At"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"entry_count":{"type":"integer","title":"Entry Count"}},"type":"object","required":["id","code","type","period_start","period_end","title","published_at","entry_count"],"title":"PublicLeaderboardListItemOut"},"PublicLeaderboardListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PublicLeaderboardListItemOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"PublicLeaderboardListOut"},"PublicLeaderboardOut":{"properties":{"id":{"type":"integer","title":"Id"},"code":{"type":"string","title":"Code"},"type":{"type":"string","enum":["eligibility","mega","arena"],"title":"Type"},"period_kind":{"type":"string","enum":["monthly","per_test","custom"],"title":"Period Kind"},"period_start":{"type":"string","format":"date-time","title":"Period Start"},"period_end":{"type":"string","format":"date-time","title":"Period End"},"exam_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exam Id"},"subject_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subject Id"},"class_level":{"anyOf":[{"type":"string","enum":["c6","c7","c8","c9","c10","c11","c12","none"]},{"type":"null"}],"title":"Class Level"},"source_test_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Source Test Id"},"title":{"type":"string","title":"Title"},"published_at":{"type":"string","format":"date-time","title":"Published At"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"entries":{"items":{"$ref":"#/components/schemas/PublicEntryOut"},"type":"array","title":"Entries"},"you":{"anyOf":[{"$ref":"#/components/schemas/PublicEntryOut"},{"type":"null"}]}},"type":"object","required":["id","code","type","period_kind","period_start","period_end","title","published_at","entries"],"title":"PublicLeaderboardOut"},"PublicMyAttemptStub":{"properties":{"attempt_id":{"type":"integer","title":"Attempt Id"},"status":{"type":"string","enum":["in_progress","submitted","expired","cancelled"],"title":"Status"},"submitted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Submitted At"}},"type":"object","required":["attempt_id","status"],"title":"PublicMyAttemptStub"},"PublicTestDetailOut":{"properties":{"id":{"type":"integer","title":"Id"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"},"module":{"type":"string","enum":["sample","eligibility","mega","arena"],"title":"Module"},"title":{"type":"string","title":"Title"},"subtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtitle"},"exam_id":{"type":"integer","title":"Exam Id"},"subject_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subject Id"},"class_level":{"anyOf":[{"type":"string","enum":["c6","c7","c8","c9","c10","c11","c12","none"]},{"type":"null"}],"title":"Class Level"},"language":{"type":"string","enum":["en","hi","ta","te","bn","mr"],"title":"Language"},"difficulty":{"type":"string","enum":["easy","medium","hard","mixed"],"title":"Difficulty"},"total_questions":{"type":"integer","title":"Total Questions"},"duration_secs":{"type":"integer","title":"Duration Secs"},"positive_marks":{"type":"integer","title":"Positive Marks"},"negative_marks":{"type":"number","title":"Negative Marks"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"instructions_md":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions Md"},"my_attempt":{"anyOf":[{"$ref":"#/components/schemas/PublicMyAttemptStub"},{"type":"null"}]}},"type":"object","required":["id","module","title","exam_id","language","difficulty","total_questions","duration_secs","positive_marks","negative_marks"],"title":"PublicTestDetailOut"},"PublicTestListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PublicTestSummaryOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"PublicTestListOut"},"PublicTestSummaryOut":{"properties":{"id":{"type":"integer","title":"Id"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"},"module":{"type":"string","enum":["sample","eligibility","mega","arena"],"title":"Module"},"title":{"type":"string","title":"Title"},"subtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtitle"},"exam_id":{"type":"integer","title":"Exam Id"},"subject_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subject Id"},"class_level":{"anyOf":[{"type":"string","enum":["c6","c7","c8","c9","c10","c11","c12","none"]},{"type":"null"}],"title":"Class Level"},"language":{"type":"string","enum":["en","hi","ta","te","bn","mr"],"title":"Language"},"difficulty":{"type":"string","enum":["easy","medium","hard","mixed"],"title":"Difficulty"},"total_questions":{"type":"integer","title":"Total Questions"},"duration_secs":{"type":"integer","title":"Duration Secs"},"positive_marks":{"type":"integer","title":"Positive Marks"},"negative_marks":{"type":"number","title":"Negative Marks"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"}},"type":"object","required":["id","module","title","exam_id","language","difficulty","total_questions","duration_secs","positive_marks","negative_marks"],"title":"PublicTestSummaryOut","description":"Public view — never exposes answers or anything admin-only."},"PublishIn":{"properties":{"visibility_days":{"anyOf":[{"type":"integer","enum":[10,15,20,30]},{"type":"null"}],"title":"Visibility Days"}},"type":"object","title":"PublishIn"},"PurposeBumpVersionIn":{"properties":{"title":{"anyOf":[{"type":"string","maxLength":200,"minLength":2},{"type":"null"}],"title":"Title"},"description_md":{"type":"string","minLength":2,"title":"Description Md"},"default_state":{"anyOf":[{"type":"string","enum":["opt_in","opt_out"]},{"type":"null"}],"title":"Default State"},"mandatory_for":{"anyOf":[{"type":"string","enum":["none","signup","eligibility_test","mega_scholarship","arena_entry","withdraw","uni_discovery"]},{"type":"null"}],"title":"Mandatory For"},"effective_from":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Effective From"}},"type":"object","required":["description_md"],"title":"PurposeBumpVersionIn","description":"Publish a new version of an existing purpose with revised text."},"PurposeCreateIn":{"properties":{"key":{"type":"string","maxLength":64,"minLength":2,"pattern":"^[a-z][a-z0-9_]*$","title":"Key"},"title":{"type":"string","maxLength":200,"minLength":2,"title":"Title"},"description_md":{"type":"string","minLength":2,"title":"Description Md"},"default_state":{"type":"string","enum":["opt_in","opt_out"],"title":"Default State"},"mandatory_for":{"type":"string","enum":["none","signup","eligibility_test","mega_scholarship","arena_entry","withdraw","uni_discovery"],"title":"Mandatory For","default":"none"},"effective_from":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Effective From"}},"type":"object","required":["key","title","description_md","default_state"],"title":"PurposeCreateIn"},"PurposeListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PurposeOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"PurposeListOut"},"PurposeOut":{"properties":{"id":{"type":"integer","title":"Id"},"key":{"type":"string","title":"Key"},"title":{"type":"string","title":"Title"},"description_md":{"type":"string","title":"Description Md"},"default_state":{"type":"string","enum":["opt_in","opt_out"],"title":"Default State"},"mandatory_for":{"type":"string","enum":["none","signup","eligibility_test","mega_scholarship","arena_entry","withdraw","uni_discovery"],"title":"Mandatory For"},"version":{"type":"integer","title":"Version"},"effective_from":{"type":"string","format":"date-time","title":"Effective From"},"is_current":{"type":"boolean","title":"Is Current"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","key","title","description_md","default_state","mandatory_for","version","effective_from","is_current","created_at"],"title":"PurposeOut"},"PushTemplateCreateIn":{"properties":{"key":{"type":"string","maxLength":80,"minLength":2,"pattern":"^[a-z][a-z0-9_.]*$","title":"Key"},"title":{"type":"string","maxLength":200,"minLength":2,"title":"Title"},"description_md":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Description Md"},"category":{"type":"string","enum":["transactional","scholarship","test","arena","leaderboard","marketing"],"title":"Category"},"push_title":{"type":"string","maxLength":80,"minLength":1,"title":"Push Title"},"push_body":{"type":"string","maxLength":300,"minLength":1,"title":"Push Body"},"push_data_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Push Data Json"},"vars":{"items":{"type":"string"},"type":"array","maxItems":20,"title":"Vars"}},"type":"object","required":["key","title","category","push_title","push_body"],"title":"PushTemplateCreateIn"},"PushTemplateUpdateIn":{"properties":{"title":{"anyOf":[{"type":"string","maxLength":200,"minLength":2},{"type":"null"}],"title":"Title"},"description_md":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description Md"},"category":{"anyOf":[{"type":"string","enum":["transactional","scholarship","test","arena","leaderboard","marketing"]},{"type":"null"}],"title":"Category"},"push_title":{"anyOf":[{"type":"string","maxLength":80,"minLength":1},{"type":"null"}],"title":"Push Title"},"push_body":{"anyOf":[{"type":"string","maxLength":300,"minLength":1},{"type":"null"}],"title":"Push Body"},"push_data_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Push Data Json"},"vars":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vars"},"confirm_demote_from_approved":{"type":"boolean","title":"Confirm Demote From Approved","default":false}},"type":"object","title":"PushTemplateUpdateIn"},"PushTokenListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PushTokenOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"PushTokenListOut"},"PushTokenOut":{"properties":{"id":{"type":"integer","title":"Id"},"platform":{"type":"string","enum":["android","ios","web"],"title":"Platform"},"device_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Id"},"active":{"type":"boolean","title":"Active"},"last_seen_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Seen At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"token_preview":{"type":"string","title":"Token Preview"}},"type":"object","required":["id","platform","active","created_at","token_preview"],"title":"PushTokenOut"},"QuestionContentIn":{"properties":{"stem_md":{"type":"string","minLength":1,"title":"Stem Md"},"options":{"anyOf":[{"items":{"$ref":"#/components/schemas/QuestionOption"},"type":"array"},{"type":"null"}],"title":"Options"},"correct_answer":{"additionalProperties":true,"type":"object","title":"Correct Answer"},"explanation_md":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Explanation Md"},"hints_md":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hints Md"},"source_attribution":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Source Attribution"}},"type":"object","required":["stem_md","correct_answer"],"title":"QuestionContentIn"},"QuestionContentOut":{"properties":{"stem_md":{"type":"string","title":"Stem Md"},"options":{"anyOf":[{"items":{"$ref":"#/components/schemas/QuestionOption"},"type":"array"},{"type":"null"}],"title":"Options"},"correct_answer":{"additionalProperties":true,"type":"object","title":"Correct Answer"},"explanation_md":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Explanation Md"},"hints_md":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hints Md"},"source_attribution":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Attribution"}},"type":"object","required":["stem_md","correct_answer"],"title":"QuestionContentOut"},"QuestionCreateIn":{"properties":{"module":{"type":"string","enum":["sample","eligibility","mega","arena"],"title":"Module"},"exam_id":{"type":"integer","title":"Exam Id"},"subject_id":{"type":"integer","title":"Subject Id"},"topic_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Topic Id"},"class_level":{"anyOf":[{"type":"string","enum":["c6","c7","c8","c9","c10","c11","c12","none"]},{"type":"null"}],"title":"Class Level"},"format":{"type":"string","enum":["mcq","msq","numerical","integer"],"title":"Format"},"difficulty":{"type":"string","enum":["easy","medium","hard","expert"],"title":"Difficulty","default":"medium"},"language":{"type":"string","enum":["en","hi","ta","te","bn","mr"],"title":"Language","default":"en"},"marks_correct":{"type":"integer","maximum":100.0,"minimum":0.0,"title":"Marks Correct","default":4},"marks_negative":{"type":"integer","maximum":100.0,"minimum":0.0,"title":"Marks Negative","default":1},"time_limit_sec":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":10.0},{"type":"null"}],"title":"Time Limit Sec"},"image_url":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Image Url"},"content":{"$ref":"#/components/schemas/QuestionContentIn"}},"type":"object","required":["module","exam_id","subject_id","format","content"],"title":"QuestionCreateIn"},"QuestionDetailOut":{"properties":{"id":{"type":"integer","title":"Id"},"public_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Id"},"module":{"type":"string","enum":["sample","eligibility","mega","arena"],"title":"Module"},"exam_id":{"type":"integer","title":"Exam Id"},"subject_id":{"type":"integer","title":"Subject Id"},"topic_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Topic Id"},"class_level":{"anyOf":[{"type":"string","enum":["c6","c7","c8","c9","c10","c11","c12","none"]},{"type":"null"}],"title":"Class Level"},"format":{"type":"string","enum":["mcq","msq","numerical","integer"],"title":"Format"},"difficulty":{"type":"string","enum":["easy","medium","hard","expert"],"title":"Difficulty"},"language":{"type":"string","enum":["en","hi","ta","te","bn","mr"],"title":"Language"},"lifecycle":{"type":"string","enum":["draft","submitted","changes_requested","approved","published","archived"],"title":"Lifecycle"},"version":{"type":"integer","title":"Version"},"marks_correct":{"type":"integer","title":"Marks Correct"},"marks_negative":{"type":"integer","title":"Marks Negative"},"creator_admin_id":{"type":"integer","title":"Creator Admin Id"},"reviewer_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Reviewer Admin Id"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"time_limit_sec":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Time Limit Sec"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"submitted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Submitted At"},"approved_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Approved At"},"archived_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Archived At"},"content":{"$ref":"#/components/schemas/QuestionContentOut"}},"type":"object","required":["id","module","exam_id","subject_id","format","difficulty","language","lifecycle","version","marks_correct","marks_negative","creator_admin_id","created_at","updated_at","content"],"title":"QuestionDetailOut"},"QuestionListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/QuestionSummaryOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total"}},"type":"object","required":["items"],"title":"QuestionListOut"},"QuestionOption":{"properties":{"key":{"type":"string","maxLength":4,"minLength":1,"title":"Key","description":"A, B, C, D, …"},"text":{"type":"string","minLength":1,"title":"Text"},"image_url":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Image Url"}},"type":"object","required":["key","text"],"title":"QuestionOption","description":"One option for mcq / msq."},"QuestionSummaryOut":{"properties":{"id":{"type":"integer","title":"Id"},"public_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Id"},"module":{"type":"string","enum":["sample","eligibility","mega","arena"],"title":"Module"},"exam_id":{"type":"integer","title":"Exam Id"},"subject_id":{"type":"integer","title":"Subject Id"},"topic_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Topic Id"},"class_level":{"anyOf":[{"type":"string","enum":["c6","c7","c8","c9","c10","c11","c12","none"]},{"type":"null"}],"title":"Class Level"},"format":{"type":"string","enum":["mcq","msq","numerical","integer"],"title":"Format"},"difficulty":{"type":"string","enum":["easy","medium","hard","expert"],"title":"Difficulty"},"language":{"type":"string","enum":["en","hi","ta","te","bn","mr"],"title":"Language"},"lifecycle":{"type":"string","enum":["draft","submitted","changes_requested","approved","published","archived"],"title":"Lifecycle"},"version":{"type":"integer","title":"Version"},"marks_correct":{"type":"integer","title":"Marks Correct"},"marks_negative":{"type":"integer","title":"Marks Negative"},"creator_admin_id":{"type":"integer","title":"Creator Admin Id"},"reviewer_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Reviewer Admin Id"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","module","exam_id","subject_id","format","difficulty","language","lifecycle","version","marks_correct","marks_negative","creator_admin_id","created_at","updated_at"],"title":"QuestionSummaryOut","description":"List view — omits the long content body."},"QuestionUpdateIn":{"properties":{"exam_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exam Id"},"subject_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subject Id"},"topic_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Topic Id"},"class_level":{"anyOf":[{"type":"string","enum":["c6","c7","c8","c9","c10","c11","c12","none"]},{"type":"null"}],"title":"Class Level"},"format":{"anyOf":[{"type":"string","enum":["mcq","msq","numerical","integer"]},{"type":"null"}],"title":"Format"},"difficulty":{"anyOf":[{"type":"string","enum":["easy","medium","hard","expert"]},{"type":"null"}],"title":"Difficulty"},"language":{"anyOf":[{"type":"string","enum":["en","hi","ta","te","bn","mr"]},{"type":"null"}],"title":"Language"},"marks_correct":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Marks Correct"},"marks_negative":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Marks Negative"},"time_limit_sec":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":10.0},{"type":"null"}],"title":"Time Limit Sec"},"image_url":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Image Url"},"content":{"anyOf":[{"$ref":"#/components/schemas/QuestionContentIn"},{"type":"null"}]},"change_reason":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Change Reason"}},"type":"object","title":"QuestionUpdateIn","description":"Partial update — applies only to draft / changes_requested questions."},"QueueClaimOut":{"properties":{"entry":{"$ref":"#/components/schemas/QueueEntryOut"}},"type":"object","required":["entry"],"title":"QueueClaimOut"},"QueueDecideIn":{"properties":{"decision":{"$ref":"#/components/schemas/ReviewDecision"},"notes":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Notes"}},"type":"object","required":["decision"],"title":"QueueDecideIn"},"QueueEntryOut":{"properties":{"id":{"type":"integer","title":"Id"},"session_id":{"type":"string","title":"Session Id"},"auto_score":{"type":"number","title":"Auto Score"},"priority":{"$ref":"#/components/schemas/ReviewPriority"},"assigned_to_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Assigned To Admin Id"},"sla_due_at":{"type":"string","format":"date-time","title":"Sla Due At"},"decided_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Decided At"},"decision":{"anyOf":[{"$ref":"#/components/schemas/ReviewDecision"},{"type":"null"}]},"decision_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Decision Notes"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","session_id","auto_score","priority","assigned_to_admin_id","sla_due_at","decided_at","decision","decision_notes","created_at"],"title":"QueueEntryOut"},"RankBand":{"type":"string","enum":["top_1k","top_5k","top_10k","top_25k","top_50k","top_100k","other"],"title":"RankBand"},"ReadinessHistoryOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ReadinessScoreOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"ReadinessHistoryOut"},"ReadinessScoreOut":{"properties":{"id":{"type":"integer","title":"Id"},"user_id":{"type":"integer","title":"User Id"},"exam_id":{"type":"integer","title":"Exam Id"},"score_pct":{"type":"number","title":"Score Pct"},"predicted_band_lower":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Predicted Band Lower"},"predicted_band_upper":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Predicted Band Upper"},"computed_at":{"type":"string","format":"date-time","title":"Computed At"}},"type":"object","required":["id","user_id","exam_id","score_pct","predicted_band_lower","predicted_band_upper","computed_at"],"title":"ReadinessScoreOut"},"RecommendationListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/RecommendationOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"RecommendationListOut"},"RecommendationOut":{"properties":{"id":{"type":"integer","title":"Id"},"user_id":{"type":"integer","title":"User Id"},"recommendation_type":{"$ref":"#/components/schemas/RecommendationType"},"ref_type":{"type":"string","title":"Ref Type"},"ref_id":{"type":"string","title":"Ref Id"},"score":{"type":"number","title":"Score"},"served_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Served At"},"clicked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Clicked At"},"dismissed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Dismissed At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","user_id","recommendation_type","ref_type","ref_id","score","served_at","clicked_at","dismissed_at","created_at"],"title":"RecommendationOut"},"RecommendationType":{"type":"string","enum":["weak_chapter_test","similar_test","arena_invite","mega_eligible","language_pair"],"title":"RecommendationType"},"RecordTdsManualIn":{"properties":{"subject_type":{"type":"string","enum":["vendor_payout","interest","rent","professional_fees"],"title":"Subject Type"},"subject_id":{"type":"integer","minimum":1.0,"title":"Subject Id"},"user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"},"pan_number":{"type":"string","maxLength":10,"minLength":10,"title":"Pan Number","description":"we hash this last-4"},"gross_paise":{"type":"integer","minimum":1.0,"title":"Gross Paise"},"tds_paise":{"type":"integer","minimum":0.0,"title":"Tds Paise"},"tds_section":{"type":"string","maxLength":20,"minLength":2,"title":"Tds Section"},"tds_rate_pct":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Tds Rate Pct"},"financial_year":{"type":"string","pattern":"^\\d{4}-\\d{2}$","title":"Financial Year"},"quarter":{"type":"string","enum":["Q1","Q2","Q3","Q4"],"title":"Quarter"},"challan_ref":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Challan Ref"},"note":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Note"}},"type":"object","required":["subject_type","subject_id","pan_number","gross_paise","tds_paise","tds_section","tds_rate_pct","financial_year","quarter"],"title":"RecordTdsManualIn","description":"For non-scholarship TDS (vendor payouts, professional fees, etc.)."},"RecordWarningIn":{"properties":{"user_id":{"type":"integer","title":"User Id"},"kind":{"$ref":"#/components/schemas/WarningKind"},"severity":{"$ref":"#/components/schemas/WarningSeverity"},"evidence_blob_s3_key":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Evidence Blob S3 Key"}},"type":"object","required":["user_id","kind","severity"],"title":"RecordWarningIn"},"RedirectKind":{"type":"string","enum":["301","302","410"],"title":"RedirectKind"},"RedirectListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/RedirectOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"RedirectListOut"},"RedirectOut":{"properties":{"id":{"type":"integer","title":"Id"},"from_path":{"type":"string","title":"From Path"},"to_path":{"type":"string","title":"To Path"},"kind":{"$ref":"#/components/schemas/RedirectKind"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","from_path","to_path","kind","created_at"],"title":"RedirectOut"},"RedirectResolveOut":{"properties":{"found":{"type":"boolean","title":"Found"},"to_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Path"},"kind":{"anyOf":[{"$ref":"#/components/schemas/RedirectKind"},{"type":"null"}]}},"type":"object","required":["found","to_path","kind"],"title":"RedirectResolveOut","description":"Returned by GET /cms/redirects/resolve?path=... — null if no match."},"RedirectUpsertIn":{"properties":{"from_path":{"type":"string","maxLength":500,"minLength":1,"title":"From Path"},"to_path":{"type":"string","maxLength":500,"minLength":1,"title":"To Path"},"kind":{"$ref":"#/components/schemas/RedirectKind","default":"301"}},"type":"object","required":["from_path","to_path"],"title":"RedirectUpsertIn"},"RefreshOut":{"properties":{"user_id":{"type":"integer","title":"User Id"},"refreshed_tables":{"items":{"type":"string"},"type":"array","title":"Refreshed Tables"},"computed_at":{"type":"string","format":"date-time","title":"Computed At"}},"type":"object","required":["user_id","refreshed_tables","computed_at"],"title":"RefreshOut"},"RefundListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/RefundOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"RefundListOut"},"RefundOut":{"properties":{"id":{"type":"integer","title":"Id"},"payment_id":{"type":"integer","title":"Payment Id"},"amount_paise":{"type":"integer","title":"Amount Paise"},"reason":{"type":"string","title":"Reason"},"status":{"type":"string","enum":["queued","approved","processing","completed","rejected","failed"],"title":"Status"},"requires_4_eye":{"type":"boolean","title":"Requires 4 Eye"},"approved_by_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Approved By Admin Id"},"co_approved_by_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Co Approved By Admin Id"},"provider_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Ref"},"requested_at":{"type":"string","format":"date-time","title":"Requested At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"failure_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failure Reason"}},"type":"object","required":["id","payment_id","amount_paise","reason","status","requires_4_eye","requested_at"],"title":"RefundOut"},"RegisterIn":{"properties":{},"type":"object","title":"RegisterIn"},"RegisterPushTokenIn":{"properties":{"token":{"type":"string","maxLength":400,"minLength":20,"title":"Token"},"platform":{"type":"string","enum":["android","ios","web"],"title":"Platform"},"device_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Device Id"}},"type":"object","required":["token","platform"],"title":"RegisterPushTokenIn"},"RejectIn":{"properties":{"reason":{"type":"string","maxLength":400,"minLength":1,"title":"Reason"},"pan_match":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Pan Match"},"dob_match":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Dob Match"},"aadhaar_match":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Aadhaar Match"},"name_match_score":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Name Match Score"}},"type":"object","required":["reason"],"title":"RejectIn"},"RejectTemplateIn":{"properties":{"note":{"type":"string","maxLength":2000,"minLength":1,"title":"Note"}},"type":"object","required":["note"],"title":"RejectTemplateIn"},"ReplyAuthorType":{"type":"string","enum":["user","admin","bot","system"],"title":"ReplyAuthorType"},"ResultBreakdownOut":{"properties":{"total_marks":{"type":"number","title":"Total Marks"},"max_marks":{"type":"number","title":"Max Marks"},"accuracy_pct":{"type":"number","title":"Accuracy Pct"},"correct_count":{"type":"integer","title":"Correct Count"},"incorrect_count":{"type":"integer","title":"Incorrect Count"},"skipped_count":{"type":"integer","title":"Skipped Count"},"time_taken_secs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Time Taken Secs"}},"type":"object","required":["total_marks","max_marks","accuracy_pct","correct_count","incorrect_count","skipped_count"],"title":"ResultBreakdownOut"},"RetentionListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/RetentionRowOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"RetentionListOut"},"RetentionPolicyListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/RetentionPolicyOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"RetentionPolicyListOut"},"RetentionPolicyOut":{"properties":{"id":{"type":"integer","title":"Id"},"purpose":{"$ref":"#/components/schemas/FilePurpose"},"keep_days":{"type":"integer","title":"Keep Days"},"keep_days_when_flagged":{"type":"integer","title":"Keep Days When Flagged"},"archive_to":{"$ref":"#/components/schemas/ArchiveTo"},"legal_hold_supported":{"type":"boolean","title":"Legal Hold Supported"},"updated_by_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated By Admin Id"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","purpose","keep_days","keep_days_when_flagged","archive_to","legal_hold_supported","updated_by_admin_id","updated_at"],"title":"RetentionPolicyOut"},"RetentionPolicyUpsertIn":{"properties":{"purpose":{"$ref":"#/components/schemas/FilePurpose"},"keep_days":{"type":"integer","maximum":36500.0,"minimum":1.0,"title":"Keep Days","default":90},"keep_days_when_flagged":{"type":"integer","maximum":36500.0,"minimum":1.0,"title":"Keep Days When Flagged","default":365},"archive_to":{"$ref":"#/components/schemas/ArchiveTo","default":"none"},"legal_hold_supported":{"type":"boolean","title":"Legal Hold Supported","default":false}},"type":"object","required":["purpose"],"title":"RetentionPolicyUpsertIn"},"RetentionRowOut":{"properties":{"cohort_id":{"type":"integer","title":"Cohort Id"},"day_offset":{"type":"integer","title":"Day Offset"},"users_retained":{"type":"integer","title":"Users Retained"},"computed_at":{"type":"string","format":"date-time","title":"Computed At"}},"type":"object","required":["cohort_id","day_offset","users_retained","computed_at"],"title":"RetentionRowOut"},"ReverseIn":{"properties":{"reason":{"type":"string","maxLength":400,"minLength":1,"title":"Reason"}},"type":"object","required":["reason"],"title":"ReverseIn"},"ReviewClaimIn":{"properties":{"reason":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Reason"}},"type":"object","title":"ReviewClaimIn"},"ReviewCommentIn":{"properties":{"comment_md":{"type":"string","maxLength":4000,"minLength":1,"title":"Comment Md"}},"type":"object","required":["comment_md"],"title":"ReviewCommentIn"},"ReviewCommentOut":{"properties":{"id":{"type":"integer","title":"Id"},"question_id":{"type":"integer","title":"Question Id"},"version":{"type":"integer","title":"Version"},"author_admin_id":{"type":"integer","title":"Author Admin Id"},"comment_md":{"type":"string","title":"Comment Md"},"resolved_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Resolved At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","question_id","version","author_admin_id","comment_md","created_at"],"title":"ReviewCommentOut"},"ReviewDecideIn":{"properties":{"state":{"$ref":"#/components/schemas/ReviewState"},"notes":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Notes"},"time_spent_secs":{"anyOf":[{"type":"integer","maximum":86400.0,"minimum":0.0},{"type":"null"}],"title":"Time Spent Secs"}},"type":"object","required":["state"],"title":"ReviewDecideIn"},"ReviewDecision":{"type":"string","enum":["clean","warning","disqualified"],"title":"ReviewDecision"},"ReviewListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ReviewOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"ReviewListOut"},"ReviewOut":{"properties":{"id":{"type":"integer","title":"Id"},"question_id":{"type":"integer","title":"Question Id"},"reviewer_admin_id":{"type":"integer","title":"Reviewer Admin Id"},"state":{"$ref":"#/components/schemas/ReviewState"},"assigned_at":{"type":"string","format":"date-time","title":"Assigned At"},"sla_due_at":{"type":"string","format":"date-time","title":"Sla Due At"},"decided_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Decided At"},"decision_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Decision Notes"},"time_spent_secs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Time Spent Secs"}},"type":"object","required":["id","question_id","reviewer_admin_id","state","assigned_at","sla_due_at","decided_at","decision_notes","time_spent_secs"],"title":"ReviewOut"},"ReviewPriority":{"type":"string","enum":["p1","p2","p3","p4"],"title":"ReviewPriority"},"ReviewState":{"type":"string","enum":["assigned","in_progress","approved","changes_requested","escalated"],"title":"ReviewState"},"RevisionOut":{"properties":{"id":{"type":"integer","title":"Id"},"version":{"type":"integer","title":"Version"},"changed_by_admin_id":{"type":"integer","title":"Changed By Admin Id"},"change_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Change Reason"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","version","changed_by_admin_id","created_at"],"title":"RevisionOut"},"RotateSecretOut":{"properties":{"endpoint_id":{"type":"integer","title":"Endpoint Id"},"secret_plain":{"type":"string","title":"Secret Plain"},"rotated_at":{"type":"string","format":"date-time","title":"Rotated At"}},"type":"object","required":["endpoint_id","secret_plain","rotated_at"],"title":"RotateSecretOut"},"RoundCreateIn":{"properties":{"round_no":{"type":"integer","maximum":10.0,"minimum":1.0,"title":"Round No"},"title":{"type":"string","maxLength":120,"minLength":1,"title":"Title"},"paper_test_id":{"type":"integer","title":"Paper Test Id"},"qualification_rule":{"additionalProperties":true,"type":"object","title":"Qualification Rule"},"scheduled_at":{"type":"string","format":"date-time","title":"Scheduled At"}},"type":"object","required":["round_no","title","paper_test_id","scheduled_at"],"title":"RoundCreateIn"},"RoundForensicOut":{"properties":{"session":{"anyOf":[{"$ref":"#/components/schemas/RoundSessionOut"},{"type":"null"}]},"participants":{"items":{"$ref":"#/components/schemas/RoundParticipantOut"},"type":"array","title":"Participants"},"recent_warnings":{"items":{"$ref":"#/components/schemas/RoundWarningOut"},"type":"array","title":"Recent Warnings"},"recent_messages":{"items":{"$ref":"#/components/schemas/RoundMessageOut"},"type":"array","title":"Recent Messages"}},"type":"object","required":["session","participants","recent_warnings","recent_messages"],"title":"RoundForensicOut"},"RoundMessageListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/RoundMessageOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"RoundMessageListOut"},"RoundMessageOut":{"properties":{"id":{"type":"string","title":"Id"},"round_id":{"type":"integer","title":"Round Id"},"op":{"type":"string","title":"Op"},"direction":{"$ref":"#/components/schemas/MessageDirection"},"subject_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subject User Id"},"payload_summary":{"type":"string","title":"Payload Summary"},"ts":{"type":"string","format":"date-time","title":"Ts"}},"type":"object","required":["id","round_id","op","direction","subject_user_id","payload_summary","ts"],"title":"RoundMessageOut"},"RoundOut":{"properties":{"id":{"type":"integer","title":"Id"},"competition_id":{"type":"integer","title":"Competition Id"},"round_no":{"type":"integer","title":"Round No"},"title":{"type":"string","title":"Title"},"paper_test_id":{"type":"integer","title":"Paper Test Id"},"qualification_rule":{"additionalProperties":true,"type":"object","title":"Qualification Rule"},"scheduled_at":{"type":"string","format":"date-time","title":"Scheduled At"},"actual_started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Actual Started At"},"actual_ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Actual Ended At"},"status":{"type":"string","enum":["scheduled","live","completed","cancelled"],"title":"Status"},"entrants_count_actual":{"type":"integer","title":"Entrants Count Actual"},"qualifiers_count_actual":{"type":"integer","title":"Qualifiers Count Actual"}},"type":"object","required":["id","competition_id","round_no","title","paper_test_id","qualification_rule","scheduled_at","status","entrants_count_actual","qualifiers_count_actual"],"title":"RoundOut"},"RoundParticipantOut":{"properties":{"round_id":{"type":"integer","title":"Round Id"},"user_id":{"type":"integer","title":"User Id"},"joined_at":{"type":"string","format":"date-time","title":"Joined At"},"left_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Left At"},"disconnect_count":{"type":"integer","title":"Disconnect Count"},"total_warnings":{"type":"integer","title":"Total Warnings"},"submitted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Submitted At"}},"type":"object","required":["round_id","user_id","joined_at","left_at","disconnect_count","total_warnings","submitted_at"],"title":"RoundParticipantOut"},"RoundResultOut":{"properties":{"round_id":{"type":"integer","title":"Round Id"},"round_no":{"type":"integer","title":"Round No"},"test_attempt_id":{"type":"integer","title":"Test Attempt Id"},"final_rank":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Final Rank"},"final_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Final Score"},"qualified":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Qualified"}},"type":"object","required":["round_id","round_no","test_attempt_id"],"title":"RoundResultOut"},"RoundSessionOut":{"properties":{"round_id":{"type":"integer","title":"Round Id"},"redis_channel":{"type":"string","title":"Redis Channel"},"kafka_topic":{"type":"string","title":"Kafka Topic"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ended At"},"peak_concurrent":{"type":"integer","title":"Peak Concurrent"},"total_messages":{"type":"integer","title":"Total Messages"},"disconnect_count":{"type":"integer","title":"Disconnect Count"}},"type":"object","required":["round_id","redis_channel","kafka_topic","started_at","ended_at","peak_concurrent","total_messages","disconnect_count"],"title":"RoundSessionOut"},"RoundWarningListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/RoundWarningOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"RoundWarningListOut"},"RoundWarningOut":{"properties":{"id":{"type":"integer","title":"Id"},"round_id":{"type":"integer","title":"Round Id"},"user_id":{"type":"integer","title":"User Id"},"kind":{"$ref":"#/components/schemas/WarningKind"},"severity":{"$ref":"#/components/schemas/WarningSeverity"},"evidence_blob_s3_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evidence Blob S3 Key"},"ts":{"type":"string","format":"date-time","title":"Ts"}},"type":"object","required":["id","round_id","user_id","kind","severity","evidence_blob_s3_key","ts"],"title":"RoundWarningOut"},"RuleAction":{"type":"string","enum":["warn","flag","disqualify"],"title":"RuleAction","description":"What happens when a rule's condition matches."},"RuleCreateIn":{"properties":{"code":{"type":"string","maxLength":80,"minLength":2,"title":"Code"},"name":{"type":"string","maxLength":200,"minLength":2,"title":"Name"},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Description"},"kind":{"anyOf":[{"$ref":"#/components/schemas/EventKind"},{"type":"null"}]},"severity_min":{"$ref":"#/components/schemas/EventSeverity","default":"warn"},"threshold_count":{"type":"integer","maximum":10000.0,"minimum":1.0,"title":"Threshold Count","default":1},"window_seconds":{"type":"integer","maximum":86400.0,"minimum":0.0,"title":"Window Seconds","default":0},"action":{"$ref":"#/components/schemas/RuleAction"},"applies_to_modules":{"items":{"$ref":"#/components/schemas/ProctoredModule"},"type":"array","title":"Applies To Modules"},"applies_to_levels":{"items":{"$ref":"#/components/schemas/ProctorLevel"},"type":"array","title":"Applies To Levels"},"enabled":{"type":"boolean","title":"Enabled","default":true},"priority":{"type":"integer","maximum":10000.0,"minimum":0.0,"title":"Priority","default":100}},"type":"object","required":["code","name","action"],"title":"RuleCreateIn"},"RuleListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/RuleOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"RuleListOut"},"RuleOut":{"properties":{"id":{"type":"integer","title":"Id"},"code":{"type":"string","title":"Code"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"kind":{"anyOf":[{"$ref":"#/components/schemas/EventKind"},{"type":"null"}]},"severity_min":{"$ref":"#/components/schemas/EventSeverity"},"threshold_count":{"type":"integer","title":"Threshold Count"},"window_seconds":{"type":"integer","title":"Window Seconds"},"action":{"$ref":"#/components/schemas/RuleAction"},"applies_to_modules":{"items":{"type":"string"},"type":"array","title":"Applies To Modules"},"applies_to_levels":{"items":{"type":"string"},"type":"array","title":"Applies To Levels"},"enabled":{"type":"boolean","title":"Enabled"},"priority":{"type":"integer","title":"Priority"},"created_by_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created By Admin Id"},"updated_by_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated By Admin Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","code","name","description","kind","severity_min","threshold_count","window_seconds","action","applies_to_modules","applies_to_levels","enabled","priority","created_by_admin_id","updated_by_admin_id","created_at","updated_at"],"title":"RuleOut"},"RuleUpdateIn":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":200,"minLength":2},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Description"},"kind":{"anyOf":[{"$ref":"#/components/schemas/EventKind"},{"type":"null"}]},"severity_min":{"anyOf":[{"$ref":"#/components/schemas/EventSeverity"},{"type":"null"}]},"threshold_count":{"anyOf":[{"type":"integer","maximum":10000.0,"minimum":1.0},{"type":"null"}],"title":"Threshold Count"},"window_seconds":{"anyOf":[{"type":"integer","maximum":86400.0,"minimum":0.0},{"type":"null"}],"title":"Window Seconds"},"action":{"anyOf":[{"$ref":"#/components/schemas/RuleAction"},{"type":"null"}]},"applies_to_modules":{"anyOf":[{"items":{"$ref":"#/components/schemas/ProctoredModule"},"type":"array"},{"type":"null"}],"title":"Applies To Modules"},"applies_to_levels":{"anyOf":[{"items":{"$ref":"#/components/schemas/ProctorLevel"},"type":"array"},{"type":"null"}],"title":"Applies To Levels"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"},"priority":{"anyOf":[{"type":"integer","maximum":10000.0,"minimum":0.0},{"type":"null"}],"title":"Priority"}},"type":"object","title":"RuleUpdateIn"},"RunbookCompleteIn":{"properties":{"outcome":{"$ref":"#/components/schemas/RunbookOutcome"},"notes":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}],"title":"Notes"}},"type":"object","required":["outcome"],"title":"RunbookCompleteIn"},"RunbookExecutionListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/RunbookExecutionOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"RunbookExecutionListOut"},"RunbookExecutionOut":{"properties":{"id":{"type":"integer","title":"Id"},"runbook_slug":{"type":"string","title":"Runbook Slug"},"incident_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Incident Id"},"executor_admin_id":{"type":"integer","title":"Executor Admin Id"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"outcome":{"anyOf":[{"$ref":"#/components/schemas/RunbookOutcome"},{"type":"null"}]},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["id","runbook_slug","incident_id","executor_admin_id","started_at","completed_at","outcome","notes"],"title":"RunbookExecutionOut"},"RunbookOutcome":{"type":"string","enum":["success","partial","failed"],"title":"RunbookOutcome"},"RunbookStartIn":{"properties":{"runbook_slug":{"type":"string","maxLength":60,"minLength":1,"title":"Runbook Slug"},"incident_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Incident Id"},"notes":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}],"title":"Notes"}},"type":"object","required":["runbook_slug"],"title":"RunbookStartIn"},"SavedMethodListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SavedMethodOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"SavedMethodListOut"},"SavedMethodOut":{"properties":{"id":{"type":"integer","title":"Id"},"provider":{"type":"string","enum":["razorpay","cashfree","phonepe","direct"],"title":"Provider"},"kind":{"type":"string","title":"Kind"},"display_label":{"type":"string","title":"Display Label"},"last_used_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Used At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","provider","kind","display_label","created_at"],"title":"SavedMethodOut"},"ScoreBand":{"type":"string","enum":["<60","60-70","70-80","80-85","85-90","90-95","95+"],"title":"ScoreBand"},"SearchFilters":{"properties":{"exam_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exam Id","description":"filter by target exam"},"score_band":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScoreBand"},"type":"array"},{"type":"null"}],"title":"Score Band","description":"any-of score bands"},"rank_band":{"anyOf":[{"items":{"$ref":"#/components/schemas/RankBand"},"type":"array"},{"type":"null"}],"title":"Rank Band","description":"any-of rank bands"},"region":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Region","description":"ISO 3166-2 state codes (e.g. DL, MH)"},"language_pref":{"anyOf":[{"type":"string","maxLength":5},{"type":"null"}],"title":"Language Pref"},"page":{"type":"integer","maximum":200.0,"minimum":1.0,"title":"Page","default":1},"page_size":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Page Size","default":20}},"type":"object","title":"SearchFilters"},"SearchResultsOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MaskedAspirantCard"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["items","total","page","page_size"],"title":"SearchResultsOut"},"SecurityEventListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SecurityEventOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"SecurityEventListOut"},"SecurityEventOut":{"properties":{"id":{"type":"string","title":"Id"},"kind":{"type":"string","enum":["login_anomaly","impossible_travel","brute_force","xss_attempt","sql_injection_attempt","rate_limit_hit","csrf_mismatch","token_reuse"],"title":"Kind"},"subject_type":{"type":"string","enum":["user","admin_user","ip"],"title":"Subject Type"},"subject_id":{"type":"string","title":"Subject Id"},"severity":{"type":"string","enum":["info","warning","severe","critical"],"title":"Severity"},"evidence_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Evidence Json"},"auto_response":{"type":"string","enum":["none","throttle","block","revoke_token","force_mfa"],"title":"Auto Response"},"at":{"type":"string","format":"date-time","title":"At"}},"type":"object","required":["id","kind","subject_type","subject_id","severity","auto_response","at"],"title":"SecurityEventOut"},"SecurityEventRecordIn":{"properties":{"kind":{"type":"string","enum":["login_anomaly","impossible_travel","brute_force","xss_attempt","sql_injection_attempt","rate_limit_hit","csrf_mismatch","token_reuse"],"title":"Kind"},"subject_type":{"type":"string","enum":["user","admin_user","ip"],"title":"Subject Type"},"subject_id":{"type":"string","maxLength":80,"minLength":1,"title":"Subject Id"},"severity":{"type":"string","enum":["info","warning","severe","critical"],"title":"Severity","default":"warning"},"evidence_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Evidence Json"},"auto_response":{"type":"string","enum":["none","throttle","block","revoke_token","force_mfa"],"title":"Auto Response","default":"none"},"at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"At"}},"type":"object","required":["kind","subject_type","subject_id"],"title":"SecurityEventRecordIn"},"SendIn":{"properties":{"template_key":{"type":"string","maxLength":80,"minLength":2,"title":"Template Key"},"audience":{"$ref":"#/components/schemas/AudienceFilterIn"},"vars":{"additionalProperties":true,"type":"object","title":"Vars"},"channels_override":{"anyOf":[{"items":{"type":"string","enum":["email","push"]},"type":"array","maxItems":2,"minItems":1},{"type":"null"}],"title":"Channels Override"}},"type":"object","required":["template_key","audience"],"title":"SendIn"},"SendOut":{"properties":{"correlation_id":{"type":"string","title":"Correlation Id"},"template_key":{"type":"string","title":"Template Key"},"queued":{"type":"integer","title":"Queued"},"sent":{"type":"integer","title":"Sent"},"skipped":{"type":"integer","title":"Skipped"},"failed":{"type":"integer","title":"Failed"},"audience_size":{"type":"integer","title":"Audience Size"}},"type":"object","required":["correlation_id","template_key","queued","sent","skipped","failed","audience_size"],"title":"SendOut"},"SessionDetailOut":{"properties":{"session":{"$ref":"#/components/schemas/SessionOut"},"events":{"items":{"$ref":"#/components/schemas/app__domains__proctoring__schemas__EventOut"},"type":"array","title":"Events"},"anomaly_scores":{"items":{"$ref":"#/components/schemas/AnomalyScoreOut"},"type":"array","title":"Anomaly Scores"},"video_chunks":{"items":{"$ref":"#/components/schemas/ChunkOut"},"type":"array","title":"Video Chunks"},"audio_chunks":{"items":{"$ref":"#/components/schemas/ChunkOut"},"type":"array","title":"Audio Chunks"},"decisions":{"items":{"$ref":"#/components/schemas/DecisionOut"},"type":"array","title":"Decisions"},"appeal":{"anyOf":[{"$ref":"#/components/schemas/AppealOut"},{"type":"null"}]}},"type":"object","required":["session","events","anomaly_scores","video_chunks","audio_chunks","decisions","appeal"],"title":"SessionDetailOut"},"SessionEndIn":{"properties":{"client_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Client Summary"}},"type":"object","title":"SessionEndIn"},"SessionEndOut":{"properties":{"session":{"$ref":"#/components/schemas/SessionOut"},"enqueued_for_review":{"type":"boolean","title":"Enqueued For Review"},"attempt_disqualified":{"type":"boolean","title":"Attempt Disqualified"}},"type":"object","required":["session","enqueued_for_review","attempt_disqualified"],"title":"SessionEndOut"},"SessionOut":{"properties":{"id":{"type":"string","title":"Id"},"attempt_id":{"type":"integer","title":"Attempt Id"},"user_id":{"type":"integer","title":"User Id"},"level":{"$ref":"#/components/schemas/ProctorLevel"},"consented_at":{"type":"string","format":"date-time","title":"Consented At"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ended At"},"cheat_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cheat Score"},"auto_decision":{"anyOf":[{"$ref":"#/components/schemas/AutoDecision"},{"type":"null"}]},"human_reviewer_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Human Reviewer Admin Id"},"human_decision_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Human Decision At"},"s3_video_prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"S3 Video Prefix"},"s3_audio_prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"S3 Audio Prefix"},"tab_switch_warns":{"type":"integer","title":"Tab Switch Warns"},"severe_event_count":{"type":"integer","title":"Severe Event Count"}},"type":"object","required":["id","attempt_id","user_id","level","consented_at","started_at","ended_at","cheat_score","auto_decision","human_reviewer_admin_id","human_decision_at","s3_video_prefix","s3_audio_prefix","tab_switch_warns","severe_event_count"],"title":"SessionOut"},"SessionStartIn":{"properties":{"attempt_id":{"type":"integer","title":"Attempt Id"},"level":{"$ref":"#/components/schemas/ProctorLevel","default":"L2"}},"type":"object","required":["attempt_id"],"title":"SessionStartIn"},"SessionStartOut":{"properties":{"session_id":{"type":"string","title":"Session Id"},"consent_token":{"type":"string","title":"Consent Token"},"level":{"$ref":"#/components/schemas/ProctorLevel"},"started_at":{"type":"string","format":"date-time","title":"Started At"}},"type":"object","required":["session_id","consent_token","level","started_at"],"title":"SessionStartOut"},"SetPasswordIn":{"properties":{"token":{"type":"string","title":"Token"},"new_password":{"type":"string","maxLength":128,"minLength":10,"title":"New Password"},"confirm_password":{"type":"string","maxLength":128,"minLength":10,"title":"Confirm Password"}},"type":"object","required":["token","new_password","confirm_password"],"title":"SetPasswordIn"},"SettlementListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SettlementOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"SettlementListOut"},"SettlementOut":{"properties":{"id":{"type":"integer","title":"Id"},"gateway":{"type":"string","title":"Gateway"},"settlement_id":{"type":"string","title":"Settlement Id"},"amount_paise":{"type":"integer","title":"Amount Paise"},"fees_paise":{"type":"integer","title":"Fees Paise"},"gst_on_fees_paise":{"type":"integer","title":"Gst On Fees Paise"},"tds_paise":{"type":"integer","title":"Tds Paise"},"net_paise":{"type":"integer","title":"Net Paise"},"expected_at":{"type":"string","format":"date-time","title":"Expected At"},"received_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Received At"},"bank_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bank Ref"},"status":{"type":"string","enum":["expected","partial","received","reconciled","discrepancy"],"title":"Status"}},"type":"object","required":["id","gateway","settlement_id","amount_paise","fees_paise","gst_on_fees_paise","tds_paise","net_paise","expected_at","status"],"title":"SettlementOut"},"SignedUrlAuditOut":{"properties":{"id":{"type":"string","title":"Id"},"file_id":{"type":"string","title":"File Id"},"issued_to_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Issued To Admin Id"},"issued_to_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Issued To User Id"},"purpose":{"type":"string","title":"Purpose"},"issued_at":{"type":"string","format":"date-time","title":"Issued At"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"accessed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Accessed At"},"accessor_ip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Accessor Ip"}},"type":"object","required":["id","file_id","issued_to_admin_id","issued_to_user_id","purpose","issued_at","expires_at","accessed_at","accessor_ip"],"title":"SignedUrlAuditOut"},"SignedUrlListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SignedUrlAuditOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"SignedUrlListOut"},"SignupIn":{"properties":{"phone":{"type":"string","maxLength":15,"minLength":10,"title":"Phone"},"password":{"type":"string","maxLength":128,"minLength":8,"title":"Password"},"password_confirm":{"type":"string","maxLength":128,"minLength":8,"title":"Password Confirm"}},"type":"object","required":["phone","password","password_confirm"],"title":"SignupIn"},"SignupOut":{"properties":{"request_id":{"type":"string","title":"Request Id"},"expires_in":{"type":"integer","title":"Expires In"}},"type":"object","required":["request_id","expires_in"],"title":"SignupOut"},"SlaEntityType":{"type":"string","enum":["question_review","dispute","refund","kyc","grant_review","grievance","support"],"title":"SlaEntityType"},"SlaSeverity":{"type":"string","enum":["p1","p2","p3","p4"],"title":"SlaSeverity"},"SlaTimerListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SlaTimerOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"SlaTimerListOut"},"SlaTimerOut":{"properties":{"id":{"type":"integer","title":"Id"},"entity_type":{"$ref":"#/components/schemas/SlaEntityType"},"entity_id":{"type":"string","title":"Entity Id"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"due_at":{"type":"string","format":"date-time","title":"Due At"},"breached_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Breached At"},"resolved_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Resolved At"},"severity":{"$ref":"#/components/schemas/SlaSeverity"},"is_breached_now":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Breached Now"},"seconds_until_due":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seconds Until Due"}},"type":"object","required":["id","entity_type","entity_id","started_at","due_at","breached_at","resolved_at","severity"],"title":"SlaTimerOut"},"StartKycIn":{"properties":{"full_name":{"type":"string","maxLength":120,"minLength":2,"title":"Full Name"},"dob":{"type":"string","format":"date","title":"Dob"},"pan_number":{"type":"string","maxLength":10,"minLength":10,"title":"Pan Number"},"pan_name":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Pan Name","description":"Name as printed on PAN, if different"},"aadhaar_number":{"anyOf":[{"type":"string","maxLength":14,"minLength":12},{"type":"null"}],"title":"Aadhaar Number"},"aadhaar_method":{"type":"string","enum":["not_provided","offline_xml","masked_image","okyc"],"title":"Aadhaar Method","default":"not_provided"},"bank_account_number":{"anyOf":[{"type":"string","maxLength":24,"minLength":4},{"type":"null"}],"title":"Bank Account Number"},"bank_ifsc":{"anyOf":[{"type":"string","maxLength":11,"minLength":11},{"type":"null"}],"title":"Bank Ifsc"},"bank_holder_name":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Bank Holder Name"}},"type":"object","required":["full_name","dob","pan_number"],"title":"StartKycIn"},"StartKycOut":{"properties":{"attempt_id":{"type":"integer","title":"Attempt Id"},"status":{"type":"string","enum":["submitted","in_review","verified","rejected","expired"],"title":"Status"},"required_docs":{"items":{"type":"string","enum":["pan","aadhaar","passport","driving_license","bank_proof"]},"type":"array","title":"Required Docs"}},"type":"object","required":["attempt_id","status","required_docs"],"title":"StartKycOut"},"StartRoundOut":{"properties":{"round_id":{"type":"integer","title":"Round Id"},"round_no":{"type":"integer","title":"Round No"},"title":{"type":"string","title":"Title"},"competition_id":{"type":"integer","title":"Competition Id"},"test_attempt_id":{"type":"integer","title":"Test Attempt Id"},"paper_test_id":{"type":"integer","title":"Paper Test Id"}},"type":"object","required":["round_id","round_no","title","competition_id","test_attempt_id","paper_test_id"],"title":"StartRoundOut"},"StartTestIn":{"properties":{"device_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Device Id"}},"type":"object","title":"StartTestIn"},"StartTestOut":{"properties":{"attempt_id":{"type":"integer","title":"Attempt Id"},"test_id":{"type":"integer","title":"Test Id"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"duration_secs":{"type":"integer","title":"Duration Secs"},"total_questions":{"type":"integer","title":"Total Questions"}},"type":"object","required":["attempt_id","test_id","started_at","expires_at","duration_secs","total_questions"],"title":"StartTestOut"},"StateHistoryListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/StateHistoryOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"StateHistoryListOut"},"StateHistoryOut":{"properties":{"id":{"type":"string","title":"Id"},"user_id":{"type":"integer","title":"User Id"},"from_state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From State"},"to_state":{"type":"string","title":"To State"},"actor_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Actor Admin Id"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"at":{"type":"string","format":"date-time","title":"At"}},"type":"object","required":["id","user_id","from_state","to_state","actor_admin_id","reason","at"],"title":"StateHistoryOut"},"StateListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/StateOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"StateListOut"},"StateOut":{"properties":{"id":{"type":"integer","title":"Id"},"country_iso2":{"type":"string","title":"Country Iso2"},"code":{"type":"string","title":"Code"},"name":{"type":"string","title":"Name"},"gst_state_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gst State Code"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","country_iso2","code","name","gst_state_code","created_at"],"title":"StateOut"},"StateUpsertIn":{"properties":{"country_iso2":{"type":"string","maxLength":2,"minLength":2,"title":"Country Iso2"},"code":{"type":"string","maxLength":8,"minLength":1,"title":"Code"},"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name"},"gst_state_code":{"anyOf":[{"type":"string","maxLength":2},{"type":"null"}],"title":"Gst State Code"}},"type":"object","required":["country_iso2","code","name"],"title":"StateUpsertIn"},"StrengthListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/StrengthOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"StrengthListOut"},"StrengthOut":{"properties":{"user_id":{"type":"integer","title":"User Id"},"topic_id":{"type":"integer","title":"Topic Id"},"strength_pct":{"type":"number","title":"Strength Pct"},"attempts_count":{"type":"integer","title":"Attempts Count"},"last_attempt_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Attempt At"}},"type":"object","required":["user_id","topic_id","strength_pct","attempts_count","last_attempt_at"],"title":"StrengthOut"},"SubjectOut":{"properties":{"id":{"type":"integer","title":"Id"},"code":{"type":"string","title":"Code"},"name":{"type":"string","title":"Name"},"active":{"type":"boolean","title":"Active"}},"type":"object","required":["id","code","name","active"],"title":"SubjectOut"},"SubmitForReviewIn":{"properties":{"note":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Note"}},"type":"object","title":"SubmitForReviewIn"},"SubmitIn":{"properties":{"note":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Note"}},"type":"object","title":"SubmitIn"},"SurveyListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SurveyOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"SurveyListOut"},"SurveyOut":{"properties":{"id":{"type":"integer","title":"Id"},"user_id":{"type":"integer","title":"User Id"},"surface":{"$ref":"#/components/schemas/SurveySurface"},"score":{"type":"integer","title":"Score"},"nps_category":{"anyOf":[{"$ref":"#/components/schemas/NpsCategory"},{"type":"null"}]},"feedback_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Feedback Text"},"related_entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Related Entity Id"},"at":{"type":"string","format":"date-time","title":"At"}},"type":"object","required":["id","user_id","surface","score","nps_category","feedback_text","related_entity_id","at"],"title":"SurveyOut"},"SurveySubmitIn":{"properties":{"surface":{"$ref":"#/components/schemas/SurveySurface"},"score":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Score"},"feedback_text":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Feedback Text"},"related_entity_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Related Entity Id"}},"type":"object","required":["surface","score"],"title":"SurveySubmitIn"},"SurveySurface":{"type":"string","enum":["post_test","post_arena","post_grant","support_close","app_uninstall"],"title":"SurveySurface"},"TagCreateIn":{"properties":{"code":{"type":"string","maxLength":40,"minLength":1,"title":"Code"},"label":{"type":"string","maxLength":120,"minLength":1,"title":"Label"},"active":{"type":"boolean","title":"Active","default":true}},"type":"object","required":["code","label"],"title":"TagCreateIn"},"TagListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/TagOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"TagListOut"},"TagOut":{"properties":{"id":{"type":"integer","title":"Id"},"code":{"type":"string","title":"Code"},"label":{"type":"string","title":"Label"},"active":{"type":"boolean","title":"Active"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","code","label","active","created_at"],"title":"TagOut"},"TagUpdateIn":{"properties":{"label":{"anyOf":[{"type":"string","maxLength":120,"minLength":1},{"type":"null"}],"title":"Label"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"}},"type":"object","title":"TagUpdateIn"},"TargetKind":{"type":"string","enum":["cohort","user_list"],"title":"TargetKind"},"TargetListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/TargetOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"TargetListOut"},"TargetOut":{"properties":{"id":{"type":"integer","title":"Id"},"campaign_id":{"type":"integer","title":"Campaign Id"},"kind":{"$ref":"#/components/schemas/TargetKind"},"cohort_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cohort Id"},"user_ids_json":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"User Ids Json"}},"type":"object","required":["id","campaign_id","kind","cohort_id","user_ids_json"],"title":"TargetOut"},"TargetUpsertIn":{"properties":{"kind":{"$ref":"#/components/schemas/TargetKind"},"cohort_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cohort Id"},"user_ids":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"User Ids"}},"type":"object","required":["kind"],"title":"TargetUpsertIn"},"TaxAuditLogIn":{"properties":{"auditor":{"type":"string","maxLength":120,"minLength":2,"title":"Auditor"},"period":{"type":"string","pattern":"^\\d{4}-\\d{2}$","title":"Period"},"findings_summary":{"type":"string","minLength":2,"title":"Findings Summary"},"report_s3_key":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Report S3 Key"},"audit_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Audit Date"}},"type":"object","required":["auditor","period","findings_summary"],"title":"TaxAuditLogIn"},"TaxAuditLogListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/TaxAuditLogOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"TaxAuditLogListOut"},"TaxAuditLogOut":{"properties":{"id":{"type":"integer","title":"Id"},"auditor":{"type":"string","title":"Auditor"},"period":{"type":"string","title":"Period"},"findings_summary":{"type":"string","title":"Findings Summary"},"report_s3_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Report S3 Key"},"audit_date":{"type":"string","format":"date-time","title":"Audit Date"},"recorded_by_admin_id":{"type":"integer","title":"Recorded By Admin Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","auditor","period","findings_summary","audit_date","recorded_by_admin_id","created_at"],"title":"TaxAuditLogOut"},"TdsListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/TdsRowOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"TdsListOut"},"TdsRowOut":{"properties":{"id":{"type":"integer","title":"Id"},"subject_type":{"type":"string","enum":["user_grant","vendor_payout","interest","rent","professional_fees"],"title":"Subject Type"},"subject_id":{"type":"integer","title":"Subject Id"},"user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"},"pan_last4_preview":{"type":"string","title":"Pan Last4 Preview"},"gross_paise":{"type":"integer","title":"Gross Paise"},"tds_paise":{"type":"integer","title":"Tds Paise"},"net_paise":{"type":"integer","title":"Net Paise"},"tds_section":{"type":"string","title":"Tds Section"},"tds_rate_pct":{"type":"number","title":"Tds Rate Pct"},"financial_year":{"type":"string","title":"Financial Year"},"quarter":{"type":"string","title":"Quarter"},"deducted_at":{"type":"string","format":"date-time","title":"Deducted At"},"challan_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Challan Ref"},"paid_to_govt_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Paid To Govt At"},"recorded_by_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Recorded By Admin Id"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","subject_type","subject_id","pan_last4_preview","gross_paise","tds_paise","net_paise","tds_section","tds_rate_pct","financial_year","quarter","deducted_at","created_at"],"title":"TdsRowOut"},"TemplateListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/TemplateOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"TemplateListOut"},"TemplateOut":{"properties":{"id":{"type":"integer","title":"Id"},"key":{"type":"string","title":"Key"},"title":{"type":"string","title":"Title"},"description_md":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description Md"},"channel":{"type":"string","enum":["email","push"],"title":"Channel"},"category":{"type":"string","enum":["transactional","scholarship","test","arena","leaderboard","marketing"],"title":"Category"},"email_subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email Subject"},"email_body_md":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email Body Md"},"push_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Push Title"},"push_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Push Body"},"push_data_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Push Data Json"},"vars":{"items":{"type":"string"},"type":"array","title":"Vars"},"status":{"type":"string","enum":["draft","in_review","approved","rejected"],"title":"Status"},"submitted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Submitted At"},"submitted_by_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Submitted By Admin Id"},"reviewed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Reviewed At"},"reviewed_by_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Reviewed By Admin Id"},"review_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Review Notes"},"created_by_admin_id":{"type":"integer","title":"Created By Admin Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","key","title","channel","category","status","created_by_admin_id","created_at","updated_at"],"title":"TemplateOut"},"TestBySlugOut":{"properties":{"test_id":{"type":"integer","title":"Test Id"},"title":{"type":"string","title":"Title"},"status":{"$ref":"#/components/schemas/TestStatus"},"instructions_md":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions Md"},"cover_image_s3_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cover Image S3 Key"},"seo_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seo Title"},"seo_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seo Description"},"price_paise":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Price Paise"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"}},"type":"object","required":["test_id","title","status","instructions_md","cover_image_s3_key","seo_title","seo_description","price_paise","tags"],"title":"TestBySlugOut","description":"Public preview returned by GET /tests/by-slug/{slug}."},"TestCreateIn":{"properties":{"module":{"type":"string","enum":["sample","eligibility","mega","arena"],"title":"Module"},"title":{"type":"string","maxLength":200,"minLength":2,"title":"Title"},"subtitle":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Subtitle"},"exam_id":{"type":"integer","title":"Exam Id"},"subject_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subject Id"},"class_level":{"anyOf":[{"type":"string","enum":["c6","c7","c8","c9","c10","c11","c12","none"]},{"type":"null"}],"title":"Class Level"},"language":{"type":"string","enum":["en","hi","ta","te","bn","mr"],"title":"Language","default":"en"},"difficulty":{"type":"string","enum":["easy","medium","hard","mixed"],"title":"Difficulty","default":"mixed"},"positive_marks":{"type":"integer","maximum":100.0,"minimum":0.0,"title":"Positive Marks","default":4},"negative_marks":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Negative Marks","default":1.0},"duration_secs":{"type":"integer","maximum":14400.0,"minimum":30.0,"title":"Duration Secs","default":3600},"instructions_md":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions Md"}},"type":"object","required":["module","title","exam_id"],"title":"TestCreateIn"},"TestDetailOut":{"properties":{"id":{"type":"integer","title":"Id"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"},"module":{"type":"string","enum":["sample","eligibility","mega","arena"],"title":"Module"},"title":{"type":"string","title":"Title"},"subtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtitle"},"exam_id":{"type":"integer","title":"Exam Id"},"subject_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subject Id"},"class_level":{"anyOf":[{"type":"string","enum":["c6","c7","c8","c9","c10","c11","c12","none"]},{"type":"null"}],"title":"Class Level"},"language":{"type":"string","enum":["en","hi","ta","te","bn","mr"],"title":"Language"},"difficulty":{"type":"string","enum":["easy","medium","hard","mixed"],"title":"Difficulty"},"positive_marks":{"type":"integer","title":"Positive Marks"},"negative_marks":{"type":"number","title":"Negative Marks"},"total_questions":{"type":"integer","title":"Total Questions"},"duration_secs":{"type":"integer","title":"Duration Secs"},"status":{"type":"string","enum":["draft","published","archived"],"title":"Status"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"archived_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Archived At"},"creator_admin_id":{"type":"integer","title":"Creator Admin Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"instructions_md":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions Md"},"questions":{"items":{"$ref":"#/components/schemas/TestQuestionOut"},"type":"array","title":"Questions"}},"type":"object","required":["id","module","title","exam_id","language","difficulty","positive_marks","negative_marks","total_questions","duration_secs","status","creator_admin_id","created_at","updated_at"],"title":"TestDetailOut"},"TestListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/TestSummaryOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total"}},"type":"object","required":["items"],"title":"TestListOut"},"TestQuestionBulkIn":{"properties":{"items":{"items":{"$ref":"#/components/schemas/TestQuestionIn"},"type":"array","maxItems":200,"minItems":1,"title":"Items"}},"type":"object","required":["items"],"title":"TestQuestionBulkIn"},"TestQuestionIn":{"properties":{"question_id":{"type":"integer","title":"Question Id"},"seq":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Seq"},"marks_correct_override":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Marks Correct Override"},"marks_negative_override":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Marks Negative Override"},"time_limit_secs_override":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":10.0},{"type":"null"}],"title":"Time Limit Secs Override"}},"type":"object","required":["question_id"],"title":"TestQuestionIn"},"TestQuestionOut":{"properties":{"id":{"type":"integer","title":"Id"},"question_id":{"type":"integer","title":"Question Id"},"seq":{"type":"integer","title":"Seq"},"marks_correct_override":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Marks Correct Override"},"marks_negative_override":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Marks Negative Override"},"time_limit_secs_override":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Time Limit Secs Override"},"public_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Id"},"format":{"anyOf":[{"type":"string","enum":["mcq","msq","numerical","integer"]},{"type":"null"}],"title":"Format"},"difficulty":{"anyOf":[{"type":"string","enum":["easy","medium","hard","expert"]},{"type":"null"}],"title":"Difficulty"},"stem_preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stem Preview"}},"type":"object","required":["id","question_id","seq"],"title":"TestQuestionOut"},"TestStatus":{"type":"string","enum":["draft","published","archived"],"title":"TestStatus"},"TestSummaryOut":{"properties":{"id":{"type":"integer","title":"Id"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"},"module":{"type":"string","enum":["sample","eligibility","mega","arena"],"title":"Module"},"title":{"type":"string","title":"Title"},"subtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtitle"},"exam_id":{"type":"integer","title":"Exam Id"},"subject_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subject Id"},"class_level":{"anyOf":[{"type":"string","enum":["c6","c7","c8","c9","c10","c11","c12","none"]},{"type":"null"}],"title":"Class Level"},"language":{"type":"string","enum":["en","hi","ta","te","bn","mr"],"title":"Language"},"difficulty":{"type":"string","enum":["easy","medium","hard","mixed"],"title":"Difficulty"},"positive_marks":{"type":"integer","title":"Positive Marks"},"negative_marks":{"type":"number","title":"Negative Marks"},"total_questions":{"type":"integer","title":"Total Questions"},"duration_secs":{"type":"integer","title":"Duration Secs"},"status":{"type":"string","enum":["draft","published","archived"],"title":"Status"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"archived_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Archived At"},"creator_admin_id":{"type":"integer","title":"Creator Admin Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","module","title","exam_id","language","difficulty","positive_marks","negative_marks","total_questions","duration_secs","status","creator_admin_id","created_at","updated_at"],"title":"TestSummaryOut","description":"List view — no question list, lightweight."},"TestUpdateIn":{"properties":{"title":{"anyOf":[{"type":"string","maxLength":200,"minLength":2},{"type":"null"}],"title":"Title"},"subtitle":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Subtitle"},"exam_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exam Id"},"subject_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subject Id"},"class_level":{"anyOf":[{"type":"string","enum":["c6","c7","c8","c9","c10","c11","c12","none"]},{"type":"null"}],"title":"Class Level"},"language":{"anyOf":[{"type":"string","enum":["en","hi","ta","te","bn","mr"]},{"type":"null"}],"title":"Language"},"difficulty":{"anyOf":[{"type":"string","enum":["easy","medium","hard","mixed"]},{"type":"null"}],"title":"Difficulty"},"positive_marks":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Positive Marks"},"negative_marks":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Negative Marks"},"duration_secs":{"anyOf":[{"type":"integer","maximum":14400.0,"minimum":30.0},{"type":"null"}],"title":"Duration Secs"},"instructions_md":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions Md"}},"type":"object","title":"TestUpdateIn"},"ThumbnailListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ThumbnailOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"ThumbnailListOut"},"ThumbnailOut":{"properties":{"id":{"type":"integer","title":"Id"},"file_id":{"type":"string","title":"File Id"},"size":{"$ref":"#/components/schemas/ThumbnailSize"},"storage_key":{"type":"string","title":"Storage Key"},"bytes":{"type":"integer","title":"Bytes"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","file_id","size","storage_key","bytes","created_at"],"title":"ThumbnailOut"},"ThumbnailRegisterIn":{"properties":{"size":{"$ref":"#/components/schemas/ThumbnailSize"},"storage_key":{"type":"string","maxLength":400,"minLength":1,"title":"Storage Key"},"bytes":{"type":"integer","minimum":0.0,"title":"Bytes","default":0}},"type":"object","required":["size","storage_key"],"title":"ThumbnailRegisterIn"},"ThumbnailSize":{"type":"string","enum":["xs","sm","md","lg","xl"],"title":"ThumbnailSize"},"TicketAssignIn":{"properties":{"assignee_admin_id":{"type":"integer","title":"Assignee Admin Id"}},"type":"object","required":["assignee_admin_id"],"title":"TicketAssignIn"},"TicketCreateIn":{"properties":{"category_id":{"type":"integer","title":"Category Id"},"subject":{"type":"string","maxLength":200,"minLength":3,"title":"Subject"},"body_md":{"type":"string","maxLength":20000,"minLength":5,"title":"Body Md"},"priority":{"$ref":"#/components/schemas/TicketPriority","default":"p3_normal"}},"type":"object","required":["category_id","subject","body_md"],"title":"TicketCreateIn"},"TicketCsatIn":{"properties":{"score":{"type":"integer","maximum":5.0,"minimum":1.0,"title":"Score"},"feedback_text":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Feedback Text"}},"type":"object","required":["score"],"title":"TicketCsatIn"},"TicketEscalateIn":{"properties":{"reason":{"type":"string","maxLength":400,"minLength":1,"title":"Reason"}},"type":"object","required":["reason"],"title":"TicketEscalateIn"},"TicketListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/TicketOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"TicketListOut"},"TicketOut":{"properties":{"id":{"type":"integer","title":"Id"},"code":{"type":"string","title":"Code"},"user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"},"category_id":{"type":"integer","title":"Category Id"},"subject":{"type":"string","title":"Subject"},"body_md":{"type":"string","title":"Body Md"},"priority":{"$ref":"#/components/schemas/TicketPriority"},"status":{"$ref":"#/components/schemas/TicketStatus"},"assignee_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Assignee Admin Id"},"sla_due_at":{"type":"string","format":"date-time","title":"Sla Due At"},"breach_count":{"type":"integer","title":"Breach Count"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"first_response_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"First Response At"},"resolved_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Resolved At"},"closed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Closed At"},"csat_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Csat Score"}},"type":"object","required":["id","code","user_id","category_id","subject","body_md","priority","status","assignee_admin_id","sla_due_at","breach_count","created_at","first_response_at","resolved_at","closed_at","csat_score"],"title":"TicketOut"},"TicketPriority":{"type":"string","enum":["p1_critical","p2_high","p3_normal","p4_low"],"title":"TicketPriority"},"TicketReopenIn":{"properties":{"reason":{"type":"string","maxLength":400,"minLength":1,"title":"Reason"}},"type":"object","required":["reason"],"title":"TicketReopenIn"},"TicketRepliesOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/TicketReplyOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"TicketRepliesOut"},"TicketReplyIn":{"properties":{"body_md":{"type":"string","maxLength":20000,"minLength":1,"title":"Body Md"},"attachments_json":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Attachments Json"},"is_internal_note":{"type":"boolean","title":"Is Internal Note","default":false}},"type":"object","required":["body_md"],"title":"TicketReplyIn"},"TicketReplyOut":{"properties":{"id":{"type":"integer","title":"Id"},"ticket_id":{"type":"integer","title":"Ticket Id"},"author_type":{"$ref":"#/components/schemas/ReplyAuthorType"},"author_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Author Id"},"body_md":{"type":"string","title":"Body Md"},"attachments_json":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Attachments Json"},"is_internal_note":{"type":"boolean","title":"Is Internal Note"},"at":{"type":"string","format":"date-time","title":"At"}},"type":"object","required":["id","ticket_id","author_type","author_id","body_md","attachments_json","is_internal_note","at"],"title":"TicketReplyOut"},"TicketResolveIn":{"properties":{"resolution_md":{"anyOf":[{"type":"string","maxLength":20000},{"type":"null"}],"title":"Resolution Md"}},"type":"object","title":"TicketResolveIn"},"TicketStatus":{"type":"string","enum":["new","assigned","waiting_user","escalated","resolved","closed","reopened"],"title":"TicketStatus"},"TokenPair":{"properties":{"access_token":{"type":"string","title":"Access Token"},"refresh_token":{"type":"string","title":"Refresh Token"},"token_type":{"type":"string","const":"bearer","title":"Token Type","default":"bearer"},"expires_in":{"type":"integer","title":"Expires In"}},"type":"object","required":["access_token","refresh_token","expires_in"],"title":"TokenPair"},"TopicCreateIn":{"properties":{"subject_id":{"type":"integer","title":"Subject Id"},"parent_topic_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent Topic Id"},"code":{"type":"string","maxLength":40,"minLength":1,"title":"Code"},"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"depth":{"type":"integer","maximum":2.0,"minimum":0.0,"title":"Depth","default":0}},"type":"object","required":["subject_id","code","name"],"title":"TopicCreateIn"},"TopicMasteryListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/TopicMasteryOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"TopicMasteryListOut"},"TopicMasteryOut":{"properties":{"user_id":{"type":"integer","title":"User Id"},"topic_id":{"type":"integer","title":"Topic Id"},"mastery_pct":{"type":"number","title":"Mastery Pct"},"attempts_in_topic":{"type":"integer","title":"Attempts In Topic"},"last_attempt_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Attempt At"},"confidence_interval_pct":{"type":"number","title":"Confidence Interval Pct"}},"type":"object","required":["user_id","topic_id","mastery_pct","attempts_in_topic","last_attempt_at","confidence_interval_pct"],"title":"TopicMasteryOut"},"TopicOut":{"properties":{"id":{"type":"integer","title":"Id"},"subject_id":{"type":"integer","title":"Subject Id"},"parent_topic_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent Topic Id"},"code":{"type":"string","title":"Code"},"name":{"type":"string","title":"Name"},"depth":{"type":"integer","title":"Depth"},"active":{"type":"boolean","title":"Active"}},"type":"object","required":["id","subject_id","code","name","depth","active"],"title":"TopicOut"},"TrainingRunCompleteIn":{"properties":{"status":{"$ref":"#/components/schemas/TrainingStatus"},"samples":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Samples"},"train_rmse":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Train Rmse"},"val_rmse":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Val Rmse"},"train_r2":{"anyOf":[{"type":"number","maximum":1.0,"minimum":-1.0},{"type":"null"}],"title":"Train R2"},"val_r2":{"anyOf":[{"type":"number","maximum":1.0,"minimum":-1.0},{"type":"null"}],"title":"Val R2"},"mae":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Mae"},"artifact_s3_key":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Artifact S3 Key"}},"type":"object","required":["status"],"title":"TrainingRunCompleteIn"},"TrainingRunListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/TrainingRunOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"TrainingRunListOut"},"TrainingRunOut":{"properties":{"id":{"type":"integer","title":"Id"},"model_id":{"type":"integer","title":"Model Id"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"status":{"$ref":"#/components/schemas/TrainingStatus"},"samples":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Samples"},"train_rmse":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Train Rmse"},"val_rmse":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Val Rmse"},"train_r2":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Train R2"},"val_r2":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Val R2"},"mae":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mae"},"runner":{"$ref":"#/components/schemas/TrainingRunner"},"artifact_s3_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Artifact S3 Key"}},"type":"object","required":["id","model_id","started_at","completed_at","status","samples","train_rmse","val_rmse","train_r2","val_r2","mae","runner","artifact_s3_key"],"title":"TrainingRunOut"},"TrainingRunStartIn":{"properties":{"runner":{"$ref":"#/components/schemas/TrainingRunner","default":"self_hosted"},"artifact_s3_key":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Artifact S3 Key"}},"type":"object","title":"TrainingRunStartIn"},"TrainingRunner":{"type":"string","enum":["vertex","sagemaker","self_hosted"],"title":"TrainingRunner"},"TrainingStatus":{"type":"string","enum":["queued","running","succeeded","failed"],"title":"TrainingStatus"},"UniInviteUserIn":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"full_name":{"type":"string","maxLength":120,"minLength":1,"title":"Full Name"},"role":{"type":"string","enum":["uni_recruiter","uni_viewer","uni_admin"],"title":"Role"}},"type":"object","required":["email","full_name","role"],"title":"UniInviteUserIn"},"UniLoginChallengeOut":{"properties":{"challenge_id":{"type":"string","title":"Challenge Id"},"expires_in":{"type":"integer","title":"Expires In"},"mfa_required":{"type":"boolean","const":true,"title":"Mfa Required","default":true}},"type":"object","required":["challenge_id","expires_in"],"title":"UniLoginChallengeOut"},"UniLoginIn":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","maxLength":128,"minLength":1,"title":"Password"}},"type":"object","required":["email","password"],"title":"UniLoginIn"},"UniLoginResendIn":{"properties":{"challenge_id":{"type":"string","title":"Challenge Id"}},"type":"object","required":["challenge_id"],"title":"UniLoginResendIn"},"UniLoginVerifyIn":{"properties":{"challenge_id":{"type":"string","title":"Challenge Id"},"code":{"type":"string","maxLength":8,"minLength":4,"title":"Code"},"device_info":{"$ref":"#/components/schemas/app__domains__universities__schemas__DeviceInfoIn"}},"type":"object","required":["challenge_id","code","device_info"],"title":"UniLoginVerifyIn"},"UniLoginVerifyOut":{"properties":{"user":{"$ref":"#/components/schemas/UniUserOut"},"university":{"$ref":"#/components/schemas/app__domains__universities__schemas__UniversityOut"},"tokens":{"$ref":"#/components/schemas/TokenPair"}},"type":"object","required":["user","university","tokens"],"title":"UniLoginVerifyOut"},"UniMeOut":{"properties":{"id":{"type":"integer","title":"Id"},"university_id":{"type":"integer","title":"University Id"},"email":{"type":"string","format":"email","title":"Email"},"full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Name"},"role":{"type":"string","enum":["uni_admin","uni_recruiter","uni_viewer"],"title":"Role"},"status":{"type":"string","enum":["invited","active","suspended","deleted"],"title":"Status"},"last_login_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Login At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"university":{"$ref":"#/components/schemas/app__domains__universities__schemas__UniversityOut"},"permissions":{"items":{"type":"string"},"type":"array","title":"Permissions"}},"type":"object","required":["id","university_id","email","role","status","created_at","university"],"title":"UniMeOut"},"UniUpdateUserIn":{"properties":{"role":{"anyOf":[{"type":"string","enum":["uni_admin","uni_recruiter","uni_viewer"]},{"type":"null"}],"title":"Role"},"status":{"anyOf":[{"type":"string","enum":["active","suspended"]},{"type":"null"}],"title":"Status"}},"type":"object","title":"UniUpdateUserIn"},"UniUserCreatedOut":{"properties":{"user":{"$ref":"#/components/schemas/UniUserOut"},"set_password_url":{"type":"string","title":"Set Password Url"}},"type":"object","required":["user","set_password_url"],"title":"UniUserCreatedOut"},"UniUserOut":{"properties":{"id":{"type":"integer","title":"Id"},"university_id":{"type":"integer","title":"University Id"},"email":{"type":"string","format":"email","title":"Email"},"full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Name"},"role":{"type":"string","enum":["uni_admin","uni_recruiter","uni_viewer"],"title":"Role"},"status":{"type":"string","enum":["invited","active","suspended","deleted"],"title":"Status"},"last_login_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Login At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","university_id","email","role","status","created_at"],"title":"UniUserOut"},"UnsubscribeIn":{"properties":{"category":{"$ref":"#/components/schemas/NotifCategory"},"reason":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Reason"}},"type":"object","required":["category"],"title":"UnsubscribeIn"},"UnsubscribeListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/UnsubscribeOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"UnsubscribeListOut"},"UnsubscribeOut":{"properties":{"user_id":{"type":"integer","title":"User Id"},"category":{"$ref":"#/components/schemas/NotifCategory"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"at":{"type":"string","format":"date-time","title":"At"}},"type":"object","required":["user_id","category","reason","at"],"title":"UnsubscribeOut"},"UpdateLeaderboardIn":{"properties":{"title":{"anyOf":[{"type":"string","maxLength":200,"minLength":2},{"type":"null"}],"title":"Title"},"notes_md":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Notes Md"}},"type":"object","title":"UpdateLeaderboardIn"},"UpdateProfileIn":{"properties":{"first_name":{"anyOf":[{"type":"string","maxLength":80,"minLength":1},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string","maxLength":80,"minLength":1},{"type":"null"}],"title":"Last Name"},"gender":{"anyOf":[{"type":"string","enum":["male","female","other","prefer_not"]},{"type":"null"}],"title":"Gender"},"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email"},"newsletter_opt_in":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Newsletter Opt In"},"class_level":{"anyOf":[{"type":"string","enum":["c6","c7","c8","c9","c10","c11","c12","none"]},{"type":"null"}],"title":"Class Level"},"target_exams":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":20,"minItems":1},{"type":"null"}],"title":"Target Exams"},"language_pref":{"anyOf":[{"type":"string","enum":["en","hi","ta","te","bn","mr"]},{"type":"null"}],"title":"Language Pref"},"state":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"State"},"city":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"City"},"photo_url":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Photo Url"}},"type":"object","title":"UpdateProfileIn","description":"All fields optional. Only the supplied fields are updated."},"UpdateTdsIn":{"properties":{"challan_ref":{"anyOf":[{"type":"string","maxLength":40,"minLength":4},{"type":"null"}],"title":"Challan Ref"},"paid_to_govt_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Paid To Govt At"},"note":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Note"}},"type":"object","title":"UpdateTdsIn","description":"Admin updates an existing TDS row — typically to add the challan_ref after paying govt."},"UploadDocOut":{"properties":{"document":{"$ref":"#/components/schemas/KycDocumentOut"},"attempt":{"$ref":"#/components/schemas/KycAttemptOut"}},"type":"object","required":["document","attempt"],"title":"UploadDocOut"},"UsageListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/UsageOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"UsageListOut"},"UsageOut":{"properties":{"id":{"type":"integer","title":"Id"},"api_key_id":{"type":"integer","title":"Api Key Id"},"hour_bucket":{"type":"string","format":"date-time","title":"Hour Bucket"},"request_count":{"type":"integer","title":"Request Count"},"error_count":{"type":"integer","title":"Error Count"},"avg_latency_ms":{"type":"integer","title":"Avg Latency Ms"}},"type":"object","required":["id","api_key_id","hour_bucket","request_count","error_count","avg_latency_ms"],"title":"UsageOut"},"UserOut":{"properties":{"id":{"type":"integer","title":"Id"},"phone_masked":{"type":"string","title":"Phone Masked"},"phone_verified":{"type":"boolean","title":"Phone Verified"},"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"},"gender":{"anyOf":[{"type":"string","enum":["male","female","other","prefer_not"]},{"type":"null"}],"title":"Gender"},"class_level":{"anyOf":[{"type":"string","enum":["c6","c7","c8","c9","c10","c11","c12","none"]},{"type":"null"}],"title":"Class Level"},"target_exams":{"items":{"type":"string"},"type":"array","title":"Target Exams"},"newsletter_opt_in":{"type":"boolean","title":"Newsletter Opt In","default":false},"language_pref":{"type":"string","title":"Language Pref"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"photo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Photo Url"},"kyc_status":{"type":"string","title":"Kyc Status"},"status":{"type":"string","title":"Status"},"onboarding_step":{"type":"integer","title":"Onboarding Step"},"onboarding_completed":{"type":"boolean","title":"Onboarding Completed"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","phone_masked","phone_verified","language_pref","kyc_status","status","onboarding_step","onboarding_completed","created_at"],"title":"UserOut"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VariantAssignOut":{"properties":{"experiment_key":{"type":"string","title":"Experiment Key"},"variant_key":{"type":"string","title":"Variant Key"},"payload_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload Json"}},"type":"object","required":["experiment_key","variant_key","payload_json"],"title":"VariantAssignOut"},"VariantListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/VariantOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"VariantListOut"},"VariantOut":{"properties":{"id":{"type":"integer","title":"Id"},"experiment_id":{"type":"integer","title":"Experiment Id"},"key":{"type":"string","title":"Key"},"traffic_pct":{"type":"number","title":"Traffic Pct"},"payload_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload Json"}},"type":"object","required":["id","experiment_id","key","traffic_pct","payload_json"],"title":"VariantOut"},"VariantUpsertIn":{"properties":{"key":{"type":"string","maxLength":40,"minLength":1,"title":"Key"},"traffic_pct":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Traffic Pct"},"payload_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload Json"}},"type":"object","required":["key","traffic_pct"],"title":"VariantUpsertIn"},"VerifyIn":{"properties":{"pan_match":{"type":"boolean","title":"Pan Match","default":true},"dob_match":{"type":"boolean","title":"Dob Match","default":true},"aadhaar_match":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Aadhaar Match"},"name_match_score":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Name Match Score","default":1.0},"provider_ref":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Provider Ref"},"note":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Note"}},"type":"object","title":"VerifyIn"},"VersionCreateIn":{"properties":{"version":{"type":"string","maxLength":20,"minLength":1,"title":"Version"},"metrics_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics Json"},"notes":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Notes"}},"type":"object","required":["version"],"title":"VersionCreateIn"},"VersionListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/VersionOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"VersionListOut"},"VersionOut":{"properties":{"id":{"type":"integer","title":"Id"},"model_id":{"type":"integer","title":"Model Id"},"version":{"type":"string","title":"Version"},"metrics_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics Json"},"promoted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Promoted At"},"demoted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Demoted At"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","model_id","version","metrics_json","promoted_at","demoted_at","notes","created_at"],"title":"VersionOut"},"VideoJobCompleteIn":{"properties":{"status":{"$ref":"#/components/schemas/VideoJobStatus"},"output_s3_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Output S3 Keys"},"error_msg":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Error Msg"}},"type":"object","required":["status"],"title":"VideoJobCompleteIn"},"VideoJobListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/VideoJobOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"VideoJobListOut"},"VideoJobOut":{"properties":{"id":{"type":"integer","title":"Id"},"file_id":{"type":"string","title":"File Id"},"status":{"$ref":"#/components/schemas/VideoJobStatus"},"worker_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Worker Id"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"output_s3_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Output S3 Keys"},"error_msg":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Msg"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","file_id","status","worker_id","started_at","completed_at","output_s3_keys","error_msg","created_at"],"title":"VideoJobOut"},"VideoJobQueueIn":{"properties":{"worker_id":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Worker Id"}},"type":"object","title":"VideoJobQueueIn"},"VideoJobStatus":{"type":"string","enum":["queued","processing","done","failed"],"title":"VideoJobStatus"},"ViewedVia":{"type":"string","enum":["discovery","direct_link","application"],"title":"ViewedVia"},"WarningKind":{"type":"string","enum":["tab_switch","blur","no_face","multiple_faces","phone_detected","audio_anomaly","geo_velocity","speed_rejection"],"title":"WarningKind"},"WarningSeverity":{"type":"string","enum":["soft","hard","auto_submit","disqualify"],"title":"WarningSeverity"},"WeaknessListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/WeaknessOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"WeaknessListOut"},"WeaknessOut":{"properties":{"user_id":{"type":"integer","title":"User Id"},"rank":{"type":"integer","title":"Rank"},"topic_id":{"type":"integer","title":"Topic Id"},"weakness_pct":{"type":"number","title":"Weakness Pct"},"recommended_test_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Recommended Test Id"},"computed_at":{"type":"string","format":"date-time","title":"Computed At"}},"type":"object","required":["user_id","rank","topic_id","weakness_pct","recommended_test_id","computed_at"],"title":"WeaknessOut"},"WebhookIngestIn":{"properties":{"provider":{"$ref":"#/components/schemas/ProviderKind"},"provider_msg_id":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Provider Msg Id"},"kind":{"$ref":"#/components/schemas/DeliveryEventKind"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"At"}},"type":"object","required":["provider","kind"],"title":"WebhookIngestIn"},"WebhookListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/WebhookOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"WebhookListOut"},"WebhookOut":{"properties":{"id":{"type":"integer","title":"Id"},"notification_log_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Notification Log Id"},"provider":{"$ref":"#/components/schemas/ProviderKind"},"provider_msg_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Msg Id"},"kind":{"$ref":"#/components/schemas/DeliveryEventKind"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"at":{"type":"string","format":"date-time","title":"At"}},"type":"object","required":["id","notification_log_id","provider","provider_msg_id","kind","payload","at"],"title":"WebhookOut"},"WebhookOwnerType":{"type":"string","enum":["university","admin","partner"],"title":"WebhookOwnerType"},"WhoIsOncallOut":{"properties":{"team":{"$ref":"#/components/schemas/OncallTeam"},"at":{"type":"string","format":"date-time","title":"At"},"primary":{"anyOf":[{"$ref":"#/components/schemas/OncallShiftOut"},{"type":"null"}]},"secondary":{"anyOf":[{"$ref":"#/components/schemas/OncallShiftOut"},{"type":"null"}]}},"type":"object","required":["team","at","primary","secondary"],"title":"WhoIsOncallOut"},"WindowCreateIn":{"properties":{"code":{"type":"string","maxLength":40,"minLength":2,"pattern":"^[A-Za-z0-9_-]+$","title":"Code"},"label":{"type":"string","maxLength":120,"minLength":2,"title":"Label"},"exam_id":{"type":"integer","title":"Exam Id"},"mega_test_id":{"type":"integer","title":"Mega Test Id"},"slot_count":{"type":"integer","maximum":10000.0,"minimum":1.0,"title":"Slot Count"},"grant_paise":{"type":"integer","maximum":1000000000.0,"minimum":0.0,"title":"Grant Paise"},"min_eligibility_accuracy_pct":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Min Eligibility Accuracy Pct","default":60.0},"window_start":{"type":"string","format":"date-time","title":"Window Start"},"window_end":{"type":"string","format":"date-time","title":"Window End"}},"type":"object","required":["code","label","exam_id","mega_test_id","slot_count","grant_paise","window_start","window_end"],"title":"WindowCreateIn"},"WindowListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/WindowOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"WindowListOut"},"WindowOut":{"properties":{"id":{"type":"integer","title":"Id"},"code":{"type":"string","title":"Code"},"label":{"type":"string","title":"Label"},"exam_id":{"type":"integer","title":"Exam Id"},"mega_test_id":{"type":"integer","title":"Mega Test Id"},"slot_count":{"type":"integer","title":"Slot Count"},"grant_paise":{"type":"integer","title":"Grant Paise"},"min_eligibility_accuracy_pct":{"type":"number","title":"Min Eligibility Accuracy Pct"},"window_start":{"type":"string","format":"date-time","title":"Window Start"},"window_end":{"type":"string","format":"date-time","title":"Window End"},"status":{"type":"string","enum":["draft","scheduled","running","closed","cancelled"],"title":"Status"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"closed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Closed At"},"created_by_admin_id":{"type":"integer","title":"Created By Admin Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"eligible_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Eligible Count"},"registered_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Registered Count"},"completed_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed Count"},"awarded_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Awarded Count"}},"type":"object","required":["id","code","label","exam_id","mega_test_id","slot_count","grant_paise","min_eligibility_accuracy_pct","window_start","window_end","status","created_by_admin_id","created_at","updated_at"],"title":"WindowOut"},"WindowUpdateIn":{"properties":{"label":{"anyOf":[{"type":"string","maxLength":120,"minLength":2},{"type":"null"}],"title":"Label"},"slot_count":{"anyOf":[{"type":"integer","maximum":10000.0,"minimum":1.0},{"type":"null"}],"title":"Slot Count"},"grant_paise":{"anyOf":[{"type":"integer","maximum":1000000000.0,"minimum":0.0},{"type":"null"}],"title":"Grant Paise"},"min_eligibility_accuracy_pct":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Min Eligibility Accuracy Pct"},"window_start":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Window Start"},"window_end":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Window End"}},"type":"object","title":"WindowUpdateIn"},"WsDisconnectReason":{"type":"string","enum":["clean","network","timeout","force_close","rebalanced"],"title":"WsDisconnectReason"},"WsSessionListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/WsSessionOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"WsSessionListOut"},"WsSessionOut":{"properties":{"id":{"type":"string","title":"Id"},"connection_token":{"type":"string","title":"Connection Token"},"user_id":{"type":"integer","title":"User Id"},"gateway_pod_id":{"type":"string","title":"Gateway Pod Id"},"connected_at":{"type":"string","format":"date-time","title":"Connected At"},"disconnected_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Disconnected At"},"disconnect_reason":{"anyOf":[{"$ref":"#/components/schemas/WsDisconnectReason"},{"type":"null"}]}},"type":"object","required":["id","connection_token","user_id","gateway_pod_id","connected_at","disconnected_at","disconnect_reason"],"title":"WsSessionOut"},"app__domains__admin__schemas__DeviceInfoIn":{"properties":{"device_id":{"type":"string","maxLength":64,"title":"Device Id"},"platform":{"type":"string","enum":["admin_web","uni_web"],"title":"Platform","default":"admin_web"},"model":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Model"},"os_version":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Os Version"},"app_version":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"App Version"}},"type":"object","required":["device_id"],"title":"DeviceInfoIn"},"app__domains__admin__schemas__UniversityOut":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"contact_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Contact Email"},"gst_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gst Number"},"billing_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Address"},"status":{"type":"string","enum":["active","suspended","deleted"],"title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","name","slug","status","created_at"],"title":"UniversityOut"},"app__domains__analytics__schemas__EventListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/app__domains__analytics__schemas__EventOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"EventListOut"},"app__domains__analytics__schemas__EventOut":{"properties":{"id":{"type":"integer","title":"Id"},"ts":{"type":"string","format":"date-time","title":"Ts"},"event":{"type":"string","title":"Event"},"user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"device_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Id"},"ip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ip"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"exam":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exam"},"module":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Module"},"ref_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ref Type"},"ref_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ref Id"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"}},"type":"object","required":["id","ts","event","user_id","session_id","device_id","ip","country","state","exam","module","ref_type","ref_id","payload"],"title":"EventOut"},"app__domains__arena__schemas__RegisterOut":{"properties":{"registration_id":{"type":"integer","title":"Registration Id"},"competition_id":{"type":"integer","title":"Competition Id"},"status":{"type":"string","enum":["registered","active","eliminated","awardee","withdrew"],"title":"Status"},"registered_at":{"type":"string","format":"date-time","title":"Registered At"}},"type":"object","required":["registration_id","competition_id","status","registered_at"],"title":"RegisterOut"},"app__domains__content__editorial__schemas__LifecycleEventListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/app__domains__content__editorial__schemas__LifecycleEventOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"LifecycleEventListOut"},"app__domains__content__editorial__schemas__LifecycleEventOut":{"properties":{"id":{"type":"integer","title":"Id"},"question_id":{"type":"integer","title":"Question Id"},"from_state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From State"},"to_state":{"type":"string","title":"To State"},"actor_admin_id":{"type":"integer","title":"Actor Admin Id"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"at":{"type":"string","format":"date-time","title":"At"}},"type":"object","required":["id","question_id","from_state","to_state","actor_admin_id","reason","at"],"title":"LifecycleEventOut"},"app__domains__files__schemas__MetadataOut":{"properties":{"id":{"type":"integer","title":"Id"},"file_id":{"type":"string","title":"File Id"},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Width"},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Height"},"duration_secs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Secs"},"extracted_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Extracted Text"},"safe_for_work":{"type":"boolean","title":"Safe For Work"},"nsfw_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Nsfw Score"},"extracted_at":{"type":"string","format":"date-time","title":"Extracted At"}},"type":"object","required":["id","file_id","width","height","duration_secs","extracted_text","safe_for_work","nsfw_score","extracted_at"],"title":"MetadataOut"},"app__domains__identity__schemas__DeviceInfoIn":{"properties":{"device_id":{"type":"string","maxLength":64,"title":"Device Id"},"platform":{"type":"string","enum":["android","ios","web","admin_web","uni_web"],"title":"Platform"},"model":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Model"},"os_version":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Os Version"},"app_version":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"App Version"}},"type":"object","required":["device_id","platform"],"title":"DeviceInfoIn"},"app__domains__kyc__schemas__QueueListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/KycAttemptOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"QueueListOut"},"app__domains__kyc__schemas__SubmitOut":{"properties":{"attempt":{"$ref":"#/components/schemas/KycAttemptOut"},"message":{"type":"string","title":"Message"}},"type":"object","required":["attempt","message"],"title":"SubmitOut"},"app__domains__proctoring__schemas__EventListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/app__domains__proctoring__schemas__EventOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"EventListOut"},"app__domains__proctoring__schemas__EventOut":{"properties":{"id":{"type":"string","title":"Id"},"session_id":{"type":"string","title":"Session Id"},"kind":{"$ref":"#/components/schemas/EventKind"},"severity":{"$ref":"#/components/schemas/EventSeverity"},"confidence":{"type":"number","title":"Confidence"},"raw_blob_s3_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Raw Blob S3 Key"},"ts":{"type":"string","format":"date-time","title":"Ts"}},"type":"object","required":["id","session_id","kind","severity","confidence","raw_blob_s3_key","ts"],"title":"EventOut"},"app__domains__proctoring__schemas__QueueListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/QueueEntryOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"QueueListOut"},"app__domains__scholarship__schemas__RegisterOut":{"properties":{"eligibility_id":{"type":"integer","title":"Eligibility Id"},"window_id":{"type":"integer","title":"Window Id"},"mega_test_id":{"type":"integer","title":"Mega Test Id"},"status":{"type":"string","enum":["registered","completed","abandoned"],"title":"Status"},"registered_at":{"type":"string","format":"date-time","title":"Registered At"}},"type":"object","required":["eligibility_id","window_id","mega_test_id","status","registered_at"],"title":"RegisterOut"},"app__domains__tests__configuration__schemas__LifecycleEventListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/app__domains__tests__configuration__schemas__LifecycleEventOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"LifecycleEventListOut"},"app__domains__tests__configuration__schemas__LifecycleEventOut":{"properties":{"id":{"type":"integer","title":"Id"},"test_id":{"type":"integer","title":"Test Id"},"from_status":{"anyOf":[{"$ref":"#/components/schemas/TestStatus"},{"type":"null"}]},"to_status":{"$ref":"#/components/schemas/TestStatus"},"actor_admin_id":{"type":"integer","title":"Actor Admin Id"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"at":{"type":"string","format":"date-time","title":"At"}},"type":"object","required":["id","test_id","from_status","to_status","actor_admin_id","reason","at"],"title":"LifecycleEventOut"},"app__domains__tests__configuration__schemas__MetadataOut":{"properties":{"test_id":{"type":"integer","title":"Test Id"},"instructions_md":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions Md"},"cover_image_s3_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cover Image S3 Key"},"share_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Share Slug"},"seo_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seo Title"},"seo_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seo Description"},"updated_by_admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated By Admin Id"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["test_id","instructions_md","cover_image_s3_key","share_slug","seo_title","seo_description","updated_by_admin_id","updated_at"],"title":"MetadataOut"},"app__domains__tests__schemas__SubmitOut":{"properties":{"attempt_id":{"type":"integer","title":"Attempt Id"},"test_id":{"type":"integer","title":"Test Id"},"status":{"type":"string","enum":["in_progress","submitted","expired","cancelled"],"title":"Status"},"submitted_at":{"type":"string","format":"date-time","title":"Submitted At"},"result":{"$ref":"#/components/schemas/ResultBreakdownOut"}},"type":"object","required":["attempt_id","test_id","status","submitted_at","result"],"title":"SubmitOut"},"app__domains__universities__schemas__DeviceInfoIn":{"properties":{"device_id":{"type":"string","maxLength":64,"title":"Device Id"},"platform":{"type":"string","const":"uni_web","title":"Platform","default":"uni_web"},"model":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Model"},"os_version":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Os Version"},"app_version":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"App Version"}},"type":"object","required":["device_id"],"title":"DeviceInfoIn"},"app__domains__universities__schemas__UniversityOut":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"status":{"type":"string","enum":["active","suspended","deleted"],"title":"Status"}},"type":"object","required":["id","name","slug","status"],"title":"UniversityOut"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}