{"openapi":"3.1.0","info":{"title":"translation-service","version":"0.1.0"},"paths":{"/healthz":{"get":{"tags":["health"],"summary":"Healthz","operationId":"healthz_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Healthz Healthz Get"}}}}}}},"/readyz":{"get":{"tags":["health"],"summary":"Readyz","operationId":"readyz_readyz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/languages":{"get":{"tags":["languages"],"summary":"Languages","operationId":"languages_v1_languages_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LanguagesResponse"}}}}}}},"/v1/translate":{"post":{"tags":["translate"],"summary":"Translate","operationId":"translate_v1_translate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/v1/translate/batch":{"post":{"tags":["translate"],"summary":"Translate Batch","operationId":"translate_batch_v1_translate_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslateBatchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslateBatchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/":{"get":{"tags":["ui"],"summary":"Index","operationId":"index__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/ui/translate":{"post":{"tags":["ui"],"summary":"Ui Translate","operationId":"ui_translate_ui_translate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"BatchItemResult":{"properties":{"index":{"type":"integer","title":"Index"},"translation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Translation"},"chars":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chars"},"error":{"anyOf":[{"$ref":"#/components/schemas/ErrorBody"},{"type":"null"}]}},"type":"object","required":["index"],"title":"BatchItemResult"},"ErrorBody":{"properties":{"code":{"$ref":"#/components/schemas/ErrorCode"},"message":{"type":"string","title":"Message"},"detail":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Detail"}},"type":"object","required":["code","message"],"title":"ErrorBody"},"ErrorCode":{"type":"string","enum":["input_too_long","unsupported_language_pair","rate_limited","not_ready","queue_full","invalid_api_key","validation_error","request_timeout","forbidden"],"title":"ErrorCode"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"LanguagePair":{"properties":{"source":{"type":"string","title":"Source"},"target":{"type":"string","title":"Target"},"model":{"type":"string","title":"Model"}},"type":"object","required":["source","target","model"],"title":"LanguagePair"},"LanguagesResponse":{"properties":{"pairs":{"items":{"$ref":"#/components/schemas/LanguagePair"},"type":"array","title":"Pairs"}},"type":"object","required":["pairs"],"title":"LanguagesResponse"},"TranslateBatchRequest":{"properties":{"texts":{"items":{"type":"string","minLength":1},"type":"array","minItems":1,"title":"Texts"},"source":{"type":"string","title":"Source","default":"en"},"target":{"type":"string","title":"Target","default":"so"}},"type":"object","required":["texts"],"title":"TranslateBatchRequest"},"TranslateBatchResponse":{"properties":{"source":{"type":"string","title":"Source"},"target":{"type":"string","title":"Target"},"model":{"type":"string","title":"Model"},"results":{"items":{"$ref":"#/components/schemas/BatchItemResult"},"type":"array","title":"Results"}},"type":"object","required":["source","target","model","results"],"title":"TranslateBatchResponse"},"TranslateRequest":{"properties":{"text":{"type":"string","minLength":1,"title":"Text"},"source":{"type":"string","title":"Source","default":"en"},"target":{"type":"string","title":"Target","default":"so"}},"type":"object","required":["text"],"title":"TranslateRequest"},"TranslateResponse":{"properties":{"translation":{"type":"string","title":"Translation"},"source":{"type":"string","title":"Source"},"target":{"type":"string","title":"Target"},"model":{"type":"string","title":"Model"},"chars":{"type":"integer","title":"Chars"}},"type":"object","required":["translation","source","target","model","chars"],"title":"TranslateResponse"},"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":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key"}}}}