{"openapi":"3.1.0","info":{"title":"PumpRoom-API","summary":"REST API service of PumpRoom LMS platform.","description":"In order to access protected endpoints you need to get API Key from [PumpRoom Admin](https://admin.pumproom.tech).\n\nMethods availability:\n\n- 🔒 - you need Internal API Key from Admin panel to use it for integration\n- 🌐 - publicly available method. Use it only if you need\n- 🥷 - internal PumpRoom method. Avoid using it!\n","contact":{"name":"Support","email":"info@pumproom.tech"},"version":"3.1.1"},"paths":{"/tracker/store_event":{"post":{"tags":["Tracker"],"summary":"Store Event","description":"Log user interaction event to database.","operationId":"store_event_tracker_store_event_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserEventInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tracker/set_states":{"post":{"tags":["Tracker"],"summary":"Set States","description":"Set UI states for user and page.","operationId":"set_states_tracker_set_states_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetUIStatesInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UIStatesOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tracker/get_states":{"post":{"tags":["Tracker"],"summary":"Get States","description":"Get stored values of UI states for user and page.","operationId":"get_states_tracker_get_states_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetUIStatesInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UIStatesOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/byok/list":{"post":{"tags":["Admin"],"summary":"List Keys","operationId":"list_keys_admin_byok_list_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadRealmInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BYOKKeysOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/byok/save":{"post":{"tags":["Admin"],"summary":"Save Key","operationId":"save_key_admin_byok_save_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveBYOKKeyInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BYOKKeyOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/byok/delete":{"post":{"tags":["Admin"],"summary":"Delete Key","operationId":"delete_key_admin_byok_delete_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteBYOKKeyInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/byok/select":{"post":{"tags":["Admin"],"summary":"Select Key","operationId":"select_key_admin_byok_select_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SelectBYOKKeyInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SelectBYOKKeyInput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/media/load_list":{"post":{"tags":["Admin"],"summary":"Load Media","operationId":"load_media_admin_media_load_list_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadMediaInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadMediaResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/media/upload":{"post":{"tags":["Admin"],"summary":"Upload Media","description":"Upload an image or replace an existing realm image, keeping its URL and folder.","operationId":"upload_media_admin_media_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_media_admin_media_upload_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MediaOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/media/delete":{"post":{"tags":["Admin"],"summary":"Delete Media","operationId":"delete_media_admin_media_delete_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMediaInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/data/load":{"post":{"tags":["Admin"],"summary":"Load Data","description":"Load admin data.","operationId":"load_data_admin_data_load_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadDataResult"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/document_file/load_list":{"post":{"tags":["Admin"],"summary":"Load Document Files","operationId":"load_document_files_admin_document_file_load_list_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadDocumentFilesInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DocumentFileOutput"},"type":"array","title":"Response Load Document Files Admin Document File Load List Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/document_file/upload":{"post":{"tags":["Admin"],"summary":"Upload Document File","operationId":"upload_document_file_admin_document_file_upload_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/UploadDocumentFileInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentFileOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/document_file/update":{"post":{"tags":["Admin"],"summary":"Update Document File","operationId":"update_document_file_admin_document_file_update_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDocumentFileInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentFileOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/document_file/delete":{"post":{"tags":["Admin"],"summary":"Delete Document File","operationId":"delete_document_file_admin_document_file_delete_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseDocumentFileInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/document_store/create":{"post":{"tags":["Admin"],"summary":"Create Document Store","operationId":"create_document_store_admin_document_store_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDocumentStoreInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentStoreOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/document_store/update":{"post":{"tags":["Admin"],"summary":"Update Document Store","operationId":"update_document_store_admin_document_store_update_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDocumentStoreInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentStoreOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/document_store/delete":{"post":{"tags":["Admin"],"summary":"Delete Document Store","operationId":"delete_document_store_admin_document_store_delete_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseDocumentStoreInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/expert/update":{"post":{"tags":["Admin"],"summary":"Update Info","operationId":"update_info_admin_expert_update_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAccountInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"security":[{"HTTPBearer":[]}]}},"/admin/realm/load":{"post":{"tags":["Admin"],"summary":"Load Realm","operationId":"load_realm_admin_realm_load_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadRealmInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompiledRealm"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/realm/load_plan":{"post":{"tags":["Admin"],"summary":"Load Realm Plan","operationId":"load_realm_plan_admin_realm_load_plan_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadRealmInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RealmPlanOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/realm/create":{"post":{"tags":["Admin"],"summary":"Create Realm","description":"Create new realm and optionally update Expert params.","operationId":"create_realm_admin_realm_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRealmInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/realm/update":{"post":{"tags":["Admin"],"summary":"Update Realm","description":"Update existing realm.","operationId":"update_realm_admin_realm_update_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRealmInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RealmOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/realm/upload_avatar":{"post":{"tags":["Admin"],"summary":"Upload Avatar","description":"Upload or replace a realm avatar, preserving its aspect ratio (up to 5 MiB).","operationId":"upload_avatar_admin_realm_upload_avatar_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_avatar_admin_realm_upload_avatar_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RealmOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/realm/delete":{"post":{"tags":["Admin"],"summary":"Delete Realm","description":"Delete existing realm.","operationId":"delete_realm_admin_realm_delete_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteRealmInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/repo/load_list":{"post":{"tags":["Admin"],"summary":"Load Repos","description":"Load database-owned repositories available to the expert.","operationId":"load_repos_admin_repo_load_list_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadReposInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadReposResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/repo/create":{"post":{"tags":["Admin"],"summary":"Create Repo","description":"Create a repository directly in the application database.","operationId":"create_repo_admin_repo_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRepoInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepoOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/repo/update":{"post":{"tags":["Admin"],"summary":"Update Repo","description":"Update a database-owned repository.","operationId":"update_repo_admin_repo_update_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRepoInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepoOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/repo/export":{"post":{"tags":["Admin"],"summary":"Export Repo","description":"Export a database-owned repository.","operationId":"export_repo_admin_repo_export_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportRepoInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/repo/delete":{"post":{"tags":["Admin"],"summary":"Delete Repo","description":"Soft-delete an empty repository that is not linked to an active course.","operationId":"delete_repo_admin_repo_delete_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteRepoInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/task/load_list":{"post":{"tags":["Admin"],"summary":"Load Tasks","description":"Load all tasks of a database-owned repository.","operationId":"load_tasks_admin_task_load_list_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadTasksInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadTasksResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/task/load":{"post":{"tags":["Admin"],"summary":"Load Task","description":"Load one task with its source files for editing.","operationId":"load_task_admin_task_load_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadTaskDetailsInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/task/load_by_name":{"post":{"tags":["Admin"],"summary":"Load Task By Name","description":"Load task source files by its realm, repository and technical name.","operationId":"load_task_by_name_admin_task_load_by_name_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadTaskDetailsByNameInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/task/load_instances":{"post":{"tags":["Admin"],"summary":"Load Task Instances","description":"Load pages where task was embedded.","operationId":"load_task_instances_admin_task_load_instances_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadTaskInstancesInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadTaskInstancesResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/task/load_submissions":{"post":{"tags":["Admin"],"summary":"Load Task Submissions","description":"List latest submissions per user and all anonymous submissions.","operationId":"load_task_submissions_admin_task_load_submissions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadTaskSubmissionsInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadTaskSubmissionsResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/task/create":{"post":{"tags":["Admin"],"summary":"Create Task","description":"Create a task directly in the application database.","operationId":"create_task_admin_task_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTaskInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/task/update":{"post":{"tags":["Admin"],"summary":"Update Task","description":"Update supplied content or management fields, preserving omitted values.","operationId":"update_task_admin_task_update_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTaskInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/task/export":{"post":{"tags":["Admin"],"summary":"Export Task","description":"Export a database-owned task as a local PumpRoom zip archive.","operationId":"export_task_admin_task_export_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportTaskInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/task/delete":{"post":{"tags":["Admin"],"summary":"Delete Task","description":"Soft-delete a task while preserving submissions, states and history.","operationId":"delete_task_admin_task_delete_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteTaskInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/character/create":{"post":{"tags":["Admin"],"summary":"Create Character","operationId":"create_character_admin_character_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCharacterInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CharacterOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/character/update":{"post":{"tags":["Admin"],"summary":"Update Character","operationId":"update_character_admin_character_update_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCharacterInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CharacterOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/character/delete":{"post":{"tags":["Admin"],"summary":"Delete Character","operationId":"delete_character_admin_character_delete_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteCharacterInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/character/upload_avatar":{"post":{"tags":["Admin"],"summary":"Upload Avatar","description":"Upload or replace a character avatar without cropping (up to 5 MiB).","operationId":"upload_avatar_admin_character_upload_avatar_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_avatar_admin_character_upload_avatar_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CharacterOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/course/load_list":{"post":{"tags":["Admin"],"summary":"Load Courses","description":"Load active courses from the application database.","operationId":"load_courses_admin_course_load_list_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadCoursesInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadCoursesResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/course/create":{"post":{"tags":["Admin"],"summary":"Create Course","description":"Create a course.","operationId":"create_course_admin_course_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCourseInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CourseOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/course/update":{"post":{"tags":["Admin"],"summary":"Update Course","description":"Update settings; omitted repo preserves the current relation, null clears it.","operationId":"update_course_admin_course_update_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCourseInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CourseOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/course/delete":{"post":{"tags":["Admin"],"summary":"Delete Course","description":"Soft-delete the course, preserving its ID and existing relations.","operationId":"delete_course_admin_course_delete_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteCourseInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/response/load_list":{"post":{"tags":["Admin"],"summary":"Load Responses","operationId":"load_responses_admin_response_load_list_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadResponsesInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadResponsesResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/response/apply_feedback":{"post":{"tags":["Admin"],"summary":"Apply Feedback","operationId":"apply_feedback_admin_response_apply_feedback_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplyFeedbackInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/response/set_archived":{"post":{"tags":["Admin"],"summary":"Set Archived","operationId":"set_archived_admin_response_set_archived_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetResponseArchivedInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/opinion/load_lessons":{"post":{"tags":["Admin"],"summary":"Load Lessons","description":"Load programs and lessons for a specific realm.","operationId":"load_lessons_admin_opinion_load_lessons_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadLessonsInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadLessonsOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/opinion/load_opinions":{"post":{"tags":["Admin"],"summary":"Load Opinions","description":"Load opinions for a specific program.","operationId":"load_opinions_admin_opinion_load_opinions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadOpinionsInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadOpinionsOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/opinion/update_opinion":{"post":{"tags":["Admin"],"summary":"Update Opinion","description":"Update opinion for a specific program and lesson.","operationId":"update_opinion_admin_opinion_update_opinion_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOpinionInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpinionOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/lesson/analyze":{"post":{"tags":["Admin"],"summary":"Analyze Lesson","description":"Analyze lesson content using tasks from the specified repository.","operationId":"analyze_lesson_admin_lesson_analyze_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyzeLessonInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyzeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/user/load_list":{"post":{"tags":["Admin"],"summary":"Load List","description":"List realm staff (admin and expert), excluding students.","operationId":"load_list_admin_user_load_list_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadUsersInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadUsersResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/user/add":{"post":{"tags":["Admin"],"summary":"Add","operationId":"add_admin_user_add_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddUserInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/user/set_role":{"post":{"tags":["Admin"],"summary":"Set Role","description":"Update realm role and global privileges in one transaction.","operationId":"set_role_admin_user_set_role_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetUserRoleInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/upload/import_repo":{"post":{"tags":["Upload"],"summary":"Import Repo","description":"Import tasks into Admin. Existing names are skipped unless overwrite is explicit.","operationId":"import_repo_upload_import_repo_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_import_repo_upload_import_repo_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskUploadOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/upload/sync_repo":{"post":{"tags":["Upload"],"summary":"Sync Repo","description":"Reconcile a COMPLETE source snapshot; Admin-owned tasks are never modified.","operationId":"sync_repo_upload_sync_repo_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_sync_repo_upload_sync_repo_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskUploadOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/upload/import_task":{"post":{"tags":["Upload"],"summary":"Import Task","description":"Import one task without deleting neighbours.","operationId":"import_task_upload_import_task_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadTaskInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskUploadOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/upload/load_repo":{"post":{"tags":["Upload"],"summary":"Load Repo","description":"Load repo name by LMS course URL.","operationId":"load_repo_upload_load_repo_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadLoadRepoInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadLoadRepoOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/schema/configs":{"get":{"tags":["Schema","Schema"],"summary":"Get Config Schema","description":"Get schema of PumpRoom apps configuration.","operationId":"get_config_schema_schema_configs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Config Schema Schema Configs Get"}}}}}},"post":{"tags":["Schema","Schema"],"summary":"Validate Config Schema","description":"Validate schema of PumpRoom apps configuration.","operationId":"validate_config_schema_schema_configs_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateConfigInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PumpRoomConfig"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/task/load":{"post":{"tags":["Task"],"summary":"Load","description":"Load task details and metadata.","operationId":"load_task_load_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadTaskInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PumpingTask"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/task/apply_submission":{"post":{"tags":["Task"],"summary":"Apply Submission","description":"Apply submission and stream status as JSON Lines.","operationId":"apply_submission_task_apply_submission_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskSubmissionInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/jsonl":{"itemSchema":{"$ref":"#/components/schemas/TaskSubmissionOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/task/check_submission":{"post":{"tags":["Task"],"summary":"Check Submission","description":"Get task submission status.","operationId":"check_submission_task_check_submission_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckTaskSubmissionInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskSubmissionOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/task/load_quota":{"post":{"tags":["Task"],"summary":"Load Quota","description":"Load current task limits and usage for the requesting user.","operationId":"load_quota_task_load_quota_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskQuotaInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskQuota"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/course/load":{"post":{"tags":["Course"],"summary":"Load Course","description":"Load course data registered in LMS.","operationId":"load_course_course_load_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadCourseDataInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadCourseDataOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integration/authenticate":{"post":{"tags":["Integration"],"summary":"Authenticate","description":"Authenticate integration user.","operationId":"authenticate_integration_authenticate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/integration/verify_token":{"post":{"tags":["Integration"],"summary":"Verify Token","description":"Verify integration user token.","operationId":"verify_token_integration_verify_token_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyTokenInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyTokenResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/integration/transfer_identity":{"post":{"tags":["Integration"],"summary":"Transfer Identity","description":"Transfer identity to another user.","operationId":"transfer_identity_integration_transfer_identity_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferIdentityInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferIdentityResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/media/{uid}":{"get":{"tags":["Media"],"summary":"Get Media","description":"Public media by UUID. Use thumbnail=true to request the static preview.","operationId":"get_media_media__uid__get","parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Uid"}},{"name":"thumbnail","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Thumbnail"}},{"name":"if-none-match","in":"header","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"If-None-Match"}}],"responses":{"200":{"description":"Successful Response","content":{"image/webp":{"schema":{"type":"string","format":"binary"}}}},"304":{"description":"Not modified"},"404":{"description":"Media or thumbnail not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/account/load_info":{"post":{"tags":["Account"],"summary":"Load Info","operationId":"load_info_account_load_info_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountOutput"}}}}},"security":[{"HTTPBearer":[]}]}},"/account/load_realm_user":{"post":{"tags":["Account"],"summary":"Load Realm User","operationId":"load_realm_user_account_load_realm_user_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RealmUserInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthDetails"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/account/update_info":{"post":{"tags":["Account"],"summary":"Update Info","operationId":"update_info_account_update_info_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAccountInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/account/update_profile":{"post":{"tags":["Account"],"summary":"Update Profile","operationId":"update_profile_account_update_profile_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_update_profile_account_update_profile_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/ui/account/load_info":{"post":{"tags":["UI account"],"summary":"Load Info","operationId":"load_info_ui_account_load_info_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountOutput"}}}}},"security":[{"HTTPBearer":[]}]}},"/ui/account/load_realm_user":{"post":{"tags":["UI account"],"summary":"Load Realm User","operationId":"load_realm_user_ui_account_load_realm_user_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RealmUserInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthDetails"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/ui/account/update_info":{"post":{"tags":["UI account"],"summary":"Update Info","operationId":"update_info_ui_account_update_info_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAccountInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/auth/authenticate":{"post":{"tags":["Auth"],"summary":"Authenticate","description":"Authenticate user.","operationId":"authenticate_auth_authenticate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"security":[{"APIKeyHeader":[]}]}},"/auth/verify_token":{"post":{"tags":["Auth"],"summary":"Verify Token","description":"Authenticate user.","operationId":"verify_token_auth_verify_token_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyTokenInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyTokenResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"security":[{"APIKeyHeader":[]}]}},"/auth/transfer_identity":{"post":{"tags":["Auth"],"summary":"Transfer Identity","description":"Transfer identity to another user.","operationId":"transfer_identity_auth_transfer_identity_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferIdentityInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferIdentityResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"security":[{"APIKeyHeader":[]}]}},"/analytics/task_stats":{"post":{"tags":["Analytics"],"summary":"Compute Task Stats","description":"Count non-running submissions by authenticated users in an optional [from, to) period.\n\nExisting tasks without matching submissions return zero counts and null dates.\nMissing or deleted tasks/repositories return 404. Anonymous submissions are excluded.","operationId":"compute_task_stats_analytics_task_stats_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskStatsInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskStatsOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/analytics/user_stats":{"post":{"tags":["Analytics"],"summary":"Compute User Stats","description":"List active tasks with non-running submissions in the optional [from, to) period.\n\nIdentity lookup is exact and scoped to the provider and realm, as in authentication.\nTasks are sorted by repository and task name. Unknown users return an empty list.\nSuccess describes technical submission status; task_result is the current learning\nresult, independent of the period, and is null when no result is stored.","operationId":"compute_user_stats_analytics_user_stats_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserStatsInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserStatsOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/analytics/user_task_stats":{"post":{"tags":["Analytics"],"summary":"Compute User Task Stats","description":"Count non-running submissions by status in an optional [from, to) period.\n\nSuccess is a technical status, not a passing grade. Incomplete responses have their\nown counter. Unknown users or no matching submissions return zeros and null dates.\nMissing or deleted tasks/repositories return 404. task_result is the current learning\nresult, independent of the period, and is null when no result is stored.","operationId":"compute_user_task_stats_analytics_user_task_stats_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserTaskStatsInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserTaskStatsOutput"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/health":{"get":{"tags":["Monitoring"],"summary":"Health","description":"Perform system components health check.","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthCheckResult"}}}}}}},"/health/live":{"get":{"tags":["Monitoring"],"summary":"Liveness","description":"Check that the API process can handle requests without calling dependencies.","operationId":"liveness_health_live_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Liveness Health Live Get"}}}}}}},"/health/ready":{"get":{"tags":["Monitoring"],"summary":"Readiness","description":"Return 503 when required dependencies are unavailable or too slow.","operationId":"readiness_health_ready_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthCheckResult"}}}}}}},"/":{"get":{"tags":["Info"],"summary":"Landing Page","description":"Static landing page.","operationId":"landing_page__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/quiz_schema":{"get":{"tags":["Schema"],"summary":"Get Quiz Schema","description":"Get schema of Inzhenerka apps configuration.","operationId":"get_quiz_schema_quiz_schema_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Quiz Schema Quiz Schema Get"}}}}}}},"/agent_schema":{"get":{"tags":["Schema"],"summary":"Get Agent Schema","description":"Get the schema of Agent backend configuration.","operationId":"get_agent_schema_agent_schema_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Agent Schema Agent Schema Get"}}}}}}},"/chat_schema":{"get":{"tags":["Schema"],"summary":"Get Chat Schema","description":"Get the schema of Chat backend configuration.","operationId":"get_chat_schema_chat_schema_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Chat Schema Chat Schema Get"}}}}}}},"/opinion_schema":{"get":{"tags":["Schema"],"summary":"Get Opinion Schema","description":"Get the schema of Opinion backend configuration.","operationId":"get_opinion_schema_opinion_schema_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Opinion Schema Opinion Schema Get"}}}}}}},"/master_schema":{"get":{"tags":["Schema"],"summary":"Get Master Schema","description":"Get the schema of Master backend configuration.","operationId":"get_master_schema_master_schema_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Master Schema Master Schema Get"}}}}}}},"/catalog":{"get":{"tags":["Info"],"summary":"Get Catalog","description":"Get catalog of PumpRoom backends and frameworks.","operationId":"get_catalog_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TaskBackend"},"type":"array","title":"Response Get Catalog Catalog Get"}}}}}}}},"components":{"schemas":{"AccountConfig":{"properties":{"photo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Photo Url"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"email_consent":{"type":"boolean","title":"Email Consent"},"superadmin":{"$ref":"#/components/schemas/SuperadminType"},"is_banned":{"type":"boolean","title":"Is Banned"}},"type":"object","required":["name","phone","email_consent","superadmin","is_banned"],"title":"AccountConfig"},"AccountConfigUpdate":{"properties":{"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"email_consent":{"type":"boolean","title":"Email Consent","default":false}},"additionalProperties":false,"type":"object","title":"AccountConfigUpdate"},"AccountOutput":{"properties":{"uid":{"type":"string","format":"uuid","title":"Uid"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"config":{"$ref":"#/components/schemas/AccountConfig"},"meta":{"$ref":"#/components/schemas/EntityMeta"}},"type":"object","required":["uid","email","config","meta"],"title":"AccountOutput"},"AddUserInput":{"properties":{"realm_id":{"type":"string","title":"Realm Id"},"email":{"type":"string","format":"email","title":"Email"},"role":{"$ref":"#/components/schemas/StaffRole"}},"type":"object","required":["realm_id","email","role"],"title":"AddUserInput"},"AdminTaskSubmissionOutput":{"properties":{"uid":{"type":"string","title":"Uid"},"user":{"anyOf":[{"$ref":"#/components/schemas/TaskSubmissionUserOutput"},{"type":"null"}]},"submission_count":{"type":"integer","minimum":1.0,"title":"Submission Count","description":"User submissions for this task; 1 for anonymous rows"},"submission_type":{"anyOf":[{"$ref":"#/components/schemas/TaskSubmissionType"},{"type":"null"}],"description":"Submission type, if recorded"},"backend":{"$ref":"#/components/schemas/BackendType"},"framework":{"$ref":"#/components/schemas/FrameworkType"},"status":{"$ref":"#/components/schemas/BackendTaskSubmissionStatus"},"ready":{"type":"boolean","title":"Ready"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"task_result":{"anyOf":[{"$ref":"#/components/schemas/TaskResultOutput"},{"type":"null"}],"description":"Current user result for the task, not the historical result of this submission"}},"type":"object","required":["uid","user","submission_count","submission_type","backend","framework","status","ready","created_at","updated_at","task_result"],"title":"AdminTaskSubmissionOutput"},"AgentFrameworkType":{"type":"string","enum":["helper","teacher","teacher_chat","file_checker","explainer","validator"]},"AnalyzeLessonInput":{"properties":{"repo_uid":{"type":"string","title":"Repo Uid"},"content":{"type":"string","title":"Content"},"lesson_name":{"type":"string","title":"Lesson Name"}},"type":"object","required":["repo_uid","content","lesson_name"],"title":"AnalyzeLessonInput"},"AnalyzeResponse":{"properties":{"report":{"type":"string","title":"Report"}},"type":"object","required":["report"],"title":"AnalyzeResponse"},"ApplyFeedbackInput":{"properties":{"realm_id":{"type":"string","title":"Realm Id"},"response_uid":{"type":"string","title":"Response Uid"},"content":{"type":"string","title":"Content"}},"type":"object","required":["realm_id","response_uid","content"],"title":"ApplyFeedbackInput"},"AttachedTask":{"properties":{"uid":{"type":"string","title":"Uid"},"backend":{"$ref":"#/components/schemas/UIBackendOutput"},"framework":{"$ref":"#/components/schemas/FrameworkType"},"backend_config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Backend Config"},"backend_state":{"additionalProperties":true,"type":"object","title":"Backend State"},"visible_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visible Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"locale_code":{"$ref":"#/components/schemas/LocaleType","default":"ru"}},"type":"object","required":["uid","backend","framework","backend_config","backend_state","visible_name","description"],"title":"AttachedTask"},"AuthDetails":{"properties":{"uid":{"type":"string","title":"Uid"},"token":{"type":"string","title":"Token"},"provider":{"$ref":"#/components/schemas/StoredIdentityProviderType","default":"lms"}},"type":"object","required":["uid","token"],"title":"AuthDetails"},"AuthInput":{"properties":{"realm":{"type":"string","title":"Realm","description":"Realm ID in lowercase. Unique school identifier provided by PumpRoom Admin","default":"inzh","examples":["inzh"]},"identity":{"anyOf":[{"$ref":"#/components/schemas/LMSIdentityInput"},{"type":"null"}],"description":"Student identity"},"lms":{"anyOf":[{"$ref":"#/components/schemas/LMSIdentityInput"},{"type":"null"}],"description":"Basic LMS user profile with email (for any LMS auth flow)"},"profile":{"anyOf":[{"$ref":"#/components/schemas/TildaProfileInput"},{"type":"null"}],"description":"User profile in LMS (for Tilda LMS auth flow)"},"context":{"anyOf":[{"$ref":"#/components/schemas/LMSContextAPI"},{"type":"null"}]},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"URL of the LMS page for tracing","examples":["https://inzhenerka.tech/members/courses/course1/swagger_test_fake_url"]},"sdk_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sdk Version","description":"Version of PumpRoom SDK"}},"type":"object","title":"AuthInput"},"AuthResult":{"properties":{"uid":{"type":"string","title":"Uid"},"token":{"type":"string","title":"Token"},"is_admin":{"type":"boolean","title":"Is Admin"},"provider":{"$ref":"#/components/schemas/IdentityProviderType"},"available_providers":{"items":{"$ref":"#/components/schemas/IdentityProviderType"},"type":"array","title":"Available Providers"}},"type":"object","required":["uid","token","is_admin","provider","available_providers"],"title":"AuthResult"},"BYOKKeyOutput":{"properties":{"realm_id":{"type":"string","title":"Realm Id"},"type":{"type":"string","title":"Type"},"provider":{"type":"string","title":"Provider"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"last_four":{"type":"string","title":"Last Four"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["realm_id","type","provider","config","last_four","created_at","updated_at"],"title":"BYOKKeyOutput"},"BYOKKeysOutput":{"properties":{"keys":{"items":{"$ref":"#/components/schemas/BYOKKeyOutput"},"type":"array","title":"Keys"},"selections":{"additionalProperties":{"type":"string"},"type":"object","title":"Selections"}},"type":"object","required":["keys","selections"],"title":"BYOKKeysOutput"},"BackendTaskSubmissionStatus":{"type":"string","enum":["running","success","incomplete","wrong","timeout","compilation_error","runtime_error","internal_error"],"title":"BackendTaskSubmissionStatus"},"BackendType":{"type":"string","enum":["judge","quiz","agent","chat","game","expert","opinion","master","infra","content"]},"BaseDocumentFileInput":{"properties":{"uid":{"type":"string","title":"Uid"}},"type":"object","required":["uid"],"title":"BaseDocumentFileInput"},"BaseDocumentStoreInput":{"properties":{"uid":{"type":"string","title":"Uid"}},"type":"object","required":["uid"],"title":"BaseDocumentStoreInput"},"Body_import_repo_upload_import_repo_post":{"properties":{"archive":{"type":"string","contentMediaType":"application/octet-stream","title":"Archive"},"realm":{"type":"string","title":"Realm"},"repo_name":{"type":"string","title":"Repo Name"},"source_ref":{"anyOf":[{"type":"string","maxLength":2048,"minLength":1,"pattern":"^[^\\s\\x00-\\x1f\\x7f](?:[^\\x00-\\x1f\\x7f]*[^\\s\\x00-\\x1f\\x7f])?$"},{"type":"null"}],"title":"Source Ref"},"overwrite":{"type":"boolean","title":"Overwrite","default":false},"force_update":{"type":"boolean","title":"Force Update","default":false}},"type":"object","required":["archive","realm","repo_name"],"title":"Body_import_repo_upload_import_repo_post"},"Body_sync_repo_upload_sync_repo_post":{"properties":{"archive":{"type":"string","contentMediaType":"application/octet-stream","title":"Archive"},"realm":{"type":"string","title":"Realm"},"repo_name":{"type":"string","title":"Repo Name"},"source_ref":{"type":"string","maxLength":2048,"minLength":1,"pattern":"^[^\\s\\x00-\\x1f\\x7f](?:[^\\x00-\\x1f\\x7f]*[^\\s\\x00-\\x1f\\x7f])?$","title":"Source Ref"},"force_update":{"type":"boolean","title":"Force Update","default":false}},"type":"object","required":["archive","realm","repo_name","source_ref"],"title":"Body_sync_repo_upload_sync_repo_post"},"Body_update_profile_account_update_profile_post":{"properties":{"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name"},"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File"},"remove_avatar":{"type":"boolean","title":"Remove Avatar","default":false}},"type":"object","required":["name"],"title":"Body_update_profile_account_update_profile_post"},"Body_upload_avatar_admin_character_upload_avatar_post":{"properties":{"uid":{"type":"string","title":"Uid"},"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["uid","file"],"title":"Body_upload_avatar_admin_character_upload_avatar_post"},"Body_upload_avatar_admin_realm_upload_avatar_post":{"properties":{"realm_id":{"type":"string","title":"Realm Id"},"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["realm_id","file"],"title":"Body_upload_avatar_admin_realm_upload_avatar_post"},"Body_upload_media_admin_media_upload_post":{"properties":{"realm_id":{"type":"string","title":"Realm Id"},"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"folder":{"type":"string","maxLength":120,"title":"Folder","default":""},"uid":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Uid"}},"type":"object","required":["realm_id","file"],"title":"Body_upload_media_admin_media_upload_post"},"CatalogFileExample":{"properties":{"selected_file":{"type":"string","title":"Selected File"},"text_files":{"additionalProperties":{"type":"string"},"type":"object","minProperties":1,"title":"Text Files"}},"type":"object","required":["selected_file","text_files"],"title":"CatalogFileExample"},"CatalogLanguage":{"properties":{"name":{"$ref":"#/components/schemas/JudgeLanguageType"},"visible_name":{"type":"string","title":"Visible Name"}},"type":"object","required":["name","visible_name"],"title":"CatalogLanguage"},"CharacterConfig":{"properties":{"name":{"type":"string","title":"Name"},"photo_media_uid":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Photo Media Uid"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"personality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Personality"},"public":{"type":"boolean","title":"Public","default":false}},"type":"object","required":["name"],"title":"CharacterConfig"},"CharacterOutput":{"properties":{"uid":{"type":"string","title":"Uid"},"config":{"$ref":"#/components/schemas/CharacterConfig"},"meta":{"$ref":"#/components/schemas/EntityMeta"}},"type":"object","required":["uid","config","meta"],"title":"CharacterOutput"},"CharacterReference":{"properties":{"uid":{"type":"string","title":"Uid"}},"type":"object","required":["uid"],"title":"CharacterReference"},"ChatFrameworkType":{"type":"string","enum":["chatter","educator"]},"CheckTaskSubmissionInput":{"properties":{"uid":{"type":"string","title":"Uid","description":"Task submission UID"}},"type":"object","required":["uid"],"title":"CheckTaskSubmissionInput","description":"Input model to get task submission status."},"CheckType":{"type":"string","const":"no_error"},"CompiledRealm":{"properties":{"meta":{"$ref":"#/components/schemas/EntityMeta"},"realm_id":{"type":"string","title":"Realm Id"},"config":{"$ref":"#/components/schemas/RealmConfig"},"super_config":{"$ref":"#/components/schemas/RealmSuperConfig"},"default_character":{"$ref":"#/components/schemas/CharacterReference"},"characters":{"items":{"$ref":"#/components/schemas/CharacterOutput"},"type":"array","title":"Characters"},"admins":{"items":{"$ref":"#/components/schemas/AccountOutput"},"type":"array","title":"Admins"},"teachers":{"items":{"$ref":"#/components/schemas/AccountOutput"},"type":"array","title":"Teachers"},"api_keys":{"anyOf":[{"$ref":"#/components/schemas/RealmApiKeys"},{"type":"null"}]},"document_stores":{"items":{"$ref":"#/components/schemas/DocumentStoreOutput"},"type":"array","title":"Document Stores"}},"type":"object","required":["meta","realm_id","config","super_config","default_character","characters","admins","teachers","api_keys","document_stores"],"title":"CompiledRealm"},"CompletionStatus":{"type":"string","enum":["not_attempted","incomplete","completed"]},"ContentFrameworkType":{"type":"string","enum":["course","knowledge"]},"CourseConfig":{"properties":{"visible_name":{"type":"string","title":"Visible Name"},"url":{"type":"string","title":"Url"},"lms_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lms Url"},"is_paid":{"type":"boolean","title":"Is Paid","default":false},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"student_chat_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Student Chat Url"},"landing_page_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Landing Page Url"},"repo":{"anyOf":[{"$ref":"#/components/schemas/RepoReference"},{"type":"null"}]}},"type":"object","required":["visible_name","url"],"title":"CourseConfig"},"CourseDataOutput":{"properties":{"uid":{"type":"string","title":"Uid"},"visible_name":{"type":"string","title":"Visible Name"},"url":{"type":"string","title":"Url"},"lms_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lms Url"},"is_paid":{"type":"boolean","title":"Is Paid"},"student_chat_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Student Chat Url"},"helper_task":{"anyOf":[{"$ref":"#/components/schemas/TaskDataOutput"},{"type":"null"}]},"vote_task":{"anyOf":[{"$ref":"#/components/schemas/TaskDataOutput"},{"type":"null"}]}},"type":"object","required":["uid","visible_name","url","lms_url","is_paid","student_chat_url","helper_task","vote_task"],"title":"CourseDataOutput"},"CourseOutput":{"properties":{"uid":{"type":"string","title":"Uid"},"config":{"$ref":"#/components/schemas/CourseConfig"},"meta":{"$ref":"#/components/schemas/EntityMeta"}},"type":"object","required":["uid","config","meta"],"title":"CourseOutput"},"CreateCharacterInput":{"properties":{"realm_id":{"type":"string","title":"Realm Id"},"config":{"$ref":"#/components/schemas/CharacterConfig"}},"type":"object","required":["realm_id","config"],"title":"CreateCharacterInput"},"CreateCourseInput":{"properties":{"realm_id":{"type":"string","title":"Realm Id"},"config":{"$ref":"#/components/schemas/CourseConfig"}},"type":"object","required":["realm_id","config"],"title":"CreateCourseInput"},"CreateDocumentStoreInput":{"properties":{"realm_id":{"type":"string","title":"Realm Id"},"config":{"$ref":"#/components/schemas/DocumentStoreConfig"}},"type":"object","required":["realm_id","config"],"title":"CreateDocumentStoreInput"},"CreateRealmInput":{"properties":{"realm_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Realm Id"},"populate_demo_repo":{"type":"boolean","title":"Populate Demo Repo","default":false},"expert_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expert Phone"},"expert_email_consent":{"type":"boolean","title":"Expert Email Consent","default":false}},"type":"object","title":"CreateRealmInput"},"CreateRepoInput":{"properties":{"realm":{"type":"string","title":"Realm","description":"Realm ID in lowercase. Unique school identifier provided by PumpRoom Admin","default":"inzh","examples":["inzh"]},"visible_name":{"type":"string","title":"Visible Name","description":"Name of the repository"},"populate_demo_tasks":{"type":"boolean","title":"Populate Demo Tasks","default":false},"config":{"$ref":"#/components/schemas/RepoConfig"}},"type":"object","required":["visible_name","config"],"title":"CreateRepoInput"},"CreateTaskInput":{"properties":{"repo_uid":{"type":"string","title":"Repo Uid"},"visible_name":{"type":"string","title":"Visible Name"},"config":{"$ref":"#/components/schemas/TaskConfig"},"text_files":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Text Files"}},"type":"object","required":["repo_uid","visible_name","config"],"title":"CreateTaskInput"},"DeleteBYOKKeyInput":{"properties":{"realm_id":{"type":"string","title":"Realm Id"},"type":{"type":"string","title":"Type"},"provider":{"type":"string","title":"Provider"}},"additionalProperties":false,"type":"object","required":["realm_id","type","provider"],"title":"DeleteBYOKKeyInput"},"DeleteCharacterInput":{"properties":{"uid":{"type":"string","title":"Uid","description":"Unique ID of the character"}},"type":"object","required":["uid"],"title":"DeleteCharacterInput"},"DeleteCourseInput":{"properties":{"uid":{"type":"string","title":"Uid","description":"Unique ID of the course"}},"type":"object","required":["uid"],"title":"DeleteCourseInput"},"DeleteMediaInput":{"properties":{"realm_id":{"type":"string","title":"Realm Id"},"uid":{"type":"string","format":"uuid","title":"Uid"}},"type":"object","required":["realm_id","uid"],"title":"DeleteMediaInput"},"DeleteRealmInput":{"properties":{"realm_id":{"type":"string","title":"Realm Id"}},"type":"object","required":["realm_id"],"title":"DeleteRealmInput"},"DeleteRepoInput":{"properties":{"uid":{"type":"string","title":"Uid","description":"Unique ID of the repo"}},"type":"object","required":["uid"],"title":"DeleteRepoInput"},"DeleteTaskInput":{"properties":{"uid":{"type":"string","title":"Uid"}},"type":"object","required":["uid"],"title":"DeleteTaskInput"},"DocumentFileConfig":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["description"],"title":"DocumentFileConfig"},"DocumentFileOutput":{"properties":{"uid":{"type":"string","title":"Uid"},"name":{"type":"string","title":"Name"},"size_kb":{"type":"number","title":"Size Kb"},"usage_size_kb":{"type":"number","title":"Usage Size Kb"},"config":{"$ref":"#/components/schemas/DocumentFileConfig"},"meta":{"$ref":"#/components/schemas/EntityMeta"}},"type":"object","required":["uid","name","size_kb","usage_size_kb","config","meta"],"title":"DocumentFileOutput"},"DocumentStoreConfig":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["name","description"],"title":"DocumentStoreConfig"},"DocumentStoreOutput":{"properties":{"uid":{"type":"string","title":"Uid"},"config":{"$ref":"#/components/schemas/DocumentStoreConfig"},"meta":{"$ref":"#/components/schemas/EntityMeta"}},"type":"object","required":["uid","config","meta"],"title":"DocumentStoreOutput"},"EntityMeta":{"properties":{"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["created_at","updated_at"],"title":"EntityMeta"},"ExpertFrameworkType":{"type":"string","const":"feedback"},"ExportRepoInput":{"properties":{"uid":{"type":"string","title":"Uid","description":"Unique ID of the repo"}},"type":"object","required":["uid"],"title":"ExportRepoInput"},"ExportTaskInput":{"properties":{"uid":{"type":"string","title":"Uid","description":"Unique ID of the task"}},"type":"object","required":["uid"],"title":"ExportTaskInput"},"FrameworkType":{"anyOf":[{"$ref":"#/components/schemas/JudgeFrameworkType"},{"$ref":"#/components/schemas/AgentFrameworkType"},{"$ref":"#/components/schemas/GameFrameworkType"},{"$ref":"#/components/schemas/ChatFrameworkType"},{"$ref":"#/components/schemas/ExpertFrameworkType"},{"$ref":"#/components/schemas/OpinionFrameworkType"},{"$ref":"#/components/schemas/QuizFrameworkType"},{"$ref":"#/components/schemas/MasterFrameworkType"},{"$ref":"#/components/schemas/InfraFrameworkType"},{"$ref":"#/components/schemas/ContentFrameworkType"}]},"GameFrameworkType":{"type":"string","enum":["mentor","character","internship"]},"GetUIStatesInput":{"properties":{"profile":{"anyOf":[{"$ref":"#/components/schemas/TildaProfileInput"},{"type":"null"}]},"user":{"anyOf":[{"$ref":"#/components/schemas/AuthDetails"},{"type":"null"}]},"state_names":{"items":{"type":"string"},"type":"array","title":"State Names","description":"List of state names to get","examples":[["state1","state2"]]},"url":{"type":"string","title":"Url","description":"URL of the LMS page","examples":["https://inzhenerka.tech/members/courses/course1/swagger_test_fake_url"]},"context":{"anyOf":[{"$ref":"#/components/schemas/LMSContextAPI"},{"type":"null"}]},"sdk_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sdk Version","description":"Version of PumpRoom SDK"}},"type":"object","required":["state_names","url"],"title":"GetUIStatesInput"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthCheckResult":{"properties":{"version":{"type":"string","title":"Version","default":"3.1.1"},"database_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Database Version"},"ai_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ai Version"},"stand":{"type":"string","enum":["OK","FAIL","DISABLED"],"title":"Stand","default":"DISABLED"},"stand_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stand Version"},"overall":{"$ref":"#/components/schemas/HealthStatusType"},"database":{"$ref":"#/components/schemas/HealthStatusType"},"ai":{"$ref":"#/components/schemas/HealthStatusType"},"judge":{"$ref":"#/components/schemas/HealthStatusType"}},"type":"object","required":["overall","database","ai","judge"],"title":"HealthCheckResult","description":"Response model to validate and return when performing a health check."},"HealthStatusType":{"type":"string","enum":["OK","PARTIAL","FAIL"]},"IdentityProviderType":{"type":"string","enum":["lms","telegram","tilda"]},"InfraFrameworkType":{"type":"string","enum":["llm","phoenix","qdrant"]},"JudgeFrameworkType":{"type":"string","enum":["language","playwright","maven_exec","maven_test","rustc","python_multi","cargo_run","cargo_test","dbt","sqlite_multi","duckdb_multi","postgres_multi","bash_multi","go_multi","go_test","make","node","unittest","pytest","cmake","verilog"]},"JudgeLanguageType":{"type":"string","enum":["rust","c","cpp","csharp","java","javascript","typescript","python","perl","lua","php","ruby","kotlin","r","prolog","verilog","go","bash","sqlite","duckdb","postgres","assembly","auto","text"]},"LMSContextAPI":{"properties":{"kit_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kit Id"},"program_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Program Id"},"lesson_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lesson Id"}},"type":"object","title":"LMSContextAPI"},"LMSIdentityInput":{"properties":{"provider":{"$ref":"#/components/schemas/IdentityProviderType","default":"lms"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier of the user (e.g. email, username, uid)","examples":["swagger_test@inzhenerka.tech"]},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email","description":"User email. Deprecated  in favor of identifier","deprecated":true,"examples":["swagger_test@inzhenerka.tech"]},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Optional user name","examples":["Swagger Test"]},"photo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Photo Url","description":"URL of the user photo","examples":["https://example.com/logo.png"]},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language","description":"Student language","examples":["en"]},"provider_extra":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Provider Extra","description":"Additional provider-specific data"}},"type":"object","title":"LMSIdentityInput"},"LanguageType":{"anyOf":[{"$ref":"#/components/schemas/JudgeLanguageType"},{"$ref":"#/components/schemas/QuizLanguageType"},{"$ref":"#/components/schemas/OpinionLanguageType"},{"$ref":"#/components/schemas/MasterLanguageType"}]},"LoadCourseDataInput":{"properties":{"realm":{"type":"string","title":"Realm","description":"Realm ID in lowercase. Unique school identifier provided by PumpRoom Admin","default":"inzh","examples":["inzh"]},"url":{"type":"string","title":"Url"},"context":{"$ref":"#/components/schemas/LMSContextAPI"},"sdk_version":{"type":"string","title":"Sdk Version"}},"type":"object","required":["url","context","sdk_version"],"title":"LoadCourseDataInput"},"LoadCourseDataOutput":{"properties":{"course":{"anyOf":[{"$ref":"#/components/schemas/CourseDataOutput"},{"type":"null"}]}},"type":"object","required":["course"],"title":"LoadCourseDataOutput"},"LoadCoursesInput":{"properties":{"realm":{"type":"string","title":"Realm","description":"Realm ID in lowercase. Unique school identifier provided by PumpRoom Admin","default":"inzh","examples":["inzh"]}},"type":"object","title":"LoadCoursesInput"},"LoadCoursesResult":{"properties":{"courses":{"items":{"$ref":"#/components/schemas/CourseOutput"},"type":"array","title":"Courses"}},"type":"object","required":["courses"],"title":"LoadCoursesResult"},"LoadDataResult":{"properties":{"realms":{"additionalProperties":{"$ref":"#/components/schemas/RealmOutput"},"type":"object","title":"Realms"},"catalog":{"items":{"$ref":"#/components/schemas/TaskBackend"},"type":"array","title":"Catalog"}},"type":"object","title":"LoadDataResult"},"LoadDocumentFilesInput":{"properties":{"document_store_uid":{"type":"string","title":"Document Store Uid"}},"type":"object","required":["document_store_uid"],"title":"LoadDocumentFilesInput"},"LoadLessonsInput":{"properties":{"realm_id":{"type":"string","title":"Realm Id"}},"type":"object","required":["realm_id"],"title":"LoadLessonsInput"},"LoadLessonsOutput":{"properties":{"lessons":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Lessons"},"realm_id":{"type":"string","title":"Realm Id"}},"type":"object","required":["lessons","realm_id"],"title":"LoadLessonsOutput"},"LoadMediaInput":{"properties":{"realm_id":{"type":"string","title":"Realm Id"},"folder":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder"},"page":{"type":"integer","minimum":1.0,"title":"Page","default":1},"page_size":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Page Size","default":24}},"type":"object","required":["realm_id"],"title":"LoadMediaInput"},"LoadMediaResult":{"properties":{"media":{"items":{"$ref":"#/components/schemas/MediaOutput"},"type":"array","title":"Media"},"folders":{"items":{"type":"string"},"type":"array","title":"Folders"},"pagination":{"$ref":"#/components/schemas/Pagination"},"can_upload":{"type":"boolean","title":"Can Upload"}},"type":"object","required":["media","folders","pagination","can_upload"],"title":"LoadMediaResult"},"LoadOpinionsInput":{"properties":{"realm_id":{"type":"string","title":"Realm Id"},"program_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Program Id"},"lesson_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lesson Id"},"with_parent_task":{"type":"boolean","title":"With Parent Task"},"parent_repo_task_uid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Repo Task Uid"}},"type":"object","required":["realm_id","program_id","lesson_id","with_parent_task","parent_repo_task_uid"],"title":"LoadOpinionsInput"},"LoadOpinionsOutput":{"properties":{"opinions":{"items":{"$ref":"#/components/schemas/OpinionOutput"},"type":"array","title":"Opinions"},"realm_id":{"type":"string","title":"Realm Id"},"program_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Program Id"},"lesson_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lesson Id"}},"type":"object","required":["opinions","realm_id","program_id","lesson_id"],"title":"LoadOpinionsOutput"},"LoadRealmInput":{"properties":{"realm_id":{"type":"string","title":"Realm Id"}},"type":"object","required":["realm_id"],"title":"LoadRealmInput"},"LoadReposInput":{"properties":{"realm":{"type":"string","title":"Realm","description":"Realm ID in lowercase. Unique school identifier provided by PumpRoom Admin","default":"inzh","examples":["inzh"]}},"type":"object","title":"LoadReposInput"},"LoadReposResult":{"properties":{"repos":{"items":{"$ref":"#/components/schemas/RepoOutput"},"type":"array","title":"Repos"}},"type":"object","required":["repos"],"title":"LoadReposResult"},"LoadResponsesInput":{"properties":{"realm_id":{"type":"string","title":"Realm Id"},"status":{"$ref":"#/components/schemas/ResponseStatus","default":"pending"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size","default":25}},"type":"object","required":["realm_id","page"],"title":"LoadResponsesInput"},"LoadResponsesResult":{"properties":{"responses":{"items":{"$ref":"#/components/schemas/ResponseOutput"},"type":"array","title":"Responses"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"type":"object","required":["responses","pagination"],"title":"LoadResponsesResult"},"LoadTaskDetailsByNameInput":{"properties":{"realm":{"type":"string","minLength":1,"title":"Realm"},"repo_name":{"type":"string","minLength":1,"title":"Repo Name"},"task_name":{"type":"string","minLength":1,"title":"Task Name"}},"type":"object","required":["realm","repo_name","task_name"],"title":"LoadTaskDetailsByNameInput"},"LoadTaskDetailsInput":{"properties":{"uid":{"type":"string","title":"Uid","description":"Unique ID of the task"}},"type":"object","required":["uid"],"title":"LoadTaskDetailsInput"},"LoadTaskInput":{"properties":{"realm":{"type":"string","title":"Realm","description":"Realm ID in lowercase. Unique school identifier provided by PumpRoom Admin","default":"inzh","examples":["inzh"]},"repo_name":{"type":"string","title":"Repo Name"},"task_name":{"type":"string","title":"Task Name"},"ignore_state":{"type":"boolean","title":"Ignore State","default":false},"load_opinion_task":{"type":"boolean","title":"Load Opinion Task","default":false},"user":{"anyOf":[{"$ref":"#/components/schemas/AuthDetails"},{"type":"null"}]},"page_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page Url"},"tags":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tags"},"context":{"anyOf":[{"$ref":"#/components/schemas/LMSContextAPI"},{"type":"null"}]},"backend_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Backend Data","description":"Additional data for backend"},"parent_data":{"anyOf":[{"$ref":"#/components/schemas/TaskContextData"},{"type":"null"}]},"sdk_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sdk Version","description":"Version of PumpRoom SDK"},"locale":{"anyOf":[{"$ref":"#/components/schemas/LocaleType"},{"type":"null"}]}},"type":"object","required":["repo_name","task_name"],"title":"LoadTaskInput"},"LoadTaskInstancesInput":{"properties":{"uid":{"type":"string","title":"Uid","description":"Unique ID of the task"}},"type":"object","required":["uid"],"title":"LoadTaskInstancesInput"},"LoadTaskInstancesResult":{"properties":{"instances":{"items":{"$ref":"#/components/schemas/TaskInstanceOutput"},"type":"array","title":"Instances"}},"type":"object","required":["instances"],"title":"LoadTaskInstancesResult"},"LoadTaskSubmissionsInput":{"properties":{"uid":{"type":"string","title":"Uid","description":"Unique ID of the task"},"offset":{"type":"integer","minimum":0.0,"title":"Offset","default":0},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","default":25}},"type":"object","required":["uid"],"title":"LoadTaskSubmissionsInput"},"LoadTaskSubmissionsResult":{"properties":{"total":{"type":"integer","title":"Total","description":"Number of users with submissions plus anonymous submissions"},"submissions":{"items":{"$ref":"#/components/schemas/AdminTaskSubmissionOutput"},"type":"array","title":"Submissions","description":"Latest submission per user and all anonymous submissions"}},"type":"object","required":["total","submissions"],"title":"LoadTaskSubmissionsResult"},"LoadTasksInput":{"properties":{"repo_uid":{"type":"string","title":"Repo Uid"}},"type":"object","required":["repo_uid"],"title":"LoadTasksInput"},"LoadTasksResult":{"properties":{"tasks":{"items":{"$ref":"#/components/schemas/TaskListItemOutput"},"type":"array","title":"Tasks"}},"type":"object","required":["tasks"],"title":"LoadTasksResult"},"LoadUsersInput":{"properties":{"realm_id":{"type":"string","title":"Realm Id"}},"type":"object","required":["realm_id"],"title":"LoadUsersInput"},"LoadUsersResult":{"properties":{"users":{"items":{"$ref":"#/components/schemas/UserOutput"},"type":"array","title":"Users"}},"type":"object","required":["users"],"title":"LoadUsersResult"},"LocaleType":{"type":"string","enum":["en","ru"]},"MasterFrameworkType":{"type":"string","const":"practice"},"MasterLanguageType":{"type":"string","enum":["text","auto"]},"MediaOutput":{"properties":{"uid":{"type":"string","format":"uuid","title":"Uid"},"name":{"type":"string","title":"Name"},"folder":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder"},"mime_type":{"type":"string","title":"Mime Type"},"size_bytes":{"type":"integer","title":"Size Bytes"},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Width"},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Height"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["uid","name","folder","mime_type","size_bytes","width","height","updated_at"],"title":"MediaOutput"},"OpinionFrameworkType":{"type":"string","enum":["vote","form"]},"OpinionLanguageType":{"type":"string","enum":["text","auto"]},"OpinionOutput":{"properties":{"uid":{"type":"string","title":"Uid"},"score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Score"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"},"program_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Program Id"},"lesson_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lesson Id"},"meta":{"$ref":"#/components/schemas/EntityMeta"},"user":{"anyOf":[{"$ref":"#/components/schemas/UserCompact"},{"type":"null"}]},"page_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page Url"},"repo_uid":{"type":"string","title":"Repo Uid"},"repo_task":{"$ref":"#/components/schemas/TaskOutput"},"parent_repo_task":{"anyOf":[{"$ref":"#/components/schemas/TaskOutput"},{"type":"null"}]}},"type":"object","required":["uid","score","comment","program_id","lesson_id","meta","user","page_url","repo_uid","repo_task","parent_repo_task"],"title":"OpinionOutput"},"Pagination":{"properties":{"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"page_count":{"type":"integer","title":"Page Count"}},"type":"object","required":["page","page_size","page_count"],"title":"Pagination"},"PlanGranularityType":{"type":"string","enum":["day","week","month","year","total"]},"PumpRoomConfig":{"properties":{"repo":{"anyOf":[{"$ref":"#/components/schemas/PumpRoomRepoConfig"},{"type":"null"}]},"task":{"anyOf":[{"$ref":"#/components/schemas/PumpRoomTaskLocalConfig"},{"type":"null"}]}},"type":"object","title":"PumpRoomConfig","description":"Configuration of PumpRoom apps."},"PumpRoomRepoConfig":{"properties":{"backend":{"$ref":"#/components/schemas/BackendType","description":"Default type of backend to execute tasks","default":"judge","examples":["judge"]},"language":{"$ref":"#/components/schemas/LanguageType","description":"Default programming language of tasks","default":"auto","examples":["text"]},"framework":{"$ref":"#/components/schemas/FrameworkType","description":"Programming framework of the task","default":"language"},"visible_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visible Name","description":"Name of the repo for display in the UI","examples":["Pumping Repo"]},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Short meaningful description","examples":["Repo description"]},"locale_code":{"$ref":"#/components/schemas/LocaleType","description":"Default language of the repo tasks","default":"ru","examples":["ru"]},"ai_validation":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ai Validation","description":"Enable result validation by AI (opt-in, experimental)"},"allow_anonymous_access":{"type":"boolean","title":"Allow Anonymous Access","description":"Default anonymous access for tasks; explicit task settings take precedence","default":false},"enable_network":{"type":"boolean","title":"Enable Network","description":"Default network access for tasks; explicit task settings take precedence","default":false},"tasks":{"anyOf":[{"items":{"$ref":"#/components/schemas/PumpRoomTaskConfig"},"type":"array"},{"type":"null"}],"title":"Tasks","description":"List of optional task configurations"}},"type":"object","title":"PumpRoomRepoConfig","description":"Configuration of Pumping repository for PumpRoom app."},"PumpRoomTaskConfig":{"properties":{"backend":{"anyOf":[{"$ref":"#/components/schemas/BackendType"},{"type":"null"}],"description":"Type of backend to execute the task","examples":["judge"]},"language":{"$ref":"#/components/schemas/LanguageType","description":"Programming language of the task","default":"auto","examples":["python"]},"framework":{"$ref":"#/components/schemas/FrameworkType","description":"Programming framework of the task (overrides language)","default":"language"},"visible_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visible Name","description":"Name of the task for display in the UI","examples":["Demo task"]},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the task","examples":["This is very cool task"]},"read_only":{"type":"boolean","title":"Read Only","description":"Make the task read-only for the user (alternative to GitHub Gist snippet)","default":false},"selected_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Selected File","description":"Path to the file that will be opened by default in the editor","examples":["src/file1.py"]},"enable_network":{"type":"boolean","title":"Enable Network","description":"Allow task to access network and internet","default":false},"allow_anonymous_access":{"type":"boolean","title":"Allow Anonymous Access","description":"Allow loading and submitting the task without a user","default":false},"solution_task_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Solution Task Name","description":"Name of the solution task from the same repo","examples":["0_demo_solution"]},"readonly_files":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Readonly Files","description":"List of read-only files in the task. User cannot modify them","examples":[["src/file1.py","file2.txt"]]},"hidden_files":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Hidden Files","description":"Files hidden from students and restored on submission. Folder paths must end with /.","examples":[["tests/private/","checker.py"]]},"post_commands":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Post Commands","description":"List of commands to execute after main Framework bash script"},"ai_validation":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ai Validation","description":"Enable result validation by AI (opt-in, experimental)"},"document_store":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Store","description":"Document store with knowledge (UID)","examples":["inzh:ds1"]},"limits":{"anyOf":[{"$ref":"#/components/schemas/TaskLimits"},{"type":"null"}],"description":"Per-user limits of task attempts and AI responses"},"locale_code":{"$ref":"#/components/schemas/LocaleType","description":"Default language of the task","default":"ru","examples":["ru"]},"backend_config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Backend Config","description":"Backend-specific configuration of the task. Usually it is provided as yml file"},"persist_files":{"type":"boolean","title":"Persist Files","description":"Store task source text files in the API database","default":true},"protected":{"type":"boolean","title":"Protected","description":"Task cannot be edited, deleted or overwritten through Admin, import or source synchronization","default":false},"check_type":{"$ref":"#/components/schemas/CheckType","description":"Type of check for the task","default":"no_error","examples":["no_error"]},"name":{"type":"string","title":"Name","description":"Name of the task (name of task folder and part of task URL)","examples":["0_demo"]}},"type":"object","required":["name"],"title":"PumpRoomTaskConfig","description":"Full configuration of PumpRoom task."},"PumpRoomTaskLocalConfig":{"properties":{"backend":{"anyOf":[{"$ref":"#/components/schemas/BackendType"},{"type":"null"}],"description":"Type of backend to execute the task","examples":["judge"]},"language":{"$ref":"#/components/schemas/LanguageType","description":"Programming language of the task","default":"auto","examples":["python"]},"framework":{"$ref":"#/components/schemas/FrameworkType","description":"Programming framework of the task (overrides language)","default":"language"},"visible_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visible Name","description":"Name of the task for display in the UI","examples":["Demo task"]},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the task","examples":["This is very cool task"]},"read_only":{"type":"boolean","title":"Read Only","description":"Make the task read-only for the user (alternative to GitHub Gist snippet)","default":false},"selected_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Selected File","description":"Path to the file that will be opened by default in the editor","examples":["src/file1.py"]},"enable_network":{"type":"boolean","title":"Enable Network","description":"Allow task to access network and internet","default":false},"allow_anonymous_access":{"type":"boolean","title":"Allow Anonymous Access","description":"Allow loading and submitting the task without a user","default":false},"solution_task_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Solution Task Name","description":"Name of the solution task from the same repo","examples":["0_demo_solution"]},"readonly_files":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Readonly Files","description":"List of read-only files in the task. User cannot modify them","examples":[["src/file1.py","file2.txt"]]},"hidden_files":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Hidden Files","description":"Files hidden from students and restored on submission. Folder paths must end with /.","examples":[["tests/private/","checker.py"]]},"post_commands":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Post Commands","description":"List of commands to execute after main Framework bash script"},"ai_validation":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ai Validation","description":"Enable result validation by AI (opt-in, experimental)"},"document_store":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Store","description":"Document store with knowledge (UID)","examples":["inzh:ds1"]},"limits":{"anyOf":[{"$ref":"#/components/schemas/TaskLimits"},{"type":"null"}],"description":"Per-user limits of task attempts and AI responses"},"locale_code":{"$ref":"#/components/schemas/LocaleType","description":"Default language of the task","default":"ru","examples":["ru"]},"backend_config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Backend Config","description":"Backend-specific configuration of the task. Usually it is provided as yml file"},"persist_files":{"type":"boolean","title":"Persist Files","description":"Store task source text files in the API database","default":true},"protected":{"type":"boolean","title":"Protected","description":"Task cannot be edited, deleted or overwritten through Admin, import or source synchronization","default":false},"check_type":{"$ref":"#/components/schemas/CheckType","description":"Type of check for the task","default":"no_error","examples":["no_error"]}},"type":"object","title":"PumpRoomTaskLocalConfig","description":"Local configuration of PumpRoom task."},"PumpingTask":{"properties":{"uid":{"type":"string","title":"Uid"},"repo_uid":{"type":"string","title":"Repo Uid"},"name":{"type":"string","title":"Name"},"repo_name":{"type":"string","title":"Repo Name"},"realm":{"type":"string","title":"Realm"},"backend":{"$ref":"#/components/schemas/UIBackendOutput"},"language":{"$ref":"#/components/schemas/LanguageType"},"framework":{"$ref":"#/components/schemas/FrameworkType"},"file_map":{"additionalProperties":{"$ref":"#/components/schemas/TaskFile"},"type":"object","title":"File Map"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"selected_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Selected File"},"read_only":{"type":"boolean","title":"Read Only","default":false},"task_state":{"$ref":"#/components/schemas/TaskSubmissionState"},"additional_states":{"additionalProperties":{"$ref":"#/components/schemas/TaskSubmissionState"},"propertyNames":{"$ref":"#/components/schemas/FrameworkType"},"type":"object","title":"Additional States"},"locale_code":{"$ref":"#/components/schemas/LocaleType","default":"ru"},"ai_validation":{"type":"boolean","title":"Ai Validation"},"backend_config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Backend Config"},"solution_task_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Solution Task Name"},"user":{"anyOf":[{"$ref":"#/components/schemas/UserCompact"},{"type":"null"}]},"quota":{"$ref":"#/components/schemas/TaskQuota"},"style":{"anyOf":[{"$ref":"#/components/schemas/PumpingTaskStyle"},{"type":"null"}]},"pushed_at":{"type":"string","format":"date-time","title":"Pushed At"},"opinion_task":{"anyOf":[{"$ref":"#/components/schemas/AttachedTask"},{"type":"null"}]},"task_result":{"anyOf":[{"$ref":"#/components/schemas/TaskResultOutput"},{"type":"null"}]}},"type":"object","required":["uid","repo_uid","name","repo_name","realm","backend","language","framework","file_map","task_state","additional_states","ai_validation","backend_config","solution_task_name","user","quota","style","pushed_at"],"title":"PumpingTask"},"PumpingTaskStyle":{"properties":{"theme_style":{"$ref":"#/components/schemas/ThemeStyle"},"theme_mode":{"$ref":"#/components/schemas/ThemeType"}},"type":"object","required":["theme_style","theme_mode"],"title":"PumpingTaskStyle"},"QuizFrameworkType":{"type":"string","const":"check"},"QuizLanguageType":{"type":"string","enum":["text","auto"]},"RealmApiKeys":{"properties":{"public_api_key":{"type":"string","title":"Public Api Key"},"upload_api_key":{"type":"string","title":"Upload Api Key"},"internal_api_key":{"type":"string","title":"Internal Api Key"}},"type":"object","required":["public_api_key","upload_api_key","internal_api_key"],"title":"RealmApiKeys"},"RealmConfig":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"photo_media_uid":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Photo Media Uid"},"default_character":{"$ref":"#/components/schemas/CharacterReference"},"default_theme_style":{"anyOf":[{"$ref":"#/components/schemas/ThemeStyle"},{"type":"null"}]}},"type":"object","required":["default_character"],"title":"RealmConfig","description":"Realm settings managed through the admin API."},"RealmOutput":{"properties":{"realm_id":{"type":"string","title":"Realm Id"},"config":{"$ref":"#/components/schemas/RealmConfig"},"super_config":{"$ref":"#/components/schemas/RealmSuperConfig"},"meta":{"$ref":"#/components/schemas/EntityMeta"}},"type":"object","required":["realm_id","config","super_config","meta"],"title":"RealmOutput"},"RealmPlanOutput":{"properties":{"realm_id":{"type":"string","title":"Realm Id"},"plan_period":{"$ref":"#/components/schemas/RealmPlanPeriod"},"plan_usage":{"$ref":"#/components/schemas/RealmPlanUsage"}},"type":"object","required":["realm_id","plan_period","plan_usage"],"title":"RealmPlanOutput"},"RealmPlanPeriod":{"properties":{"start_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start At"},"reset_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Reset At"},"end_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End At"}},"type":"object","title":"RealmPlanPeriod"},"RealmPlanUsage":{"properties":{"code_limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Code Limit"},"code_submissions":{"type":"integer","title":"Code Submissions"},"ai_limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ai Limit"},"ai_submissions":{"type":"integer","title":"Ai Submissions"}},"type":"object","required":["code_limit","code_submissions","ai_limit","ai_submissions"],"title":"RealmPlanUsage"},"RealmSuperConfig":{"properties":{"plan_granularity":{"anyOf":[{"$ref":"#/components/schemas/PlanGranularityType"},{"type":"null"}]},"plan_start_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Plan Start At"},"plan_end_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Plan End At"},"code_submissions_limit":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Code Submissions Limit"},"ai_submissions_limit":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Ai Submissions Limit"},"enable_beta_features":{"type":"boolean","title":"Enable Beta Features","default":false}},"type":"object","title":"RealmSuperConfig","description":"Settings readable by realm admins and writable only by superusers."},"RealmUserInput":{"properties":{"realm":{"type":"string","title":"Realm"}},"type":"object","required":["realm"],"title":"RealmUserInput"},"RepoConfig":{"properties":{"visible_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visible Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"default_task_helper":{"anyOf":[{"$ref":"#/components/schemas/RepoTaskReference"},{"type":"null"}]},"default_task_vote":{"anyOf":[{"$ref":"#/components/schemas/RepoTaskReference"},{"type":"null"}]}},"type":"object","title":"RepoConfig"},"RepoOutput":{"properties":{"name":{"type":"string","title":"Name"},"uid":{"type":"string","title":"Uid"},"config":{"$ref":"#/components/schemas/RepoConfig"},"meta":{"$ref":"#/components/schemas/EntityMeta"}},"type":"object","required":["name","uid","config","meta"],"title":"RepoOutput"},"RepoReference":{"properties":{"uid":{"type":"string","title":"Uid"}},"type":"object","required":["uid"],"title":"RepoReference"},"RepoTaskReference":{"properties":{"uid":{"type":"string","title":"Uid"}},"type":"object","required":["uid"],"title":"RepoTaskReference"},"ResponseFeedback":{"properties":{"meta":{"$ref":"#/components/schemas/EntityMeta"},"content":{"type":"string","title":"Content"},"author":{"$ref":"#/components/schemas/ResponsePerson"}},"type":"object","required":["meta","content","author"],"title":"ResponseFeedback"},"ResponseOutput":{"properties":{"uid":{"type":"string","title":"Uid"},"meta":{"$ref":"#/components/schemas/EntityMeta"},"archived_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Archived At"},"content":{"type":"string","title":"Content"},"task":{"$ref":"#/components/schemas/ResponseTask"},"student":{"$ref":"#/components/schemas/ResponsePerson"},"feedback":{"anyOf":[{"$ref":"#/components/schemas/ResponseFeedback"},{"type":"null"}]}},"type":"object","required":["uid","meta","archived_at","content","task","student","feedback"],"title":"ResponseOutput"},"ResponsePerson":{"properties":{"name":{"type":"string","title":"Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"}},"type":"object","required":["name","email"],"title":"ResponsePerson"},"ResponseRepo":{"properties":{"uid":{"type":"string","title":"Uid"},"name":{"type":"string","title":"Name"},"visible_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visible Name"}},"type":"object","required":["uid","name","visible_name"],"title":"ResponseRepo"},"ResponseStatus":{"type":"string","enum":["pending","reviewed","archived"]},"ResponseTask":{"properties":{"uid":{"type":"string","title":"Uid"},"name":{"type":"string","title":"Name"},"visible_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visible Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"repo":{"$ref":"#/components/schemas/ResponseRepo"}},"type":"object","required":["uid","name","visible_name","description","repo"],"title":"ResponseTask"},"SaveBYOKKeyInput":{"properties":{"realm_id":{"type":"string","title":"Realm Id"},"type":{"type":"string","title":"Type"},"provider":{"type":"string","title":"Provider"},"config":{"additionalProperties":true,"type":"object","title":"Config"}},"additionalProperties":false,"type":"object","required":["realm_id","type","provider","config"],"title":"SaveBYOKKeyInput"},"SelectBYOKKeyInput":{"properties":{"realm_id":{"type":"string","title":"Realm Id"},"type":{"type":"string","title":"Type"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"}},"type":"object","required":["realm_id","type","provider"],"title":"SelectBYOKKeyInput"},"SetResponseArchivedInput":{"properties":{"realm_id":{"type":"string","title":"Realm Id"},"response_uid":{"type":"string","title":"Response Uid"},"is_archived":{"type":"boolean","title":"Is Archived"}},"type":"object","required":["realm_id","response_uid","is_archived"],"title":"SetResponseArchivedInput"},"SetUIStatesInput":{"properties":{"profile":{"anyOf":[{"$ref":"#/components/schemas/TildaProfileInput"},{"type":"null"}]},"user":{"anyOf":[{"$ref":"#/components/schemas/AuthDetails"},{"type":"null"}]},"states":{"items":{"$ref":"#/components/schemas/UIStateInput"},"type":"array","title":"States"},"url":{"type":"string","title":"Url","description":"URL of the LMS page","examples":["https://inzhenerka.tech/members/courses/course1/swagger_test_fake_url"]},"context":{"anyOf":[{"$ref":"#/components/schemas/LMSContextAPI"},{"type":"null"}]},"sdk_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sdk Version","description":"Version of PumpRoom SDK"}},"type":"object","required":["states","url"],"title":"SetUIStatesInput"},"SetUserRoleInput":{"properties":{"realm_id":{"type":"string","title":"Realm Id"},"user_uid":{"type":"string","title":"User Uid"},"role":{"$ref":"#/components/schemas/UserRole"},"superadmin":{"$ref":"#/components/schemas/SuperadminType"}},"type":"object","required":["realm_id","user_uid","role","superadmin"],"title":"SetUserRoleInput"},"StaffRole":{"type":"string","enum":["expert","admin"]},"StateDataType":{"type":"string","enum":["bool","int","str"],"title":"StateDataType"},"StoredIdentityProviderType":{"anyOf":[{"$ref":"#/components/schemas/IdentityProviderType"},{"type":"string","enum":["supertokens","oidc"]}]},"SubmissionQuota":{"properties":{"granularity":{"$ref":"#/components/schemas/PlanGranularityType"},"limit":{"type":"integer","title":"Limit"},"current":{"type":"integer","title":"Current"}},"type":"object","required":["granularity","limit","current"],"title":"SubmissionQuota"},"SubmissionsLimit":{"properties":{"granularity":{"$ref":"#/components/schemas/PlanGranularityType","default":"total"},"limit":{"type":"integer","minimum":0.0,"title":"Limit"}},"type":"object","required":["limit"],"title":"SubmissionsLimit"},"SuccessStatus":{"type":"string","enum":["unknown","passed","failed"]},"SuperadminType":{"type":"string","enum":["none","regular","root"]},"TaskBackend":{"properties":{"name":{"type":"string","title":"Name"},"visible_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visible Name"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"task_frameworks":{"items":{"$ref":"#/components/schemas/TaskFramework"},"type":"array","title":"Task Frameworks"}},"type":"object","required":["name","visible_name","color","icon","description","task_frameworks"],"title":"TaskBackend"},"TaskConfig":{"properties":{"backend":{"$ref":"#/components/schemas/BackendType"},"language":{"$ref":"#/components/schemas/LanguageType","default":"auto"},"framework":{"$ref":"#/components/schemas/FrameworkType","default":"language"},"visible_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visible Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"read_only":{"type":"boolean","title":"Read Only","default":false},"allow_anonymous_access":{"type":"boolean","title":"Allow Anonymous Access","default":false},"selected_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Selected File"},"enable_network":{"type":"boolean","title":"Enable Network","default":false},"solution_task_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Solution Task Name"},"readonly_files":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Readonly Files"},"hidden_files":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Hidden Files"},"post_commands":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Post Commands"},"ai_validation":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ai Validation"},"document_store":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Store"},"limits":{"anyOf":[{"$ref":"#/components/schemas/TaskLimits"},{"type":"null"}]},"locale_code":{"$ref":"#/components/schemas/LocaleType","default":"ru"},"backend_config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Backend Config"},"protected":{"type":"boolean","title":"Protected","default":false}},"type":"object","required":["backend"],"title":"TaskConfig"},"TaskContextData":{"properties":{"repo_task_uid":{"type":"string","title":"Repo Task Uid"},"backend_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Backend Data","description":"Additional data for backend"}},"type":"object","required":["repo_task_uid"],"title":"TaskContextData"},"TaskContextInput":{"properties":{"items":{"items":{"$ref":"#/components/schemas/TaskContextItemInput"},"type":"array","title":"Items","description":"List of task context items"}},"type":"object","title":"TaskContextInput"},"TaskContextItemInput":{"properties":{"task_uid":{"type":"string","title":"Task Uid"},"task_submission_uid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Task Submission Uid"},"backend":{"anyOf":[{"$ref":"#/components/schemas/UIBackendInput"},{"type":"null"}]},"backend_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Backend Data","description":"Additional data for backend"},"treat_as_solution":{"type":"boolean","title":"Treat As Solution","default":false}},"type":"object","required":["task_uid"],"title":"TaskContextItemInput"},"TaskDataOutput":{"properties":{"uid":{"type":"string","title":"Uid"},"task_name":{"type":"string","title":"Task Name"},"repo_name":{"type":"string","title":"Repo Name"},"realm":{"type":"string","title":"Realm"}},"type":"object","required":["uid","task_name","repo_name","realm"],"title":"TaskDataOutput"},"TaskExample":{"properties":{"realm":{"type":"string","minLength":1,"title":"Realm"},"repo_name":{"type":"string","minLength":1,"title":"Repo Name"},"task_name":{"type":"string","minLength":1,"title":"Task Name"}},"type":"object","required":["realm","repo_name","task_name"],"title":"TaskExample"},"TaskFile":{"properties":{"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"is_binary":{"type":"boolean","title":"Is Binary","default":false},"is_encoded":{"type":"boolean","title":"Is Encoded","default":false},"readonly":{"type":"boolean","title":"Readonly","default":false}},"type":"object","title":"TaskFile"},"TaskFramework":{"properties":{"file_examples":{"additionalProperties":{"$ref":"#/components/schemas/CatalogFileExample"},"propertyNames":{"$ref":"#/components/schemas/JudgeLanguageType"},"type":"object","title":"File Examples"},"name":{"type":"string","title":"Name"},"visible_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visible Name"},"example":{"anyOf":[{"$ref":"#/components/schemas/TaskExample"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"photo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Photo"},"user_required":{"type":"boolean","title":"User Required","default":false},"languages":{"anyOf":[{"items":{"$ref":"#/components/schemas/CatalogLanguage"},"type":"array"},{"type":"null"}],"title":"Languages","description":"Selectable languages with display names. Null means not applicable; [] means no options."}},"type":"object","required":["name","visible_name","example","description","summary","photo","languages"],"title":"TaskFramework"},"TaskInstanceOutput":{"properties":{"url":{"type":"string","title":"Url"},"tags":{"type":"string","title":"Tags"},"sdk_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sdk Version"},"kit_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kit Id"},"program_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Program Id"},"lesson_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lesson Id"},"stored_at":{"type":"string","format":"date-time","title":"Stored At"}},"type":"object","required":["url","tags","sdk_version","kit_id","program_id","lesson_id","stored_at"],"title":"TaskInstanceOutput"},"TaskLimits":{"properties":{"attempts":{"anyOf":[{"$ref":"#/components/schemas/SubmissionsLimit"},{"type":"null"}]},"ai_responses":{"anyOf":[{"$ref":"#/components/schemas/SubmissionsLimit"},{"type":"null"}]}},"type":"object","title":"TaskLimits"},"TaskListItemOutput":{"properties":{"uid":{"type":"string","title":"Uid"},"name":{"type":"string","title":"Name"},"source_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Ref"},"managed_by":{"type":"string","enum":["admin","source"],"title":"Managed By"},"pushed_at":{"type":"string","format":"date-time","title":"Pushed At"},"config":{"$ref":"#/components/schemas/TaskConfig"},"meta":{"$ref":"#/components/schemas/EntityMeta"}},"type":"object","required":["uid","name","source_ref","managed_by","pushed_at","config","meta"],"title":"TaskListItemOutput"},"TaskOutput":{"properties":{"uid":{"type":"string","title":"Uid"},"name":{"type":"string","title":"Name"},"source_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Ref"},"managed_by":{"type":"string","enum":["admin","source"],"title":"Managed By"},"pushed_at":{"type":"string","format":"date-time","title":"Pushed At"},"config":{"$ref":"#/components/schemas/TaskConfig"},"meta":{"$ref":"#/components/schemas/EntityMeta"},"text_files":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Text Files"}},"type":"object","required":["uid","name","source_ref","managed_by","pushed_at","config","meta","text_files"],"title":"TaskOutput"},"TaskQuota":{"properties":{"attempts":{"anyOf":[{"$ref":"#/components/schemas/SubmissionQuota"},{"type":"null"}]},"ai_responses":{"anyOf":[{"$ref":"#/components/schemas/SubmissionQuota"},{"type":"null"}]}},"type":"object","title":"TaskQuota"},"TaskQuotaInput":{"properties":{"repo_task_uid":{"type":"string","title":"Repo Task Uid"},"parent_task_uid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Task Uid"},"user":{"anyOf":[{"$ref":"#/components/schemas/AuthDetails"},{"type":"null"}]}},"type":"object","required":["repo_task_uid"],"title":"TaskQuotaInput"},"TaskResultOutput":{"properties":{"completion_status":{"$ref":"#/components/schemas/CompletionStatus","default":"not_attempted"},"success_status":{"$ref":"#/components/schemas/SuccessStatus","default":"unknown"},"score":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Score"},"progress":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Progress"},"revision":{"type":"integer","title":"Revision","default":0},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","title":"TaskResultOutput"},"TaskRuntimeConfig":{"properties":{"backend":{"$ref":"#/components/schemas/BackendType"},"framework":{"$ref":"#/components/schemas/FrameworkType"},"read_only":{"type":"boolean","title":"Read Only","default":false}},"type":"object","required":["backend","framework"],"title":"TaskRuntimeConfig"},"TaskStatsInput":{"properties":{"realm":{"type":"string","title":"Realm","description":"Realm ID in lowercase. Unique school identifier provided by PumpRoom Admin","default":"inzh","examples":["inzh"]},"from":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"From","description":"Inclusive submission creation time; timezone required. Converted to UTC."},"to":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"To","description":"Exclusive submission creation time; timezone required. Converted to UTC."},"repo_name":{"type":"string","title":"Repo Name","description":"Iternal name of task group (repo), case insensitive. It is a part of task URL in iframe.","examples":["Tasks-Demo"]},"task_name":{"type":"string","title":"Task Name","description":"Internal name of task, case insensitive. It is a part of task URL in iframe.","examples":["demo_task"]}},"type":"object","required":["repo_name","task_name"],"title":"TaskStatsInput","description":"Input parameters to get specific task statistics."},"TaskStatsOutput":{"properties":{"users":{"type":"integer","title":"Users","description":"Number of unique authenticated users with non-running submissions in the period"},"submissions":{"type":"integer","title":"Submissions","description":"Number of non-running submissions by authenticated users in the period"},"first_submitted":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"First Submitted","description":"First task submission by any users"},"last_submitted":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Submitted","description":"Last task submission by any users"}},"type":"object","required":["users","submissions","first_submitted","last_submitted"],"title":"TaskStatsOutput","description":"Output result of specific task statistics."},"TaskSubmissionData":{"properties":{"repo_task_uid":{"type":"string","title":"Repo Task Uid"},"backend_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Backend Data","description":"Additional data for backend"},"file_map":{"additionalProperties":{"$ref":"#/components/schemas/TaskFile"},"type":"object","title":"File Map","description":"Mapping of file paths to files"},"selected_file_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Selected File Path"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"}},"type":"object","required":["repo_task_uid"],"title":"TaskSubmissionData"},"TaskSubmissionIdentityOutput":{"properties":{"provider":{"$ref":"#/components/schemas/StoredIdentityProviderType"},"identifier":{"type":"string","title":"Identifier"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["provider","identifier","name"],"title":"TaskSubmissionIdentityOutput"},"TaskSubmissionInput":{"properties":{"data":{"$ref":"#/components/schemas/TaskSubmissionData"},"parent_data":{"anyOf":[{"$ref":"#/components/schemas/TaskContextData"},{"type":"null"}]},"task_context":{"anyOf":[{"$ref":"#/components/schemas/TaskContextInput"},{"type":"null"}]},"runtime_config":{"anyOf":[{"$ref":"#/components/schemas/TaskRuntimeConfig"},{"type":"null"}],"description":"Partially override default task configs"},"user":{"anyOf":[{"$ref":"#/components/schemas/AuthDetails"},{"type":"null"}]},"ui_version":{"type":"string","title":"Ui Version","default":"0.0.0"},"page_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page Url"},"tags":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tags"},"context":{"anyOf":[{"$ref":"#/components/schemas/LMSContextAPI"},{"type":"null"}]},"locale":{"anyOf":[{"$ref":"#/components/schemas/LocaleType"},{"type":"null"}]}},"type":"object","required":["data"],"title":"TaskSubmissionInput"},"TaskSubmissionOutput":{"properties":{"uid":{"type":"string","title":"Uid"},"status":{"$ref":"#/components/schemas/BackendTaskSubmissionStatus"},"ready":{"type":"boolean","title":"Ready","default":false},"stdout":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stdout"},"stderr":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stderr"},"compile_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Compile Output"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"backend_output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Backend Output"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"task_result":{"anyOf":[{"$ref":"#/components/schemas/TaskResultOutput"},{"type":"null"}]},"quota":{"$ref":"#/components/schemas/TaskQuota"}},"type":"object","required":["uid","status","created_at"],"title":"TaskSubmissionOutput"},"TaskSubmissionState":{"properties":{"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"file_map":{"additionalProperties":{"$ref":"#/components/schemas/TaskFile"},"type":"object","title":"File Map"},"selected_file_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Selected File Path"},"backend_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Backend Data"},"backend_state":{"additionalProperties":true,"type":"object","title":"Backend State"},"task_submission":{"anyOf":[{"$ref":"#/components/schemas/TaskSubmissionOutput"},{"type":"null"}]}},"type":"object","required":["content","file_map","selected_file_path","backend_data","backend_state","task_submission"],"title":"TaskSubmissionState"},"TaskSubmissionType":{"type":"string","enum":["submission","explanation","validation"]},"TaskSubmissionUserOutput":{"properties":{"uid":{"type":"string","title":"Uid"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"identities":{"items":{"$ref":"#/components/schemas/TaskSubmissionIdentityOutput"},"type":"array","title":"Identities"}},"type":"object","required":["uid","name","identities"],"title":"TaskSubmissionUserOutput"},"TaskUploadOutput":{"properties":{"pushed_at":{"type":"string","format":"date-time","title":"Pushed At"},"tasks_uploaded":{"type":"integer","title":"Tasks Uploaded","default":0},"tasks_created":{"type":"integer","title":"Tasks Created","default":0},"tasks_updated":{"type":"integer","title":"Tasks Updated","default":0},"tasks_restored":{"type":"integer","title":"Tasks Restored","default":0},"tasks_deleted":{"type":"integer","title":"Tasks Deleted","default":0},"tasks_unchanged":{"type":"integer","title":"Tasks Unchanged","default":0},"tasks_skipped":{"type":"integer","title":"Tasks Skipped","default":0},"skipped":{"items":{"$ref":"#/components/schemas/TaskUploadSkip"},"type":"array","title":"Skipped"}},"type":"object","required":["pushed_at"],"title":"TaskUploadOutput"},"TaskUploadSkip":{"properties":{"name":{"type":"string","title":"Name"},"reason":{"type":"string","enum":["already_exists","managed_by_admin","different_source","protected"],"title":"Reason"}},"type":"object","required":["name","reason"],"title":"TaskUploadSkip"},"ThemeStyle":{"type":"string","enum":["pumproom","retro","space"]},"ThemeType":{"type":"string","enum":["light","dark"]},"TildaProfileInput":{"properties":{"login":{"type":"string","title":"Login","description":"User email","examples":["swagger_test@inzhenerka.tech"]},"name":{"type":"string","title":"Name","description":"User name","examples":["Swagger Test"]},"lang":{"type":"string","title":"Lang","description":"User language","examples":["ru"]},"memberlogo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Memberlogo","description":"URL of the user logo","examples":["https://example.com/logo.png"]}},"type":"object","required":["login","name","lang"],"title":"TildaProfileInput","description":"Legacy raw Tilda LMS profile object."},"TransferIdentityInput":{"properties":{"realm":{"type":"string","title":"Realm","description":"Realm ID in lowercase. Unique school identifier provided by PumpRoom Admin","default":"inzh","examples":["inzh"]},"source_user_uid":{"type":"string","title":"Source User Uid"},"source_user_token":{"type":"string","title":"Source User Token"},"target_user_token":{"type":"string","title":"Target User Token"},"provider":{"$ref":"#/components/schemas/IdentityProviderType"},"provider_user_id":{"type":"string","title":"Provider User Id"}},"type":"object","required":["source_user_uid","source_user_token","target_user_token","provider","provider_user_id"],"title":"TransferIdentityInput"},"TransferIdentityResult":{"properties":{"task_submissions":{"type":"integer","title":"Task Submissions"},"task_states":{"type":"integer","title":"Task States"}},"type":"object","required":["task_submissions","task_states"],"title":"TransferIdentityResult"},"UIBackendInput":{"$ref":"#/components/schemas/BackendType"},"UIBackendOutput":{"type":"string"},"UIStateInput":{"properties":{"name":{"type":"string","title":"Name","description":"Unique name of the state on current page","examples":["state1"]},"value":{"anyOf":[{"type":"boolean"},{"type":"integer"},{"type":"string"},{"type":"null"}],"title":"Value","description":"State value","examples":["value 1"]}},"type":"object","required":["name","value"],"title":"UIStateInput"},"UIStateOutput":{"properties":{"name":{"type":"string","title":"Name","description":"Unique name of the state on current page","examples":["state1"]},"value":{"anyOf":[{"type":"boolean"},{"type":"integer"},{"type":"string"},{"type":"null"}],"title":"Value","description":"State value","examples":["value 1"]},"data_type":{"anyOf":[{"$ref":"#/components/schemas/StateDataType"},{"type":"null"}],"description":"Pythonic data type of state value","examples":["str"]}},"type":"object","required":["name","value","data_type"],"title":"UIStateOutput"},"UIStatesOutput":{"properties":{"states":{"items":{"$ref":"#/components/schemas/UIStateOutput"},"type":"array","title":"States"}},"type":"object","required":["states"],"title":"UIStatesOutput"},"UpdateAccountInput":{"properties":{"config":{"$ref":"#/components/schemas/AccountConfigUpdate"}},"additionalProperties":false,"type":"object","required":["config"],"title":"UpdateAccountInput"},"UpdateCharacterInput":{"properties":{"uid":{"type":"string","title":"Uid"},"config":{"$ref":"#/components/schemas/CharacterConfig"}},"type":"object","required":["uid","config"],"title":"UpdateCharacterInput"},"UpdateCourseInput":{"properties":{"uid":{"type":"string","title":"Uid"},"config":{"$ref":"#/components/schemas/CourseConfig"}},"type":"object","required":["uid","config"],"title":"UpdateCourseInput"},"UpdateDocumentFileInput":{"properties":{"uid":{"type":"string","title":"Uid"},"config":{"$ref":"#/components/schemas/DocumentFileConfig"}},"type":"object","required":["uid","config"],"title":"UpdateDocumentFileInput"},"UpdateDocumentStoreInput":{"properties":{"uid":{"type":"string","title":"Uid"},"config":{"$ref":"#/components/schemas/DocumentStoreConfig"}},"type":"object","required":["uid","config"],"title":"UpdateDocumentStoreInput"},"UpdateOpinionInput":{"properties":{"realm_id":{"type":"string","title":"Realm Id"},"opinion_uid":{"type":"string","title":"Opinion Uid"},"program_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Program Id"},"lesson_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lesson Id"}},"type":"object","required":["realm_id","opinion_uid","program_id","lesson_id"],"title":"UpdateOpinionInput"},"UpdateRealmInput":{"properties":{"realm_id":{"type":"string","title":"Realm Id"},"config":{"$ref":"#/components/schemas/RealmConfig"},"super_config":{"anyOf":[{"$ref":"#/components/schemas/RealmSuperConfig"},{"type":"null"}]}},"type":"object","required":["realm_id","config"],"title":"UpdateRealmInput"},"UpdateRepoInput":{"properties":{"uid":{"type":"string","title":"Uid"},"config":{"$ref":"#/components/schemas/RepoConfig"}},"type":"object","required":["uid","config"],"title":"UpdateRepoInput"},"UpdateTaskInput":{"properties":{"uid":{"type":"string","title":"Uid"},"config":{"anyOf":[{"$ref":"#/components/schemas/TaskConfig"},{"type":"null"}]},"text_files":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Text Files","description":"Omit to preserve files; null or {} clears all files"},"source_ref":{"anyOf":[{"type":"string","maxLength":2048,"minLength":1,"pattern":"^[^\\s\\x00-\\x1f\\x7f](?:[^\\x00-\\x1f\\x7f]*[^\\s\\x00-\\x1f\\x7f])?$"},{"type":"null"}],"title":"Source Ref"},"managed_by":{"anyOf":[{"type":"string","enum":["admin","source"]},{"type":"null"}],"title":"Managed By"},"protected":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Protected"}},"additionalProperties":false,"type":"object","required":["uid"],"title":"UpdateTaskInput"},"UploadDocumentFileInput":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"realm_id":{"type":"string","title":"Realm Id"},"document_store_uid":{"type":"string","title":"Document Store Uid"},"config":{"type":"string","title":"Config"}},"type":"object","required":["file","realm_id","document_store_uid","config"],"title":"UploadDocumentFileInput"},"UploadLoadRepoInput":{"properties":{"realm":{"type":"string","title":"Realm","description":"Realm ID in lowercase. Unique school identifier provided by PumpRoom Admin","default":"inzh","examples":["inzh"]},"url":{"type":"string","title":"Url"}},"type":"object","required":["url"],"title":"UploadLoadRepoInput"},"UploadLoadRepoOutput":{"properties":{"repo_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Repo Name"}},"type":"object","required":["repo_name"],"title":"UploadLoadRepoOutput"},"UploadTaskInput":{"properties":{"realm":{"type":"string","title":"Realm","description":"Realm ID in lowercase. Unique school identifier provided by PumpRoom Admin","default":"inzh","examples":["inzh"]},"repo_name":{"type":"string","title":"Repo Name","description":"Repository name"},"source_ref":{"anyOf":[{"type":"string","maxLength":2048,"minLength":1,"pattern":"^[^\\s\\x00-\\x1f\\x7f](?:[^\\x00-\\x1f\\x7f]*[^\\s\\x00-\\x1f\\x7f])?$"},{"type":"null"}],"title":"Source Ref"},"overwrite":{"type":"boolean","title":"Overwrite","default":false},"force_update":{"type":"boolean","title":"Force Update","default":false},"config":{"$ref":"#/components/schemas/PumpRoomTaskConfig"},"text_files":{"additionalProperties":{"type":"string"},"type":"object","title":"Text Files","description":"Mapping of text file paths to content"}},"additionalProperties":false,"type":"object","required":["repo_name","config"],"title":"UploadTaskInput"},"UserCompact":{"properties":{"id":{"type":"integer","title":"Id"},"uid":{"type":"string","title":"Uid"},"realm":{"type":"string","title":"Realm"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"photo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Photo Url"}},"type":"object","required":["id","uid","realm"],"title":"UserCompact"},"UserEventInput":{"properties":{"profile":{"anyOf":[{"$ref":"#/components/schemas/TildaProfileInput"},{"type":"null"}]},"user":{"anyOf":[{"$ref":"#/components/schemas/AuthDetails"},{"type":"null"}]},"url":{"type":"string","title":"Url","description":"URL of the LMS page","examples":["https://inzhenerka.tech/members/courses/course1/swagger_test_fake_url"]},"context":{"anyOf":[{"$ref":"#/components/schemas/LMSContextAPI"},{"type":"null"}]},"event":{"type":"string","title":"Event","description":"Name of the event","examples":["page_load"]},"details":{"additionalProperties":true,"type":"object","title":"Details","description":"Additional event details","default":{},"examples":[{}]},"sdk_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sdk Version","description":"Version of PumpRoom SDK"}},"type":"object","required":["url","event"],"title":"UserEventInput"},"UserOutput":{"properties":{"meta":{"$ref":"#/components/schemas/EntityMeta"},"uid":{"type":"string","title":"Uid"},"role":{"$ref":"#/components/schemas/UserRole"},"account":{"$ref":"#/components/schemas/AccountOutput"}},"type":"object","required":["meta","uid","role","account"],"title":"UserOutput"},"UserRole":{"type":"string","enum":["user","expert","admin"]},"UserStatsInput":{"properties":{"realm":{"type":"string","title":"Realm","description":"Realm ID in lowercase. Unique school identifier provided by PumpRoom Admin","default":"inzh","examples":["inzh"]},"from":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"From","description":"Inclusive submission creation time; timezone required. Converted to UTC."},"to":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"To","description":"Exclusive submission creation time; timezone required. Converted to UTC."},"user_id":{"type":"string","title":"User Id","description":"Unique ID of the user used for authentication. Usually it is email.","examples":["demo_user@inzhenerka.tech"]},"provider":{"$ref":"#/components/schemas/IdentityProviderType","description":"Identity provider used for authentication","default":"lms","examples":["lms"]}},"type":"object","required":["user_id"],"title":"UserStatsInput","description":"Input parameters to get specific user submissions statistics."},"UserStatsOutput":{"properties":{"tasks":{"items":{"$ref":"#/components/schemas/UserTaskStats"},"type":"array","title":"Tasks","description":"Statistics per task"}},"type":"object","required":["tasks"],"title":"UserStatsOutput","description":"Output result of specific user submissions statistics."},"UserTaskStats":{"properties":{"task_result":{"anyOf":[{"$ref":"#/components/schemas/TaskResultOutput"},{"type":"null"}],"description":"Current learning result, independent of the submission period; null if unavailable"},"task_uid":{"type":"string","title":"Task Uid","description":"Unique internal ID of the task"},"repo_name":{"type":"string","title":"Repo Name","description":"Iternal name of task group (repo) in lowercase. It is a part of task URL in iframe.","examples":["tasks-demo"]},"task_name":{"type":"string","title":"Task Name","description":"Internal name of task in lowercase. It is a part of task URL in iframe.","examples":["demo_task"]},"submissions":{"type":"integer","title":"Submissions","description":"Number of non-running task submissions by the user in the requested period"},"success":{"type":"boolean","title":"Success","description":"At least one non-running submission in the period had technical status success; not a passing grade"},"first_submitted":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"First Submitted","description":"First time when the user submitted a task solution (UTC time zone)"},"last_submitted":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Submitted","description":"Last time when the user submitted a task solution (UTC time zone)"}},"type":"object","required":["task_uid","repo_name","task_name","submissions","success"],"title":"UserTaskStats","description":"Output result of specific user task submissions statistics."},"UserTaskStatsInput":{"properties":{"realm":{"type":"string","title":"Realm","description":"Realm ID in lowercase. Unique school identifier provided by PumpRoom Admin","default":"inzh","examples":["inzh"]},"from":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"From","description":"Inclusive submission creation time; timezone required. Converted to UTC."},"to":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"To","description":"Exclusive submission creation time; timezone required. Converted to UTC."},"user_id":{"type":"string","title":"User Id","description":"Unique ID of the user used for authentication. Usually it is email.","examples":["demo_user@inzhenerka.tech"]},"provider":{"$ref":"#/components/schemas/IdentityProviderType","description":"Identity provider used for authentication","default":"lms","examples":["lms"]},"repo_name":{"type":"string","title":"Repo Name","description":"Iternal name of task group (repo), case insensitive. It is a part of task URL in iframe.","examples":["Tasks-Demo"]},"task_name":{"type":"string","title":"Task Name","description":"Internal name of task, case insensitive. It is a part of task URL in iframe.","examples":["demo_task"]}},"type":"object","required":["user_id","repo_name","task_name"],"title":"UserTaskStatsInput","description":"Input parameters to get task submission statistics for a specific user and task."},"UserTaskStatsOutput":{"properties":{"task_result":{"anyOf":[{"$ref":"#/components/schemas/TaskResultOutput"},{"type":"null"}],"description":"Current learning result, independent of the submission period; null if unavailable"},"incomplete":{"type":"integer","title":"Incomplete","description":"Number of incomplete submissions, including partial quiz responses","default":0},"success":{"type":"integer","title":"Success","description":"Number of submissions with technical status success; not necessarily passed assessments","default":0},"fail":{"type":"integer","title":"Fail","description":"Number of failed task submissions (student did not pass the test or applied incorrect submission)","default":0},"internal_error":{"type":"integer","title":"Internal Error","description":"Number of internal server errors (platform problems)","default":0},"first_submitted":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"First Submitted","description":"First time when the user submitted a task solution (UTC time zone)"},"last_submitted":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Submitted","description":"Last time when the user submitted a task solution (UTC time zone)"}},"type":"object","title":"UserTaskStatsOutput","description":"Output result of task submission statistics for a specific user and task."},"ValidateConfigInput":{"properties":{"config_yml":{"type":"string","title":"Config Yml"}},"type":"object","required":["config_yml"],"title":"ValidateConfigInput","description":"Input model to validate and return when validating Inzhenerka apps configuration."},"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"},"VerifyTokenInput":{"properties":{"realm":{"type":"string","title":"Realm","description":"Realm ID in lowercase. Unique school identifier provided by PumpRoom Admin","default":"inzh","examples":["inzh"]},"uid":{"type":"string","title":"Uid"},"token":{"type":"string","title":"Token"},"context":{"anyOf":[{"$ref":"#/components/schemas/LMSContextAPI"},{"type":"null"}]}},"type":"object","required":["uid","token"],"title":"VerifyTokenInput"},"VerifyTokenResult":{"properties":{"is_valid":{"type":"boolean","title":"Is Valid"},"is_admin":{"type":"boolean","title":"Is Admin"}},"type":"object","required":["is_valid","is_admin"],"title":"VerifyTokenResult"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"},"APIKeyHeader":{"type":"apiKey","in":"header","name":"X-API-KEY"}}},"tags":[{"name":"Analytics","description":"Official API to get analytics and student progress 🔒"},{"name":"Monitoring","description":"Monitor service availability 🌐"},{"name":"Info","description":"Publicly available information about the service 🌐"},{"name":"Schema","description":"Configuration schemas for various tasks 🥷"},{"name":"Auth","description":"Internal methods to support PumpRoom SDK authentication 🥷"},{"name":"Integration","description":"Methods to support integration with external systems 🥷"},{"name":"Upload","description":"Internal methods to publish tasks 🥷"},{"name":"Schema","description":"Internal methods to validate file schemas 🥷"},{"name":"Task","description":"Internal methods to support PumpRoom UI and LMS task operations 🥷"},{"name":"Course","description":"Internal methods to support LMS course operations 🥷"},{"name":"Admin","description":"Internal methods to support PumpRoom Admin portal 🥷"},{"name":"Tracker","description":"Internal methods to support Inzhenerka LMS 🥷"},{"name":"Webhook","description":"External integrations 🥷"}]}