{"openapi":"3.1.0","info":{"title":"FastAPI","version":"0.1.0"},"paths":{"/healthz":{"get":{"summary":"Healthz","operationId":"healthz_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/version":{"get":{"summary":"Version","operationId":"version_version_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/":{"get":{"summary":"Spa","description":"Catchall route to serve the SPA.","operationId":"spa__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/api/auth/login":{"get":{"summary":"Login","operationId":"login_api_auth_login_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/auth/register":{"get":{"summary":"Register","operationId":"register_api_auth_register_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/auth/complete":{"get":{"summary":"Complete","operationId":"complete_api_auth_complete_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/auth/firebase":{"get":{"summary":"Firebase","description":"Returns the firebase custom token for the currently logged in user","operationId":"firebase_api_auth_firebase_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/auth/whoami":{"get":{"summary":"Whoami","description":"Return the current user's profile.","operationId":"whoami_api_auth_whoami_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/auth/logout":{"get":{"summary":"Logout","description":"Log the user out.","operationId":"logout_api_auth_logout_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/auth/migrate":{"post":{"summary":"Migrate User","description":"Migrate the current user from Firebase to the PSDC API.","operationId":"migrate_user_api_auth_migrate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/auth/delete_projects":{"post":{"summary":"Delete Projects","description":"Migrate the current user from Firebase to the PSDC API.","operationId":"delete_projects_api_auth_delete_projects_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/auth/get_user_by_email":{"get":{"summary":"Getuserbyemail","operationId":"getUserByEmail_api_auth_get_user_by_email_get","parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/get/{user_id}":{"get":{"summary":"Getuser","operationId":"getUser_api_auth_get__user_id__get","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/projects/{path}":{"get":{"summary":"Get Proxy","description":"Proxy GET requests to the PyScript API.","operationId":"get_proxy_api_projects__path__get","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Post Proxy","description":"Proxy POST requests to the PyScript API.","operationId":"post_proxy_api_projects__path__post","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"summary":"Put Proxy","description":"Proxy PUT requests to the PyScript API.","operationId":"put_proxy_api_projects__path__put","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Patch Proxy","description":"Proxy PATCH requests to the PyScript API.","operationId":"patch_proxy_api_projects__path__patch","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete Proxy","description":"Proxy DELETE requests to the PyScript API.","operationId":"delete_proxy_api_projects__path__delete","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/classrooms/":{"get":{"summary":"List Classrooms","operationId":"list_classrooms_api_classrooms__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Create Classroom","operationId":"create_classroom_api_classrooms__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateClassroomRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/classrooms/{classroom_id}":{"get":{"summary":"Get Classroom By Id","operationId":"get_classroom_by_id_api_classrooms__classroom_id__get","parameters":[{"name":"classroom_id","in":"path","required":true,"schema":{"type":"string","title":"Classroom Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete Classroom","operationId":"delete_classroom_api_classrooms__classroom_id__delete","parameters":[{"name":"classroom_id","in":"path","required":true,"schema":{"type":"string","title":"Classroom Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/classrooms/{classroom_id}/code":{"put":{"summary":"Add Classroom Code","operationId":"add_classroom_code_api_classrooms__classroom_id__code_put","parameters":[{"name":"classroom_id","in":"path","required":true,"schema":{"type":"string","title":"Classroom Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/classrooms/{classroom_id}/users":{"post":{"summary":"Add User To Classroom","operationId":"add_user_to_classroom_api_classrooms__classroom_id__users_post","parameters":[{"name":"classroom_id","in":"path","required":true,"schema":{"type":"string","title":"Classroom Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddUserRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"List Classroom Users","operationId":"list_classroom_users_api_classrooms__classroom_id__users_get","parameters":[{"name":"classroom_id","in":"path","required":true,"schema":{"type":"string","title":"Classroom Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/classrooms/join_by_code":{"post":{"summary":"Join Classroom By Code","operationId":"join_classroom_by_code_api_classrooms_join_by_code_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinByCodeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/classrooms/{classroom_id}/users/{user_id}":{"put":{"summary":"Update User","operationId":"update_user_api_classrooms__classroom_id__users__user_id__put","parameters":[{"name":"classroom_id","in":"path","required":true,"schema":{"type":"string","title":"Classroom Id"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserRoleRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Remove User From Classroom","operationId":"remove_user_from_classroom_api_classrooms__classroom_id__users__user_id__delete","parameters":[{"name":"classroom_id","in":"path","required":true,"schema":{"type":"string","title":"Classroom Id"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/classrooms/{classroom_id}/assignments/categories":{"post":{"summary":"Create Category","operationId":"create_category_api_classrooms__classroom_id__assignments_categories_post","parameters":[{"name":"classroom_id","in":"path","required":true,"schema":{"type":"string","title":"Classroom Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCategoryRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"List Categories","operationId":"list_categories_api_classrooms__classroom_id__assignments_categories_get","parameters":[{"name":"classroom_id","in":"path","required":true,"schema":{"type":"string","title":"Classroom Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/classrooms/{classroom_id}/assignments":{"post":{"summary":"Create Assignment","operationId":"create_assignment_api_classrooms__classroom_id__assignments_post","parameters":[{"name":"classroom_id","in":"path","required":true,"schema":{"type":"string","title":"Classroom Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAssignmentRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"List Assignments","operationId":"list_assignments_api_classrooms__classroom_id__assignments_get","parameters":[{"name":"classroom_id","in":"path","required":true,"schema":{"type":"string","title":"Classroom Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/classrooms/{classroom_id}/assignments/{assignment_id}":{"get":{"summary":"Get Assignment By Id","operationId":"get_assignment_by_id_api_classrooms__classroom_id__assignments__assignment_id__get","parameters":[{"name":"classroom_id","in":"path","required":true,"schema":{"type":"string","title":"Classroom Id"}},{"name":"assignment_id","in":"path","required":true,"schema":{"type":"string","title":"Assignment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"summary":"Update Assignment","operationId":"update_assignment_api_classrooms__classroom_id__assignments__assignment_id__put","parameters":[{"name":"classroom_id","in":"path","required":true,"schema":{"type":"string","title":"Classroom Id"}},{"name":"assignment_id","in":"path","required":true,"schema":{"type":"string","title":"Assignment Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAssignmentRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete Assignment","operationId":"delete_assignment_api_classrooms__classroom_id__assignments__assignment_id__delete","parameters":[{"name":"classroom_id","in":"path","required":true,"schema":{"type":"string","title":"Classroom Id"}},{"name":"assignment_id","in":"path","required":true,"schema":{"type":"string","title":"Assignment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/classrooms/{classroom_id}/assignments/{assignment_id}/publish":{"put":{"summary":"Publish Assignment","operationId":"publish_assignment_api_classrooms__classroom_id__assignments__assignment_id__publish_put","parameters":[{"name":"classroom_id","in":"path","required":true,"schema":{"type":"string","title":"Classroom Id"}},{"name":"assignment_id","in":"path","required":true,"schema":{"type":"string","title":"Assignment Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublishAssignmentRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/classrooms/{classroom_id}/assignments/{assignment_id}/submissions":{"post":{"summary":"Create Assignment Submission","operationId":"create_assignment_submission_api_classrooms__classroom_id__assignments__assignment_id__submissions_post","parameters":[{"name":"classroom_id","in":"path","required":true,"schema":{"type":"string","title":"Classroom Id"}},{"name":"assignment_id","in":"path","required":true,"schema":{"type":"string","title":"Assignment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"List Assignment Submissions","operationId":"list_assignment_submissions_api_classrooms__classroom_id__assignments__assignment_id__submissions_get","parameters":[{"name":"classroom_id","in":"path","required":true,"schema":{"type":"string","title":"Classroom Id"}},{"name":"assignment_id","in":"path","required":true,"schema":{"type":"string","title":"Assignment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/classrooms/{classroom_id}/assignments/{assignment_id}/submissions/{submission_id}":{"get":{"summary":"Get Assignment Submission","operationId":"get_assignment_submission_api_classrooms__classroom_id__assignments__assignment_id__submissions__submission_id__get","parameters":[{"name":"classroom_id","in":"path","required":true,"schema":{"type":"string","title":"Classroom Id"}},{"name":"assignment_id","in":"path","required":true,"schema":{"type":"string","title":"Assignment Id"}},{"name":"submission_id","in":"path","required":true,"schema":{"type":"string","title":"Submission Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/classrooms/{classroom_id}/assignments/{assignment_id}/submissions/{submission_id}/submit":{"put":{"summary":"Submit Assignment","operationId":"submit_assignment_api_classrooms__classroom_id__assignments__assignment_id__submissions__submission_id__submit_put","parameters":[{"name":"classroom_id","in":"path","required":true,"schema":{"type":"string","title":"Classroom Id"}},{"name":"assignment_id","in":"path","required":true,"schema":{"type":"string","title":"Assignment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/classrooms/{classroom_id}/assignments/{assignment_id}/submissions/{submission_id}/unsubmit":{"put":{"summary":"Unsubmit Assignment","operationId":"unsubmit_assignment_api_classrooms__classroom_id__assignments__assignment_id__submissions__submission_id__unsubmit_put","parameters":[{"name":"classroom_id","in":"path","required":true,"schema":{"type":"string","title":"Classroom Id"}},{"name":"assignment_id","in":"path","required":true,"schema":{"type":"string","title":"Assignment Id"}},{"name":"submission_id","in":"path","required":true,"schema":{"type":"string","title":"Submission Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/classrooms/{classroom_id}/assignments/{assignment_id}/submissions/{submission_id}/feedback":{"post":{"summary":"Add Assignment Feedback","operationId":"add_assignment_feedback_api_classrooms__classroom_id__assignments__assignment_id__submissions__submission_id__feedback_post","parameters":[{"name":"classroom_id","in":"path","required":true,"schema":{"type":"string","title":"Classroom Id"}},{"name":"assignment_id","in":"path","required":true,"schema":{"type":"string","title":"Assignment Id"}},{"name":"submission_id","in":"path","required":true,"schema":{"type":"string","title":"Submission Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddAssignmentFeedbackRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"List Assignment Feedback","operationId":"list_assignment_feedback_api_classrooms__classroom_id__assignments__assignment_id__submissions__submission_id__feedback_get","parameters":[{"name":"classroom_id","in":"path","required":true,"schema":{"type":"string","title":"Classroom Id"}},{"name":"assignment_id","in":"path","required":true,"schema":{"type":"string","title":"Assignment Id"}},{"name":"submission_id","in":"path","required":true,"schema":{"type":"string","title":"Submission Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pyscript/pyodide/pyodide.js":{"get":{"summary":"Get Pyodide File","operationId":"get_pyodide_file_api_pyscript_pyodide_pyodide_js_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/pyscript/pyodide/{path}":{"get":{"summary":"Get Pyodide File","operationId":"get_pyodide_file_api_pyscript_pyodide__path__get","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pyscript/{path}":{"get":{"summary":"Get Pyscript File","operationId":"get_pyscript_file_api_pyscript__path__get","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/project/{user_id}/{app_id}/output":{"get":{"summary":"Get App","operationId":"get_app_project__user_id___app_id__output_get","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/project/{user_id}/{app_id}/output/{file_path}":{"get":{"summary":"Get App File","operationId":"get_app_file_project__user_id___app_id__output__file_path__get","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","title":"App Id"}},{"name":"file_path","in":"path","required":true,"schema":{"type":"string","title":"File Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AddAssignmentFeedbackRequest":{"properties":{"type":{"$ref":"#/components/schemas/AssignmentFeedbackType"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},"type":"object","required":["type"],"title":"AddAssignmentFeedbackRequest"},"AddUserRequest":{"properties":{"email":{"type":"string","title":"Email"},"role":{"$ref":"#/components/schemas/Role"}},"type":"object","required":["email","role"],"title":"AddUserRequest"},"AssignmentFeedbackType":{"type":"string","enum":["submitted","unsubmitted","comment"],"title":"AssignmentFeedbackType"},"CreateAssignmentProjectRequest":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"mode":{"allOf":[{"$ref":"#/components/schemas/ProjectMode"}]},"type":{"allOf":[{"$ref":"#/components/schemas/ProjectType"}]}},"type":"object","title":"CreateAssignmentProjectRequest"},"CreateAssignmentRequest":{"properties":{"name":{"type":"string","title":"Name"},"project":{"$ref":"#/components/schemas/CreateAssignmentProjectRequest"},"instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions","default":""},"due_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Due Date"},"category_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category Id"}},"type":"object","required":["name","project"],"title":"CreateAssignmentRequest"},"CreateCategoryRequest":{"properties":{"name":{"type":"string","title":"Name"}},"type":"object","required":["name"],"title":"CreateCategoryRequest"},"CreateClassroomRequest":{"properties":{"name":{"type":"string","title":"Name"}},"type":"object","required":["name"],"title":"CreateClassroomRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"JoinByCodeRequest":{"properties":{"code":{"type":"string","title":"Code"},"user_id":{"type":"string","title":"User Id"}},"type":"object","required":["code","user_id"],"title":"JoinByCodeRequest"},"ProjectMode":{"type":"string","enum":["python","html","microbit","circuitpython"],"title":"ProjectMode","description":"The mode of a project (EduBlocks specific for now)."},"ProjectType":{"type":"string","enum":["blocks","text"],"title":"ProjectType","description":"The type of a project."},"PublishAssignmentRequest":{"properties":{"due_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Due Date"}},"type":"object","title":"PublishAssignmentRequest"},"Role":{"type":"string","enum":["admin","student"],"title":"Role"},"UpdateAssignmentRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions"},"due_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Due Date"},"category_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category Id"},"sort_order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sort Order"},"published":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Published","default":false}},"type":"object","title":"UpdateAssignmentRequest"},"UpdateUserRoleRequest":{"properties":{"role":{"$ref":"#/components/schemas/Role"}},"type":"object","required":["role"],"title":"UpdateUserRoleRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}