{"openapi":"3.1.0","info":{"title":"tlgo-render","version":"1.0.0"},"paths":{"/healthz":{"get":{"summary":"Healthz","operationId":"healthz_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Healthz Healthz Get"}}}}}}},"/api/v1/render":{"post":{"summary":"Create","operationId":"create_api_v1_render_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenderIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/render/{job_id}":{"get":{"summary":"Status","operationId":"status_api_v1_render__job_id__get","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/JobOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete","description":"Готовый ролик удаляется; выполняемое или ожидающее задание отменяется (воркер остановит FFmpeg).","operationId":"delete_api_v1_render__job_id__delete","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/render/{job_id}/video":{"get":{"summary":"Video","operationId":"video_api_v1_render__job_id__video_get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/":{"get":{"summary":"Index","operationId":"index__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"JobOut":{"properties":{"id":{"type":"string","title":"Id"},"status":{"type":"string","enum":["queued","processing","completed","failed"],"title":"Status"},"progress":{"type":"integer","title":"Progress","default":0},"frames":{"type":"integer","title":"Frames","default":0},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"size_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size Bytes"},"video_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Video Url"}},"type":"object","required":["id","status"],"title":"JobOut"},"RenderIn":{"properties":{"src_dir":{"type":"string","maxLength":255,"title":"Src Dir","description":"папка со снимками относительно корня снимков"},"resolution":{"type":"string","enum":["720p","1080p","4k"],"title":"Resolution","default":"1080p"},"fps":{"type":"integer","enum":[15,25,30,60],"title":"Fps","default":25},"step":{"type":"integer","maximum":60.0,"minimum":1.0,"title":"Step","default":1},"overlay":{"type":"boolean","title":"Overlay","default":false},"rotate":{"type":"integer","enum":[0,90,180,270],"title":"Rotate","default":0},"tz":{"type":"string","maxLength":64,"title":"Tz","default":"Europe/Moscow"}},"type":"object","required":["src_dir"],"title":"RenderIn"},"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"}}}}