language-learning-app/frontend/src/lib/openapi.json
2026-03-29 08:54:27 +01:00

1 line
No EOL
16 KiB
JSON

{"openapi":"3.1.0","info":{"title":"Language Learning API","version":"0.1.0"},"paths":{"/api/pos/":{"post":{"tags":["api","api","pos"],"summary":"Analyze Pos","operationId":"analyze_pos_api_pos__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/POSRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/POSResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/translate":{"get":{"tags":["api","api","translate"],"summary":"Translate text to a target language","operationId":"translate_text_api_translate_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"text","in":"query","required":true,"schema":{"type":"string","title":"Text"}},{"name":"target_language","in":"query","required":true,"schema":{"type":"string","title":"Target Language"}},{"name":"context","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Context"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/generate":{"post":{"tags":["api","api"],"summary":"Create Generation Job","operationId":"create_generation_job_api_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationRequest"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/jobs/":{"get":{"tags":["api"],"summary":"Get Jobs","operationId":"get_jobs_api_jobs__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobListResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/jobs/{job_id}":{"get":{"tags":["api"],"summary":"Get Job","operationId":"get_job_api_jobs__job_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/jobs/{job_id}/regenerate-audio":{"post":{"tags":["api"],"summary":"Regenerate Audio","operationId":"regenerate_audio_api_jobs__job_id__regenerate_audio_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Regenerate Audio Api Jobs Job Id Regenerate Audio Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/learnable_languages":{"post":{"tags":["api","api"],"summary":"Upsert Learnable Language","operationId":"upsert_learnable_language_api_learnable_languages_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearnableLanguageRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearnableLanguageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/bff/articles":{"get":{"tags":["bff","bff","articles"],"summary":"List Articles","operationId":"list_articles_bff_articles_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"target_language","in":"query","required":false,"schema":{"type":"string","default":"fr","title":"Target Language"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArticleListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/bff/articles/{article_id}":{"get":{"tags":["bff","bff","articles"],"summary":"Get Article","operationId":"get_article_bff_articles__article_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"article_id","in":"path","required":true,"schema":{"type":"string","title":"Article Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArticleDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/bff/user_profile":{"get":{"tags":["bff","bff"],"summary":"Get User Profile","operationId":"get_user_profile_bff_user_profile_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfileResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/auth/register":{"post":{"tags":["auth"],"summary":"Register","operationId":"register_auth_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/login":{"post":{"tags":["auth"],"summary":"Login","operationId":"login_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/media/{filename}":{"get":{"tags":["media"],"summary":"Get Media File","operationId":"get_media_file_media__filename__get","parameters":[{"name":"filename","in":"path","required":true,"schema":{"type":"string","title":"Filename"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Health Get"}}}}}}}},"components":{"schemas":{"ArticleDetail":{"properties":{"id":{"type":"string","title":"Id"},"published_at":{"type":"string","format":"date-time","title":"Published At"},"source_language":{"type":"string","title":"Source Language"},"source_title":{"type":"string","title":"Source Title"},"source_body":{"type":"string","title":"Source Body"},"target_language":{"type":"string","title":"Target Language"},"target_complexities":{"items":{"type":"string"},"type":"array","title":"Target Complexities"},"target_title":{"type":"string","title":"Target Title"},"target_body":{"type":"string","title":"Target Body"},"target_audio_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Audio Url"},"target_body_pos":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Target Body Pos"},"target_body_transcript":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Target Body Transcript"}},"type":"object","required":["id","published_at","source_language","source_title","source_body","target_language","target_complexities","target_title","target_body","target_audio_url","target_body_pos","target_body_transcript"],"title":"ArticleDetail"},"ArticleItem":{"properties":{"id":{"type":"string","title":"Id"},"published_at":{"type":"string","format":"date-time","title":"Published At"},"source_language":{"type":"string","title":"Source Language"},"source_title":{"type":"string","title":"Source Title"},"target_language":{"type":"string","title":"Target Language"},"target_complexities":{"items":{"type":"string"},"type":"array","title":"Target Complexities"},"target_title":{"type":"string","title":"Target Title"}},"type":"object","required":["id","published_at","source_language","source_title","target_language","target_complexities","target_title"],"title":"ArticleItem"},"ArticleListResponse":{"properties":{"articles":{"items":{"$ref":"#/components/schemas/ArticleItem"},"type":"array","title":"Articles"}},"type":"object","required":["articles"],"title":"ArticleListResponse"},"GenerationRequest":{"properties":{"target_language":{"type":"string","title":"Target Language"},"complexity_level":{"type":"string","title":"Complexity Level"},"input_texts":{"items":{"type":"string"},"type":"array","title":"Input Texts"},"source_language":{"type":"string","title":"Source Language","default":"en"}},"type":"object","required":["target_language","complexity_level","input_texts"],"title":"GenerationRequest"},"GenerationResponse":{"properties":{"job_id":{"type":"string","title":"Job Id"}},"type":"object","required":["job_id"],"title":"GenerationResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"JobListResponse":{"properties":{"jobs":{"items":{"$ref":"#/components/schemas/JobSummary"},"type":"array","title":"Jobs"}},"type":"object","required":["jobs"],"title":"JobListResponse"},"JobResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"status":{"type":"string","title":"Status"},"source_language":{"type":"string","title":"Source Language"},"target_language":{"type":"string","title":"Target Language"},"complexity_level":{"type":"string","title":"Complexity Level"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"generated_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Generated Text"},"generated_text_pos":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Generated Text Pos"},"translated_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Translated Text"},"translated_text_pos":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Translated Text Pos"},"input_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Summary"},"audio_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Audio Url"},"audio_transcript":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Audio Transcript"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"}},"type":"object","required":["id","status","source_language","target_language","complexity_level","created_at"],"title":"JobResponse"},"JobSummary":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"}},"type":"object","required":["id","status","created_at"],"title":"JobSummary"},"LearnableLanguageItem":{"properties":{"id":{"type":"string","title":"Id"},"source_language":{"type":"string","title":"Source Language"},"target_language":{"type":"string","title":"Target Language"},"proficiencies":{"items":{"type":"string"},"type":"array","title":"Proficiencies"}},"type":"object","required":["id","source_language","target_language","proficiencies"],"title":"LearnableLanguageItem"},"LearnableLanguageRequest":{"properties":{"source_language":{"type":"string","title":"Source Language"},"target_language":{"type":"string","title":"Target Language"},"proficiencies":{"items":{"type":"string"},"type":"array","title":"Proficiencies"}},"type":"object","required":["source_language","target_language","proficiencies"],"title":"LearnableLanguageRequest"},"LearnableLanguageResponse":{"properties":{"id":{"type":"string","title":"Id"},"source_language":{"type":"string","title":"Source Language"},"target_language":{"type":"string","title":"Target Language"},"proficiencies":{"items":{"type":"string"},"type":"array","title":"Proficiencies"}},"type":"object","required":["id","source_language","target_language","proficiencies"],"title":"LearnableLanguageResponse"},"LoginRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"LoginRequest"},"POSRequest":{"properties":{"text":{"type":"string","title":"Text"},"language":{"type":"string","title":"Language"}},"type":"object","required":["text","language"],"title":"POSRequest"},"POSResponse":{"properties":{"language":{"type":"string","title":"Language"},"tokens":{"items":{"$ref":"#/components/schemas/TokenInfo"},"type":"array","title":"Tokens"}},"type":"object","required":["language","tokens"],"title":"POSResponse"},"RegisterRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"RegisterRequest"},"TokenInfo":{"properties":{"text":{"type":"string","title":"Text"},"lemma":{"type":"string","title":"Lemma"},"pos":{"type":"string","title":"Pos"},"tag":{"type":"string","title":"Tag"},"dep":{"type":"string","title":"Dep"},"is_stop":{"type":"boolean","title":"Is Stop"}},"type":"object","required":["text","lemma","pos","tag","dep","is_stop"],"title":"TokenInfo"},"TokenResponse":{"properties":{"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","title":"Token Type","default":"bearer"}},"type":"object","required":["access_token"],"title":"TokenResponse"},"TranslationResponse":{"properties":{"text":{"type":"string","title":"Text"},"target_language":{"type":"string","title":"Target Language"},"translated_text":{"type":"string","title":"Translated Text"}},"type":"object","required":["text","target_language","translated_text"],"title":"TranslationResponse"},"UserProfileResponse":{"properties":{"learnable_languages":{"items":{"$ref":"#/components/schemas/LearnableLanguageItem"},"type":"array","title":"Learnable Languages"}},"type":"object","required":["learnable_languages"],"title":"UserProfileResponse"},"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"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}