{
  "openapi": "3.1.0",
  "info": {
    "title": "OmniVoice WebApp",
    "version": "0.5.1"
  },
  "paths": {
    "/api/health": {
      "get": {
        "summary": "Health",
        "operationId": "health_api_health_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HealthResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/system/info": {
      "get": {
        "summary": "System Info",
        "operationId": "system_info_api_system_info_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/debug/audio-logs": {
      "get": {
        "summary": "Debug Audio Logs",
        "description": "Debug endpoint: return audio pipeline debug logs.",
        "operationId": "debug_audio_logs_api_debug_audio_logs_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/system/version": {
      "get": {
        "summary": "System Version",
        "operationId": "system_version_api_system_version_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/v1/models": {
      "get": {
        "summary": "Openai Compatible Models",
        "operationId": "openai_compatible_models_v1_models_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/system/cleanup/config": {
      "get": {
        "summary": "System Cleanup Config",
        "operationId": "system_cleanup_config_api_system_cleanup_config_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/system/cleanup/run": {
      "post": {
        "summary": "System Cleanup Run",
        "operationId": "system_cleanup_run_api_system_cleanup_run_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/studio/auth/guest": {
      "post": {
        "summary": "Studio Auth Guest",
        "operationId": "studio_auth_guest_api_studio_auth_guest_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/studio/auth/register": {
      "post": {
        "summary": "Studio Auth Register",
        "operationId": "studio_auth_register_api_studio_auth_register_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StudioRegisterRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/studio/auth/login": {
      "post": {
        "summary": "Studio Auth Login",
        "operationId": "studio_auth_login_api_studio_auth_login_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StudioLoginRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/studio/auth/logout": {
      "post": {
        "summary": "Studio Auth Logout",
        "operationId": "studio_auth_logout_api_studio_auth_logout_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/studio/auth/me": {
      "get": {
        "summary": "Studio Auth Me",
        "operationId": "studio_auth_me_api_studio_auth_me_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/studio/vip/info": {
      "get": {
        "summary": "Studio Vip Info",
        "operationId": "studio_vip_info_api_studio_vip_info_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/studio/vip/slip": {
      "post": {
        "summary": "Studio Vip Slip",
        "description": "สมัคร VIP ด้วยการแนบสลิป — ตรวจอัตโนมัติผ่าน Slip2Go:\nสลิปจริง + ยอดตรง = อนุมัติ VIP ทันที, fraud = ปฏิเสธ, อื่น ๆ = รอผู้ดูแล",
        "operationId": "studio_vip_slip_api_studio_vip_slip_post",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_studio_vip_slip_api_studio_vip_slip_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/studio/vip/request": {
      "post": {
        "summary": "Studio Vip Request",
        "operationId": "studio_vip_request_api_studio_vip_request_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StudioVipRequestRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/studio/admin/vip-requests": {
      "get": {
        "summary": "Studio Admin Vip Requests",
        "operationId": "studio_admin_vip_requests_api_studio_admin_vip_requests_get",
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 1000,
              "minimum": 1,
              "default": 200,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/studio/admin/vip-requests/{request_id}/approve": {
      "post": {
        "summary": "Studio Admin Vip Approve",
        "operationId": "studio_admin_vip_approve_api_studio_admin_vip_requests__request_id__approve_post",
        "parameters": [
          {
            "name": "request_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Request Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/studio/admin/vip-requests/{request_id}/reject": {
      "post": {
        "summary": "Studio Admin Vip Reject",
        "operationId": "studio_admin_vip_reject_api_studio_admin_vip_requests__request_id__reject_post",
        "parameters": [
          {
            "name": "request_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Request Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/studio/admin/users": {
      "get": {
        "summary": "Studio Admin List Users",
        "operationId": "studio_admin_list_users_api_studio_admin_users_get",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 1000,
              "minimum": 1,
              "default": 200,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/studio/admin/users/{user_id}": {
      "patch": {
        "summary": "Studio Admin Update User",
        "operationId": "studio_admin_update_user_api_studio_admin_users__user_id__patch",
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "User Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StudioAdminUserUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/studio/admin/users/{user_id}/revoke-sessions": {
      "post": {
        "summary": "Studio Admin Revoke Sessions",
        "operationId": "studio_admin_revoke_sessions_api_studio_admin_users__user_id__revoke_sessions_post",
        "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/studio/presets": {
      "get": {
        "summary": "Studio List Presets",
        "operationId": "studio_list_presets_api_studio_presets_get",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 500,
              "minimum": 1,
              "default": 200,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Studio Create Preset",
        "operationId": "studio_create_preset_api_studio_presets_post",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StudioPresetCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/studio/presets/{preset_id}": {
      "patch": {
        "summary": "Studio Update Preset",
        "operationId": "studio_update_preset_api_studio_presets__preset_id__patch",
        "parameters": [
          {
            "name": "preset_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Preset Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StudioPresetUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Studio Delete Preset",
        "operationId": "studio_delete_preset_api_studio_presets__preset_id__delete",
        "parameters": [
          {
            "name": "preset_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Preset Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/studio/shares": {
      "get": {
        "summary": "Studio List Shares",
        "operationId": "studio_list_shares_api_studio_shares_get",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 500,
              "minimum": 1,
              "default": 200,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/studio/presets/{preset_id}/share": {
      "post": {
        "summary": "Studio Create Share",
        "operationId": "studio_create_share_api_studio_presets__preset_id__share_post",
        "parameters": [
          {
            "name": "preset_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Preset Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StudioShareCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/studio/shares/{share_id}": {
      "delete": {
        "summary": "Studio Revoke Share",
        "operationId": "studio_revoke_share_api_studio_shares__share_id__delete",
        "parameters": [
          {
            "name": "share_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Share Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/studio/share/{share_token}": {
      "get": {
        "summary": "Studio Get Share",
        "operationId": "studio_get_share_api_studio_share__share_token__get",
        "parameters": [
          {
            "name": "share_token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Share Token"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/studio/share/{share_token}/fork": {
      "post": {
        "summary": "Studio Fork Share",
        "operationId": "studio_fork_share_api_studio_share__share_token__fork_post",
        "parameters": [
          {
            "name": "share_token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Share Token"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StudioShareForkRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/plugins/engines": {
      "get": {
        "summary": "Plugin Engines",
        "operationId": "plugin_engines_api_plugins_engines_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/provenance/watermark/detect": {
      "post": {
        "summary": "Provenance Watermark Detect",
        "operationId": "provenance_watermark_detect_api_provenance_watermark_detect_post",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_provenance_watermark_detect_api_provenance_watermark_detect_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/hf/token/status": {
      "get": {
        "summary": "Hf Token Status",
        "operationId": "hf_token_status_api_hf_token_status_get",
        "parameters": [
          {
            "name": "validate",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false,
              "title": "Validate"
            }
          },
          {
            "name": "timeout_sec",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "maximum": 30.0,
              "minimum": 1.0,
              "default": 6.0,
              "title": "Timeout Sec"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/hf/token": {
      "post": {
        "summary": "Hf Set App Token",
        "operationId": "hf_set_app_token_api_hf_token_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HfTokenSetRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Hf Clear App Token",
        "operationId": "hf_clear_app_token_api_hf_token_delete",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/hf/token/validate": {
      "post": {
        "summary": "Hf Validate Token",
        "operationId": "hf_validate_token_api_hf_token_validate_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HfTokenValidateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/openapi/export": {
      "get": {
        "summary": "Api Openapi Export",
        "operationId": "api_openapi_export_api_openapi_export_get",
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "json",
              "title": "Format"
            }
          },
          {
            "name": "download",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false,
              "title": "Download"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/quickstart": {
      "get": {
        "summary": "Api Quickstart",
        "operationId": "api_quickstart_api_quickstart_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/auth/config": {
      "get": {
        "summary": "Api Auth Config",
        "operationId": "api_auth_config_api_auth_config_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/auth/tiers": {
      "get": {
        "summary": "Api Auth Tiers",
        "operationId": "api_auth_tiers_api_auth_tiers_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/auth/keys": {
      "get": {
        "summary": "Api List Keys",
        "operationId": "api_list_keys_api_auth_keys_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      },
      "post": {
        "summary": "Api Create Key",
        "operationId": "api_create_key_api_auth_keys_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiKeyCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/auth/keys/{key_id}": {
      "patch": {
        "summary": "Api Update Key",
        "operationId": "api_update_key_api_auth_keys__key_id__patch",
        "parameters": [
          {
            "name": "key_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Key Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiKeyUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/usage/summary": {
      "get": {
        "summary": "Api Usage Summary",
        "operationId": "api_usage_summary_api_usage_summary_get",
        "parameters": [
          {
            "name": "day_from",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Day From"
            }
          },
          {
            "name": "day_to",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Day To"
            }
          },
          {
            "name": "key_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Key Id"
            }
          },
          {
            "name": "endpoint",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Endpoint"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 5000,
              "minimum": 1,
              "default": 500,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/usage/cost-dashboard": {
      "get": {
        "summary": "Api Usage Cost Dashboard",
        "operationId": "api_usage_cost_dashboard_api_usage_cost_dashboard_get",
        "parameters": [
          {
            "name": "day_from",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Day From"
            }
          },
          {
            "name": "day_to",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Day To"
            }
          },
          {
            "name": "key_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Key Id"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tier"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 5000,
              "minimum": 1,
              "default": 500,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/usage/job-access-audit": {
      "get": {
        "summary": "Api Usage Job Access Audit",
        "operationId": "api_usage_job_access_audit_api_usage_job_access_audit_get",
        "parameters": [
          {
            "name": "day_from",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Day From"
            }
          },
          {
            "name": "day_to",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Day To"
            }
          },
          {
            "name": "endpoint",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Endpoint"
            }
          },
          {
            "name": "requester_key_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Requester Key Id"
            }
          },
          {
            "name": "owner_key_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Owner Key Id"
            }
          },
          {
            "name": "only_denied",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false,
              "title": "Only Denied"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 5000,
              "minimum": 1,
              "default": 500,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/slo/dashboard": {
      "get": {
        "summary": "Api Slo Dashboard",
        "operationId": "api_slo_dashboard_api_slo_dashboard_get",
        "parameters": [
          {
            "name": "window_minutes",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 10080,
              "minimum": 5,
              "default": 60,
              "title": "Window Minutes"
            }
          },
          {
            "name": "endpoint",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Endpoint"
            }
          },
          {
            "name": "include_endpoints",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": true,
              "title": "Include Endpoints"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/slo/alerts": {
      "get": {
        "summary": "Api Slo Alerts",
        "operationId": "api_slo_alerts_api_slo_alerts_get",
        "parameters": [
          {
            "name": "window_minutes",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 10080,
              "minimum": 5,
              "default": 60,
              "title": "Window Minutes"
            }
          },
          {
            "name": "endpoint",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Endpoint"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/compliance/terms": {
      "get": {
        "summary": "Compliance Terms",
        "operationId": "compliance_terms_api_compliance_terms_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/compliance/abuse/report": {
      "post": {
        "summary": "Compliance Abuse Report",
        "operationId": "compliance_abuse_report_api_compliance_abuse_report_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AbuseReportCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/compliance/abuse/reports": {
      "get": {
        "summary": "Compliance Abuse Reports",
        "operationId": "compliance_abuse_reports_api_compliance_abuse_reports_get",
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 1000,
              "minimum": 1,
              "default": 200,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/compliance/consent-audit": {
      "get": {
        "summary": "Compliance Consent Audit",
        "operationId": "compliance_consent_audit_api_compliance_consent_audit_get",
        "parameters": [
          {
            "name": "day_from",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Day From"
            }
          },
          {
            "name": "day_to",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Day To"
            }
          },
          {
            "name": "endpoint",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Endpoint"
            }
          },
          {
            "name": "mode",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Mode"
            }
          },
          {
            "name": "only_failures",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false,
              "title": "Only Failures"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 5000,
              "minimum": 1,
              "default": 500,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/errors/docs": {
      "get": {
        "summary": "Error Docs Catalog",
        "operationId": "error_docs_catalog_api_errors_docs_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/errors/classify": {
      "post": {
        "summary": "Error Classify",
        "operationId": "error_classify_api_errors_classify_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ErrorClassifyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/logs/stream": {
      "get": {
        "summary": "Logs Stream",
        "operationId": "logs_stream_api_logs_stream_get",
        "parameters": [
          {
            "name": "tail",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 200,
              "minimum": 0,
              "default": 30,
              "title": "Tail"
            }
          },
          {
            "name": "heartbeat_sec",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "maximum": 30.0,
              "minimum": 0.5,
              "default": 2.0,
              "title": "Heartbeat Sec"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/web/config": {
      "get": {
        "summary": "Web Public Config",
        "operationId": "web_public_config_api_web_config_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/web/system/status": {
      "get": {
        "summary": "Web Public System Status",
        "operationId": "web_public_system_status_api_web_system_status_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/web/jobs/tts": {
      "post": {
        "summary": "Web Public Queue Tts Job",
        "operationId": "web_public_queue_tts_job_api_web_jobs_tts_post",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_web_public_queue_tts_job_api_web_jobs_tts_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/web/jobs": {
      "get": {
        "summary": "Web Public List Jobs",
        "operationId": "web_public_list_jobs_api_web_jobs_get",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 200,
              "minimum": 1,
              "default": 30,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/web/jobs/{job_id}": {
      "get": {
        "summary": "Web Public Get Job",
        "operationId": "web_public_get_job_api_web_jobs__job_id__get",
        "parameters": [
          {
            "name": "job_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Job Id"
            }
          },
          {
            "name": "token",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Token"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/web/jobs/{job_id}/events": {
      "get": {
        "summary": "Web Public Get Job Events",
        "operationId": "web_public_get_job_events_api_web_jobs__job_id__events_get",
        "parameters": [
          {
            "name": "job_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Job Id"
            }
          },
          {
            "name": "token",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Token"
            }
          },
          {
            "name": "after_event_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0,
              "title": "After Event Id"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 500,
              "minimum": 1,
              "default": 200,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/web/jobs/{job_id}/stream": {
      "get": {
        "summary": "Web Public Stream Job Events",
        "operationId": "web_public_stream_job_events_api_web_jobs__job_id__stream_get",
        "parameters": [
          {
            "name": "job_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Job Id"
            }
          },
          {
            "name": "token",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Token"
            }
          },
          {
            "name": "after_event_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0,
              "title": "After Event Id"
            }
          },
          {
            "name": "heartbeat_sec",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "maximum": 30.0,
              "minimum": 0.5,
              "default": 2.0,
              "title": "Heartbeat Sec"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/web/jobs/{job_id}/audio": {
      "get": {
        "summary": "Web Public Get Job Audio",
        "operationId": "web_public_get_job_audio_api_web_jobs__job_id__audio_get",
        "parameters": [
          {
            "name": "job_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Job Id"
            }
          },
          {
            "name": "token",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Token"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/studio/tts": {
      "post": {
        "summary": "Studio Generate Tts",
        "operationId": "studio_generate_tts_api_studio_tts_post",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_studio_generate_tts_api_studio_tts_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/jobs/tts": {
      "post": {
        "summary": "Queue Tts Job",
        "operationId": "queue_tts_job_api_jobs_tts_post",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_queue_tts_job_api_jobs_tts_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/jobs": {
      "get": {
        "summary": "List Tts Jobs",
        "operationId": "list_tts_jobs_api_jobs_get",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 200,
              "minimum": 1,
              "default": 30,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/jobs/{job_id}": {
      "get": {
        "summary": "Get Tts Job",
        "operationId": "get_tts_job_api_jobs__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": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/jobs/{job_id}/events": {
      "get": {
        "summary": "Get Tts Job Events",
        "operationId": "get_tts_job_events_api_jobs__job_id__events_get",
        "parameters": [
          {
            "name": "job_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Job Id"
            }
          },
          {
            "name": "after_event_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0,
              "title": "After Event Id"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 500,
              "minimum": 1,
              "default": 200,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/jobs/{job_id}/stream": {
      "get": {
        "summary": "Stream Tts Job Events",
        "operationId": "stream_tts_job_events_api_jobs__job_id__stream_get",
        "parameters": [
          {
            "name": "job_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Job Id"
            }
          },
          {
            "name": "after_event_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0,
              "title": "After Event Id"
            }
          },
          {
            "name": "heartbeat_sec",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "maximum": 30.0,
              "minimum": 0.5,
              "default": 2.0,
              "title": "Heartbeat Sec"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/jobs/{job_id}/audio": {
      "get": {
        "summary": "Get Tts Job Audio",
        "operationId": "get_tts_job_audio_api_jobs__job_id__audio_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"
                }
              }
            }
          }
        }
      }
    },
    "/api/tts/preflight": {
      "post": {
        "summary": "Tts Preflight",
        "operationId": "tts_preflight_api_tts_preflight_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TtsPreflightRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/pronunciation/lexicons": {
      "get": {
        "summary": "Pronunciation Lexicons List",
        "operationId": "pronunciation_lexicons_list_api_pronunciation_lexicons_get",
        "parameters": [
          {
            "name": "language_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Language Id"
            }
          },
          {
            "name": "include_disabled",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false,
              "title": "Include Disabled"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Pronunciation Lexicons Upsert",
        "operationId": "pronunciation_lexicons_upsert_api_pronunciation_lexicons_post",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PronunciationLexiconUpsertRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/nonverbal/tags": {
      "get": {
        "summary": "Nonverbal Tags",
        "operationId": "nonverbal_tags_api_nonverbal_tags_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/nonverbal/validate": {
      "post": {
        "summary": "Nonverbal Validate",
        "operationId": "nonverbal_validate_api_nonverbal_validate_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NonVerbalValidateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/reference/validate": {
      "post": {
        "summary": "Reference Validate",
        "operationId": "reference_validate_api_reference_validate_post",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_reference_validate_api_reference_validate_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/reference/transcribe": {
      "post": {
        "summary": "Reference Transcribe",
        "operationId": "reference_transcribe_api_reference_transcribe_post",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_reference_transcribe_api_reference_transcribe_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/batch/tts": {
      "post": {
        "summary": "Create Batch Tts",
        "operationId": "create_batch_tts_api_batch_tts_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TtsBatchRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/batch/tts/{batch_id}": {
      "get": {
        "summary": "Get Batch Tts",
        "operationId": "get_batch_tts_api_batch_tts__batch_id__get",
        "parameters": [
          {
            "name": "batch_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Batch Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/batch/tts/{batch_id}/results": {
      "get": {
        "summary": "Get Batch Tts Results",
        "operationId": "get_batch_tts_results_api_batch_tts__batch_id__results_get",
        "parameters": [
          {
            "name": "batch_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Batch Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/audio/speech": {
      "post": {
        "summary": "Openai Compatible Audio Speech",
        "operationId": "openai_compatible_audio_speech_v1_audio_speech_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OpenAISpeechRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/tts": {
      "post": {
        "summary": "Generate Tts",
        "operationId": "generate_tts_api_tts_post",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_generate_tts_api_tts_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/tts/batch": {
      "post": {
        "summary": "Generate Tts Batch",
        "description": "Batched TTS — generate multiple texts (with mixed voices) in one model call.\n\nBody: JSON\n{\n  \"items\": [\n    {\"text\": \"...\", \"voice_clone_prompt_id\": \"vp_xxx\", \"num_step\": 16},\n    {\"text\": \"...\", \"voice_clone_prompt_id\": \"vp_yyy\", \"num_step\": 16}\n  ],\n  \"num_step\": 16,         // optional default\n  \"language\": \"th\",        // optional\n  \"return_format\": \"zip\"   // \"zip\" | \"json\" (zip is default)\n}\n\nResponse (zip):\n  0.wav, 1.wav, ..., manifest.json",
        "operationId": "generate_tts_batch_api_tts_batch_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/capabilities": {
      "get": {
        "summary": "Capabilities",
        "operationId": "capabilities_api_capabilities_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/": {
      "get": {
        "summary": "Index",
        "description": "Serve the SaaS studio app at web root. HTML must always revalidate\nso a stale redirect/index page can never get pinned in browser caches.",
        "operationId": "index__get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/subtitles/styles": {
      "get": {
        "tags": [
          "asr"
        ],
        "summary": "Subtitle Styles",
        "operationId": "subtitle_styles_api_subtitles_styles_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object",
                  "title": "Response Subtitle Styles Api Subtitles Styles Get"
                }
              }
            }
          }
        }
      }
    },
    "/api/asr/transcribe": {
      "post": {
        "tags": [
          "asr"
        ],
        "summary": "Asr Transcribe",
        "operationId": "asr_transcribe_api_asr_transcribe_post",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_asr_transcribe_api_asr_transcribe_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/subtitles/align": {
      "post": {
        "tags": [
          "asr"
        ],
        "summary": "Subtitles Align",
        "description": "บทที่รู้อยู่แล้ว + สื่อ → ซับจับเวลาตามจังหวะพูดจริง (แม่นกว่า ASR ล้วน)",
        "operationId": "subtitles_align_api_subtitles_align_post",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_subtitles_align_api_subtitles_align_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/subtitles/auto": {
      "post": {
        "tags": [
          "asr"
        ],
        "summary": "Subtitles Auto",
        "description": "ไม่มีบท → ถอดคำพูดด้วย ASR แล้วสร้างซับจากข้อความนั้น (คำอาจผิดตาม ASR)",
        "operationId": "subtitles_auto_api_subtitles_auto_post",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_subtitles_auto_api_subtitles_auto_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/clone/prompts": {
      "get": {
        "summary": "List Voice Clone Prompts",
        "description": "List all stored voice clone prompts.",
        "operationId": "list_voice_clone_prompts_api_clone_prompts_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      },
      "post": {
        "summary": "Create Voice Clone Prompt",
        "description": "Create a new voice clone prompt by encoding a reference audio.\n\nEncodes the ref audio ONCE and saves the .pt file. After this,\nyou can reuse the prompt_id for unlimited generations.",
        "operationId": "create_voice_clone_prompt_api_clone_prompts_post",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_create_voice_clone_prompt_api_clone_prompts_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/clone/prompts/{prompt_id}": {
      "get": {
        "summary": "Get Voice Clone Prompt",
        "description": "Get metadata of one voice clone prompt.",
        "operationId": "get_voice_clone_prompt_api_clone_prompts__prompt_id__get",
        "parameters": [
          {
            "name": "prompt_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Prompt 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 Voice Clone Prompt",
        "description": "Delete a voice clone prompt.",
        "operationId": "delete_voice_clone_prompt_api_clone_prompts__prompt_id__delete",
        "parameters": [
          {
            "name": "prompt_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Prompt Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update Voice Clone Prompt",
        "description": "Update label or tags of a voice clone prompt.",
        "operationId": "update_voice_clone_prompt_api_clone_prompts__prompt_id__patch",
        "parameters": [
          {
            "name": "prompt_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Prompt Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/Body_update_voice_clone_prompt_api_clone_prompts__prompt_id__patch"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/clone/prompts/{prompt_id}/download": {
      "get": {
        "summary": "Download Voice Clone Prompt",
        "description": "Download the .pt file for a voice clone prompt.",
        "operationId": "download_voice_clone_prompt_api_clone_prompts__prompt_id__download_get",
        "parameters": [
          {
            "name": "prompt_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Prompt Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/clone/prompts/{prompt_id}/test": {
      "post": {
        "summary": "Test Voice Clone Prompt",
        "description": "Quick test generation using a stored voice clone prompt.",
        "operationId": "test_voice_clone_prompt_api_clone_prompts__prompt_id__test_post",
        "parameters": [
          {
            "name": "prompt_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Prompt Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/Body_test_voice_clone_prompt_api_clone_prompts__prompt_id__test_post"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/ratings": {
      "get": {
        "summary": "List Ratings Endpoint",
        "description": "List all ratings (optionally filtered by prompt_id). Newest first.",
        "operationId": "list_ratings_endpoint_api_ratings_get",
        "parameters": [
          {
            "name": "prompt_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Prompt Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Create Rating Endpoint",
        "description": "Add a new rating (1-5 stars) for a voice prompt.",
        "operationId": "create_rating_endpoint_api_ratings_post",
        "requestBody": {
          "required": true,
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/Body_create_rating_endpoint_api_ratings_post"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/ratings/summary": {
      "get": {
        "summary": "Ratings Summary Endpoint",
        "description": "Get aggregate rating summary.\n\nIf prompt_id is given, returns one summary.\nOtherwise returns a map prompt_id -> summary for all prompts that\nhave at least one rating.",
        "operationId": "ratings_summary_endpoint_api_ratings_summary_get",
        "parameters": [
          {
            "name": "prompt_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Prompt Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/ratings/{rating_id}": {
      "patch": {
        "summary": "Update Rating Endpoint",
        "description": "Update an existing rating's score and/or note.",
        "operationId": "update_rating_endpoint_api_ratings__rating_id__patch",
        "parameters": [
          {
            "name": "rating_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Rating Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/Body_update_rating_endpoint_api_ratings__rating_id__patch"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete Rating Endpoint",
        "description": "Delete a rating.",
        "operationId": "delete_rating_endpoint_api_ratings__rating_id__delete",
        "parameters": [
          {
            "name": "rating_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Rating Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/voice-review/100": {
      "get": {
        "summary": "Voice Review 100 Catalog",
        "description": "Return the 100 indexed clone outputs and current 0-100 reviews.",
        "operationId": "voice_review_100_catalog_api_voice_review_100_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/voice-review/100/audio/{filename}": {
      "get": {
        "summary": "Voice Review 100 Audio",
        "description": "Stream one catalog-listed generated WAV without exposing local paths.",
        "operationId": "voice_review_100_audio_api_voice_review_100_audio__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"
                }
              }
            }
          }
        }
      }
    },
    "/api/voice-review/100/analysis": {
      "get": {
        "summary": "Voice Review 100 Analysis",
        "description": "Return read-only quality analysis used by the admin review page.",
        "operationId": "voice_review_100_analysis_api_voice_review_100_analysis_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/voice-review/100/{global_index}": {
      "put": {
        "summary": "Voice Review 100 Update",
        "description": "Save one human score (0-100) and bounded comment.",
        "operationId": "voice_review_100_update_api_voice_review_100__global_index__put",
        "parameters": [
          {
            "name": "global_index",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "title": "Global Index"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Voice Review 100 Delete",
        "description": "Clear one score/comment pair for review reset or test cleanup.",
        "operationId": "voice_review_100_delete_api_voice_review_100__global_index__delete",
        "parameters": [
          {
            "name": "global_index",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "title": "Global Index"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/voice-review-v3/100": {
      "get": {
        "summary": "Voice Review V3 100 Catalog",
        "description": "V3 catalog: 50 uniform-window clone + 5 design voices.",
        "operationId": "voice_review_v3_100_catalog_api_voice_review_v3_100_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/voice-review-v3/100/audio/{filename}": {
      "get": {
        "summary": "Voice Review V3 100 Audio",
        "description": "V3 audio file.",
        "operationId": "voice_review_v3_100_audio_api_voice_review_v3_100_audio__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"
                }
              }
            }
          }
        }
      }
    },
    "/api/voice-review-v3/100/analysis": {
      "get": {
        "summary": "Voice Review V3 100 Analysis",
        "description": "V3 admin analysis.",
        "operationId": "voice_review_v3_100_analysis_api_voice_review_v3_100_analysis_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/voice-review-v3/100/{global_index}": {
      "put": {
        "summary": "Voice Review V3 100 Update",
        "description": "V3 submit rating.",
        "operationId": "voice_review_v3_100_update_api_voice_review_v3_100__global_index__put",
        "parameters": [
          {
            "name": "global_index",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "title": "Global Index"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Voice Review V3 100 Delete",
        "description": "V3 clear rating.",
        "operationId": "voice_review_v3_100_delete_api_voice_review_v3_100__global_index__delete",
        "parameters": [
          {
            "name": "global_index",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "title": "Global Index"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/voice-review-v3-1/100": {
      "get": {
        "summary": "Voice Review V3 1 100 Catalog",
        "description": "V3_1 curated catalog: 15 voices trained from top V3 selections.",
        "operationId": "voice_review_v3_1_100_catalog_api_voice_review_v3_1_100_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/voice-review-v3-1/100/audio/{filename}": {
      "get": {
        "summary": "Voice Review V3 1 100 Audio",
        "description": "V3_1 audio file.",
        "operationId": "voice_review_v3_1_100_audio_api_voice_review_v3_1_100_audio__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"
                }
              }
            }
          }
        }
      }
    },
    "/api/voice-review-v3-1/100/{global_index}": {
      "put": {
        "summary": "Voice Review V3 1 100 Update",
        "description": "V3_1 submit rating.",
        "operationId": "voice_review_v3_1_100_update_api_voice_review_v3_1_100__global_index__put",
        "parameters": [
          {
            "name": "global_index",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "title": "Global Index"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Voice Review V3 1 100 Delete",
        "description": "V3_1 clear rating.",
        "operationId": "voice_review_v3_1_100_delete_api_voice_review_v3_1_100__global_index__delete",
        "parameters": [
          {
            "name": "global_index",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "title": "Global Index"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/voice-tuner/masters": {
      "get": {
        "summary": "Voice Tuner List Masters",
        "description": "List the 10 pre-selected master voices (top V2 ratings).",
        "operationId": "voice_tuner_list_masters_api_voice_tuner_masters_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/voice-tuner/masters/{master_id}": {
      "get": {
        "summary": "Voice Tuner Get Master",
        "description": "Get one master by id.",
        "operationId": "voice_tuner_get_master_api_voice_tuner_masters__master_id__get",
        "parameters": [
          {
            "name": "master_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Master Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/voice-tuner/sessions": {
      "post": {
        "summary": "Voice Tuner Create Session",
        "description": "Create a new tuning session from a master.",
        "operationId": "voice_tuner_create_session_api_voice_tuner_sessions_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/voice-tuner/sessions/{session_id}": {
      "get": {
        "summary": "Voice Tuner Get Session",
        "description": "Get session state including all iterations.",
        "operationId": "voice_tuner_get_session_api_voice_tuner_sessions__session_id__get",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Session Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Voice Tuner Delete Session",
        "description": "Delete a session and its iteration audio files.",
        "operationId": "voice_tuner_delete_session_api_voice_tuner_sessions__session_id__delete",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Session Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/voice-tuner/tuning-events": {
      "get": {
        "summary": "Voice Tuner List Tuning Events",
        "description": "List recent tuning events. Optional filters: voice_id, master_id, source, limit, since.",
        "operationId": "voice_tuner_list_tuning_events_api_voice_tuner_tuning_events_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      },
      "post": {
        "summary": "Voice Tuner Record Tuning Event",
        "operationId": "voice_tuner_record_tuning_event_api_voice_tuner_tuning_events_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/voice-tuner/tuning-events/summary": {
      "get": {
        "summary": "Voice Tuner Tuning Summary",
        "description": "Aggregate avg/min/max per voice_id for each slider dimension.",
        "operationId": "voice_tuner_tuning_summary_api_voice_tuner_tuning_events_summary_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/voice-tuner/tuning-events/stats": {
      "get": {
        "summary": "Voice Tuner Tuning Stats",
        "operationId": "voice_tuner_tuning_stats_api_voice_tuner_tuning_events_stats_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/v100/template": {
      "get": {
        "summary": "V100 List Templates",
        "operationId": "v100_list_templates_api_v100_template_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      },
      "post": {
        "summary": "V100 Create Template",
        "operationId": "v100_create_template_api_v100_template_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/v100/template/{template_id}": {
      "get": {
        "summary": "V100 Get Template",
        "operationId": "v100_get_template_api_v100_template__template_id__get",
        "parameters": [
          {
            "name": "template_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Template Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "V100 Delete Template",
        "operationId": "v100_delete_template_api_v100_template__template_id__delete",
        "parameters": [
          {
            "name": "template_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Template Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v100/template/{template_id}/preview": {
      "post": {
        "summary": "V100 Preview Template",
        "description": "Preview a saved template: synth text using prompt(s) + tuning recipe.\n\nblend_mode:\n  single  - use preview_prompt_id only\n  rotate  - split text by rotate_every words, alternate through prompt_ids\n  average - encode each prompt, blend latent tensors, single synth",
        "operationId": "v100_preview_template_api_v100_template__template_id__preview_post",
        "parameters": [
          {
            "name": "template_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Template Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v100/template/{template_id}/refs-meta": {
      "get": {
        "summary": "V100 Template Refs Meta",
        "description": "Return VoicePromptMeta for every prompt_id in the template.\n\nLets the UI show \"ref audio filename / duration / created_at\"\nalongside each prompt in the template card.",
        "operationId": "v100_template_refs_meta_api_v100_template__template_id__refs_meta_get",
        "parameters": [
          {
            "name": "template_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Template Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v100/voice-prompts/search": {
      "get": {
        "summary": "V100 Search Voice Prompts",
        "description": "Search existing voice prompts by source tag for V100 import flow.\n\nquery params:\n  source = 'tuner' | 'upload' | 'all' (default 'all')\n  limit  = int (default 100)",
        "operationId": "v100_search_voice_prompts_api_v100_voice_prompts_search_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/voice-tuner/sessions/{session_id}/iterate": {
      "post": {
        "summary": "Voice Tuner Iterate",
        "description": "Generate a new iteration: synth with current params + post-process + analyze.",
        "operationId": "voice_tuner_iterate_api_voice_tuner_sessions__session_id__iterate_post",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Session Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/voice-tuner/sessions/{session_id}/iterations/{iter_id}/audio": {
      "get": {
        "summary": "Voice Tuner Iter Audio",
        "description": "Stream iteration WAV audio.",
        "operationId": "voice_tuner_iter_audio_api_voice_tuner_sessions__session_id__iterations__iter_id__audio_get",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Session Id"
            }
          },
          {
            "name": "iter_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Iter Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/voice-tuner/sessions/{session_id}/iterations/{iter_id}": {
      "patch": {
        "summary": "Voice Tuner Patch Iteration",
        "description": "Update iteration metadata: note, is_current_best, feedback.",
        "operationId": "voice_tuner_patch_iteration_api_voice_tuner_sessions__session_id__iterations__iter_id__patch",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Session Id"
            }
          },
          {
            "name": "iter_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Iter Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Voice Tuner Delete Iteration",
        "description": "Delete a single iteration from a session (and its audio file).\nP2-5: was 405 (no endpoint); now 200/404. Implemented inline so we don't\ntouch the locked-down voice_tuner.py module range.",
        "operationId": "voice_tuner_delete_iteration_api_voice_tuner_sessions__session_id__iterations__iter_id__delete",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Session Id"
            }
          },
          {
            "name": "iter_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Iter Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/voice-tuner/sessions/{session_id}/save": {
      "post": {
        "summary": "Voice Tuner Save",
        "description": "Save an iteration as a permanent variant.\n\nIf library_prompt_id is not in body, we will create a VoiceClonePrompt\nautomatically using the master's ref audio + the iteration text.",
        "operationId": "voice_tuner_save_api_voice_tuner_sessions__session_id__save_post",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Session Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/voice-tuner/saved": {
      "get": {
        "summary": "Voice Tuner List Saved",
        "description": "List all saved variants, newest first.",
        "operationId": "voice_tuner_list_saved_api_voice_tuner_saved_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/voice-tuner/saved/{variant_id}": {
      "get": {
        "summary": "Voice Tuner Get Saved",
        "description": "Get one saved variant.",
        "operationId": "voice_tuner_get_saved_api_voice_tuner_saved__variant_id__get",
        "parameters": [
          {
            "name": "variant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Variant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Voice Tuner Delete Saved",
        "description": "Delete a saved variant (keeps library entry intact).",
        "operationId": "voice_tuner_delete_saved_api_voice_tuner_saved__variant_id__delete",
        "parameters": [
          {
            "name": "variant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Variant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/voice-tuner/saved/{variant_id}/audio": {
      "get": {
        "summary": "Voice Tuner Saved Audio",
        "description": "Stream saved variant audio.",
        "operationId": "voice_tuner_saved_audio_api_voice_tuner_saved__variant_id__audio_get",
        "parameters": [
          {
            "name": "variant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Variant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/voice-tuner/sessions/{session_id}/suggest": {
      "post": {
        "summary": "Voice Tuner Suggest",
        "description": "Ask the LLM (or rule fallback) to suggest param changes from feedback.\n\nBody: {\"feedback\": \"เร็วไป\"}\nResponse: {ok, source: \"llm\"|\"rules\"|\"rules_fallback\", thinking, suggestions,\n           confidence, follow_up, error?, current_params}\nDoes NOT generate audio. Use /ai-iterate to apply + iterate in one shot.",
        "operationId": "voice_tuner_suggest_api_voice_tuner_sessions__session_id__suggest_post",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Session Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/voice-tuner/sessions/{session_id}/ai-iterate": {
      "post": {
        "summary": "Voice Tuner Ai Iterate",
        "description": "One-shot: feedback -> LLM suggests -> apply -> generate iteration.\n\nBody: {\"feedback\": \"เร็วไป\", \"auto_apply\": true}\n- auto_apply=true  (default): apply ALL suggestions then iterate\n- auto_apply=false: still applies but returns suggestions first (caller can revert)\nResponse: {ok, source, thinking, suggestions, iteration, session}",
        "operationId": "voice_tuner_ai_iterate_api_voice_tuner_sessions__session_id__ai_iterate_post",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Session Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/voice-tuner/sessions/{session_id}/llm-history": {
      "get": {
        "summary": "Voice Tuner Llm History",
        "description": "Get the full LLM co-tuning history for a session (audit trail).",
        "operationId": "voice_tuner_llm_history_api_voice_tuner_sessions__session_id__llm_history_get",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Session Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/voice-tuner/admin/gc-orphans": {
      "post": {
        "summary": "Voice Tuner Admin Gc Orphans",
        "description": "P2-7: Manually trigger orphan-session GC. Admin-only.\nAuth is enforced by the standard external-request guard.",
        "operationId": "voice_tuner_admin_gc_orphans_api_voice_tuner_admin_gc_orphans_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/voice-tuner/learned-overrides": {
      "get": {
        "summary": "Voice Tuner List Overrides",
        "description": "List all learned overrides (one entry per master).",
        "operationId": "voice_tuner_list_overrides_api_voice_tuner_learned_overrides_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/voice-tuner/learned-overrides/{master_id}": {
      "get": {
        "summary": "Voice Tuner Get Override",
        "description": "Get learned overrides for a specific master.",
        "operationId": "voice_tuner_get_override_api_voice_tuner_learned_overrides__master_id__get",
        "parameters": [
          {
            "name": "master_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Master Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Voice Tuner Reset Override",
        "description": "Reset (delete) learned overrides for a master.",
        "operationId": "voice_tuner_reset_override_api_voice_tuner_learned_overrides__master_id__delete",
        "parameters": [
          {
            "name": "master_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Master Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/voice-tuner/sj88-masters": {
      "get": {
        "summary": "Voice Tuner List Sj88",
        "description": "List all SJ88 master voices (production).",
        "operationId": "voice_tuner_list_sj88_api_voice_tuner_sj88_masters_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      },
      "post": {
        "summary": "Voice Tuner Create Sj88",
        "description": "Promote a saved variant to a SJ88 master.\n\nBody: {\"saved_variant_id\": \"sv_xxx\", \"name\": \"Live Open\", \"use_case\": \"...\", \"tags\": [...]}",
        "operationId": "voice_tuner_create_sj88_api_voice_tuner_sj88_masters_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/voice-tuner/sj88-masters/{sj88_id}": {
      "get": {
        "summary": "Voice Tuner Get Sj88",
        "description": "Get one SJ88 master.",
        "operationId": "voice_tuner_get_sj88_api_voice_tuner_sj88_masters__sj88_id__get",
        "parameters": [
          {
            "name": "sj88_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Sj88 Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Voice Tuner Delete Sj88",
        "description": "Delete a SJ88 master.",
        "operationId": "voice_tuner_delete_sj88_api_voice_tuner_sj88_masters__sj88_id__delete",
        "parameters": [
          {
            "name": "sj88_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Sj88 Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/voice-tuner/sj88-masters/{sj88_id}/audio": {
      "get": {
        "summary": "Voice Tuner Sj88 Audio",
        "description": "Stream SJ88 master audio.",
        "operationId": "voice_tuner_sj88_audio_api_voice_tuner_sj88_masters__sj88_id__audio_get",
        "parameters": [
          {
            "name": "sj88_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Sj88 Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AbuseReportCreateRequest": {
        "properties": {
          "reporter_name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 120
              },
              {
                "type": "null"
              }
            ],
            "title": "Reporter Name"
          },
          "reporter_email": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 180
              },
              {
                "type": "null"
              }
            ],
            "title": "Reporter Email"
          },
          "subject": {
            "type": "string",
            "maxLength": 200,
            "minLength": 3,
            "title": "Subject"
          },
          "description": {
            "type": "string",
            "maxLength": 4000,
            "minLength": 10,
            "title": "Description"
          },
          "sample_text": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 1000
              },
              {
                "type": "null"
              }
            ],
            "title": "Sample Text"
          },
          "sample_audio_url": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 500
              },
              {
                "type": "null"
              }
            ],
            "title": "Sample Audio Url"
          },
          "evidence_url": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 500
              },
              {
                "type": "null"
              }
            ],
            "title": "Evidence Url"
          },
          "requested_action": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 300
              },
              {
                "type": "null"
              }
            ],
            "title": "Requested Action"
          }
        },
        "type": "object",
        "required": [
          "subject",
          "description"
        ],
        "title": "AbuseReportCreateRequest"
      },
      "ApiKeyCreateRequest": {
        "properties": {
          "label": {
            "type": "string",
            "maxLength": 120,
            "minLength": 1,
            "title": "Label"
          },
          "tier": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 30
              },
              {
                "type": "null"
              }
            ],
            "title": "Tier"
          },
          "enabled": {
            "type": "boolean",
            "title": "Enabled",
            "default": true
          },
          "rpm_limit": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 100000.0,
                "minimum": 1.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Rpm Limit"
          },
          "daily_char_quota": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Daily Char Quota"
          },
          "soft_daily_char_quota": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Soft Daily Char Quota"
          },
          "hard_daily_char_quota": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Hard Daily Char Quota"
          },
          "notes": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 500
              },
              {
                "type": "null"
              }
            ],
            "title": "Notes"
          }
        },
        "type": "object",
        "required": [
          "label"
        ],
        "title": "ApiKeyCreateRequest"
      },
      "ApiKeyUpdateRequest": {
        "properties": {
          "label": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 120,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "tier": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 30
              },
              {
                "type": "null"
              }
            ],
            "title": "Tier"
          },
          "enabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Enabled"
          },
          "rpm_limit": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 100000.0,
                "minimum": 1.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Rpm Limit"
          },
          "daily_char_quota": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Daily Char Quota"
          },
          "soft_daily_char_quota": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Soft Daily Char Quota"
          },
          "hard_daily_char_quota": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Hard Daily Char Quota"
          },
          "notes": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 500
              },
              {
                "type": "null"
              }
            ],
            "title": "Notes"
          }
        },
        "type": "object",
        "title": "ApiKeyUpdateRequest"
      },
      "Body_asr_transcribe_api_asr_transcribe_post": {
        "properties": {
          "media": {
            "type": "string",
            "contentMediaType": "application/octet-stream",
            "title": "Media"
          },
          "language": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Language"
          },
          "beam_size": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Beam Size"
          },
          "vad_filter": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Vad Filter"
          }
        },
        "type": "object",
        "required": [
          "media"
        ],
        "title": "Body_asr_transcribe_api_asr_transcribe_post"
      },
      "Body_create_rating_endpoint_api_ratings_post": {
        "properties": {
          "prompt_id": {
            "type": "string",
            "title": "Prompt Id"
          },
          "score": {
            "type": "integer",
            "title": "Score"
          },
          "note": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          },
          "sample_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sample Text"
          },
          "audio_filename": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Audio Filename"
          }
        },
        "type": "object",
        "required": [
          "prompt_id",
          "score"
        ],
        "title": "Body_create_rating_endpoint_api_ratings_post"
      },
      "Body_create_voice_clone_prompt_api_clone_prompts_post": {
        "properties": {
          "text": {
            "type": "string",
            "title": "Text"
          },
          "mode": {
            "type": "string",
            "title": "Mode",
            "default": "auto"
          },
          "ref_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ref Text"
          },
          "instruct": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Instruct"
          },
          "num_step": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Num Step"
          },
          "language_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Language Id"
          },
          "speed": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Speed"
          },
          "label": {
            "type": "string",
            "title": "Label",
            "default": "Unnamed voice"
          },
          "tags": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tags"
          },
          "consent_confirmed": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Consent Confirmed"
          },
          "ref_audio": {
            "type": "string",
            "contentMediaType": "application/octet-stream",
            "title": "Ref Audio"
          }
        },
        "type": "object",
        "required": [
          "text",
          "ref_audio"
        ],
        "title": "Body_create_voice_clone_prompt_api_clone_prompts_post"
      },
      "Body_generate_tts_api_tts_post": {
        "properties": {
          "text": {
            "type": "string",
            "title": "Text"
          },
          "mode": {
            "type": "string",
            "title": "Mode",
            "default": "auto"
          },
          "ssml": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ssml"
          },
          "auto_emotion_tags": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Auto Emotion Tags"
          },
          "ref_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ref Text"
          },
          "instruct": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Instruct"
          },
          "num_step": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Num Step"
          },
          "duration": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration"
          },
          "speed": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Speed"
          },
          "audio_chunk_duration": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Audio Chunk Duration"
          },
          "audio_chunk_threshold": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Audio Chunk Threshold"
          },
          "preprocess_prompt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Preprocess Prompt"
          },
          "postprocess_output": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Postprocess Output"
          },
          "language_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Language Id"
          },
          "consent_confirmed": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Consent Confirmed"
          },
          "ref_audio": {
            "anyOf": [
              {
                "type": "string",
                "contentMediaType": "application/octet-stream"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ref Audio"
          },
          "voice_clone_prompt_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Voice Clone Prompt Id"
          }
        },
        "type": "object",
        "required": [
          "text"
        ],
        "title": "Body_generate_tts_api_tts_post"
      },
      "Body_provenance_watermark_detect_api_provenance_watermark_detect_post": {
        "properties": {
          "audio": {
            "type": "string",
            "contentMediaType": "application/octet-stream",
            "title": "Audio"
          }
        },
        "type": "object",
        "required": [
          "audio"
        ],
        "title": "Body_provenance_watermark_detect_api_provenance_watermark_detect_post"
      },
      "Body_queue_tts_job_api_jobs_tts_post": {
        "properties": {
          "text": {
            "type": "string",
            "title": "Text"
          },
          "mode": {
            "type": "string",
            "title": "Mode",
            "default": "auto"
          },
          "ssml": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ssml"
          },
          "auto_emotion_tags": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Auto Emotion Tags"
          },
          "ref_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ref Text"
          },
          "instruct": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Instruct"
          },
          "num_step": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Num Step"
          },
          "duration": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration"
          },
          "speed": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Speed"
          },
          "audio_chunk_duration": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Audio Chunk Duration"
          },
          "audio_chunk_threshold": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Audio Chunk Threshold"
          },
          "preprocess_prompt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Preprocess Prompt"
          },
          "postprocess_output": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Postprocess Output"
          },
          "language_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Language Id"
          },
          "priority": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Priority"
          },
          "callback_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Callback Url"
          },
          "consent_confirmed": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Consent Confirmed"
          },
          "ref_audio": {
            "anyOf": [
              {
                "type": "string",
                "contentMediaType": "application/octet-stream"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ref Audio"
          }
        },
        "type": "object",
        "required": [
          "text"
        ],
        "title": "Body_queue_tts_job_api_jobs_tts_post"
      },
      "Body_reference_transcribe_api_reference_transcribe_post": {
        "properties": {
          "ref_audio": {
            "type": "string",
            "contentMediaType": "application/octet-stream",
            "title": "Ref Audio"
          },
          "ref_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ref Text"
          },
          "language_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Language Id"
          }
        },
        "type": "object",
        "required": [
          "ref_audio"
        ],
        "title": "Body_reference_transcribe_api_reference_transcribe_post"
      },
      "Body_reference_validate_api_reference_validate_post": {
        "properties": {
          "ref_audio": {
            "type": "string",
            "contentMediaType": "application/octet-stream",
            "title": "Ref Audio"
          },
          "ref_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ref Text"
          },
          "language_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Language Id"
          }
        },
        "type": "object",
        "required": [
          "ref_audio"
        ],
        "title": "Body_reference_validate_api_reference_validate_post"
      },
      "Body_studio_generate_tts_api_studio_tts_post": {
        "properties": {
          "text": {
            "type": "string",
            "title": "Text"
          },
          "mode": {
            "type": "string",
            "title": "Mode",
            "default": "auto"
          },
          "ssml": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ssml"
          },
          "auto_emotion_tags": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Auto Emotion Tags"
          },
          "ref_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ref Text"
          },
          "instruct": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Instruct"
          },
          "num_step": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Num Step"
          },
          "duration": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration"
          },
          "speed": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Speed"
          },
          "audio_chunk_duration": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Audio Chunk Duration"
          },
          "audio_chunk_threshold": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Audio Chunk Threshold"
          },
          "preprocess_prompt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Preprocess Prompt"
          },
          "postprocess_output": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Postprocess Output"
          },
          "language_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Language Id"
          },
          "consent_confirmed": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Consent Confirmed"
          },
          "ref_audio": {
            "anyOf": [
              {
                "type": "string",
                "contentMediaType": "application/octet-stream"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ref Audio"
          }
        },
        "type": "object",
        "required": [
          "text"
        ],
        "title": "Body_studio_generate_tts_api_studio_tts_post"
      },
      "Body_studio_vip_slip_api_studio_vip_slip_post": {
        "properties": {
          "months": {
            "type": "integer",
            "title": "Months"
          },
          "image": {
            "type": "string",
            "contentMediaType": "application/octet-stream",
            "title": "Image"
          }
        },
        "type": "object",
        "required": [
          "months",
          "image"
        ],
        "title": "Body_studio_vip_slip_api_studio_vip_slip_post"
      },
      "Body_subtitles_align_api_subtitles_align_post": {
        "properties": {
          "media": {
            "type": "string",
            "contentMediaType": "application/octet-stream",
            "title": "Media"
          },
          "script": {
            "type": "string",
            "title": "Script"
          },
          "language": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Language"
          },
          "style": {
            "type": "string",
            "title": "Style",
            "default": "yellow_pop"
          },
          "position_percent": {
            "type": "integer",
            "title": "Position Percent",
            "default": 75
          },
          "font_size": {
            "type": "integer",
            "title": "Font Size",
            "default": 0
          },
          "max_chars": {
            "type": "integer",
            "title": "Max Chars",
            "default": 0
          },
          "font": {
            "type": "string",
            "title": "Font",
            "default": ""
          },
          "format": {
            "type": "string",
            "title": "Format",
            "default": "json"
          },
          "burn": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Burn"
          }
        },
        "type": "object",
        "required": [
          "media",
          "script"
        ],
        "title": "Body_subtitles_align_api_subtitles_align_post"
      },
      "Body_subtitles_auto_api_subtitles_auto_post": {
        "properties": {
          "media": {
            "type": "string",
            "contentMediaType": "application/octet-stream",
            "title": "Media"
          },
          "language": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Language"
          },
          "style": {
            "type": "string",
            "title": "Style",
            "default": "yellow_pop"
          },
          "position_percent": {
            "type": "integer",
            "title": "Position Percent",
            "default": 75
          },
          "font_size": {
            "type": "integer",
            "title": "Font Size",
            "default": 0
          },
          "max_chars": {
            "type": "integer",
            "title": "Max Chars",
            "default": 0
          },
          "font": {
            "type": "string",
            "title": "Font",
            "default": ""
          },
          "format": {
            "type": "string",
            "title": "Format",
            "default": "json"
          },
          "burn": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Burn"
          }
        },
        "type": "object",
        "required": [
          "media"
        ],
        "title": "Body_subtitles_auto_api_subtitles_auto_post"
      },
      "Body_test_voice_clone_prompt_api_clone_prompts__prompt_id__test_post": {
        "properties": {
          "text": {
            "type": "string",
            "title": "Text"
          },
          "num_step": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Num Step"
          },
          "language_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Language Id"
          },
          "speed": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Speed"
          }
        },
        "type": "object",
        "required": [
          "text"
        ],
        "title": "Body_test_voice_clone_prompt_api_clone_prompts__prompt_id__test_post"
      },
      "Body_update_rating_endpoint_api_ratings__rating_id__patch": {
        "properties": {
          "score": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score"
          },
          "note": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          }
        },
        "type": "object",
        "title": "Body_update_rating_endpoint_api_ratings__rating_id__patch"
      },
      "Body_update_voice_clone_prompt_api_clone_prompts__prompt_id__patch": {
        "properties": {
          "label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "tags": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tags"
          }
        },
        "type": "object",
        "title": "Body_update_voice_clone_prompt_api_clone_prompts__prompt_id__patch"
      },
      "Body_web_public_queue_tts_job_api_web_jobs_tts_post": {
        "properties": {
          "text": {
            "type": "string",
            "title": "Text"
          },
          "mode": {
            "type": "string",
            "title": "Mode",
            "default": "auto"
          },
          "ssml": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ssml"
          },
          "auto_emotion_tags": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Auto Emotion Tags"
          },
          "ref_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ref Text"
          },
          "instruct": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Instruct"
          },
          "num_step": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Num Step"
          },
          "priority": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Priority"
          },
          "consent_confirmed": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Consent Confirmed"
          },
          "ref_audio": {
            "anyOf": [
              {
                "type": "string",
                "contentMediaType": "application/octet-stream"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ref Audio"
          },
          "turnstile_token": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Turnstile Token"
          },
          "cf_turnstile_response": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cf Turnstile Response"
          }
        },
        "type": "object",
        "required": [
          "text"
        ],
        "title": "Body_web_public_queue_tts_job_api_web_jobs_tts_post"
      },
      "ErrorClassifyRequest": {
        "properties": {
          "message": {
            "type": "string",
            "minLength": 1,
            "title": "Message"
          },
          "context": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Context"
          }
        },
        "type": "object",
        "required": [
          "message"
        ],
        "title": "ErrorClassifyRequest"
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
          }
        },
        "type": "object",
        "title": "HTTPValidationError"
      },
      "HealthResponse": {
        "properties": {
          "ok": {
            "type": "boolean",
            "title": "Ok",
            "default": true
          },
          "ready": {
            "type": "boolean",
            "title": "Ready",
            "default": false
          },
          "ready_since": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ready Since"
          },
          "service": {
            "type": "string",
            "title": "Service",
            "default": "omnivoice-web-gateway"
          },
          "mode": {
            "type": "string",
            "title": "Mode",
            "default": "mock"
          },
          "model": {
            "type": "string",
            "title": "Model",
            "default": "k2-fsa/OmniVoice"
          },
          "startup_warmup": {
            "$ref": "#/components/schemas/StartupWarmupStatus"
          }
        },
        "type": "object",
        "title": "HealthResponse"
      },
      "HfTokenSetRequest": {
        "properties": {
          "token": {
            "type": "string",
            "minLength": 1,
            "title": "Token"
          },
          "validate": {
            "type": "boolean",
            "title": "Validate",
            "default": false
          },
          "timeout_sec": {
            "type": "number",
            "maximum": 30.0,
            "minimum": 1.0,
            "title": "Timeout Sec",
            "default": 6.0
          }
        },
        "type": "object",
        "required": [
          "token"
        ],
        "title": "HfTokenSetRequest"
      },
      "HfTokenValidateRequest": {
        "properties": {
          "token": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Token"
          },
          "timeout_sec": {
            "type": "number",
            "maximum": 30.0,
            "minimum": 1.0,
            "title": "Timeout Sec",
            "default": 6.0
          }
        },
        "type": "object",
        "title": "HfTokenValidateRequest"
      },
      "NonVerbalValidateRequest": {
        "properties": {
          "text": {
            "type": "string",
            "minLength": 1,
            "title": "Text"
          }
        },
        "type": "object",
        "required": [
          "text"
        ],
        "title": "NonVerbalValidateRequest"
      },
      "OpenAISpeechRequest": {
        "properties": {
          "model": {
            "type": "string",
            "title": "Model",
            "default": "gpt-4o-mini-tts"
          },
          "input": {
            "type": "string",
            "minLength": 1,
            "title": "Input"
          },
          "voice": {
            "type": "string",
            "title": "Voice",
            "default": "alloy"
          },
          "response_format": {
            "type": "string",
            "enum": [
              "mp3",
              "opus",
              "aac",
              "flac",
              "wav",
              "pcm"
            ],
            "title": "Response Format",
            "default": "mp3"
          },
          "input_format": {
            "type": "string",
            "enum": [
              "text",
              "ssml"
            ],
            "title": "Input Format",
            "default": "text"
          },
          "speed": {
            "type": "number",
            "maximum": 4.0,
            "minimum": 0.25,
            "title": "Speed",
            "default": 1.0
          },
          "instructions": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Instructions"
          },
          "ssml": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ssml"
          },
          "mode": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "clone",
                  "design",
                  "auto"
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Mode"
          },
          "ref_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ref Text"
          },
          "num_step": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Num Step"
          },
          "consent_confirmed": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Consent Confirmed"
          },
          "ref_audio_base64": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ref Audio Base64"
          },
          "ref_audio_suffix": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ref Audio Suffix"
          },
          "auto_emotion_tags": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Auto Emotion Tags"
          },
          "duration": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 1800.0,
                "minimum": 0.2
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration"
          },
          "audio_chunk_duration": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 30.0,
                "minimum": 0.1
              },
              {
                "type": "null"
              }
            ],
            "title": "Audio Chunk Duration"
          },
          "audio_chunk_threshold": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 30.0,
                "minimum": 0.1
              },
              {
                "type": "null"
              }
            ],
            "title": "Audio Chunk Threshold"
          },
          "preprocess_prompt": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Preprocess Prompt"
          },
          "postprocess_output": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Postprocess Output"
          },
          "language_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 24,
                "minLength": 2
              },
              {
                "type": "null"
              }
            ],
            "title": "Language Id"
          }
        },
        "additionalProperties": true,
        "type": "object",
        "required": [
          "input"
        ],
        "title": "OpenAISpeechRequest"
      },
      "PronunciationLexiconEntry": {
        "properties": {
          "lexicon_key": {
            "type": "string",
            "maxLength": 200,
            "minLength": 1,
            "title": "Lexicon Key"
          },
          "pronunciation": {
            "type": "string",
            "maxLength": 300,
            "minLength": 1,
            "title": "Pronunciation"
          },
          "language_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 24,
                "minLength": 2
              },
              {
                "type": "null"
              }
            ],
            "title": "Language Id"
          },
          "enabled": {
            "type": "boolean",
            "title": "Enabled",
            "default": true
          },
          "notes": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 500
              },
              {
                "type": "null"
              }
            ],
            "title": "Notes"
          }
        },
        "type": "object",
        "required": [
          "lexicon_key",
          "pronunciation"
        ],
        "title": "PronunciationLexiconEntry"
      },
      "PronunciationLexiconUpsertRequest": {
        "properties": {
          "entries": {
            "items": {
              "$ref": "#/components/schemas/PronunciationLexiconEntry"
            },
            "type": "array",
            "maxItems": 500,
            "minItems": 1,
            "title": "Entries"
          },
          "replace_all": {
            "type": "boolean",
            "title": "Replace All",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "entries"
        ],
        "title": "PronunciationLexiconUpsertRequest"
      },
      "StartupWarmupStatus": {
        "properties": {
          "enabled": {
            "type": "boolean",
            "title": "Enabled",
            "default": true
          },
          "status": {
            "type": "string",
            "title": "Status",
            "default": "pending"
          },
          "attempt": {
            "type": "integer",
            "title": "Attempt",
            "default": 0
          },
          "max_attempts": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Attempts"
          },
          "retry_backoff_sec": {
            "type": "number",
            "title": "Retry Backoff Sec",
            "default": 1.25
          },
          "last_attempt_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Attempt At"
          },
          "next_retry_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Retry At"
          },
          "last_success_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Success At"
          },
          "last_error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Error"
          },
          "last_audio_bytes": {
            "type": "integer",
            "title": "Last Audio Bytes",
            "default": 0
          },
          "warmup_mode": {
            "type": "string",
            "title": "Warmup Mode",
            "default": "auto"
          },
          "warmup_num_step": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Warmup Num Step"
          }
        },
        "type": "object",
        "title": "StartupWarmupStatus"
      },
      "StudioAdminUserUpdateRequest": {
        "properties": {
          "enabled": {
            "type": "boolean",
            "title": "Enabled"
          }
        },
        "type": "object",
        "required": [
          "enabled"
        ],
        "title": "StudioAdminUserUpdateRequest"
      },
      "StudioLoginRequest": {
        "properties": {
          "email": {
            "type": "string",
            "maxLength": 180,
            "minLength": 5,
            "title": "Email"
          },
          "password": {
            "type": "string",
            "maxLength": 200,
            "minLength": 1,
            "title": "Password"
          }
        },
        "type": "object",
        "required": [
          "email",
          "password"
        ],
        "title": "StudioLoginRequest"
      },
      "StudioPresetCreateRequest": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 120,
            "minLength": 1,
            "title": "Name"
          },
          "mode": {
            "type": "string",
            "enum": [
              "clone",
              "design",
              "auto"
            ],
            "title": "Mode",
            "default": "auto"
          },
          "ref_text": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 4000
              },
              {
                "type": "null"
              }
            ],
            "title": "Ref Text"
          },
          "instruct": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 4000
              },
              {
                "type": "null"
              }
            ],
            "title": "Instruct"
          },
          "num_step": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 2000.0,
                "minimum": 1.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Num Step"
          },
          "tags": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Tags"
          },
          "visibility": {
            "type": "string",
            "enum": [
              "private",
              "unlisted"
            ],
            "title": "Visibility",
            "default": "private"
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "StudioPresetCreateRequest"
      },
      "StudioPresetUpdateRequest": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 120,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "mode": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "clone",
                  "design",
                  "auto"
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Mode"
          },
          "ref_text": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 4000
              },
              {
                "type": "null"
              }
            ],
            "title": "Ref Text"
          },
          "instruct": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 4000
              },
              {
                "type": "null"
              }
            ],
            "title": "Instruct"
          },
          "num_step": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 2000.0,
                "minimum": 1.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Num Step"
          },
          "tags": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tags"
          },
          "visibility": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "private",
                  "unlisted"
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Visibility"
          }
        },
        "type": "object",
        "title": "StudioPresetUpdateRequest"
      },
      "StudioRegisterRequest": {
        "properties": {
          "email": {
            "type": "string",
            "maxLength": 180,
            "minLength": 5,
            "title": "Email"
          },
          "password": {
            "type": "string",
            "maxLength": 200,
            "minLength": 6,
            "title": "Password"
          },
          "display_name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 80
              },
              {
                "type": "null"
              }
            ],
            "title": "Display Name"
          }
        },
        "type": "object",
        "required": [
          "email",
          "password"
        ],
        "title": "StudioRegisterRequest"
      },
      "StudioShareCreateRequest": {
        "properties": {
          "note": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 240
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          },
          "allow_fork": {
            "type": "boolean",
            "title": "Allow Fork",
            "default": true
          },
          "expires_hours": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 8760.0,
                "minimum": 1.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires Hours"
          },
          "max_uses": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 100000.0,
                "minimum": 1.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Uses"
          }
        },
        "type": "object",
        "title": "StudioShareCreateRequest"
      },
      "StudioShareForkRequest": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 120,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          }
        },
        "type": "object",
        "title": "StudioShareForkRequest"
      },
      "StudioVipRequestRequest": {
        "properties": {
          "months": {
            "type": "integer",
            "maximum": 12.0,
            "minimum": 1.0,
            "title": "Months"
          },
          "slip_ref": {
            "type": "string",
            "maxLength": 100,
            "minLength": 1,
            "title": "Slip Ref"
          },
          "note": {
            "type": "string",
            "maxLength": 500,
            "title": "Note",
            "default": ""
          }
        },
        "type": "object",
        "required": [
          "months",
          "slip_ref"
        ],
        "title": "StudioVipRequestRequest"
      },
      "TtsBatchItemRequest": {
        "properties": {
          "duration": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 1800.0,
                "minimum": 0.2
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration"
          },
          "speed": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 4.0,
                "minimum": 0.25
              },
              {
                "type": "null"
              }
            ],
            "title": "Speed"
          },
          "audio_chunk_duration": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 30.0,
                "minimum": 0.1
              },
              {
                "type": "null"
              }
            ],
            "title": "Audio Chunk Duration"
          },
          "audio_chunk_threshold": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 30.0,
                "minimum": 0.1
              },
              {
                "type": "null"
              }
            ],
            "title": "Audio Chunk Threshold"
          },
          "preprocess_prompt": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Preprocess Prompt"
          },
          "postprocess_output": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Postprocess Output"
          },
          "language_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 24,
                "minLength": 2
              },
              {
                "type": "null"
              }
            ],
            "title": "Language Id"
          },
          "text": {
            "type": "string",
            "minLength": 1,
            "title": "Text"
          },
          "mode": {
            "type": "string",
            "enum": [
              "clone",
              "design",
              "auto"
            ],
            "title": "Mode",
            "default": "auto"
          },
          "ssml": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ssml"
          },
          "auto_emotion_tags": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Auto Emotion Tags"
          },
          "ref_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ref Text"
          },
          "instruct": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Instruct"
          },
          "num_step": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 2000.0,
                "minimum": 1.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Num Step"
          },
          "consent_confirmed": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Consent Confirmed",
            "default": false
          },
          "ref_audio_base64": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ref Audio Base64"
          },
          "ref_audio_suffix": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ref Audio Suffix"
          },
          "priority": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 100.0,
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Priority"
          }
        },
        "type": "object",
        "required": [
          "text"
        ],
        "title": "TtsBatchItemRequest"
      },
      "TtsBatchRequest": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/TtsBatchItemRequest"
            },
            "type": "array",
            "maxItems": 200,
            "minItems": 1,
            "title": "Items"
          },
          "callback_url": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 1200
              },
              {
                "type": "null"
              }
            ],
            "title": "Callback Url"
          }
        },
        "type": "object",
        "required": [
          "items"
        ],
        "title": "TtsBatchRequest"
      },
      "TtsPreflightRequest": {
        "properties": {
          "duration": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 1800.0,
                "minimum": 0.2
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration"
          },
          "speed": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 4.0,
                "minimum": 0.25
              },
              {
                "type": "null"
              }
            ],
            "title": "Speed"
          },
          "audio_chunk_duration": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 30.0,
                "minimum": 0.1
              },
              {
                "type": "null"
              }
            ],
            "title": "Audio Chunk Duration"
          },
          "audio_chunk_threshold": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 30.0,
                "minimum": 0.1
              },
              {
                "type": "null"
              }
            ],
            "title": "Audio Chunk Threshold"
          },
          "preprocess_prompt": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Preprocess Prompt"
          },
          "postprocess_output": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Postprocess Output"
          },
          "language_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 24,
                "minLength": 2
              },
              {
                "type": "null"
              }
            ],
            "title": "Language Id"
          },
          "text": {
            "type": "string",
            "minLength": 1,
            "title": "Text"
          },
          "mode": {
            "type": "string",
            "enum": [
              "clone",
              "design",
              "auto"
            ],
            "title": "Mode",
            "default": "auto"
          },
          "ssml": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ssml"
          },
          "auto_emotion_tags": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Auto Emotion Tags"
          },
          "ref_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ref Text"
          },
          "instruct": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Instruct"
          },
          "num_step": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 2000.0,
                "minimum": 1.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Num Step"
          },
          "consent_confirmed": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Consent Confirmed",
            "default": false
          },
          "ref_audio_base64": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ref Audio Base64"
          },
          "ref_audio_suffix": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ref Audio Suffix"
          }
        },
        "type": "object",
        "required": [
          "text"
        ],
        "title": "TtsPreflightRequest"
      },
      "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"
      }
    }
  }
}