{
  "openapi": "3.1.0",
  "paths": {
    "/v2/assets": {
      "get": {
        "operationId": "AssetsController_getAll",
        "parameters": [
          {
            "name": "projectId",
            "required": false,
            "in": "query",
            "schema": {
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
              "type": "string"
            }
          },
          {
            "name": "userId",
            "required": false,
            "in": "query",
            "schema": {
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
              "type": "string"
            }
          },
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "schema": {
              "minimum": 1,
              "maximum": 100,
              "default": 10,
              "type": "integer"
            }
          },
          {
            "name": "cursor",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "searchQuery",
            "required": false,
            "in": "query",
            "schema": {
              "default": "",
              "type": "string"
            }
          },
          {
            "name": "sortBy",
            "required": false,
            "in": "query",
            "schema": {
              "default": "nameAsc",
              "type": "string",
              "enum": [
                "nameAsc",
                "nameDesc",
                "dateAsc",
                "dateDesc",
                "durationAsc",
                "durationDesc",
                "sizeAsc",
                "sizeDesc",
                "kindAsc",
                "kindDesc"
              ]
            }
          },
          {
            "name": "types",
            "required": false,
            "in": "query",
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated list of assets",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedAssetsResponseDto"
                }
              }
            }
          }
        },
        "summary": "List all assets for the organization",
        "tags": [
          "Assets"
        ]
      },
      "post": {
        "description": "Registers a media URL as a reusable asset. Use the returned asset id in generation inputs (`input[].assetId`) or as a voice clone sample. To upload a local file, first request a presigned URL via `POST /v2/assets/upload`, PUT the file there, then register the returned `url` here.",
        "operationId": "AssetsController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAssetDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Asset created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetDto"
                }
              }
            }
          },
          "422": {
            "description": "The URL points at the upload bucket but no file was uploaded, the uploaded file exceeds the plan size limit, or an optional projectId was provided but does not reference a project in your organization"
          }
        },
        "summary": "Create a new asset",
        "tags": [
          "Assets"
        ]
      }
    },
    "/v2/assets/count": {
      "get": {
        "operationId": "AssetsController_count",
        "parameters": [
          {
            "name": "projectId",
            "required": false,
            "in": "query",
            "schema": {
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
              "type": "string"
            }
          },
          {
            "name": "userId",
            "required": false,
            "in": "query",
            "schema": {
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
              "type": "string"
            }
          },
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "schema": {
              "minimum": 1,
              "maximum": 100,
              "default": 10,
              "type": "integer"
            }
          },
          {
            "name": "cursor",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "searchQuery",
            "required": false,
            "in": "query",
            "schema": {
              "default": "",
              "type": "string"
            }
          },
          {
            "name": "sortBy",
            "required": false,
            "in": "query",
            "schema": {
              "default": "nameAsc",
              "type": "string",
              "enum": [
                "nameAsc",
                "nameDesc",
                "dateAsc",
                "dateDesc",
                "durationAsc",
                "durationDesc",
                "sizeAsc",
                "sizeDesc",
                "kindAsc",
                "kindDesc"
              ]
            }
          },
          {
            "name": "types",
            "required": false,
            "in": "query",
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Number of assets",
            "content": {
              "application/json": {
                "schema": {
                  "type": "number",
                  "example": 42
                }
              }
            }
          }
        },
        "summary": "Get count of assets",
        "tags": [
          "Assets",
          "internal"
        ]
      }
    },
    "/v2/assets/upload": {
      "post": {
        "description": "Returns a presigned S3 `uploadUrl` and the final public `url`. PUT the file bytes to `uploadUrl` with the same Content-Type, then register the file as an asset via `POST /v2/assets` using `url`. Registration verifies the upload happened and enforces plan limits on the actual file size. Single uploads are capped at 5GB.",
        "operationId": "AssetsController_createUploadUrl",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAssetUploadDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Presigned upload URL created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetUploadResponseDto"
                }
              }
            }
          },
          "422": {
            "description": "File size exceeds the plan limit"
          }
        },
        "summary": "Request a presigned URL to upload a file",
        "tags": [
          "Assets"
        ]
      }
    },
    "/v2/assets/batch": {
      "post": {
        "operationId": "AssetsController_getMany",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchGetAssetsDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "List of assets",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AssetDto"
                  }
                }
              }
            }
          }
        },
        "summary": "Get multiple assets by IDs",
        "tags": [
          "Assets",
          "internal"
        ]
      }
    },
    "/v2/assets/{id}/download": {
      "get": {
        "operationId": "AssetsController_getDownloadUrl",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Asset ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Download URL",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uri"
                }
              }
            }
          },
          "404": {
            "description": "Asset not found"
          }
        },
        "summary": "Get download URL for an asset",
        "tags": [
          "Assets",
          "internal"
        ]
      }
    },
    "/v2/assets/{id}": {
      "get": {
        "operationId": "AssetsController_get",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Asset ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Asset details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetDto"
                }
              }
            }
          },
          "404": {
            "description": "Asset not found"
          }
        },
        "summary": "Get an asset by ID",
        "tags": [
          "Assets"
        ]
      },
      "patch": {
        "description": "Updates the name or visibility of an asset. With API-key auth the asset must be owned by the key owner; organization-shared assets can only be updated by an admin/owner session.",
        "operationId": "AssetsController_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Asset ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAssetDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Asset updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetDto"
                }
              }
            }
          },
          "403": {
            "description": "Asset is visible but not writable by the caller (only the owner or an org admin/owner can update it)"
          },
          "404": {
            "description": "Asset not found"
          },
          "422": {
            "description": "API key has no owner to scope the update"
          }
        },
        "summary": "Update an asset",
        "tags": [
          "Assets"
        ]
      },
      "delete": {
        "description": "Deletes an asset in your organization. With API-key auth the asset must be owned by the key owner; assets shared at the organization level can only be deleted by an admin/owner session.",
        "operationId": "AssetsController_delete",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Asset ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Asset deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Asset is visible but not deletable by the caller (only the owner or an org admin/owner can delete it)"
          },
          "404": {
            "description": "Asset not found"
          },
          "422": {
            "description": "API key has no owner to scope the deletion"
          }
        },
        "summary": "Delete an asset",
        "tags": [
          "Assets"
        ]
      }
    },
    "/v2/asset-metadata/by-asset": {
      "get": {
        "operationId": "AssetMetadataController_getByAssetId",
        "parameters": [
          {
            "name": "assetId",
            "required": true,
            "in": "query",
            "schema": {
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Asset metadata entries",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AssetMetadataResponseDto"
                  }
                }
              }
            }
          }
        },
        "summary": "Get metadata by asset ID",
        "tags": [
          "Asset Metadata",
          "internal"
        ]
      }
    },
    "/v2/asset-metadata": {
      "get": {
        "operationId": "AssetMetadataController_get",
        "parameters": [
          {
            "name": "assetId",
            "required": true,
            "in": "query",
            "schema": {
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Asset metadata",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetMetadataResponseDto"
                }
              }
            }
          }
        },
        "summary": "Get metadata by asset ID",
        "tags": [
          "Asset Metadata",
          "internal"
        ]
      },
      "post": {
        "operationId": "AssetMetadataController_upsert",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpsertAssetMetadataDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Asset metadata upserted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetMetadataResponseDto"
                }
              }
            }
          }
        },
        "summary": "Upsert asset metadata",
        "tags": [
          "Asset Metadata",
          "internal"
        ]
      },
      "patch": {
        "operationId": "AssetMetadataController_update",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAssetMetadataDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Asset metadata updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetMetadataResponseDto"
                }
              }
            }
          }
        },
        "summary": "Update asset metadata",
        "tags": [
          "Asset Metadata",
          "internal"
        ]
      },
      "delete": {
        "operationId": "AssetMetadataController_delete",
        "parameters": [
          {
            "name": "assetId",
            "required": true,
            "in": "query",
            "schema": {
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Asset metadata deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetMetadataResponseDto"
                }
              }
            }
          }
        },
        "summary": "Delete asset metadata",
        "tags": [
          "Asset Metadata",
          "internal"
        ]
      }
    },
    "/v2/asset-metadata/exists": {
      "get": {
        "operationId": "AssetMetadataController_exists",
        "parameters": [
          {
            "name": "assetId",
            "required": true,
            "in": "query",
            "schema": {
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Boolean result"
          }
        },
        "summary": "Check if asset metadata exists",
        "tags": [
          "Asset Metadata",
          "internal"
        ]
      }
    },
    "/v2/aescripts/provision": {
      "post": {
        "operationId": "AescriptsController_provision",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Credits provisioned or already credited",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProvisionResponseDto"
                }
              }
            }
          }
        },
        "summary": "Provision $5 credits for aescripts plugin purchasers",
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/organizations/current": {
      "get": {
        "operationId": "OrganizationsController_getCurrent",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Current organization",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationDto"
                }
              }
            }
          }
        },
        "summary": "Get current organization",
        "tags": [
          "Organizations",
          "internal"
        ]
      }
    },
    "/v2/organizations/settings": {
      "get": {
        "operationId": "OrganizationsController_getSettings",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Organization settings",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationSettingsDto"
                }
              }
            }
          }
        },
        "summary": "Get organization settings",
        "tags": [
          "Organizations",
          "internal"
        ]
      },
      "patch": {
        "operationId": "OrganizationsController_updateSettings",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOrganizationSettingsDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Settings updated"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        },
        "summary": "Update organization settings (admin only)",
        "tags": [
          "Organizations",
          "internal"
        ]
      }
    },
    "/v2/organizations/draft": {
      "get": {
        "operationId": "OrganizationsController_getDraft",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Draft organization or null",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationDto"
                }
              }
            }
          }
        },
        "summary": "Get draft organization",
        "tags": [
          "Organizations",
          "internal"
        ]
      }
    },
    "/v2/organizations/webhook/secret": {
      "get": {
        "description": "Returns the organization webhook signing secret used to verify Sync-Signature headers on generation and batch webhooks. Sync signs the raw JSON request body as HMAC-SHA256 over `<timestamp>.<rawBody>` and sends it as `Sync-Signature: t=<unix>,v1=<hex_digest>`. Store the full `whsec_...` value securely and use `masked=true` only for display.",
        "operationId": "OrganizationsController_getWebhookSecret",
        "parameters": [
          {
            "name": "masked",
            "required": false,
            "in": "query",
            "description": "Whether to return a masked version of the secret for display. Omit or set false when configuring a webhook verifier.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Webhook secret",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookSecretResponseDto"
                }
              }
            }
          }
        },
        "summary": "Get webhook secret",
        "tags": [
          "Organizations"
        ]
      }
    },
    "/v2/organizations": {
      "get": {
        "operationId": "OrganizationsController_getAll",
        "parameters": [],
        "responses": {
          "200": {
            "description": "List of organizations",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrganizationDto"
                  }
                }
              }
            }
          }
        },
        "summary": "Get all organizations for current user",
        "tags": [
          "Organizations",
          "internal"
        ]
      },
      "post": {
        "operationId": "OrganizationsController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrganizationDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Organization created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationDto"
                }
              }
            }
          }
        },
        "summary": "Create a new organization",
        "tags": [
          "Organizations",
          "internal"
        ]
      }
    },
    "/v2/organizations/notify-limit": {
      "post": {
        "operationId": "OrganizationsController_notifyLimit",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NotifyLimitDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Notification sent",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        },
        "summary": "Send limit notification email",
        "tags": [
          "Organizations",
          "internal"
        ]
      }
    },
    "/v2/organizations/alerts/{alertId}": {
      "patch": {
        "operationId": "OrganizationsController_updateAlert",
        "parameters": [
          {
            "name": "alertId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAlertDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Alert updated"
          }
        },
        "summary": "Update alert received status",
        "tags": [
          "Organizations",
          "internal"
        ]
      },
      "delete": {
        "operationId": "OrganizationsController_removeAlert",
        "parameters": [
          {
            "name": "alertId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Alert removed"
          }
        },
        "summary": "Remove a received alert",
        "tags": [
          "Organizations",
          "internal"
        ]
      }
    },
    "/v2/organizations/{id}": {
      "get": {
        "operationId": "OrganizationsController_getById",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Organization details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationDto"
                }
              }
            }
          },
          "404": {
            "description": "Organization not found"
          }
        },
        "summary": "Get organization by ID",
        "tags": [
          "Organizations",
          "internal"
        ]
      },
      "patch": {
        "operationId": "OrganizationsController_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOrganizationDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Organization updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationDto"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient permissions"
          }
        },
        "summary": "Update organization (admin only)",
        "tags": [
          "Organizations",
          "internal"
        ]
      }
    },
    "/v2/users/me": {
      "patch": {
        "operationId": "UsersController_update",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "User updated successfully"
          }
        },
        "summary": "Update current user organization",
        "tags": [
          "Users",
          "internal"
        ]
      },
      "delete": {
        "operationId": "UsersController_deleteAccount",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Account deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteAccountResponseDto"
                }
              }
            }
          },
          "412": {
            "description": "Precondition failed - user must transfer ownership or cancel subscription first"
          }
        },
        "summary": "Delete current user account",
        "tags": [
          "Users",
          "internal"
        ]
      }
    },
    "/v2/users/me/can-delete": {
      "get": {
        "operationId": "UsersController_canDelete",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Returns whether the user can delete their account",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CanDeleteResponseDto"
                }
              }
            }
          }
        },
        "summary": "Check if user can delete their account",
        "tags": [
          "Users",
          "internal"
        ]
      }
    },
    "/v2/users/me/sessions/revoke": {
      "post": {
        "operationId": "UsersController_revokeOwnSessions",
        "parameters": [],
        "responses": {
          "200": {
            "description": "All active sessions were revoked",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RevokeOwnSessionsResponseDto"
                }
              }
            }
          }
        },
        "summary": "Log out current user from all devices",
        "tags": [
          "Users",
          "internal"
        ]
      }
    },
    "/v2/api-keys": {
      "get": {
        "operationId": "ApiKeysController_getAll",
        "parameters": [
          {
            "name": "isActive",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of API keys",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApiKeyWithUserDto"
                  }
                }
              }
            }
          }
        },
        "summary": "List all API keys for the organization",
        "tags": [
          "API Keys",
          "internal"
        ]
      },
      "post": {
        "operationId": "ApiKeysController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateApiKeyDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "API key created successfully. The secret is only shown once.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyWithSecretDto"
                }
              }
            }
          }
        },
        "summary": "Create a new API key",
        "tags": [
          "API Keys",
          "internal"
        ]
      }
    },
    "/v2/api-keys/{id}": {
      "delete": {
        "operationId": "ApiKeysController_revoke",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "API key ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "API key revoked successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyDto"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient permissions"
          },
          "404": {
            "description": "API key not found"
          }
        },
        "summary": "Revoke an API key (admin only)",
        "tags": [
          "API Keys",
          "internal"
        ]
      },
      "patch": {
        "operationId": "ApiKeysController_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "API key ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateApiKeyDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "API key updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyDto"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient permissions"
          },
          "404": {
            "description": "API key not found"
          }
        },
        "summary": "Update an API key (admin only)",
        "tags": [
          "API Keys",
          "internal"
        ]
      }
    },
    "/v2/organizations/{organizationId}/members/me": {
      "get": {
        "operationId": "UserOrganizationsController_getCurrentMembership",
        "parameters": [
          {
            "name": "organizationId",
            "required": true,
            "in": "path",
            "description": "Organization ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Current user membership",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserOrganizationWithoutUserDto"
                }
              }
            }
          },
          "404": {
            "description": "Membership not found"
          }
        },
        "summary": "Get current user's membership in the organization",
        "tags": [
          "Organization Members",
          "internal"
        ]
      }
    },
    "/v2/organizations/{organizationId}/members": {
      "get": {
        "operationId": "UserOrganizationsController_getAllMembers",
        "parameters": [
          {
            "name": "organizationId",
            "required": true,
            "in": "path",
            "description": "Organization ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of organization members",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserOrganizationDto"
                  }
                }
              }
            }
          }
        },
        "summary": "List all members in the organization",
        "tags": [
          "Organization Members",
          "internal"
        ]
      }
    },
    "/v2/organizations/{organizationId}/members/{userId}": {
      "get": {
        "operationId": "UserOrganizationsController_getMember",
        "parameters": [
          {
            "name": "organizationId",
            "required": true,
            "in": "path",
            "description": "Organization ID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "userId",
            "required": true,
            "in": "path",
            "description": "User ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Member details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserOrganizationDto"
                }
              }
            }
          },
          "404": {
            "description": "Member not found"
          }
        },
        "summary": "Get a specific member by user ID",
        "tags": [
          "Organization Members",
          "internal"
        ]
      },
      "patch": {
        "operationId": "UserOrganizationsController_updateMember",
        "parameters": [
          {
            "name": "organizationId",
            "required": true,
            "in": "path",
            "description": "Organization ID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "userId",
            "required": true,
            "in": "path",
            "description": "User ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMemberDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Member role updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserOrganizationWithoutUserDto"
                }
              }
            }
          },
          "404": {
            "description": "Member not found"
          }
        },
        "summary": "Update a member's role",
        "tags": [
          "Organization Members",
          "internal"
        ]
      },
      "delete": {
        "operationId": "UserOrganizationsController_removeMember",
        "parameters": [
          {
            "name": "organizationId",
            "required": true,
            "in": "path",
            "description": "Organization ID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "userId",
            "required": true,
            "in": "path",
            "description": "User ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Member removed successfully"
          },
          "404": {
            "description": "Member not found"
          }
        },
        "summary": "Remove a member from the organization",
        "tags": [
          "Organization Members",
          "internal"
        ]
      }
    },
    "/v2/plans": {
      "get": {
        "operationId": "PlansController_getAll",
        "parameters": [],
        "responses": {
          "200": {
            "description": "All plans with their details",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/PlanSummaryDto"
                  }
                }
              }
            }
          }
        },
        "summary": "Get all available plans",
        "tags": [
          "Plans",
          "internal"
        ]
      }
    },
    "/v2/plans/type": {
      "get": {
        "operationId": "PlansController_get",
        "parameters": [
          {
            "name": "type",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "creator",
                "scale",
                "growth",
                "hobbyist",
                "enterprise",
                "program",
                "partner"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Plan details with pricing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlanInfoDto"
                }
              }
            }
          }
        },
        "summary": "Get plan details by type",
        "tags": [
          "Plans",
          "internal"
        ]
      }
    },
    "/v2/plans/limits": {
      "get": {
        "operationId": "PlansController_getLimits",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Plan limits",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlanLimitsDto"
                }
              }
            }
          }
        },
        "summary": "Get limits for current plan",
        "tags": [
          "Plans",
          "internal"
        ]
      }
    },
    "/v2/plans/enterprise/prices": {
      "get": {
        "operationId": "PlansController_getEnterpriseUsagePrices",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Enterprise pricing details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnterprisePlanDto"
                }
              }
            }
          }
        },
        "summary": "Get enterprise usage prices",
        "tags": [
          "Plans",
          "internal"
        ]
      }
    },
    "/v2/plans/free/model-prices": {
      "get": {
        "operationId": "PlansController_getFreeTierModelPrices",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Model prices for free tier",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ModelPriceDto"
                  }
                }
              }
            }
          }
        },
        "summary": "Get model prices for free tier",
        "tags": [
          "Plans",
          "internal"
        ]
      }
    },
    "/v2/plans/check/lipsync-duration": {
      "get": {
        "operationId": "PlansController_checkLipsyncDuration",
        "parameters": [
          {
            "name": "durationSeconds",
            "required": true,
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "modelName",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Limit check result",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LimitCheckResultDto"
                }
              }
            }
          }
        },
        "summary": "Check if lipsync duration is within plan limits",
        "tags": [
          "Plans",
          "internal"
        ]
      }
    },
    "/v2/plans/check/file-size": {
      "get": {
        "operationId": "PlansController_checkFileSize",
        "parameters": [
          {
            "name": "bytes",
            "required": true,
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Limit check result",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LimitCheckResultDto"
                }
              }
            }
          }
        },
        "summary": "Check if file size is within plan limits",
        "tags": [
          "Plans",
          "internal"
        ]
      }
    },
    "/v2/agent/chat": {
      "post": {
        "operationId": "AgentController_chat",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "messages": {
                    "type": "array",
                    "items": {
                      "type": "object"
                    },
                    "description": "Array of UI messages"
                  },
                  "sessionId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Optional session ID for message persistence"
                  }
                },
                "required": [
                  "messages"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Server-Sent Events stream of AI responses"
          }
        },
        "summary": "Stream AI chat responses",
        "tags": [
          "Agent",
          "internal"
        ]
      }
    },
    "/v2/agent/sessions": {
      "get": {
        "operationId": "AgentController_listSessions",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "query",
            "description": "Project ID to list sessions for",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "required": false,
            "in": "query",
            "description": "Cursor for pagination",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "description": "Number of sessions to return",
            "schema": {
              "minimum": 1,
              "maximum": 100,
              "default": 20,
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated list of sessions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListSessionsResponseDto"
                }
              }
            }
          }
        },
        "summary": "List sessions for a project",
        "tags": [
          "Agent",
          "internal"
        ]
      },
      "post": {
        "operationId": "AgentController_createSession",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSessionDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Session created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionDto"
                }
              }
            }
          },
          "404": {
            "description": "Project not found"
          }
        },
        "summary": "Create a new session",
        "tags": [
          "Agent",
          "internal"
        ]
      }
    },
    "/v2/agent/sessions/{id}": {
      "get": {
        "operationId": "AgentController_getSession",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Session ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Session details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionDto"
                }
              }
            }
          },
          "404": {
            "description": "Session not found"
          }
        },
        "summary": "Get a single session",
        "tags": [
          "Agent",
          "internal"
        ]
      },
      "delete": {
        "operationId": "AgentController_deleteSession",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Session ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "404": {
            "description": "Session not found"
          }
        },
        "summary": "Delete a session",
        "tags": [
          "Agent",
          "internal"
        ]
      }
    },
    "/v2/agent/sessions/{id}/state": {
      "patch": {
        "operationId": "AgentController_updateState",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Session ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStateDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "State updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionDto"
                }
              }
            }
          },
          "404": {
            "description": "Session not found"
          }
        },
        "summary": "Update session state",
        "tags": [
          "Agent",
          "internal"
        ]
      }
    },
    "/v2/agent/sessions/{id}/metadata": {
      "patch": {
        "operationId": "AgentController_updateMetadata",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Session ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMetadataDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Metadata updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionDto"
                }
              }
            }
          },
          "404": {
            "description": "Session not found"
          }
        },
        "summary": "Update session metadata",
        "tags": [
          "Agent",
          "internal"
        ]
      }
    },
    "/v2/agent/sessions/{id}/complete": {
      "post": {
        "operationId": "AgentController_completeSession",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Session ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompleteSessionDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Session completed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionDto"
                }
              }
            }
          },
          "400": {
            "description": "Generation not found or belongs to a different project"
          },
          "404": {
            "description": "Session not found"
          },
          "409": {
            "description": "Generation already linked to another session, or session already completed with a different generation"
          }
        },
        "summary": "Mark session as completed",
        "tags": [
          "Agent",
          "internal"
        ]
      }
    },
    "/v2/agent/sessions/{id}/processing-start": {
      "post": {
        "operationId": "AgentController_startSessionProcessing",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Session ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StartSessionProcessingDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Session marked as processing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionDto"
                }
              }
            }
          },
          "400": {
            "description": "Generation not found or belongs to a different project"
          },
          "404": {
            "description": "Session not found"
          },
          "409": {
            "description": "Generation already linked to another session, or session already completed with a different generation"
          }
        },
        "summary": "Mark session as processing",
        "tags": [
          "Agent",
          "internal"
        ]
      }
    },
    "/v2/agent/sessions/{id}/messages": {
      "put": {
        "operationId": "AgentController_saveMessages",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Session ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveMessagesDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Messages saved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionDto"
                }
              }
            }
          },
          "404": {
            "description": "Session not found"
          },
          "409": {
            "description": "Message revision conflict, client must reconcile"
          }
        },
        "summary": "Save messages to a session",
        "tags": [
          "Agent",
          "internal"
        ]
      }
    },
    "/v2/agent/dubbing/transcribe": {
      "post": {
        "operationId": "AgentController_transcribe",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "audio": {
                    "type": "string",
                    "format": "binary",
                    "description": "Audio file to transcribe"
                  }
                },
                "required": [
                  "audio"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Transcription result",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TranscriptionResultDto"
                }
              }
            }
          }
        },
        "summary": "Transcribe audio using Whisper",
        "tags": [
          "Agent",
          "internal"
        ]
      }
    },
    "/v2/agent/dubbing/translate": {
      "post": {
        "operationId": "AgentController_translate",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TranslateDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Translation result",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TranslationResultDto"
                }
              }
            }
          }
        },
        "summary": "Translate transcript segments",
        "tags": [
          "Agent",
          "internal"
        ]
      }
    },
    "/v2/auth/redirect-info": {
      "get": {
        "operationId": "AuthController_getRedirectInfo",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Redirect info for authenticated user",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RedirectInfoDto"
                }
              }
            }
          }
        },
        "summary": "Get redirect info for authenticated user",
        "tags": [
          "Auth",
          "internal"
        ]
      }
    },
    "/v2/plugin/version": {
      "get": {
        "operationId": "PluginController_getLatestVersion",
        "parameters": [
          {
            "name": "pluginType",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "premiere-pro",
                "davinci-resolve"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Plugin version info",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PluginVersionInfoDto"
                }
              }
            }
          }
        },
        "summary": "Get latest plugin version",
        "tags": [
          "Plugin",
          "internal"
        ]
      }
    },
    "/v2/plugin/versions": {
      "get": {
        "operationId": "PluginController_getAllVersions",
        "parameters": [],
        "responses": {
          "200": {
            "description": "All plugin version info"
          }
        },
        "summary": "Get all plugin versions",
        "tags": [
          "Plugin",
          "internal"
        ]
      }
    },
    "/v2/generate": {
      "post": {
        "operationId": "GenerateController_createGeneration",
        "parameters": [],
        "requestBody": {
          "required": true,
          "description": "Create a generation job. Send application/json for URL or assetId inputs. Use multipart/form-data only when uploading direct audio, video, or image file fields; nested fields such as input, options, segments, and dubParams must be JSON strings in multipart requests.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateGenerationDto"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/CreateGenerationDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Job created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Generation"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request - Invalid input or unsupported model",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - Invalid or missing authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict - the controller rejected a duplicate backend submission (errorCode generation_conflict). Public create requests do not currently accept a client-supplied generation id or idempotency key, so do not blindly retry ambiguous network failures.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationError"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity - submit-time validation failed (e.g. an optional projectId was provided but does not reference a project in your organization)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationError"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests - concurrency limit reached (errorCode concurrency_limit_reached). Includes activeGenerations, concurrencyLimit, retryAfterSeconds and the Retry-After / X-Sync-Concurrency-Limit / X-Sync-Active-Generations headers",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error - unexpected failure (errorCode internal_error). Includes the requestId for support",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationError"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable - the generation service or a dependency is temporarily unavailable, or media validation exceeded its bounded deadline (errorCode controller_unavailable / controller_dependency_error / generation_media_probe_unavailable / generation_media_probe_timeout). Includes a Retry-After header",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationError"
                }
              }
            }
          },
          "504": {
            "description": "Gateway Timeout - controller submission exceeded its bounded deadline with an unknown outcome (errorCode controller_timeout). Do not blindly retry. Includes a Retry-After header",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationError"
                }
              }
            }
          }
        },
        "tags": [
          "Generate"
        ]
      }
    },
    "/v2/generate/{id}": {
      "get": {
        "operationId": "GenerateController_getGeneration",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Job ID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "description": "Additional information to include in the response",
            "schema": {
              "enum": [
                "progress"
              ],
              "type": "string"
            }
          },
          {
            "name": "wait",
            "required": false,
            "in": "query",
            "description": "Explicitly long-poll until the generation reaches a terminal state (COMPLETED, FAILED, REJECTED) or the timeout elapses. On timeout the current state is returned with HTTP 200 - check `status` and retry. Cannot be combined with include=progress.",
            "schema": {
              "example": true,
              "type": "boolean"
            }
          },
          {
            "name": "timeout",
            "required": false,
            "in": "query",
            "description": "Maximum seconds to block when wait=true (1-10). Default 5.",
            "schema": {
              "minimum": 1,
              "maximum": 10,
              "example": 5,
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Job status retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Generation"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request - the id is not a valid generation id (errorCode invalid_generation_id) or is an external provider id (errorCode unsupported_generation_id_format)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - Invalid or missing authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationError"
                }
              }
            }
          },
          "404": {
            "description": "Job not found (errorCode generation_not_found)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error (errorCode internal_error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationError"
                }
              }
            }
          }
        },
        "tags": [
          "Generate"
        ]
      }
    },
    "/v2/generate/estimate-cost": {
      "post": {
        "description": "Alias of POST /v2/generations/estimate.",
        "operationId": "GenerateController_estimateCost",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EstimateCostDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Estimated cost",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EstimateCostResponseDto"
                }
              }
            }
          }
        },
        "summary": "Estimate cost for a generation",
        "tags": [
          "Generate"
        ]
      }
    },
    "/v2/generations": {
      "get": {
        "operationId": "GenerateController_getGenerations",
        "parameters": [
          {
            "name": "status",
            "required": false,
            "in": "query",
            "description": "Filter generations by status",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "description": "Maximum number of generations to return (1-100). When set, results are ordered newest-first and can be paged with `cursor`.",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "cursor",
            "required": false,
            "in": "query",
            "description": "Generation id to page after - pass the last id of the previous page. Only used together with `limit`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Generations retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Generation"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - Invalid or missing authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationError"
                }
              }
            }
          }
        },
        "tags": [
          "Generate"
        ]
      }
    },
    "/v2/models": {
      "get": {
        "operationId": "ModelsController_get",
        "parameters": [],
        "responses": {
          "200": {
            "description": "List of models",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ModelDto"
                  }
                }
              }
            }
          }
        },
        "summary": "Get all available models",
        "tags": [
          "Models"
        ]
      }
    },
    "/v2/generations/list": {
      "get": {
        "operationId": "GenerationsController_getAll",
        "parameters": [
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "schema": {
              "minimum": 1,
              "maximum": 100,
              "default": 10,
              "type": "integer"
            }
          },
          {
            "name": "cursor",
            "required": false,
            "in": "query",
            "schema": {
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
              "type": "string"
            }
          },
          {
            "name": "status",
            "required": false,
            "in": "query",
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              ]
            }
          },
          {
            "name": "projectId",
            "required": false,
            "in": "query",
            "schema": {
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
              "type": "string"
            }
          },
          {
            "name": "source",
            "required": false,
            "in": "query",
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              ]
            }
          },
          {
            "name": "ids",
            "required": false,
            "in": "query",
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated list of generations",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedGenerationsResponseDto"
                }
              }
            }
          }
        },
        "summary": "List all generations for the organization",
        "tags": [
          "Generations",
          "internal"
        ]
      }
    },
    "/v2/generations/estimate": {
      "post": {
        "operationId": "GenerationsController_estimateCost",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EstimateCostDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Estimated cost",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EstimateCostResponseDto"
                }
              }
            }
          }
        },
        "summary": "Estimate cost for a generation",
        "tags": [
          "Generations"
        ]
      }
    },
    "/v2/generations/progress": {
      "get": {
        "operationId": "GenerationsController_getProgresses",
        "parameters": [
          {
            "name": "ids",
            "required": true,
            "in": "query",
            "description": "Generation IDs to check progress for",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Progress for each generation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GenerationProgressDto"
                  }
                }
              }
            }
          }
        },
        "summary": "Get progress for multiple generations",
        "tags": [
          "Generations",
          "internal"
        ]
      }
    },
    "/v2/generations/count": {
      "get": {
        "operationId": "GenerationsController_getCount",
        "parameters": [
          {
            "name": "status",
            "required": false,
            "in": "query",
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              ]
            }
          },
          {
            "name": "type",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "playground",
                "api"
              ]
            }
          },
          {
            "name": "source",
            "required": false,
            "in": "query",
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              ]
            }
          },
          {
            "name": "generationSource",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "studio_lite",
                "studio_advanced",
                "studio_assistant",
                "premiere-plugin",
                "resolve-plugin",
                "mcp",
                "chatgpt",
                "claude",
                "gemini",
                "api"
              ]
            }
          },
          {
            "name": "currentUserOnly",
            "required": false,
            "in": "query",
            "schema": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Generation count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountResponseDto"
                }
              }
            }
          }
        },
        "summary": "Count generations for the organization",
        "tags": [
          "Generations",
          "internal"
        ]
      }
    },
    "/v2/generations/public/{id}": {
      "get": {
        "operationId": "GenerationsController_getPublic",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Generation ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Public generation details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicGenerationResponseDto"
                }
              }
            }
          },
          "404": {
            "description": "Generation not found or not public"
          }
        },
        "summary": "Get a public generation by ID",
        "tags": [
          "Generations",
          "internal"
        ]
      }
    },
    "/v2/generations/{id}": {
      "get": {
        "operationId": "GenerationsController_getById",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Generation ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Generation details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationDto"
                }
              }
            }
          },
          "404": {
            "description": "Generation not found"
          }
        },
        "summary": "Get a generation by ID",
        "tags": [
          "Generations"
        ]
      },
      "delete": {
        "description": "Deletes a generation. Generations are organization-scoped, so any member - or an API key for the organization - can delete one.",
        "operationId": "GenerationsController_delete",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Generation ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Generation deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationDto"
                }
              }
            }
          },
          "404": {
            "description": "Generation not found"
          },
          "409": {
            "description": "Generation is still processing and cannot be deleted (errorCode: generation_not_deletable_while_processing)"
          }
        },
        "summary": "Delete a generation",
        "tags": [
          "Generations"
        ]
      }
    },
    "/v2/generations/{id}/download": {
      "get": {
        "operationId": "GenerationsController_getDownloadUrl",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Generation ID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fileName",
            "required": false,
            "in": "query",
            "description": "Custom file name for download",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "isSegment",
            "required": false,
            "in": "query",
            "description": "Whether to get segment output",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Download URL",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uri"
                }
              }
            }
          },
          "404": {
            "description": "Generation not found"
          }
        },
        "summary": "Get download URL for a generation",
        "tags": [
          "Generations",
          "internal"
        ]
      }
    },
    "/v2/generations/{id}/thumbnail/upload-url": {
      "get": {
        "operationId": "GenerationsController_getThumbnailUploadUrl",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Generation ID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fileName",
            "required": true,
            "in": "query",
            "description": "File name for the thumbnail",
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "name": "contentType",
            "required": true,
            "in": "query",
            "description": "Content type of the thumbnail",
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Upload URL and token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThumbnailUploadResponseDto"
                }
              }
            }
          },
          "404": {
            "description": "Generation not found"
          }
        },
        "summary": "Get a signed URL for uploading a thumbnail for a generation",
        "tags": [
          "Generations",
          "internal"
        ]
      }
    },
    "/v2/generations/{id}/thumbnail/complete": {
      "post": {
        "operationId": "GenerationsController_completeThumbnailUpload",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Generation ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompleteThumbnailUploadBodyDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Thumbnail upload completed, generation updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationDto"
                }
              }
            }
          },
          "401": {
            "description": "Invalid upload token"
          },
          "404": {
            "description": "Generation not found"
          }
        },
        "summary": "Complete thumbnail upload for a generation",
        "tags": [
          "Generations",
          "internal"
        ]
      }
    },
    "/v2/generations/{id}/public": {
      "patch": {
        "operationId": "GenerationsController_makePublic",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Generation ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Generation made public",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          }
        },
        "summary": "Make a generation public",
        "tags": [
          "Generations",
          "internal"
        ]
      }
    },
    "/v2/generations/{id}/output-file-name": {
      "patch": {
        "operationId": "GenerationsController_updateOutputFileName",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Generation ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOutputFileNameDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Generation updated with new output file name",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationDto"
                }
              }
            }
          }
        },
        "summary": "Update the output file name for a generation",
        "tags": [
          "Generations",
          "internal"
        ]
      }
    },
    "/v2/generations/{id}/output-thumbnails-manifest": {
      "patch": {
        "operationId": "GenerationsController_updateOutputThumbnailsManifest",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Generation ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOutputThumbnailsManifestDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Generation updated with the output thumbnails manifest URL",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateOutputThumbnailsManifestResponseDto"
                }
              }
            }
          }
        },
        "summary": "Set the output thumbnail sprite manifest URL for a generation",
        "tags": [
          "Generations",
          "internal"
        ]
      }
    },
    "/v2/generations/{id}/result": {
      "get": {
        "operationId": "GenerationsController_getGenerationResults",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Job ID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "token",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "302": {
            "description": "Generation result retrieved successfully"
          },
          "400": {
            "description": "Bad Request - Generation not completed"
          },
          "404": {
            "description": "Not Found - Generation not found"
          }
        },
        "summary": "Get the result of a completed generation job",
        "tags": [
          "Generations",
          "internal"
        ]
      }
    },
    "/v2/generations/{id}/segment-result": {
      "get": {
        "operationId": "GenerationsController_getGenerationSegmentResults",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Job ID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "token",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "302": {
            "description": "Generation segment result retrieved successfully"
          },
          "400": {
            "description": "Bad Request - Generation not completed"
          },
          "404": {
            "description": "Not Found - Generation not found"
          }
        },
        "summary": "Get the segment result of a completed generation job",
        "tags": [
          "Generations",
          "internal"
        ]
      }
    },
    "/v2/generations/{generationId}/feedback": {
      "post": {
        "operationId": "FeedbackController_submit",
        "parameters": [
          {
            "name": "generationId",
            "required": true,
            "in": "path",
            "description": "Generation ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitFeedbackBodyDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Feedback submitted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeedbackDto"
                }
              }
            }
          }
        },
        "summary": "Submit generation feedback",
        "tags": [
          "Generation Feedback",
          "internal"
        ]
      },
      "get": {
        "operationId": "FeedbackController_get",
        "parameters": [
          {
            "name": "generationId",
            "required": true,
            "in": "path",
            "description": "Generation ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Feedback details or null if not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeedbackDto"
                }
              }
            }
          }
        },
        "summary": "Get generation feedback",
        "tags": [
          "Generation Feedback",
          "internal"
        ]
      }
    },
    "/v2/generations/{generationId}/scores": {
      "post": {
        "operationId": "GenerationScoreController_submit",
        "parameters": [
          {
            "name": "generationId",
            "required": true,
            "in": "path",
            "description": "Generation ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitGenerationScoreBodyDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Score submitted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationScoreDto"
                }
              }
            }
          }
        },
        "summary": "Submit generation score",
        "tags": [
          "Generation Score",
          "internal"
        ]
      },
      "get": {
        "operationId": "GenerationScoreController_get",
        "parameters": [
          {
            "name": "generationId",
            "required": true,
            "in": "path",
            "description": "Generation ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Score details or null if not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationScoreDto"
                }
              }
            }
          }
        },
        "summary": "Get generation score",
        "tags": [
          "Generation Score",
          "internal"
        ]
      }
    },
    "/v2/generation-scores": {
      "get": {
        "operationId": "GenerationScoreController_list",
        "parameters": [
          {
            "name": "context",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "first_job",
                "periodic",
                "manual"
              ]
            }
          },
          {
            "name": "workflow",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "lipsync",
                "translate_and_dub",
                "change_appearance",
                "image_to_video",
                "edit_dialogue",
                "assistant",
                "timeline"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Generation scores matching the supplied filters",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GenerationScoreDto"
                  }
                }
              }
            }
          }
        },
        "summary": "List current user generation scores",
        "tags": [
          "Generation Score",
          "internal"
        ]
      }
    },
    "/v2/usage": {
      "get": {
        "operationId": "UsageController_getUsage",
        "parameters": [
          {
            "name": "type",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "generation",
                "integration"
              ]
            }
          },
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "schema": {
              "minimum": 1,
              "maximum": 100,
              "type": "integer"
            }
          },
          {
            "name": "cursor",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "apiKeyId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "modelName",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "userId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "billingStartsAt",
            "required": false,
            "in": "query",
            "schema": {
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
              "type": "string"
            }
          },
          {
            "name": "billingEndsAt",
            "required": false,
            "in": "query",
            "schema": {
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated usage records",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UsageResponseDto"
                }
              }
            }
          },
          "503": {
            "description": "Usage analytics dependency is temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UsageDependencyUnavailableErrorDto"
                }
              }
            }
          }
        },
        "summary": "Get usage records for the organization",
        "tags": [
          "Usage",
          "internal"
        ]
      }
    },
    "/v2/usage/export": {
      "get": {
        "operationId": "UsageController_exportUsageCsv",
        "parameters": [
          {
            "name": "type",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "generation",
                "integration"
              ]
            }
          },
          {
            "name": "apiKeyId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "modelName",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "userId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "billingStartsAt",
            "required": false,
            "in": "query",
            "schema": {
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
              "type": "string"
            }
          },
          {
            "name": "billingEndsAt",
            "required": false,
            "in": "query",
            "schema": {
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "CSV file with usage records",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "summary": "Export usage records as CSV",
        "tags": [
          "Usage",
          "internal"
        ]
      }
    },
    "/v2/usage/totals": {
      "get": {
        "operationId": "UsageController_getUsageTotals",
        "parameters": [
          {
            "name": "apiKeyId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "modelName",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "billingStartsAt",
            "required": false,
            "in": "query",
            "schema": {
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
              "type": "string"
            }
          },
          {
            "name": "billingEndsAt",
            "required": false,
            "in": "query",
            "schema": {
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Usage totals by model",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "$ref": "#/components/schemas/GenerationTotalDto"
                      },
                      {
                        "$ref": "#/components/schemas/IntegrationTotalDto"
                      }
                    ]
                  }
                }
              }
            }
          },
          "503": {
            "description": "Usage analytics dependency is temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UsageDependencyUnavailableErrorDto"
                }
              }
            }
          }
        },
        "summary": "Get usage totals for the organization",
        "tags": [
          "Usage",
          "internal"
        ]
      }
    },
    "/v2/usage/comparison": {
      "get": {
        "operationId": "UsageController_getMonthToDateComparison",
        "parameters": [
          {
            "name": "apiKeyId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "modelName",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Comparison percentages",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonthComparisonDto"
                }
              }
            }
          }
        },
        "summary": "Get month-to-date comparison with previous period",
        "tags": [
          "Usage",
          "internal"
        ]
      }
    },
    "/v2/usage/active-jobs": {
      "get": {
        "deprecated": true,
        "description": "Number of in-flight video lipsync jobs. Superseded by GET /usage/active-jobs/breakdown.",
        "operationId": "UsageController_getActiveJobCount",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Number of active video lipsync jobs",
            "content": {
              "application/json": {
                "schema": {
                  "type": "number",
                  "example": 5
                }
              }
            }
          }
        },
        "summary": "Get count of active jobs",
        "tags": [
          "Usage",
          "internal"
        ]
      }
    },
    "/v2/usage/active-jobs/breakdown": {
      "get": {
        "operationId": "UsageController_getActiveJobBreakdown",
        "parameters": [],
        "responses": {
          "200": {
            "description": "In-flight job counts by path",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActiveJobCountDto"
                }
              }
            }
          }
        },
        "summary": "Get active job counts broken down by path",
        "tags": [
          "Usage",
          "internal"
        ]
      }
    },
    "/v2/usage/active-jobs/stream": {
      "get": {
        "operationId": "UsageController_streamActiveJobs",
        "parameters": [],
        "responses": {
          "200": {
            "description": "SSE stream of `{ \"type\": \"jobs-changed\" }` events"
          }
        },
        "summary": "Stream active-job change signals (SSE)",
        "tags": [
          "Usage",
          "internal"
        ]
      }
    },
    "/v2/billing": {
      "get": {
        "operationId": "BillingController_getBillingInfo",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Billing information",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillingInfoDto"
                }
              }
            }
          }
        },
        "summary": "Get billing information for the organization",
        "tags": [
          "Billing",
          "internal"
        ]
      }
    },
    "/v2/billing/credit-history": {
      "get": {
        "operationId": "BillingController_getCreditHistory",
        "parameters": [
          {
            "name": "billingStartsAt",
            "required": false,
            "in": "query",
            "schema": {
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
              "type": "string"
            }
          },
          {
            "name": "billingEndsAt",
            "required": false,
            "in": "query",
            "schema": {
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "required": false,
            "in": "query",
            "schema": {
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
              "type": "string"
            }
          },
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "schema": {
              "minimum": 1,
              "maximum": 500,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Credit transactions and grant history",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreditHistoryDto"
                }
              }
            }
          }
        },
        "summary": "Get credit activity for the organization",
        "tags": [
          "Billing",
          "internal"
        ]
      }
    },
    "/v2/billing/credit-history/export": {
      "get": {
        "operationId": "BillingController_exportCreditHistoryCsv",
        "parameters": [
          {
            "name": "billingStartsAt",
            "required": true,
            "in": "query",
            "schema": {
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
              "type": "string"
            }
          },
          {
            "name": "billingEndsAt",
            "required": true,
            "in": "query",
            "schema": {
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
              "type": "string"
            }
          },
          {
            "name": "event",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "generation",
                "top-up",
                "plan renewal",
                "expiry",
                "refund",
                "adjustment"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "CSV file with credit activity",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "summary": "Export credit activity as CSV",
        "tags": [
          "Billing",
          "internal"
        ]
      }
    },
    "/v2/billing/balance": {
      "get": {
        "operationId": "BillingController_getAccountBalance",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Account balance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountBalanceDto"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient permissions"
          }
        },
        "summary": "Get account balance (admin only)",
        "tags": [
          "Billing",
          "internal"
        ]
      }
    },
    "/v2/billing/portal": {
      "post": {
        "operationId": "BillingController_createBillingPortal",
        "parameters": [
          {
            "name": "flow",
            "required": false,
            "in": "query",
            "description": "Optional deep-linked Billing Portal flow. Supported value: subscription_cancel.",
            "schema": {
              "enum": [
                "subscription_cancel"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Billing portal URL",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillingPortalResponseDto"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient permissions"
          }
        },
        "summary": "Create billing portal session (admin only)",
        "tags": [
          "Billing",
          "internal"
        ]
      }
    },
    "/v2/billing/checkout": {
      "post": {
        "operationId": "BillingController_createCheckoutSession",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCheckoutSessionDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Checkout session URL",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CheckoutSessionResponseDto"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient permissions"
          }
        },
        "summary": "Create checkout session (admin only)",
        "tags": [
          "Billing",
          "internal"
        ]
      }
    },
    "/v2/billing/checkout/pilot": {
      "post": {
        "operationId": "BillingController_createPilotCheckoutSession",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePilotCheckoutSessionDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Checkout session URL",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CheckoutSessionResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Pilot not available or already accepted"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        },
        "summary": "Create pilot checkout session (owner only)",
        "tags": [
          "Billing",
          "internal"
        ]
      }
    },
    "/v2/subscriptions": {
      "get": {
        "operationId": "SubscriptionController_getSubscriptionDetails",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Subscription details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionDetailsDto"
                }
              }
            }
          }
        },
        "summary": "Get subscription details for the organization",
        "tags": [
          "Subscriptions",
          "internal"
        ]
      },
      "post": {
        "operationId": "SubscriptionController_createSubscription",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSubscriptionDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Subscription created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        },
        "summary": "Create a new subscription",
        "tags": [
          "Subscriptions",
          "internal"
        ]
      },
      "patch": {
        "operationId": "SubscriptionController_updateSubscription",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSubscriptionDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Subscription updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateSubscriptionResponseDto"
                }
              }
            }
          }
        },
        "summary": "Update subscription (upgrade or downgrade)",
        "tags": [
          "Subscriptions",
          "internal"
        ]
      },
      "delete": {
        "operationId": "SubscriptionController_cancelSubscription",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Subscription cancellation scheduled"
          }
        },
        "summary": "Cancel subscription at period end",
        "tags": [
          "Subscriptions",
          "internal"
        ]
      }
    },
    "/v2/subscriptions/payment-method": {
      "get": {
        "operationId": "SubscriptionController_hasPaymentMethod",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Whether organization has a payment method",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        },
        "summary": "Check if organization has a payment method",
        "tags": [
          "Subscriptions",
          "internal"
        ]
      }
    },
    "/v2/subscriptions/recover": {
      "post": {
        "operationId": "SubscriptionController_recoverFailedPayment",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Recovery result",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecoverPaymentResponseDto"
                }
              }
            }
          }
        },
        "summary": "Recover failed subscription payment",
        "tags": [
          "Subscriptions",
          "internal"
        ]
      }
    },
    "/v2/subscriptions/downgrade": {
      "delete": {
        "operationId": "SubscriptionController_cancelDowngrade",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Downgrade cancelled"
          }
        },
        "summary": "Cancel pending subscription downgrade",
        "tags": [
          "Subscriptions",
          "internal"
        ]
      }
    },
    "/v2/subscriptions/cancellation": {
      "delete": {
        "operationId": "SubscriptionController_cancelPendingCancellation",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Cancellation cancelled"
          }
        },
        "summary": "Cancel pending subscription cancellation",
        "tags": [
          "Subscriptions",
          "internal"
        ]
      }
    },
    "/v2/subscription/cancellation-feedback": {
      "post": {
        "operationId": "CancellationFeedbackController_submit",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitCancellationFeedbackDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Cancellation feedback submitted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CancellationFeedbackResponseDto"
                }
              }
            }
          }
        },
        "summary": "Submit cancellation feedback",
        "tags": [
          "Subscription",
          "internal"
        ]
      }
    },
    "/v2/integrations": {
      "get": {
        "operationId": "IntegrationsController_getAll",
        "parameters": [],
        "responses": {
          "200": {
            "description": "List of integrations",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IntegrationDto"
                  }
                }
              }
            }
          }
        },
        "summary": "List all integrations for the organization",
        "tags": [
          "Integrations",
          "internal"
        ]
      },
      "post": {
        "operationId": "IntegrationsController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateIntegrationDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Integration connected successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IntegrationDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid API key or integration name"
          },
          "404": {
            "description": "Integration not found"
          }
        },
        "summary": "Connect a new integration",
        "tags": [
          "Integrations",
          "internal"
        ]
      }
    },
    "/v2/integrations/{id}": {
      "delete": {
        "operationId": "IntegrationsController_delete",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Integration ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Integration disconnected successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IntegrationDto"
                }
              }
            }
          },
          "404": {
            "description": "Integration not found"
          }
        },
        "summary": "Disconnect an integration",
        "tags": [
          "Integrations",
          "internal"
        ]
      }
    },
    "/v2/integrations/voices": {
      "get": {
        "operationId": "IntegrationsController_getVoices",
        "parameters": [],
        "responses": {
          "200": {
            "description": "List of available voices",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VoiceDto"
                  }
                }
              }
            }
          }
        },
        "summary": "Get available voices from connected integrations",
        "tags": [
          "Integrations",
          "internal"
        ]
      }
    },
    "/v2/integrations/voices/count": {
      "get": {
        "operationId": "IntegrationsController_getClonedVoicesCount",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Number of cloned voices",
            "content": {
              "application/json": {
                "schema": {
                  "type": "number",
                  "example": 5
                }
              }
            }
          }
        },
        "summary": "Get count of cloned voices",
        "tags": [
          "Integrations",
          "internal"
        ]
      }
    },
    "/v2/integrations/tts": {
      "post": {
        "operationId": "IntegrationsController_textToSpeech",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TextToSpeechDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "TTS audio generated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TextToSpeechResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input or voice not found"
          },
          "402": {
            "description": "Free tier limit reached"
          }
        },
        "summary": "Generate text-to-speech audio",
        "tags": [
          "Integrations",
          "internal"
        ]
      }
    },
    "/v2/integrations/voices/clone": {
      "post": {
        "operationId": "IntegrationsController_cloneVoice",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CloneVoiceDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Voice cloned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClonedVoiceResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input or duplicate voice name"
          },
          "429": {
            "description": "Another shared voice clone is in its provider-critical section. Retry-After is included.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoiceCloneBusyErrorDto"
                }
              }
            }
          },
          "503": {
            "description": "Shared voice provider capacity or lock coordination is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoiceCloneDependencyUnavailableErrorDto"
                }
              }
            }
          }
        },
        "summary": "Clone a custom voice from audio samples",
        "tags": [
          "Integrations",
          "internal"
        ]
      }
    },
    "/v2/integrations/voices/{id}": {
      "delete": {
        "operationId": "IntegrationsController_deleteVoice",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Internal voice ID (UUID)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Voice deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean",
                  "example": true
                }
              }
            }
          },
          "404": {
            "description": "Voice not found"
          }
        },
        "summary": "Delete a cloned voice",
        "tags": [
          "Integrations",
          "internal"
        ]
      }
    },
    "/v2/billing-v3/checkout": {
      "post": {
        "operationId": "BillingV3Controller_createCheckoutSession",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateV3CheckoutSessionDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Checkout session URL",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CheckoutSessionResponseDto"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient permissions"
          }
        },
        "summary": "Create v3 tier checkout session (admin only)",
        "tags": [
          "Billing v3",
          "internal"
        ]
      }
    },
    "/v2/billing-v3/checkout/top-up": {
      "post": {
        "operationId": "BillingV3Controller_createTopUpCheckoutSession",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTopUpCheckoutSessionDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Checkout session URL",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CheckoutSessionResponseDto"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient permissions"
          }
        },
        "summary": "Create credit top-up checkout session (admin only)",
        "tags": [
          "Billing v3",
          "internal"
        ]
      }
    },
    "/v2/billing-v3/top-up/charge": {
      "post": {
        "operationId": "BillingV3Controller_chargeTopUp",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChargeTopUpDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Charge result; the grant lands via webhook",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChargeTopUpResponseDto"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient permissions"
          }
        },
        "summary": "Charge the saved card for a credit top-up (admin only)",
        "tags": [
          "Billing v3",
          "internal"
        ]
      }
    },
    "/v2/billing-v3/plan": {
      "patch": {
        "operationId": "BillingV3Controller_changePlan",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangeV3PlanDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Plan change result",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChangeV3PlanResponseDto"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient permissions"
          }
        },
        "summary": "Change v3 subscription tier - upgrade now / downgrade at period end (admin only)",
        "tags": [
          "Billing v3",
          "internal"
        ]
      }
    },
    "/v2/billing-v3/auto-top-up": {
      "get": {
        "operationId": "BillingV3Controller_getAutoTopUpSettings",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Current auto-top-up settings",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AutoTopUpSettingsResponseDto"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient permissions"
          }
        },
        "summary": "Get auto-top-up settings (admin only)",
        "tags": [
          "Billing v3",
          "internal"
        ]
      },
      "put": {
        "operationId": "BillingV3Controller_updateAutoTopUpSettings",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAutoTopUpSettingsDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated auto-top-up settings",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AutoTopUpSettingsResponseDto"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient permissions"
          }
        },
        "summary": "Update auto-top-up settings (admin only)",
        "tags": [
          "Billing v3",
          "internal"
        ]
      }
    },
    "/v2/storage/upload-url": {
      "get": {
        "operationId": "FileStorageController_getUploadUrl",
        "parameters": [
          {
            "name": "fileName",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "contentType",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "isPublic",
            "required": false,
            "in": "query",
            "schema": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Upload URL and token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UploadUrlResponseDto"
                }
              }
            }
          }
        },
        "summary": "Get a pre-signed upload URL",
        "tags": [
          "File Storage",
          "internal"
        ]
      }
    },
    "/v2/storage/signed-url": {
      "get": {
        "operationId": "FileStorageController_getSignedUrl",
        "parameters": [
          {
            "name": "uploadToken",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uploadKey",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Signed URL",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "summary": "Get a signed URL for a file",
        "tags": [
          "File Storage",
          "internal"
        ]
      }
    },
    "/v2/storage/multipart": {
      "post": {
        "operationId": "FileStorageController_initiateMultipartUpload",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InitiateMultipartUploadDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Multipart upload initiated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MultipartUploadInitResponseDto"
                }
              }
            }
          }
        },
        "summary": "Initiate a multipart upload",
        "tags": [
          "File Storage",
          "internal"
        ]
      },
      "delete": {
        "operationId": "FileStorageController_abortMultipartUpload",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AbortMultipartUploadDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Multipart upload aborted"
          }
        },
        "summary": "Abort a multipart upload",
        "tags": [
          "File Storage",
          "internal"
        ]
      }
    },
    "/v2/storage/multipart/complete": {
      "post": {
        "operationId": "FileStorageController_completeMultipartUpload",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompleteMultipartUploadDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Multipart upload completed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MultipartCompleteResponseDto"
                }
              }
            }
          }
        },
        "summary": "Complete a multipart upload",
        "tags": [
          "File Storage",
          "internal"
        ]
      }
    },
    "/v2/storage/multipart/resumable": {
      "post": {
        "operationId": "FileStorageController_initiateResumableMultipartUpload",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InitiateResumableUploadDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Resumable upload initiated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResumableUploadInitResponseDto"
                }
              }
            }
          }
        },
        "summary": "Initiate a resumable multipart upload",
        "tags": [
          "File Storage",
          "internal"
        ]
      }
    },
    "/v2/storage/multipart/parts": {
      "get": {
        "operationId": "FileStorageController_listUploadedParts",
        "parameters": [
          {
            "name": "uploadId",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fileName",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "isPublic",
            "required": true,
            "in": "query",
            "schema": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "string"
                }
              ]
            }
          },
          {
            "name": "maxParts",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "partNumberMarker",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of uploaded parts"
          }
        },
        "summary": "List uploaded parts for a multipart upload",
        "tags": [
          "File Storage",
          "internal"
        ]
      }
    },
    "/v2/storage/multipart/urls": {
      "get": {
        "operationId": "FileStorageController_getPresignedUrlsForParts",
        "parameters": [
          {
            "name": "uploadId",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fileName",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "partNumbers",
            "required": true,
            "in": "query",
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                {
                  "type": "array",
                  "items": {
                    "type": "number"
                  }
                }
              ]
            }
          },
          {
            "name": "isPublic",
            "required": true,
            "in": "query",
            "schema": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Presigned URLs for the requested parts",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PresignedUrlPartDto"
                  }
                }
              }
            }
          }
        },
        "summary": "Get presigned URLs for specific parts",
        "tags": [
          "File Storage",
          "internal"
        ]
      }
    },
    "/v2/storage/guest-upload-url": {
      "get": {
        "operationId": "FileStorageController_getGuestUploadUrl",
        "parameters": [
          {
            "name": "fileName",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "contentType",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "folder",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "videos",
                "audio",
                "faces",
                "thumbnails"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Guest upload URL",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GuestUploadUrlResponseDto"
                }
              }
            }
          }
        },
        "summary": "Get upload URL for guest users (rate limited)",
        "tags": [
          "File Storage",
          "internal"
        ]
      }
    },
    "/v2/batch": {
      "post": {
        "description": "Creates a batch processing job from a JSONL file. Requires the Scale plan. The multipart file field must be `input` (or `file` alias), the file must be 5 MB or smaller, and it must contain 20-500 records by default. Each line must contain `request_id`, `endpoint: \"/v2/generate\"`, and `payload`.",
        "operationId": "BatchController_createBatch",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/CreateBatchDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Validation successful (dry_run=true)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "VALIDATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "201": {
            "description": "Batch created successfully (dry_run=false)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "PENDING",
                        "JOBS_CREATED",
                        "PROCESSING",
                        "COMPLETED",
                        "FAILED"
                      ]
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "metrics": {
                      "type": "object",
                      "properties": {
                        "total_generations": {
                          "type": "integer"
                        },
                        "success_count": {
                          "type": "integer"
                        },
                        "failed_count": {
                          "type": "integer"
                        },
                        "pending_count": {
                          "type": "integer"
                        }
                      }
                    },
                    "webhookUrl": {
                      "type": "string",
                      "format": "uri",
                      "nullable": true
                    },
                    "outputUrl": {
                      "type": "string",
                      "format": "uri",
                      "nullable": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "429": {
            "description": "Too Many Requests - batch concurrency limit reached (errorCode concurrency_limit_reached).",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying the batch request.",
                "schema": {
                  "type": "integer",
                  "example": 20
                }
              },
              "X-Sync-Concurrency-Limit": {
                "description": "Maximum number of concurrent batches allowed by the organization plan.",
                "schema": {
                  "type": "integer",
                  "example": 3
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchConcurrencyLimitErrorDto"
                }
              }
            }
          }
        },
        "summary": "Create a new batch job",
        "tags": [
          "Batch"
        ]
      },
      "get": {
        "description": "Fetch batch processing requests from the user's account",
        "operationId": "BatchController_listBatches",
        "parameters": [
          {
            "name": "status",
            "required": false,
            "in": "query",
            "description": "Filter batches by status",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "created_after",
            "required": false,
            "in": "query",
            "description": "Filter batches created after this datetime",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "created_before",
            "required": false,
            "in": "query",
            "description": "Filter batches created before this datetime",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of batches retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "created_at": {
                        "type": "string",
                        "format": "date-time"
                      },
                      "status": {
                        "type": "string",
                        "enum": [
                          "PENDING",
                          "JOBS_CREATED",
                          "PROCESSING",
                          "COMPLETED",
                          "FAILED"
                        ]
                      },
                      "metrics": {
                        "type": "object",
                        "properties": {
                          "total_generations": {
                            "type": "integer"
                          },
                          "success_count": {
                            "type": "integer"
                          },
                          "failed_count": {
                            "type": "integer"
                          },
                          "pending_count": {
                            "type": "integer"
                          }
                        }
                      },
                      "webhookUrl": {
                        "type": "string",
                        "format": "uri",
                        "nullable": true
                      },
                      "outputUrl": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "summary": "List batches",
        "tags": [
          "Batch"
        ]
      }
    },
    "/v2/batch/{id}": {
      "get": {
        "description": "Fetch the details, status, and progress of a specific batch",
        "operationId": "BatchController_getBatch",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Batch ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Batch details retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "PENDING",
                        "JOBS_CREATED",
                        "PROCESSING",
                        "COMPLETED",
                        "FAILED"
                      ]
                    },
                    "metrics": {
                      "type": "object",
                      "properties": {
                        "total_generations": {
                          "type": "integer"
                        },
                        "success_count": {
                          "type": "integer"
                        },
                        "failed_count": {
                          "type": "integer"
                        },
                        "pending_count": {
                          "type": "integer"
                        }
                      }
                    },
                    "webhookUrl": {
                      "type": "string",
                      "format": "uri",
                      "nullable": true
                    },
                    "outputUrl": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Batch not found"
          }
        },
        "summary": "Get batch details",
        "tags": [
          "Batch"
        ]
      }
    },
    "/v2/batches/{id}/result": {
      "get": {
        "description": "Internal redirect endpoint. Public clients should poll GET /v2/batch/{id} and read outputUrl from the batch response.",
        "operationId": "BatchResultController_getBatchResult",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "302": {
            "description": "Redirects to a signed batch result URL"
          }
        },
        "summary": "Redirect to a completed batch result file",
        "tags": [
          "BatchResult",
          "internal"
        ]
      }
    },
    "/v2/integrations/dubbing": {
      "post": {
        "operationId": "DubbingController_createDubbing",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDubbingDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DubbingGenerationDto"
                }
              }
            }
          },
          "402": {
            "description": "Free tier limit exceeded"
          }
        },
        "summary": "Create a dubbing job",
        "tags": [
          "Dubbing",
          "internal"
        ]
      }
    },
    "/v2/integrations/dubbing/{id}": {
      "get": {
        "operationId": "DubbingController_getDubbingGeneration",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DubbingGenerationDto"
                }
              }
            }
          },
          "404": {
            "description": "Dubbing job not found"
          }
        },
        "summary": "Get dubbing job status",
        "tags": [
          "Dubbing",
          "internal"
        ]
      }
    },
    "/v2/health/generations": {
      "get": {
        "operationId": "GenerationHealthController_getGenerationHealth",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Generation system is healthy or has insufficient data"
          },
          "503": {
            "description": "Generation system is unhealthy"
          }
        },
        "tags": [
          "Generation Health"
        ]
      }
    },
    "/v2/healthcheck": {
      "get": {
        "operationId": "HealthcheckController_getHealthcheck",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Service health status",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "object",
                    "properties": {
                      "status": {
                        "type": "string",
                        "enum": [
                          "ok",
                          "error"
                        ]
                      },
                      "message": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "status"
                    ]
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Healthcheck"
        ]
      }
    },
    "/v2/platform-import/detect": {
      "get": {
        "operationId": "PlatformImportController_detectPlatform",
        "parameters": [
          {
            "name": "url",
            "required": true,
            "in": "query",
            "schema": {
              "format": "uri",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Platform detection result",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformDetectionResponseDto"
                }
              }
            }
          }
        },
        "summary": "Detect platform from URL",
        "tags": [
          "Platform Import",
          "internal"
        ]
      }
    },
    "/v2/platform-import/metadata": {
      "get": {
        "operationId": "PlatformImportController_getMetadata",
        "parameters": [
          {
            "name": "url",
            "required": true,
            "in": "query",
            "schema": {
              "format": "uri",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Platform metadata",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformMetadataResponseDto"
                }
              }
            }
          },
          "422": {
            "description": "The URL or media could not be read by the metadata provider",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformMetadataFetchFailedErrorDto"
                }
              }
            }
          },
          "503": {
            "description": "The platform metadata dependency is temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformMetadataUnavailableErrorDto"
                }
              }
            }
          },
          "504": {
            "description": "The bounded metadata probe timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformMetadataTimeoutErrorDto"
                }
              }
            }
          }
        },
        "summary": "Get metadata for a URL",
        "tags": [
          "Platform Import",
          "internal"
        ]
      }
    },
    "/v2/platform-import/start": {
      "post": {
        "operationId": "PlatformImportController_start",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StartImportBodyDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Import job created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StartImportResponseDto"
                }
              }
            }
          },
          "503": {
            "description": "Lambda definitively rejected the import dispatch",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformImportDispatchUnavailableErrorDto"
                }
              }
            }
          },
          "504": {
            "description": "Dispatch acceptance is unknown; poll or cancel the returned jobId",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformImportDispatchUnknownErrorDto"
                }
              }
            }
          }
        },
        "summary": "Start an import job",
        "tags": [
          "Platform Import",
          "internal"
        ]
      }
    },
    "/v2/platform-import/status": {
      "get": {
        "operationId": "PlatformImportController_getStatus",
        "parameters": [
          {
            "name": "jobId",
            "required": true,
            "in": "query",
            "schema": {
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Import job status",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportJobStatusResponseDto"
                }
              }
            }
          }
        },
        "summary": "Get import job status",
        "tags": [
          "Platform Import",
          "internal"
        ]
      }
    },
    "/v2/platform-import": {
      "get": {
        "operationId": "PlatformImportController_list",
        "parameters": [
          {
            "name": "projectId",
            "required": false,
            "in": "query",
            "schema": {
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
              "type": "string"
            }
          },
          {
            "name": "status",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "queued",
                "downloading",
                "processing",
                "completed",
                "failed"
              ]
            }
          },
          {
            "name": "platform",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "youtube",
                "tiktok",
                "dropbox"
              ]
            }
          },
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "schema": {
              "minimum": 1,
              "maximum": 100,
              "default": 20,
              "type": "number"
            }
          },
          {
            "name": "offset",
            "required": false,
            "in": "query",
            "schema": {
              "minimum": 0,
              "default": 0,
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of import jobs",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListImportJobsResponseDto"
                }
              }
            }
          }
        },
        "summary": "List import jobs",
        "tags": [
          "Platform Import",
          "internal"
        ]
      }
    },
    "/v2/platform-import/cancel": {
      "post": {
        "operationId": "PlatformImportController_cancel",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancelImportBodyDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Import job cancelled",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CancelImportResponseDto"
                }
              }
            }
          }
        },
        "summary": "Cancel an import job",
        "tags": [
          "Platform Import",
          "internal"
        ]
      }
    },
    "/v2/platform-import/retry": {
      "post": {
        "operationId": "PlatformImportController_retry",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RetryImportBodyDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Import job retried",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RetryImportResponseDto"
                }
              }
            }
          },
          "503": {
            "description": "Lambda definitively rejected the retry dispatch",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformImportDispatchUnavailableErrorDto"
                }
              }
            }
          },
          "504": {
            "description": "Retry dispatch acceptance is unknown; poll or cancel the returned jobId",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformImportDispatchUnknownErrorDto"
                }
              }
            }
          }
        },
        "summary": "Retry a failed import job",
        "tags": [
          "Platform Import",
          "internal"
        ]
      }
    },
    "/v2/projects": {
      "get": {
        "description": "Returns your projects plus organization-visible projects. Use a project `id` as `projectId` when creating generations or assets so they appear in Studio under that project.",
        "operationId": "ProjectsController_getAll",
        "parameters": [
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "schema": {
              "minimum": 1,
              "maximum": 100,
              "default": 10,
              "type": "integer"
            }
          },
          {
            "name": "cursor",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "searchQuery",
            "required": false,
            "in": "query",
            "schema": {
              "default": "",
              "type": "string"
            }
          },
          {
            "name": "sortBy",
            "required": false,
            "in": "query",
            "schema": {
              "default": "updatedAt",
              "type": "string",
              "enum": [
                "updatedAt",
                "name"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated list of projects",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedProjectsResponseDto"
                }
              }
            }
          },
          "422": {
            "description": "API key has no owner to resolve user-scoped projects"
          }
        },
        "summary": "List projects",
        "tags": [
          "Projects"
        ]
      },
      "post": {
        "description": "Creates a project and returns its `id`. Pass that `id` as `projectId` on `POST /v2/generate` or `POST /v2/assets` to group generations and assets under it in Studio. Supply your own `id` for idempotent creation: re-sending the same `id` returns the existing project (also as 201, indistinguishable from a fresh create) instead of creating a duplicate. On such a replay the other request fields are ignored; the first successful create wins.",
        "operationId": "ProjectsController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProjectDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Project created successfully, or the existing project when the supplied `id` was already created by the same user",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectDto"
                }
              }
            }
          },
          "409": {
            "description": "The supplied `id` is already in use: it belongs to a different user or organization, or to a deleted project"
          },
          "422": {
            "description": "API key has no owner to assign as the project owner"
          }
        },
        "summary": "Create a project",
        "tags": [
          "Projects"
        ]
      }
    },
    "/v2/projects/{id}/assets": {
      "post": {
        "description": "Links an existing organization asset to a project so project-scoped asset reads can find it. Re-sending the same asset revives a detached link and updates only the link timestamp metadata, leaving its original createdAt unchanged.",
        "operationId": "ProjectsController_attachAsset",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Project ID (UUID)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AttachProjectAssetDto"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Asset attached to the project"
          },
          "404": {
            "description": "Project or asset not found"
          },
          "422": {
            "description": "API key has no owner to resolve user-scoped projects"
          }
        },
        "summary": "Attach an asset to a project",
        "tags": [
          "Projects"
        ]
      }
    },
    "/v2/projects/{id}/assets/{assetId}": {
      "delete": {
        "description": "Marks the project-asset link detached: the asset stops describing the project draft content (e.g. the projects-list thumbnail) but remains in the project asset library and keeps its access grants. Attaching again revives the link. Idempotent.",
        "operationId": "ProjectsController_detachAsset",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Project ID (UUID)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "assetId",
            "required": true,
            "in": "path",
            "description": "Asset ID (UUID)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Asset detached from the project"
          },
          "404": {
            "description": "Project not found"
          },
          "422": {
            "description": "API key has no owner to resolve user-scoped projects"
          }
        },
        "summary": "Detach an asset from a project",
        "tags": [
          "Projects"
        ]
      }
    },
    "/v2/projects/plugin": {
      "post": {
        "operationId": "ProjectsController_getOrCreateFromPlugin",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetOrCreateFromPluginBodyDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Project created or retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectDto"
                }
              }
            }
          }
        },
        "summary": "Get or create a project from a plugin",
        "tags": [
          "Projects",
          "internal"
        ]
      }
    },
    "/v2/projects/{id}": {
      "get": {
        "operationId": "ProjectsController_get",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Project ID (UUID)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Project details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectDto"
                }
              }
            }
          },
          "404": {
            "description": "Project not found"
          },
          "422": {
            "description": "API key has no owner to resolve user-scoped projects"
          }
        },
        "summary": "Get a project by ID",
        "tags": [
          "Projects"
        ]
      },
      "patch": {
        "operationId": "ProjectsController_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Project ID (UUID)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProjectDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Project updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectDto"
                }
              }
            }
          },
          "404": {
            "description": "Project not found"
          },
          "422": {
            "description": "API key has no owner to resolve user-scoped projects"
          }
        },
        "summary": "Update a project",
        "tags": [
          "Projects"
        ]
      },
      "delete": {
        "operationId": "ProjectsController_delete",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Project ID (UUID)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Project deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Project not found"
          },
          "422": {
            "description": "API key has no owner to resolve user-scoped projects"
          }
        },
        "summary": "Delete a project",
        "tags": [
          "Projects"
        ]
      }
    },
    "/v2/projects/{id}/last-generation": {
      "get": {
        "operationId": "ProjectsController_getLastGeneration",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Project ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Last generation details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationDto"
                }
              }
            }
          },
          "404": {
            "description": "No generation found for this project"
          }
        },
        "summary": "Get the last generation for a project",
        "tags": [
          "Projects",
          "internal"
        ]
      }
    },
    "/v2/dev/creator-workflows-enrollment": {
      "post": {
        "operationId": "DevController_setCreatorWorkflowsEnrollment",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatorWorkflowsEnrollmentBodyDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Creator workflows enrollment updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatorWorkflowsEnrollmentResponseDto"
                }
              }
            }
          },
          "403": {
            "description": "Only @sync.so users in non-production environments can use this endpoint"
          }
        },
        "summary": "Set creator workflows enrollment for the current organization",
        "tags": [
          "Dev",
          "internal"
        ]
      }
    },
    "/v2/device-auth/start": {
      "post": {
        "operationId": "DeviceAuthController_start",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StartDeviceAuthDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Device auth started",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceAuthStartResponseDto"
                }
              }
            }
          }
        },
        "summary": "Start device authentication flow",
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/device-auth/approve": {
      "post": {
        "operationId": "DeviceAuthController_approve",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApproveDeviceAuthDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Device auth approved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceAuthApproveResponseDto"
                }
              }
            }
          }
        },
        "summary": "Approve device authentication",
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/device-auth/poll": {
      "get": {
        "operationId": "DeviceAuthController_poll",
        "parameters": [
          {
            "name": "deviceCode",
            "required": true,
            "in": "query",
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Device auth status",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceAuthPollResponseDto"
                }
              }
            }
          }
        },
        "summary": "Poll device authentication status",
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/device-auth/session": {
      "get": {
        "operationId": "DeviceAuthController_getSession",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Session information or null",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceAuthSessionResponseDto"
                }
              }
            }
          }
        },
        "summary": "Get session information",
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/dialogue-edits": {
      "post": {
        "operationId": "DialogueEditsController_createDialogueEdit",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDialogueEditDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DialogueEditJobDto"
                }
              }
            }
          },
          "400": {
            "description": "Edit batch cannot be applied"
          },
          "402": {
            "description": "Billing hard stop"
          }
        },
        "summary": "Create a dialogue edit preview job",
        "tags": [
          "DialogueEdits",
          "internal"
        ]
      }
    },
    "/v2/dialogue-edits/{id}": {
      "get": {
        "operationId": "DialogueEditsController_getDialogueEditJob",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DialogueEditJobDto"
                }
              }
            }
          },
          "404": {
            "description": "Dialogue edit job not found"
          }
        },
        "summary": "Get dialogue edit job status and preview audio",
        "tags": [
          "DialogueEdits",
          "internal"
        ]
      }
    },
    "/v2/transcriptions": {
      "post": {
        "description": "Provide exactly one of `sourceVideoUrl` or `sourceAudioUrl`. Passing audio skips the server-side download and transcode, so a client that can extract audio locally should upload that instead and start transcribing while the video is still uploading.",
        "operationId": "TranscriptionsController_createTranscription",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTranscriptionDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TranscriptionJobDto"
                }
              }
            }
          },
          "402": {
            "description": "Billing hard stop"
          }
        },
        "summary": "Create a transcription job",
        "tags": [
          "Transcriptions",
          "internal"
        ]
      }
    },
    "/v2/transcriptions/{id}": {
      "get": {
        "operationId": "TranscriptionsController_getTranscriptionJob",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TranscriptionJobDto"
                }
              }
            }
          },
          "404": {
            "description": "Transcription job not found"
          }
        },
        "summary": "Get transcription job status and transcript",
        "tags": [
          "Transcriptions",
          "internal"
        ]
      }
    },
    "/v2/oauth/authorize": {
      "get": {
        "operationId": "OAuthController_authorize",
        "parameters": [
          {
            "name": "response_type",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "code"
              ]
            }
          },
          {
            "name": "client_id",
            "required": true,
            "in": "query",
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "name": "redirect_uri",
            "required": true,
            "in": "query",
            "schema": {
              "format": "uri",
              "type": "string"
            }
          },
          {
            "name": "state",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "scope",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "code_challenge",
            "required": true,
            "in": "query",
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "name": "code_challenge_method",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "S256"
              ]
            }
          }
        ],
        "responses": {
          "302": {
            "description": "Redirects with auth code or to login"
          },
          "400": {
            "description": "Invalid parameters"
          }
        },
        "summary": "OAuth authorization endpoint",
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/oauth/token": {
      "post": {
        "operationId": "OAuthController_token",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TokenBodyDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Token issued",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request"
          }
        },
        "summary": "OAuth token endpoint",
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/oauth/register": {
      "post": {
        "operationId": "OAuthController_register",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterBodyDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Client registered",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegisterResponseDto"
                }
              }
            }
          },
          "403": {
            "description": "Invalid registration secret"
          }
        },
        "summary": "Dynamic client registration (RFC 7591)",
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/oauth/register/{clientId}": {
      "get": {
        "operationId": "OAuthController_getClient",
        "parameters": [
          {
            "name": "clientId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Client metadata",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientReadResponseDto"
                }
              }
            }
          },
          "403": {
            "description": "Invalid registration secret"
          },
          "404": {
            "description": "Unknown client_id"
          }
        },
        "summary": "Read a registered client (RFC 7592)",
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/oauth/revoke": {
      "post": {
        "operationId": "OAuthController_revoke",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RevokeBodyDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Token revoked (always returns 200)"
          }
        },
        "summary": "Token revocation (RFC 7009)",
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/oauth/userinfo": {
      "get": {
        "operationId": "OAuthController_userinfo",
        "parameters": [],
        "responses": {
          "200": {
            "description": "User info",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserinfoResponseDto"
                }
              }
            }
          },
          "401": {
            "description": "Invalid token"
          }
        },
        "summary": "Get user info for valid OAuth token",
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/invitations": {
      "get": {
        "operationId": "InvitationsController_getAll",
        "parameters": [
          {
            "name": "status",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "pending",
                "accepted",
                "expired"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of invitations",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InvitationListItemDto"
                  }
                }
              }
            }
          }
        },
        "summary": "Get all invitations for the organization",
        "tags": [
          "Invitations",
          "internal"
        ]
      },
      "post": {
        "operationId": "InvitationsController_invite",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInvitationsDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Invitations created"
          },
          "400": {
            "description": "Bad request"
          }
        },
        "summary": "Create and send invitations",
        "tags": [
          "Invitations",
          "internal"
        ]
      }
    },
    "/v2/invitations/code/{code}": {
      "get": {
        "operationId": "InvitationsController_getByCode",
        "parameters": [
          {
            "name": "code",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Invitation details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvitationDto"
                }
              }
            }
          },
          "404": {
            "description": "Invitation not found"
          }
        },
        "summary": "Get an invitation by code",
        "tags": [
          "Invitations",
          "internal"
        ]
      }
    },
    "/v2/invitations/{id}": {
      "get": {
        "operationId": "InvitationsController_getById",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Invitation ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Invitation details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvitationDto"
                }
              }
            }
          },
          "404": {
            "description": "Invitation not found"
          }
        },
        "summary": "Get an invitation by ID",
        "tags": [
          "Invitations",
          "internal"
        ]
      },
      "patch": {
        "operationId": "InvitationsController_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateInvitationDto"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Invitation updated"
          },
          "404": {
            "description": "Invitation not found"
          }
        },
        "summary": "Update invitation role",
        "tags": [
          "Invitations",
          "internal"
        ]
      },
      "delete": {
        "operationId": "InvitationsController_delete",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Invitation deleted"
          },
          "404": {
            "description": "Invitation not found"
          }
        },
        "summary": "Delete an invitation",
        "tags": [
          "Invitations",
          "internal"
        ]
      }
    },
    "/v2/invitations/accept": {
      "post": {
        "operationId": "InvitationsController_accept",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AcceptInvitationDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Invitation accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AcceptInvitationResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        },
        "summary": "Accept an invitation",
        "tags": [
          "Invitations",
          "internal"
        ]
      }
    },
    "/v2/invitations/{id}/resend": {
      "post": {
        "operationId": "InvitationsController_resend",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Invitation resent"
          },
          "404": {
            "description": "Invitation not found"
          }
        },
        "summary": "Resend an invitation",
        "tags": [
          "Invitations",
          "internal"
        ]
      }
    },
    "/v2/analyze/cost": {
      "post": {
        "operationId": "AnalyzeController_getCostEstimate",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateGenerationDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Generations retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EstimateCostResponseDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - Invalid or missing authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationError"
                }
              }
            }
          }
        },
        "tags": [
          "Analyze",
          "internal"
        ]
      }
    },
    "/v2/appearence/preview": {
      "post": {
        "description": "Generates a still-image preview for appearence-1 reference-image workflows.",
        "operationId": "AppearanceEditsController_createPreview",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAppearancePreviewDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Appearance preview generated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AppearancePreviewResponseDto"
                }
              }
            }
          },
          "503": {
            "description": "FAL API key is not configured"
          }
        },
        "summary": "Create an appearance edit preview",
        "tags": [
          "Appearance Edits",
          "internal"
        ]
      }
    },
    "/v2/projects/{projectId}/download-all/manifest": {
      "post": {
        "operationId": "ProjectDownloadAllController_createManifest",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Manifest of presigned URLs",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectDownloadAllManifestResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Project has nothing to download"
          },
          "404": {
            "description": "Project not found"
          }
        },
        "summary": "Build a manifest of presigned URLs for every studio-pool generation in a project, so the browser can stream-zip them client-side without server-side bandwidth",
        "tags": [
          "Project Download All",
          "internal"
        ]
      }
    },
    "/v2/errors": {
      "get": {
        "description": "Stable machine-readable error codes with human messages and suggested fixes. The `errorCode` on failed generations and on coded 4xx validation responses references these codes. No authentication required.",
        "operationId": "ErrorsCatalogController_getErrorCatalog",
        "parameters": [],
        "responses": {
          "200": {
            "description": "The error catalog",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ErrorCatalogEntryDto"
                  }
                }
              }
            }
          }
        },
        "summary": "List the generation error catalog",
        "tags": [
          "Errors"
        ]
      }
    },
    "/v2/support": {
      "post": {
        "operationId": "SupportController_submitRequest",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitSupportRequestDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Support request submitted successfully"
          },
          "401": {
            "description": "Unauthorized - User authentication required"
          },
          "500": {
            "description": "Failed to send support request"
          }
        },
        "summary": "Submit a support request",
        "tags": [
          "Support",
          "internal"
        ]
      }
    },
    "/v2/tts": {
      "post": {
        "description": "Synthesizes speech from a script and returns a hosted audio URL. `voiceId` accepts an ElevenLabs voice id (discover via `GET /v2/voices`) or the id of a voice cloned with `POST /v2/voices`. The returned `url` can be reused across generations as an audio input.",
        "operationId": "TtsController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTtsDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "TTS audio generated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TtsGenerationResponseDto"
                }
              }
            }
          },
          "402": {
            "description": "Free tier limit reached"
          },
          "422": {
            "description": "Voice not found"
          }
        },
        "summary": "Generate text-to-speech audio",
        "tags": [
          "Text-to-Speech"
        ]
      }
    },
    "/v2/user-onboardings/type": {
      "get": {
        "operationId": "UserOnboardingsController_getByType",
        "parameters": [
          {
            "name": "type",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "referral",
                "tools",
                "useCase",
                "teamSize",
                "signupPlan",
                "adobePluginNps",
                "premierePluginNps",
                "resolvePluginNps",
                "studioLiteNps",
                "firstResultScore",
                "periodicResultScore"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Onboarding record",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserOnboardingDto"
                }
              }
            }
          }
        },
        "summary": "Get onboarding by type",
        "tags": [
          "User Onboardings",
          "internal"
        ]
      }
    },
    "/v2/user-onboardings": {
      "get": {
        "deprecated": true,
        "operationId": "UserOnboardingsController_get",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Onboarding record",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserOnboardingDto"
                }
              }
            }
          }
        },
        "summary": "Get onboarding (deprecated)",
        "tags": [
          "User Onboardings",
          "internal"
        ]
      },
      "post": {
        "operationId": "UserOnboardingsController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateUserOnboardingDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Onboarding created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserOnboardingCreateResponseDto"
                }
              }
            }
          }
        },
        "summary": "Create user onboarding",
        "tags": [
          "User Onboardings",
          "internal"
        ]
      }
    },
    "/v2/verify": {
      "post": {
        "operationId": "VerifyController_verifyWatermark",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWatermarkBodyDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VerifyWatermarkResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Verify",
          "internal"
        ]
      }
    },
    "/v2/video-analysis/analyze": {
      "post": {
        "operationId": "VideoAnalysisController_analyze",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnalyzeVideoDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Video analysis result",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VideoAnalysisResponseDto"
                }
              }
            }
          }
        },
        "summary": "Analyze video sprite sheet for speakers and obstructions",
        "tags": [
          "VideoAnalysis",
          "internal"
        ]
      }
    },
    "/v2/voices": {
      "get": {
        "description": "Returns premade ElevenLabs voices plus voices cloned by your organization. Use `id` in `POST /v2/tts` and generation text inputs - it always works for both premade and cloned voices.",
        "operationId": "VoicesController_getVoices",
        "parameters": [
          {
            "name": "provider",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "elevenlabs"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of voices",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VoiceDto"
                  }
                }
              }
            }
          }
        },
        "summary": "List available voices",
        "tags": [
          "Voices"
        ]
      },
      "post": {
        "description": "Creates a custom voice and returns its `id` for use in `POST /v2/tts` and generation text inputs. Provide either a Sync asset id (`assetId`) or a Sync-hosted `url` - upload local files via `POST /v2/assets/upload` first. Video sources have their audio track extracted automatically (first 2 minutes). Clone slots are limited per plan.",
        "operationId": "VoicesController_cloneVoice",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateVoiceDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Voice cloned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClonedVoiceDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid or too-short voice sample"
          },
          "403": {
            "description": "Voice clone limit reached for your plan"
          },
          "409": {
            "description": "A voice with this name already exists"
          },
          "422": {
            "description": "Asset not found, unsupported asset type, or no extractable audio track"
          }
        },
        "summary": "Clone a voice from an audio or video sample",
        "tags": [
          "Voices"
        ]
      }
    },
    "/v2/voices/{id}": {
      "get": {
        "description": "Returns a single voice by the same `id` values GET /v2/voices exposes - premade ElevenLabs voice ids or the UUID of a voice cloned by your organization.",
        "operationId": "VoicesController_getVoice",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Voice ID (premade provider id or cloned voice UUID)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "provider",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "elevenlabs"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Voice details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoiceDto"
                }
              }
            }
          },
          "404": {
            "description": "Voice not found"
          }
        },
        "summary": "Get a voice by ID",
        "tags": [
          "Voices"
        ]
      },
      "delete": {
        "description": "Deletes a voice previously cloned by your organization, freeing a clone slot. Premade voices cannot be deleted.",
        "operationId": "VoicesController_deleteVoice",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Cloned voice ID (UUID)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Voice deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean",
                  "example": true
                }
              }
            }
          },
          "404": {
            "description": "Voice not found"
          }
        },
        "summary": "Delete a cloned voice",
        "tags": [
          "Voices"
        ]
      }
    }
  },
  "info": {
    "title": "sync.api-v2",
    "description": "a unified API to edit humans in any video in any way. powered by sync.labs",
    "version": "1.0",
    "contact": {}
  },
  "tags": [],
  "servers": [
    {
      "url": "https://api.sync.so",
      "description": "Production"
    },
    {
      "url": "http://localhost:3001",
      "description": "Local development. For generation testing, expose the API with a tunnel and configure API_BASE_URL so processing callbacks can reach your machine."
    }
  ],
  "components": {
    "securitySchemes": {
      "apiKey": {
        "type": "apiKey",
        "in": "header",
        "name": "x-api-key"
      }
    },
    "schemas": {
      "PaginatedAssetsResponseDto": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "deletedAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
                  "nullable": true
                },
                "name": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "size": {
                  "type": "number",
                  "nullable": true
                },
                "format": {
                  "type": "string",
                  "nullable": true
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "AUDIO",
                    "VIDEO",
                    "IMAGE"
                  ]
                },
                "inputType": {
                  "type": "string",
                  "enum": [
                    "UPLOAD",
                    "URL",
                    "RECORD",
                    "TTS",
                    "EXTRACT",
                    "DUB",
                    "DUB_SOURCE",
                    "PLATFORM_IMPORT",
                    "PLUGIN_PREMIERE_FILE",
                    "PLUGIN_PREMIERE_TIMELINE_SELECTION",
                    "PLUGIN_RESOLVE_FILE",
                    "PLUGIN_RESOLVE_TIMELINE_SELECTION",
                    null
                  ],
                  "nullable": true
                },
                "durationSeconds": {
                  "type": "number",
                  "nullable": true
                },
                "thumbnailUrl": {
                  "type": "string",
                  "nullable": true
                },
                "visibility": {
                  "type": "string",
                  "enum": [
                    "USER",
                    "ORGANIZATION"
                  ]
                },
                "userId": {
                  "type": "string",
                  "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
                  "nullable": true
                },
                "apiKeyId": {
                  "type": "string",
                  "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
                  "nullable": true
                },
                "organizationId": {
                  "type": "string",
                  "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                },
                "width": {
                  "type": "number",
                  "nullable": true
                },
                "height": {
                  "type": "number",
                  "nullable": true
                },
                "proxyPath": {
                  "type": "string",
                  "nullable": true
                },
                "projectId": {
                  "type": "string",
                  "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
                  "nullable": true
                }
              },
              "required": [
                "id",
                "createdAt",
                "updatedAt",
                "deletedAt",
                "name",
                "url",
                "size",
                "format",
                "type",
                "inputType",
                "durationSeconds",
                "thumbnailUrl",
                "visibility",
                "userId",
                "apiKeyId",
                "organizationId",
                "width",
                "height"
              ]
            }
          },
          "nextCursor": {
            "type": "string"
          },
          "totalCount": {
            "type": "number"
          }
        },
        "required": [
          "items"
        ]
      },
      "CreateAssetDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "visibility": {
            "type": "string",
            "default": "USER",
            "enum": [
              "USER",
              "ORGANIZATION"
            ]
          },
          "projectId": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "type": {
            "type": "string",
            "enum": [
              "AUDIO",
              "VIDEO",
              "IMAGE"
            ]
          },
          "inputType": {
            "type": "string",
            "enum": [
              "UPLOAD",
              "URL",
              "RECORD",
              "TTS",
              "EXTRACT",
              "DUB",
              "DUB_SOURCE",
              "PLATFORM_IMPORT",
              "PLUGIN_PREMIERE_FILE",
              "PLUGIN_PREMIERE_TIMELINE_SELECTION",
              "PLUGIN_RESOLVE_FILE",
              "PLUGIN_RESOLVE_TIMELINE_SELECTION"
            ]
          },
          "thumbnailUrl": {
            "type": "string",
            "format": "uri",
            "nullable": true
          },
          "size": {
            "type": "integer",
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0
          },
          "format": {
            "type": "string"
          },
          "durationSeconds": {
            "type": "number",
            "exclusiveMinimum": true,
            "minimum": 0
          },
          "width": {
            "type": "integer",
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0
          },
          "height": {
            "type": "integer",
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0
          }
        },
        "required": [
          "url",
          "type"
        ]
      },
      "AssetDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "url": {
            "type": "string",
            "nullable": true
          },
          "size": {
            "type": "number",
            "nullable": true
          },
          "format": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "enum": [
              "AUDIO",
              "VIDEO",
              "IMAGE"
            ]
          },
          "inputType": {
            "type": "string",
            "enum": [
              "UPLOAD",
              "URL",
              "RECORD",
              "TTS",
              "EXTRACT",
              "DUB",
              "DUB_SOURCE",
              "PLATFORM_IMPORT",
              "PLUGIN_PREMIERE_FILE",
              "PLUGIN_PREMIERE_TIMELINE_SELECTION",
              "PLUGIN_RESOLVE_FILE",
              "PLUGIN_RESOLVE_TIMELINE_SELECTION",
              null
            ],
            "nullable": true
          },
          "durationSeconds": {
            "type": "number",
            "nullable": true
          },
          "thumbnailUrl": {
            "type": "string",
            "nullable": true
          },
          "visibility": {
            "type": "string",
            "enum": [
              "USER",
              "ORGANIZATION"
            ]
          },
          "userId": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
            "nullable": true
          },
          "apiKeyId": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
            "nullable": true
          },
          "organizationId": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
          },
          "width": {
            "type": "number",
            "nullable": true
          },
          "height": {
            "type": "number",
            "nullable": true
          },
          "proxyPath": {
            "type": "string",
            "nullable": true
          },
          "projectId": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
            "nullable": true
          }
        },
        "required": [
          "id",
          "createdAt",
          "updatedAt",
          "deletedAt",
          "name",
          "url",
          "size",
          "format",
          "type",
          "inputType",
          "durationSeconds",
          "thumbnailUrl",
          "visibility",
          "userId",
          "apiKeyId",
          "organizationId",
          "width",
          "height"
        ]
      },
      "CreateAssetUploadDto": {
        "type": "object",
        "properties": {
          "fileName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          },
          "contentType": {
            "type": "string",
            "pattern": "^(audio|video|image)\\/[\\w.+-]+$"
          },
          "size": {
            "type": "integer",
            "exclusiveMinimum": true,
            "maximum": 5368709120,
            "minimum": 0
          }
        },
        "required": [
          "fileName",
          "contentType",
          "size"
        ]
      },
      "AssetUploadResponseDto": {
        "type": "object",
        "properties": {
          "uploadUrl": {
            "type": "string",
            "format": "uri"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "expiresIn": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "uploadUrl",
          "url",
          "expiresIn"
        ]
      },
      "BatchGetAssetsDto": {
        "type": "object",
        "properties": {
          "ids": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          }
        },
        "required": [
          "ids"
        ]
      },
      "UpdateAssetDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1
          },
          "visibility": {
            "type": "string",
            "enum": [
              "USER",
              "ORGANIZATION"
            ]
          },
          "durationSeconds": {
            "type": "number",
            "exclusiveMinimum": true,
            "minimum": 0
          },
          "size": {
            "type": "integer",
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0
          },
          "format": {
            "type": "string",
            "minLength": 1
          },
          "width": {
            "type": "integer",
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0
          },
          "height": {
            "type": "integer",
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0
          }
        }
      },
      "AssetMetadataResponseDto": {
        "type": "object",
        "properties": {
          "assetId": {
            "type": "string",
            "description": "Asset ID"
          },
          "assetType": {
            "type": "string",
            "description": "Asset type"
          },
          "format": {
            "type": "string",
            "nullable": true,
            "description": "Media format"
          },
          "codec": {
            "type": "string",
            "nullable": true,
            "description": "Media codec"
          },
          "colorPrimaries": {
            "type": "string",
            "nullable": true,
            "description": "Color primaries"
          },
          "colorTransfer": {
            "type": "string",
            "nullable": true,
            "description": "Color transfer"
          },
          "colorSpace": {
            "type": "string",
            "nullable": true,
            "description": "Color space"
          },
          "duration": {
            "type": "number",
            "nullable": true,
            "description": "Duration in seconds"
          },
          "fps": {
            "type": "number",
            "nullable": true,
            "description": "Frames per second"
          },
          "frameCount": {
            "type": "number",
            "nullable": true,
            "description": "Total frame count"
          },
          "width": {
            "type": "number",
            "nullable": true,
            "description": "Video width in pixels"
          },
          "height": {
            "type": "number",
            "nullable": true,
            "description": "Video height in pixels"
          },
          "numSpeakers": {
            "type": "number",
            "nullable": true,
            "description": "Number of detected speakers"
          },
          "language": {
            "type": "string",
            "nullable": true,
            "description": "Detected language"
          },
          "proxyPath": {
            "type": "string",
            "nullable": true,
            "description": "Path to the generated proxy video asset"
          },
          "thumbnailsManifestUrl": {
            "type": "string",
            "nullable": true,
            "description": "URL of the thumbnail sprite manifest JSON"
          },
          "proxyRequested": {
            "type": "boolean",
            "description": "Whether a browser web proxy was requested for this asset; the proxy itself lands later on proxyPath"
          },
          "faceDetectionUrl": {
            "type": "string",
            "nullable": true,
            "description": "Face detection results URL"
          },
          "activeSpeakerUrl": {
            "type": "string",
            "nullable": true,
            "description": "Active speaker detection URL"
          },
          "sceneDetectionUrl": {
            "type": "string",
            "nullable": true,
            "description": "Scene detection results URL"
          },
          "scenes": {
            "type": "array",
            "nullable": true,
            "description": "Scene boundaries",
            "items": {
              "type": "array",
              "items": {
                "type": "number"
              }
            }
          },
          "transcript": {
            "type": "string",
            "nullable": true,
            "description": "Transcript text"
          },
          "videoAnalysis": {
            "type": "object",
            "nullable": true,
            "description": "Video analysis result. Opaque JSON. Clients should validate against the current schema and treat unsupported versions as cache misses.",
            "additionalProperties": true
          },
          "createdAt": {
            "format": "date-time",
            "type": "string",
            "description": "Creation timestamp"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string",
            "description": "Update timestamp"
          }
        },
        "required": [
          "assetId",
          "assetType",
          "createdAt",
          "updatedAt"
        ]
      },
      "UpsertAssetMetadataDto": {
        "type": "object",
        "properties": {
          "assetId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "assetType": {
            "type": "string"
          },
          "format": {
            "type": "string"
          },
          "codec": {
            "type": "string"
          },
          "colorPrimaries": {
            "type": "string"
          },
          "colorTransfer": {
            "type": "string"
          },
          "colorSpace": {
            "type": "string"
          },
          "duration": {
            "type": "number"
          },
          "fps": {
            "type": "number"
          },
          "frameCount": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "width": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "height": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "numSpeakers": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "language": {
            "type": "string"
          },
          "proxyPath": {
            "type": "string"
          },
          "thumbnailsManifestUrl": {
            "type": "string",
            "format": "uri"
          },
          "faceDetectionUrl": {
            "type": "string"
          },
          "activeSpeakerUrl": {
            "type": "string"
          },
          "sceneDetectionUrl": {
            "type": "string"
          },
          "scenes": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "type": "number"
              }
            }
          },
          "transcript": {
            "type": "string"
          },
          "videoAnalysis": {}
        },
        "required": [
          "assetId",
          "assetType"
        ]
      },
      "UpdateAssetMetadataDto": {
        "type": "object",
        "properties": {
          "assetId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "data": {
            "type": "object",
            "properties": {
              "assetType": {
                "type": "string"
              },
              "format": {
                "type": "string"
              },
              "codec": {
                "type": "string"
              },
              "duration": {
                "type": "number"
              },
              "fps": {
                "type": "number"
              },
              "frameCount": {
                "type": "number"
              },
              "width": {
                "type": "number"
              },
              "height": {
                "type": "number"
              },
              "proxyPath": {
                "type": "string"
              },
              "thumbnailsManifestUrl": {
                "type": "string",
                "format": "uri"
              }
            }
          }
        },
        "required": [
          "assetId",
          "data"
        ]
      },
      "ProvisionResponseDto": {
        "type": "object",
        "properties": {
          "credited": {
            "type": "boolean",
            "description": "Whether credits were provisioned"
          },
          "balanceCents": {
            "type": "number",
            "description": "Balance in cents (only if credited)"
          },
          "reason": {
            "type": "string",
            "description": "Reason if credits were not provisioned"
          }
        },
        "required": [
          "credited"
        ]
      },
      "OrganizationDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "logoUrl": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "draft",
              null
            ],
            "nullable": true
          },
          "plan": {
            "type": "string",
            "enum": [
              "hobbyist",
              "creator",
              "growth",
              "scale",
              "enterprise",
              "program",
              "partner",
              "starter",
              "pro",
              "team",
              null
            ],
            "nullable": true
          },
          "billingVersion": {
            "type": "string",
            "enum": [
              "v2",
              "v3"
            ]
          },
          "active": {
            "type": "boolean",
            "nullable": true
          },
          "stripeSubscriptionId": {
            "type": "string",
            "nullable": true
          },
          "features": {
            "type": "object",
            "properties": {
              "concurrencyOverride": {
                "type": "number",
                "nullable": true
              },
              "retentionOverride": {
                "type": "number",
                "nullable": true
              },
              "zeroDataRetentionEnabled": {
                "type": "boolean",
                "nullable": true
              },
              "embedFingerprint": {
                "type": "boolean"
              },
              "alertsReceived": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "dismissedAt": {
                      "type": "string"
                    },
                    "receivedAt": {
                      "type": "string"
                    }
                  }
                },
                "nullable": true
              },
              "emailsReceived": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "lastSent": {
                      "type": "string"
                    },
                    "sentAt": {
                      "type": "string"
                    }
                  }
                },
                "nullable": true
              },
              "enterprisePilotAcceptedAt": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
                "nullable": true
              },
              "enterprisePilotExpiresAt": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
                "nullable": true
              },
              "startupBalanceCents": {
                "type": "number",
                "nullable": true
              },
              "startupBalanceExpiresAt": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
                "nullable": true
              },
              "startupProgramType": {
                "type": "string",
                "enum": [
                  "startup",
                  "creator",
                  "generic",
                  null
                ],
                "nullable": true
              },
              "programDisplayName": {
                "type": "string",
                "nullable": true
              },
              "aescriptsBalanceCents": {
                "type": "number",
                "nullable": true
              },
              "aescriptsCreditedAt": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
                "nullable": true
              },
              "appliedBalanceCents": {
                "type": "number",
                "nullable": true
              },
              "settings": {
                "type": "object",
                "properties": {
                  "defaultProjectVisibility": {
                    "default": "USER",
                    "type": "string",
                    "enum": [
                      "USER",
                      "ORGANIZATION"
                    ]
                  },
                  "experimentalFeatures": {
                    "default": false,
                    "type": "boolean"
                  },
                  "localFeatureFlagOverrides": {
                    "type": "object",
                    "additionalProperties": {
                      "anyOf": [
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    }
                  },
                  "assetsBackfilledAt": {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
                    "nullable": true
                  },
                  "assetsBackfillAttempts": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991,
                    "nullable": true
                  }
                },
                "nullable": true
              },
              "pilotType": {
                "type": "string",
                "enum": [
                  "enterprise",
                  "partner",
                  null
                ],
                "nullable": true
              },
              "autoTopUpEnabled": {
                "type": "boolean"
              },
              "autoTopUpThresholdCredits": {
                "type": "number",
                "nullable": true
              },
              "autoTopUpAmountCredits": {
                "type": "number",
                "nullable": true
              },
              "experimentAssignments": {
                "type": "object",
                "properties": {
                  "creatorWorkflows": {
                    "type": "object",
                    "properties": {
                      "variant": {
                        "type": "string",
                        "enum": [
                          "control",
                          "treatment"
                        ]
                      },
                      "flag": {
                        "type": "string",
                        "enum": [
                          "creator_workflows_experiment"
                        ]
                      },
                      "assignedAt": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      },
                      "source": {
                        "type": "string",
                        "enum": [
                          "signup_flag",
                          "internal_dev_override",
                          "admin",
                          "migration",
                          "new_user_default"
                        ]
                      }
                    },
                    "required": [
                      "variant",
                      "flag",
                      "assignedAt",
                      "source"
                    ]
                  },
                  "signupOnboarding": {
                    "type": "object",
                    "properties": {
                      "variant": {
                        "type": "string",
                        "enum": [
                          "all_plans",
                          "single_plan"
                        ]
                      },
                      "flag": {
                        "type": "string",
                        "enum": [
                          "signup_onboarding_experiment"
                        ]
                      },
                      "assignedAt": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      },
                      "source": {
                        "type": "string",
                        "enum": [
                          "signup_flag",
                          "internal_dev_override",
                          "admin",
                          "migration",
                          "new_user_default"
                        ]
                      }
                    },
                    "required": [
                      "variant",
                      "flag",
                      "assignedAt",
                      "source"
                    ]
                  }
                },
                "additionalProperties": true,
                "nullable": true
              }
            },
            "required": [
              "concurrencyOverride",
              "alertsReceived",
              "emailsReceived",
              "enterprisePilotAcceptedAt",
              "enterprisePilotExpiresAt",
              "startupBalanceCents",
              "startupBalanceExpiresAt",
              "startupProgramType",
              "aescriptsBalanceCents",
              "aescriptsCreditedAt",
              "appliedBalanceCents",
              "settings"
            ],
            "nullable": true
          },
          "fraudStatus": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "id",
          "createdAt",
          "name",
          "plan",
          "active",
          "stripeSubscriptionId"
        ]
      },
      "OrganizationSettingsDto": {
        "type": "object",
        "properties": {
          "defaultProjectVisibility": {
            "type": "string",
            "default": "USER",
            "enum": [
              "USER",
              "ORGANIZATION"
            ]
          },
          "experimentalFeatures": {
            "type": "boolean",
            "default": false
          },
          "localFeatureFlagOverrides": {
            "type": "object",
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "string"
                }
              ]
            }
          },
          "assetsBackfilledAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
            "nullable": true
          },
          "assetsBackfillAttempts": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991,
            "nullable": true
          }
        }
      },
      "WebhookSecretResponseDto": {
        "type": "object",
        "properties": {
          "secret": {
            "type": "string"
          }
        },
        "required": [
          "secret"
        ]
      },
      "CreateOrganizationDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "draft"
            ]
          },
          "logoUrl": {
            "type": "string",
            "pattern": "\\.(jpe?g|png)$"
          },
          "createDefaultProject": {
            "type": "boolean"
          }
        }
      },
      "NotifyLimitDto": {
        "type": "object",
        "properties": {
          "kind": {
            "type": "string",
            "enum": [
              "freeGenerationsReached",
              "programCreditsReached",
              "concurrencyLimitReached",
              "durationLimitReached",
              "paymentFailed"
            ]
          }
        },
        "required": [
          "kind"
        ]
      },
      "UpdateOrganizationSettingsDto": {
        "type": "object",
        "properties": {
          "defaultProjectVisibility": {
            "type": "string",
            "enum": [
              "USER",
              "ORGANIZATION"
            ]
          },
          "experimentalFeatures": {
            "type": "boolean"
          },
          "assetsBackfilledAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
            "nullable": true
          },
          "assetsBackfillAttempts": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991,
            "nullable": true
          }
        }
      },
      "UpdateAlertDto": {
        "type": "object",
        "properties": {
          "dismissed": {
            "type": "boolean"
          }
        },
        "required": [
          "dismissed"
        ]
      },
      "UpdateOrganizationDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "logoUrl": {
            "type": "string",
            "pattern": "\\.(jpe?g|png)$",
            "nullable": true
          }
        }
      },
      "UpdateUserDto": {
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "organizationId"
        ]
      },
      "CanDeleteResponseDto": {
        "type": "object",
        "properties": {
          "canDelete": {
            "type": "boolean"
          },
          "reason": {
            "type": "string"
          }
        },
        "required": [
          "canDelete"
        ]
      },
      "RevokeOwnSessionsResponseDto": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "sessions_revoked": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "success",
          "sessions_revoked"
        ]
      },
      "DeleteAccountResponseDto": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          }
        },
        "required": [
          "success"
        ]
      },
      "ApiKeyUserDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "User ID"
          },
          "email": {
            "type": "string",
            "description": "User email"
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "description": "User display name"
          },
          "avatarUrl": {
            "type": "string",
            "nullable": true,
            "description": "User avatar URL"
          }
        },
        "required": [
          "id",
          "email",
          "displayName",
          "avatarUrl"
        ]
      },
      "ApiKeyWithUserDto": {
        "type": "object",
        "properties": {
          "user": {
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "email": {
                "type": "string"
              },
              "displayName": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "avatarUrl": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "description": "User who created the API key",
            "allOf": [
              {
                "$ref": "#/components/schemas/ApiKeyUserDto"
              }
            ]
          },
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "lastAccessedAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
            "nullable": true
          },
          "secretMask": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "user",
          "id",
          "organizationId",
          "name",
          "createdAt",
          "updatedAt",
          "lastAccessedAt",
          "secretMask"
        ]
      },
      "CreateApiKeyDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          }
        }
      },
      "ApiKeyWithSecretDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "lastAccessedAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
            "nullable": true
          },
          "secretMask": {
            "type": "string",
            "nullable": true
          },
          "secret": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "organizationId",
          "name",
          "createdAt",
          "updatedAt",
          "lastAccessedAt",
          "secretMask",
          "secret"
        ]
      },
      "ApiKeyDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "lastAccessedAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
            "nullable": true
          },
          "secretMask": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "id",
          "organizationId",
          "name",
          "createdAt",
          "updatedAt",
          "lastAccessedAt",
          "secretMask"
        ]
      },
      "UpdateApiKeyDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ]
      },
      "UserOrganizationWithoutUserDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "userId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "organizationId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "role": {
            "type": "string",
            "enum": [
              "owner",
              "admin",
              "member"
            ]
          }
        },
        "required": [
          "id",
          "userId",
          "organizationId",
          "role"
        ]
      },
      "UserOrganizationDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "userId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "organizationId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "role": {
            "type": "string",
            "enum": [
              "owner",
              "admin",
              "member"
            ]
          },
          "user": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "email": {
                "type": "string",
                "nullable": true
              },
              "displayName": {
                "type": "string",
                "nullable": true
              },
              "avatarUrl": {
                "type": "string",
                "nullable": true
              }
            },
            "required": [
              "id",
              "email",
              "displayName",
              "avatarUrl"
            ],
            "nullable": true
          }
        },
        "required": [
          "id",
          "userId",
          "organizationId",
          "role"
        ]
      },
      "UpdateMemberDto": {
        "type": "object",
        "properties": {
          "role": {
            "type": "string",
            "enum": [
              "owner",
              "admin",
              "member"
            ]
          }
        },
        "required": [
          "role"
        ]
      },
      "PlanSummaryDto": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string"
          },
          "features": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "priority": {
            "type": "number"
          },
          "limits": {
            "type": "object",
            "properties": {
              "billingThreshold": {
                "type": "number"
              },
              "unpaidExposureSoftCapStep": {
                "type": "number"
              },
              "unpaidExposureSoftCapCeiling": {
                "type": "number"
              },
              "concurrency": {
                "type": "number"
              },
              "outputLength": {
                "type": "number"
              },
              "seats": {
                "type": "number"
              },
              "voiceClone": {
                "type": "number"
              },
              "fileSize": {
                "type": "number"
              },
              "modelLimits": {
                "type": "object",
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "outputDuration": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "outputDuration"
                  ]
                }
              }
            },
            "required": [
              "billingThreshold",
              "concurrency",
              "outputLength",
              "seats",
              "voiceClone",
              "fileSize"
            ]
          }
        },
        "required": [
          "description",
          "features",
          "priority",
          "limits"
        ]
      },
      "PlanInfoDto": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string"
          },
          "features": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "priority": {
            "type": "number"
          },
          "limits": {
            "type": "object",
            "properties": {
              "billingThreshold": {
                "type": "number"
              },
              "unpaidExposureSoftCapStep": {
                "type": "number"
              },
              "unpaidExposureSoftCapCeiling": {
                "type": "number"
              },
              "concurrency": {
                "type": "number"
              },
              "outputLength": {
                "type": "number"
              },
              "seats": {
                "type": "number"
              },
              "voiceClone": {
                "type": "number"
              },
              "fileSize": {
                "type": "number"
              },
              "modelLimits": {
                "type": "object",
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "outputDuration": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "outputDuration"
                  ]
                }
              }
            },
            "required": [
              "billingThreshold",
              "concurrency",
              "outputLength",
              "seats",
              "voiceClone",
              "fileSize"
            ]
          },
          "unitAmount": {
            "type": "number"
          }
        },
        "required": [
          "description",
          "features",
          "priority",
          "limits",
          "unitAmount"
        ]
      },
      "PlanLimitsDto": {
        "type": "object",
        "properties": {
          "billingThreshold": {
            "type": "number"
          },
          "unpaidExposureSoftCapStep": {
            "type": "number"
          },
          "unpaidExposureSoftCapCeiling": {
            "type": "number"
          },
          "concurrency": {
            "type": "number"
          },
          "outputLength": {
            "type": "number"
          },
          "seats": {
            "type": "number"
          },
          "voiceClone": {
            "type": "number"
          },
          "fileSize": {
            "type": "number"
          },
          "modelLimits": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "outputDuration": {
                  "type": "number"
                }
              },
              "required": [
                "outputDuration"
              ]
            }
          }
        },
        "required": [
          "billingThreshold",
          "concurrency",
          "outputLength",
          "seats",
          "voiceClone",
          "fileSize"
        ]
      },
      "EnterprisePlanDto": {
        "type": "object",
        "properties": {
          "monthlyPrice": {
            "type": "number"
          },
          "appliedBalance": {
            "type": "number"
          },
          "usagePrices": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string"
                },
                "price": {
                  "type": "number"
                }
              },
              "required": [
                "title",
                "price"
              ]
            }
          },
          "concurrency": {
            "type": "number"
          },
          "duration": {
            "type": "number"
          },
          "seats": {
            "type": "number"
          },
          "fileSize": {
            "type": "number"
          }
        },
        "required": [
          "monthlyPrice",
          "usagePrices",
          "concurrency",
          "duration",
          "seats",
          "fileSize"
        ]
      },
      "ModelPriceDto": {
        "type": "object",
        "properties": {
          "modelName": {
            "type": "string"
          },
          "pricePerFrameCents": {
            "type": "number"
          }
        },
        "required": [
          "modelName",
          "pricePerFrameCents"
        ]
      },
      "LimitCheckResultDto": {
        "type": "object",
        "properties": {
          "allowed": {
            "type": "boolean"
          },
          "limit": {
            "type": "number"
          },
          "requestedDuration": {
            "type": "number"
          },
          "requestedSize": {
            "type": "number"
          },
          "canUpgrade": {
            "type": "boolean"
          },
          "requiredPlanType": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "creator",
                  "scale",
                  "growth",
                  "hobbyist",
                  "enterprise",
                  "program",
                  "partner"
                ]
              },
              {
                "type": "string",
                "enum": [
                  "starter",
                  "pro",
                  "team"
                ]
              }
            ]
          },
          "requiredPlanLimit": {
            "type": "number"
          }
        },
        "required": [
          "allowed",
          "limit",
          "canUpgrade"
        ]
      },
      "SessionMetadataDto": {
        "type": "object",
        "properties": {
          "model": {
            "type": "string",
            "enum": [
              "lipsync-2",
              "lipsync-2-pro",
              "sync-3"
            ],
            "description": "Model used"
          },
          "hasFaceSelection": {
            "type": "boolean",
            "description": "Whether face selection is enabled"
          },
          "autoDetectFace": {
            "type": "boolean",
            "description": "Whether to auto-detect face"
          },
          "obstructionEnabled": {
            "type": "boolean",
            "description": "Whether occlusion detection is enabled"
          },
          "thumbnailUrl": {
            "type": "string",
            "nullable": true,
            "description": "Thumbnail URL"
          },
          "videoAssetId": {
            "type": "string",
            "nullable": true,
            "description": "Video asset ID used to fetch thumbnail fallback metadata"
          },
          "faceImageUrl": {
            "type": "string",
            "nullable": true,
            "description": "Face image URL"
          },
          "feedbackType": {
            "nullable": true,
            "enum": [
              "like",
              "dislike"
            ],
            "type": "string",
            "description": "User sentiment feedback about the lipsync experience"
          }
        }
      },
      "SessionListItemDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Session ID"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string",
            "description": "Creation timestamp"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string",
            "description": "Last update timestamp"
          },
          "status": {
            "type": "string",
            "description": "Session status"
          },
          "metadata": {
            "nullable": true,
            "description": "Session metadata",
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/SessionMetadataDto"
              }
            ]
          },
          "generationId": {
            "type": "string",
            "nullable": true,
            "description": "Linked generation ID"
          },
          "messageRevision": {
            "type": "number",
            "description": "Message revision for optimistic concurrency control",
            "minimum": 0
          },
          "creatorName": {
            "type": "string",
            "nullable": true,
            "description": "Display name of the session creator"
          },
          "userId": {
            "type": "string",
            "description": "User ID of the session creator"
          }
        },
        "required": [
          "id",
          "createdAt",
          "updatedAt",
          "status",
          "messageRevision",
          "userId"
        ]
      },
      "ListSessionsResponseDto": {
        "type": "object",
        "properties": {
          "sessions": {
            "description": "List of sessions",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SessionListItemDto"
            }
          },
          "nextCursor": {
            "type": "string",
            "nullable": true,
            "description": "Cursor for next page, null if no more pages"
          }
        },
        "required": [
          "sessions",
          "nextCursor"
        ]
      },
      "SessionDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Session ID"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string",
            "description": "Creation timestamp"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string",
            "description": "Last update timestamp"
          },
          "projectId": {
            "type": "string",
            "description": "Project ID"
          },
          "organizationId": {
            "type": "string",
            "description": "Organization ID"
          },
          "userId": {
            "type": "string",
            "description": "User ID"
          },
          "status": {
            "type": "string",
            "description": "Session status"
          },
          "messages": {
            "type": "array",
            "description": "Chat messages",
            "items": {
              "type": "object"
            }
          },
          "messageRevision": {
            "type": "number",
            "description": "Message revision for optimistic concurrency control",
            "minimum": 0
          },
          "state": {
            "type": "object",
            "nullable": true,
            "description": "Session state snapshot",
            "additionalProperties": true
          },
          "metadata": {
            "nullable": true,
            "description": "Session metadata",
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/SessionMetadataDto"
              }
            ]
          },
          "generationId": {
            "type": "string",
            "nullable": true,
            "description": "Linked generation ID"
          }
        },
        "required": [
          "id",
          "createdAt",
          "updatedAt",
          "projectId",
          "organizationId",
          "userId",
          "status",
          "messages",
          "messageRevision"
        ]
      },
      "CreateSessionDto": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "description": "Project ID to create session in"
          }
        },
        "required": [
          "projectId"
        ]
      },
      "UpdateStateDto": {
        "type": "object",
        "properties": {
          "state": {
            "type": "object",
            "description": "State snapshot object to save",
            "additionalProperties": true
          }
        },
        "required": [
          "state"
        ]
      },
      "UpdateMetadataDto": {
        "type": "object",
        "properties": {
          "model": {
            "type": "string",
            "enum": [
              "lipsync-2",
              "lipsync-2-pro",
              "sync-3"
            ],
            "description": "Model used for the session"
          },
          "hasFaceSelection": {
            "type": "boolean",
            "description": "Whether face selection is enabled"
          },
          "autoDetectFace": {
            "type": "boolean",
            "description": "Whether to auto-detect face"
          },
          "obstructionEnabled": {
            "type": "boolean",
            "description": "Whether occlusion detection is enabled"
          },
          "thumbnailUrl": {
            "type": "string",
            "nullable": true,
            "description": "Thumbnail URL"
          },
          "videoAssetId": {
            "type": "string",
            "nullable": true,
            "description": "Video asset ID used to fetch thumbnail fallback metadata"
          },
          "faceImageUrl": {
            "type": "string",
            "nullable": true,
            "description": "Face image URL"
          },
          "feedback": {
            "type": "string",
            "nullable": true,
            "description": "User feedback about the lipsync experience"
          },
          "feedbackType": {
            "nullable": true,
            "enum": [
              "like",
              "dislike"
            ],
            "type": "string",
            "description": "User sentiment feedback about the lipsync experience"
          }
        }
      },
      "CompleteSessionDto": {
        "type": "object",
        "properties": {
          "generationId": {
            "type": "string",
            "description": "Generation ID to link to the session"
          }
        },
        "required": [
          "generationId"
        ]
      },
      "StartSessionProcessingDto": {
        "type": "object",
        "properties": {
          "generationId": {
            "type": "string",
            "description": "Generation ID to link to the session"
          }
        },
        "required": [
          "generationId"
        ]
      },
      "SaveMessagesDto": {
        "type": "object",
        "properties": {
          "messages": {
            "type": "array",
            "items": {
              "type": "object"
            },
            "description": "Array of UI messages to save"
          },
          "expectedRevision": {
            "type": "number",
            "description": "Client revision expected for optimistic concurrency control",
            "minimum": 0
          }
        },
        "required": [
          "messages",
          "expectedRevision"
        ]
      },
      "TranscriptionSegmentDto": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "Text content of the segment"
          },
          "start": {
            "type": "number",
            "description": "Start time in seconds"
          },
          "end": {
            "type": "number",
            "description": "End time in seconds"
          }
        },
        "required": [
          "text",
          "start",
          "end"
        ]
      },
      "TranscriptionResultDto": {
        "type": "object",
        "properties": {
          "segments": {
            "description": "Transcription segments",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TranscriptionSegmentDto"
            }
          },
          "detectedLanguage": {
            "type": "string",
            "description": "Detected language name"
          },
          "languageCode": {
            "type": "string",
            "description": "ISO language code"
          },
          "fullText": {
            "type": "string",
            "description": "Full transcribed text"
          },
          "duration": {
            "type": "number",
            "description": "Audio duration in seconds"
          }
        },
        "required": [
          "segments",
          "detectedLanguage",
          "languageCode",
          "fullText",
          "duration"
        ]
      },
      "TranslateDto": {
        "type": "object",
        "properties": {
          "segments": {
            "description": "Array of transcript segments to translate",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TranscriptionSegmentDto"
            }
          },
          "sourceLanguage": {
            "type": "string",
            "description": "Source language of the transcript"
          },
          "targetLanguage": {
            "type": "string",
            "description": "Target language for translation"
          }
        },
        "required": [
          "segments",
          "sourceLanguage",
          "targetLanguage"
        ]
      },
      "TranslationResultDto": {
        "type": "object",
        "properties": {
          "translatedSegments": {
            "description": "Translated segments",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TranscriptionSegmentDto"
            }
          },
          "sourceLanguage": {
            "type": "string",
            "description": "Source language"
          },
          "targetLanguage": {
            "type": "string",
            "description": "Target language"
          },
          "fullText": {
            "type": "string",
            "description": "Full translated text"
          }
        },
        "required": [
          "translatedSegments",
          "sourceLanguage",
          "targetLanguage",
          "fullText"
        ]
      },
      "RedirectInfoDto": {
        "type": "object",
        "properties": {
          "activeOrganizationId": {
            "type": "string"
          },
          "firstGenerationCreatedAt": {
            "type": "string",
            "nullable": true
          },
          "firstProjectId": {
            "type": "string",
            "nullable": true
          },
          "userOrgCount": {
            "type": "number"
          },
          "organizationStatus": {
            "type": "string",
            "nullable": true
          },
          "creatorWorkflowsVariant": {
            "nullable": true,
            "enum": [
              "control",
              "treatment"
            ],
            "type": "string"
          },
          "signupOnboardingVariant": {
            "nullable": true,
            "enum": [
              "all_plans",
              "single_plan"
            ],
            "type": "string"
          },
          "signupOnboardingCompleted": {
            "type": "boolean",
            "description": "True when the user has a row (answered or skipped) for every signup onboarding question, or is not enrolled in a treatment arm"
          }
        },
        "required": [
          "activeOrganizationId",
          "userOrgCount",
          "signupOnboardingCompleted"
        ]
      },
      "PluginVersionInfoDto": {
        "type": "object",
        "properties": {
          "pluginType": {
            "type": "string",
            "enum": [
              "premiere-pro",
              "davinci-resolve"
            ]
          },
          "latestVersion": {
            "type": "string"
          },
          "minimumVersion": {
            "type": "string"
          },
          "downloadUrl": {
            "type": "string",
            "format": "uri"
          },
          "releaseNotes": {
            "type": "string"
          }
        },
        "required": [
          "pluginType",
          "latestVersion"
        ]
      },
      "ActiveSpeaker": {
        "type": "object",
        "properties": {
          "auto_detect": {
            "type": "boolean",
            "default": false,
            "example": true,
            "description": "Whether to detect active speaker automatically and apply generation to them."
          },
          "use_v2": {
            "type": "boolean",
            "deprecated": true,
            "example": true,
            "description": "Deprecated. ASD v2 is now the default; use v3 to opt into ASD v3."
          },
          "v3": {
            "type": "boolean",
            "example": true,
            "description": "Whether to use asd v3"
          },
          "frame_number": {
            "type": "number",
            "example": 123,
            "description": "Frame number selected for speaker selection"
          },
          "coordinates": {
            "example": [
              10,
              20
            ],
            "description": "Pixel coordinates [x, y] in the source video frame identified by frame_number. Coordinates are forwarded as-is to active speaker selection; they are not normalized ratios.",
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "face_image": {
            "type": "string",
            "example": "data:image/webp;base64,...",
            "description": "Base64 encoded face image for selected speaker (128x128 WebP)"
          }
        }
      },
      "GenerationOptions": {
        "type": "object",
        "properties": {
          "prompt": {
            "type": "string",
            "description": "Prompt for the generation. For appearence-1, this is the appearance edit instruction sent with the video and reference images.",
            "example": "add a red hat to the speaker"
          },
          "prompt_image_uris": {
            "description": "Reference image URLs for appearance editing generations. API consumers can pass direct reference images here, or pass the imageUrl returned by POST /v2/appearence/preview.",
            "example": [
              "https://example.com/appearance-preview.png"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "i2v_prompt": {
            "type": "string",
            "description": "Prompt for image-to-video generation. Defaults to none.",
            "example": "make the subject smile and look at the camera"
          },
          "model_mode": {
            "type": "string",
            "enum": [
              "lips",
              "face",
              "head"
            ],
            "example": "face",
            "description": "mode of the model to use for animation.",
            "default": "face"
          },
          "temperature": {
            "type": "number",
            "example": 0.5,
            "description": "generation temperature randomness between 0 and 1. note: only works for lipsync-2 based models."
          },
          "sync_mode": {
            "type": "string",
            "enum": [
              "cut_off",
              "bounce",
              "loop",
              "silence",
              "remap"
            ],
            "example": "bounce",
            "description": "lipsync mode when audio and video durations are out of sync.",
            "default": "bounce"
          },
          "reasoning_enabled": {
            "type": "boolean",
            "description": "Whether to analyze and correct frames with artifacts, occlusions, or extreme poses during generation, slows down generation speed.",
            "default": false
          },
          "refinement_enabled": {
            "type": "boolean",
            "example": false,
            "description": "Whether to enable the refinement pass for the generation.",
            "default": false
          },
          "blending_mode": {
            "enum": [
              "default",
              "advanced",
              "disabled"
            ],
            "type": "string",
            "example": "default",
            "description": "Controls how blending is applied during generation.",
            "default": "default"
          },
          "active_speaker_detection": {
            "description": "Active speaker detection configuration",
            "allOf": [
              {
                "$ref": "#/components/schemas/ActiveSpeaker"
              }
            ]
          },
          "face_boxes_url": {
            "type": "string",
            "example": "https://example.com/face-boxes.json",
            "description": "URL for precomputed face bounding boxes."
          },
          "occlusion_detection_enabled": {
            "type": "boolean",
            "example": true,
            "description": "Whether to detect occlusion during generation, slows down generation speed."
          },
          "output_bucket_name": {
            "type": "string",
            "example": "my-bucket",
            "description": "Name of the output bucket"
          },
          "active_speaker": {
            "type": "boolean",
            "example": true,
            "description": "Whether to detect active speaker and apply generation to them.",
            "deprecated": true
          },
          "pads": {
            "example": [
              0,
              5,
              0,
              0
            ],
            "description": "Padding values",
            "default": [
              0,
              5,
              0,
              0
            ],
            "deprecated": true,
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "speedup": {
            "type": "number",
            "enum": [
              1,
              2,
              3,
              4
            ],
            "example": 1,
            "description": "downscale inputs for faster generations. used to preview changes.",
            "deprecated": true
          },
          "output_format": {
            "type": "string",
            "enum": [
              "mp4",
              "mov"
            ],
            "example": "mp4",
            "description": "format of the output media that is generated.",
            "default": "mp4",
            "deprecated": true
          },
          "fps": {
            "type": "number",
            "example": 25,
            "description": "Frames per second (FPS) for the output video",
            "deprecated": true
          },
          "output_resolution": {
            "example": [
              1280,
              720
            ],
            "description": "Resolution of the output video [width, height]",
            "deprecated": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "SegmentAudioItem": {
        "type": "object",
        "properties": {
          "refId": {
            "type": "string",
            "description": "Reference to an audio input by refId"
          },
          "startTime": {
            "type": "number",
            "description": "Start time (seconds) to crop audio"
          },
          "endTime": {
            "type": "number",
            "description": "End time (seconds) to crop audio"
          }
        },
        "required": [
          "refId"
        ]
      },
      "GenerationSegmentItem": {
        "type": "object",
        "properties": {
          "startTime": {
            "type": "number",
            "description": "Segment start time in seconds"
          },
          "endTime": {
            "type": "number",
            "description": "Segment end time in seconds"
          },
          "startFrame": {
            "type": "number",
            "description": "Segment start frame (0-indexed)"
          },
          "endFrame": {
            "type": "number",
            "description": "Segment end frame (0-indexed)"
          },
          "audioInput": {
            "description": "Audio Input for this segment",
            "allOf": [
              {
                "$ref": "#/components/schemas/SegmentAudioItem"
              }
            ]
          }
        },
        "required": [
          "audioInput"
        ]
      },
      "DubDto": {
        "type": "object",
        "properties": {
          "providerName": {
            "type": "string",
            "enum": [
              "elevenlabs"
            ],
            "description": "Provider to use for dubbing. Defaults to ElevenLabs.",
            "example": "elevenlabs",
            "default": "elevenlabs"
          },
          "targetLang": {
            "type": "string",
            "description": "Target language code for dubbing (e.g., \"es\" for Spanish, \"fr\" for French).",
            "example": "es",
            "enum": [
              "en",
              "gu",
              "no",
              "sl",
              "pa",
              "ta",
              "az",
              "gl",
              "is",
              "sw",
              "my",
              "fi",
              "el",
              "he",
              "lt",
              "ms",
              "sv",
              "fr",
              "ca",
              "hr",
              "lv",
              "ro",
              "sd",
              "th",
              "tn",
              "pl",
              "ceb",
              "da",
              "hu",
              "mr",
              "tl",
              "ug",
              "wo",
              "zu",
              "zh",
              "hi",
              "as",
              "ha",
              "kk",
              "ki",
              "rn",
              "ky",
              "st",
              "te",
              "war",
              "ak",
              "be",
              "cs",
              "ka",
              "mn",
              "bo",
              "ts",
              "ar",
              "ss",
              "nl",
              "tr",
              "af",
              "bs",
              "et",
              "rw",
              "ne",
              "ko",
              "it",
              "es",
              "sq",
              "eu",
              "kn",
              "sk",
              "su",
              "ve",
              "pt",
              "am",
              "hy",
              "doi",
              "de",
              "jv",
              "mk",
              "ja",
              "vi",
              "cy",
              "nso",
              "uk",
              "bg",
              "id",
              "lg",
              "yo",
              "ml",
              "fa",
              "tg",
              "ur",
              "uz",
              "ru",
              "fil"
            ]
          },
          "sourceLang": {
            "type": "string",
            "description": "Source language code. Defaults to \"auto\" for automatic detection.",
            "example": "en",
            "default": "auto",
            "enum": [
              "auto",
              "en",
              "gu",
              "no",
              "sl",
              "pa",
              "ta",
              "az",
              "gl",
              "is",
              "sw",
              "my",
              "fi",
              "el",
              "he",
              "lt",
              "ms",
              "sv",
              "fr",
              "ca",
              "hr",
              "lv",
              "ro",
              "sd",
              "th",
              "tn",
              "pl",
              "ceb",
              "da",
              "hu",
              "mr",
              "tl",
              "ug",
              "wo",
              "zu",
              "zh",
              "hi",
              "as",
              "ha",
              "kk",
              "ki",
              "rn",
              "ky",
              "st",
              "te",
              "war",
              "ak",
              "be",
              "cs",
              "ka",
              "mn",
              "bo",
              "ts",
              "ar",
              "ss",
              "nl",
              "tr",
              "af",
              "bs",
              "et",
              "rw",
              "ne",
              "ko",
              "it",
              "es",
              "sq",
              "eu",
              "kn",
              "sk",
              "su",
              "ve",
              "pt",
              "am",
              "hy",
              "doi",
              "de",
              "jv",
              "mk",
              "ja",
              "vi",
              "cy",
              "nso",
              "uk",
              "bg",
              "id",
              "lg",
              "yo",
              "ml",
              "fa",
              "tg",
              "ur",
              "uz",
              "ru",
              "fil"
            ]
          },
          "numSpeakers": {
            "type": "number",
            "description": "Deprecated and ignored by Dubbing v2; speaker count is detected automatically.",
            "example": 1,
            "deprecated": true,
            "default": 0,
            "minimum": 0,
            "maximum": 10
          }
        },
        "required": [
          "targetLang"
        ]
      },
      "CreateGenerationDto": {
        "type": "object",
        "properties": {
          "model": {
            "type": "string",
            "description": "name of the model to use for generation.",
            "enum": [
              "lipsync-2",
              "lipsync-1.9.0-beta",
              "lipsync-2-pro",
              "lipsync-2-mini",
              "sync-3",
              "react-1",
              "appearence-1"
            ],
            "example": "lipsync-1.9.0-beta"
          },
          "input": {
            "type": "array",
            "description": "Array of input objects. Standard lipsync requests without segments require exactly one visual input (video or image) and one audio or text input. Multi-segment lipsync requests require exactly one video plus one or more audio/text inputs; give each audio/text input a unique refId and reference it from segments[].audioInput.refId. Dubbed lipsync requests using dubParams require exactly one video and no audio/text input because the dubbed audio is extracted from that video.",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/VideoInputItem",
                  "title": "Video Input"
                },
                {
                  "$ref": "#/components/schemas/ImageInputItem",
                  "title": "Image Input"
                },
                {
                  "$ref": "#/components/schemas/AudioInputItem",
                  "title": "Audio Input"
                },
                {
                  "$ref": "#/components/schemas/TextInputItem",
                  "title": "Text Input"
                }
              ]
            },
            "example": [
              {
                "type": "video",
                "url": "https://assets.sync.so/videos/samples/influencer.mp4"
              },
              {
                "type": "audio",
                "url": "https://assets.sync.so/audios/samples/re-record.mp3"
              }
            ]
          },
          "options": {
            "description": "additional options available for generation.",
            "allOf": [
              {
                "$ref": "#/components/schemas/GenerationOptions"
              }
            ]
          },
          "segments": {
            "description": "one or more segments definition to apply edits to",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GenerationSegmentItem"
            }
          },
          "projectId": {
            "type": "string",
            "description": "Attach this generation to a project (from POST /v2/projects) so it appears in Studio under that project.",
            "example": "550e8400-e29b-41d4-a716-446655440000"
          },
          "webhookUrl": {
            "type": "string",
            "description": "Webhook URL for generation status updates. When the generation reaches a terminal state, Sync sends a POST request with the generation payload and a Sync-Signature header (`t=<unix>,v1=<hmac_sha256>`). Verify the signature with the organization webhook secret from GET /v2/organizations/webhook/secret. HTTPS is strongly recommended.",
            "example": "https://your-server.com/webhook"
          },
          "outputFileName": {
            "type": "string",
            "description": "filename for the generated output (up to 255 characters). Characters outside letters, numbers, dashes and underscores are stripped and spaces become underscores, so \"My Clip!.mp4\" is stored as \"My_Clipmp4\".",
            "example": "generated_video.mp4"
          },
          "dubParams": {
            "description": "Dubbing parameters. When present, audio is extracted from the single video input, dubbed via ElevenLabs into the target language, and then lipsync is run with the dubbed audio. Do not include audio or text inputs with dubParams; requests that send both are rejected.",
            "allOf": [
              {
                "$ref": "#/components/schemas/DubDto"
              }
            ]
          }
        },
        "required": [
          "model",
          "input"
        ]
      },
      "Generation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "A unique identifier for the generation."
          },
          "createdAt": {
            "format": "date-time",
            "type": "string",
            "description": "The date and time the generation was created."
          },
          "status": {
            "enum": [
              "PENDING",
              "PROCESSING",
              "COMPLETED",
              "FAILED",
              "REJECTED"
            ],
            "type": "string",
            "description": "The status of the generation."
          },
          "model": {
            "type": "string",
            "description": "The name of the model used for generation."
          },
          "projectId": {
            "type": "string",
            "nullable": true,
            "description": "The id of the project this generation is attached to, or null when it belongs to no project. Set via the `projectId` field on the create request."
          },
          "input": {
            "type": "array",
            "description": "An array of input objects containing type and URL.",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string"
                },
                "url": {
                  "type": "string"
                }
              }
            }
          },
          "segments": {
            "type": "array",
            "description": "The segments definition for the generation.",
            "items": {
              "type": "object"
            }
          },
          "webhookUrl": {
            "type": "string",
            "nullable": true,
            "description": "The URL to the webhook endpoint."
          },
          "options": {
            "type": "object",
            "description": "Options for the generation."
          },
          "outputUrl": {
            "type": "string",
            "nullable": true,
            "description": "The URL of the output media."
          },
          "outputDuration": {
            "type": "number",
            "nullable": true,
            "description": "The duration of the output media."
          },
          "segmentOutputUrl": {
            "type": "string",
            "nullable": true,
            "description": "The URL of the segment output media."
          },
          "outputFileName": {
            "type": "string",
            "nullable": true,
            "description": "The sanitized filename applied to the output media. Non-alphanumeric characters (except dashes and underscores) are stripped and spaces become underscores, so the value here is the canonical name used for the downloaded file - it may differ from what was submitted. Null when no name was provided."
          },
          "synthesizedAudioUrl": {
            "type": "string",
            "description": "The URL of the audio synthesized from a text input. Only present for generations created with a TTS text input; reuse it as an audio input to keep the same take across generations."
          },
          "error": {
            "type": "string",
            "description": "The error message if the generation failed."
          },
          "errorCode": {
            "type": "string",
            "nullable": true,
            "description": "Stable machine-readable error code if the generation failed. The full catalog with messages and suggested fixes is served at GET /v2/errors.",
            "example": "generation_input_video_inaccessible"
          },
          "progress_percent": {
            "type": "number",
            "description": "The progress percentage of the generation (0-100). Only included when include=progress.",
            "minimum": 0,
            "maximum": 100
          }
        },
        "required": [
          "id",
          "createdAt",
          "status",
          "model",
          "input",
          "segments"
        ]
      },
      "GenerationError": {
        "type": "object",
        "properties": {
          "message": {
            "description": "A message describing the error.",
            "example": "An error occurred during generation",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "error": {
            "type": "string",
            "description": "The type of error that occurred."
          },
          "statusCode": {
            "type": "number",
            "description": "The HTTP status code."
          },
          "errorCode": {
            "type": "string",
            "description": "Stable machine-readable error code. References the catalog at GET /v2/errors.",
            "example": "concurrency_limit_reached"
          },
          "docsUrl": {
            "type": "string",
            "description": "Link to documentation explaining this error and how to fix it."
          },
          "requestId": {
            "type": "string",
            "description": "Request id for correlating an unexpected (500) failure with our logs when contacting support."
          },
          "activeGenerations": {
            "type": "number",
            "description": "Concurrency 429 only: number of generations currently in progress."
          },
          "concurrencyLimit": {
            "type": "number",
            "description": "Concurrency 429 only: your plan’s concurrent generation limit."
          },
          "retryAfterSeconds": {
            "type": "number",
            "description": "For 429/503/504: suggested seconds to wait before retrying (also sent as the Retry-After header)."
          },
          "upstreamOperation": {
            "type": "string",
            "description": "For upstream validation failures: the bounded dependency operation that timed out or was unavailable.",
            "example": "media_duration_probe"
          },
          "upgradeUrl": {
            "type": "string",
            "description": "Concurrency 429 only: link to upgrade for higher limits."
          }
        },
        "required": [
          "message",
          "error",
          "statusCode"
        ]
      },
      "EstimateCostDto": {
        "type": "object",
        "properties": {
          "model": {
            "type": "string",
            "minLength": 1
          },
          "duration": {
            "type": "number",
            "minimum": 0
          },
          "fps": {
            "type": "number",
            "exclusiveMinimum": true,
            "minimum": 0
          },
          "reasoningEnabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "model",
          "duration"
        ]
      },
      "EstimateCostResponseDto": {
        "type": "object",
        "properties": {
          "estimatedFrameCount": {
            "type": "number"
          },
          "estimatedGenerationCost": {
            "type": "number"
          },
          "estimatedCredits": {
            "type": "number",
            "nullable": true
          }
        },
        "required": [
          "estimatedFrameCount",
          "estimatedGenerationCost",
          "estimatedCredits"
        ]
      },
      "ModelDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique model identifier"
          },
          "name": {
            "type": "string",
            "description": "Model name (e.g., lipsync-2)"
          },
          "type": {
            "type": "string",
            "description": "Model type"
          },
          "version": {
            "type": "string",
            "description": "Model version"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Model description"
          },
          "features": {
            "description": "Marketing feature tags for the model",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "deprecatedAt": {
            "type": "string",
            "nullable": true,
            "description": "Deprecation timestamp if deprecated"
          }
        },
        "required": [
          "id",
          "name",
          "type",
          "version",
          "description",
          "features",
          "deprecatedAt"
        ]
      },
      "PaginatedGenerationsResponseDto__schema0": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaginatedGenerationsResponseDto__schema0"
            }
          },
          {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/PaginatedGenerationsResponseDto__schema0"
            }
          }
        ],
        "nullable": true
      },
      "PaginatedGenerationsResponseDto": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                },
                "organizationId": {
                  "type": "string",
                  "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                },
                "userId": {
                  "type": "string",
                  "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
                  "nullable": true
                },
                "apiKeyId": {
                  "type": "string",
                  "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
                  "nullable": true
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "startedAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
                  "nullable": true
                },
                "finishedAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
                  "nullable": true
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "PENDING",
                    "PROCESSING",
                    "COMPLETED",
                    "FAILED",
                    "REJECTED"
                  ]
                },
                "model": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string",
                      "nullable": true
                    },
                    "type": {
                      "type": "string"
                    },
                    "version": {
                      "type": "string"
                    },
                    "features": {
                      "default": [],
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "deprecatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
                      "nullable": true
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "description",
                    "type",
                    "version",
                    "deprecatedAt"
                  ]
                },
                "modelName": {
                  "type": "string"
                },
                "inputs": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "url": {
                        "type": "string",
                        "format": "uri"
                      },
                      "assetId": {
                        "type": "string",
                        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "video",
                          "image",
                          "audio",
                          "text"
                        ]
                      },
                      "refId": {
                        "type": "string"
                      },
                      "generatedBy": {
                        "type": "string",
                        "enum": [
                          "tts"
                        ]
                      },
                      "segments_secs": {
                        "type": "array",
                        "items": {
                          "type": "array",
                          "items": {
                            "type": "number"
                          }
                        }
                      },
                      "segments_frames": {
                        "type": "array",
                        "items": {
                          "type": "array",
                          "items": {
                            "type": "number"
                          }
                        }
                      },
                      "trim_secs": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      },
                      "provider": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "script": {
                            "type": "string"
                          },
                          "voiceId": {
                            "type": "string"
                          },
                          "stability": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1
                          },
                          "similarityBoost": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1
                          }
                        },
                        "required": [
                          "name",
                          "script",
                          "voiceId"
                        ]
                      }
                    },
                    "required": [
                      "type"
                    ]
                  }
                },
                "webhookUrl": {
                  "type": "string",
                  "nullable": true
                },
                "thumbnailUrl": {
                  "type": "string",
                  "nullable": true
                },
                "frameCount": {
                  "type": "number",
                  "nullable": true
                },
                "options": {
                  "type": "object",
                  "properties": {
                    "prompt": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "happy",
                            "sad",
                            "angry",
                            "disgusted",
                            "surprised",
                            "neutral"
                          ]
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    "prompt_image_uris": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "i2v_prompt": {
                      "type": "string"
                    },
                    "system_prompt": {
                      "type": "string"
                    },
                    "temperature": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1,
                      "nullable": true
                    },
                    "sync_mode": {
                      "type": "string",
                      "enum": [
                        "cut_off",
                        "bounce",
                        "loop",
                        "silence",
                        "remap"
                      ]
                    },
                    "model_mode": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    "active_speaker_detection": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "auto_detect": {
                              "default": false,
                              "type": "boolean"
                            },
                            "use_v2": {
                              "type": "boolean"
                            },
                            "v3": {
                              "type": "boolean"
                            },
                            "frame_number": {
                              "type": "number"
                            },
                            "coordinates": {
                              "minItems": 2,
                              "maxItems": 2,
                              "type": "array",
                              "items": {
                                "type": "number"
                              }
                            },
                            "bounding_boxes": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "number"
                                },
                                "nullable": true
                              }
                            },
                            "bounding_boxes_url": {
                              "type": "string"
                            },
                            "face_image": {
                              "type": "string"
                            }
                          }
                        },
                        {
                          "type": "boolean"
                        }
                      ]
                    },
                    "face_boxes_url": {
                      "type": "string"
                    },
                    "occlusion_detection_enabled": {
                      "type": "boolean"
                    },
                    "reasoning_enabled": {
                      "type": "boolean"
                    },
                    "refinement_enabled": {
                      "type": "boolean"
                    },
                    "blending_mode": {
                      "type": "string",
                      "enum": [
                        "default",
                        "advanced",
                        "disabled"
                      ]
                    },
                    "output_file_name": {
                      "type": "string"
                    },
                    "output_bucket_name": {
                      "type": "string"
                    },
                    "output_bucket_path": {
                      "type": "string"
                    },
                    "disable_blending": {
                      "type": "boolean"
                    },
                    "pad_percent": {
                      "type": "number"
                    },
                    "mask_uri": {
                      "type": "string"
                    },
                    "mask_inner_box": {
                      "type": "array",
                      "items": {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      "nullable": true
                    },
                    "audio_guidance_scale": {
                      "type": "number",
                      "nullable": true
                    },
                    "num_steps": {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991,
                      "nullable": true
                    },
                    "use_retinaface": {
                      "type": "boolean"
                    },
                    "use_insightface": {
                      "type": "boolean"
                    },
                    "disable_scene_detection": {
                      "type": "boolean"
                    },
                    "extra_services_options": {
                      "type": "object",
                      "additionalProperties": {
                        "$ref": "#/components/schemas/PaginatedGenerationsResponseDto__schema0"
                      }
                    },
                    "original_audio_url": {
                      "type": "string"
                    },
                    "occlusion_prompt": {
                      "type": "string"
                    },
                    "rotate": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 360
                    },
                    "active_speaker": {
                      "type": "boolean"
                    },
                    "speedup": {
                      "type": "number",
                      "minimum": 1,
                      "maximum": 4,
                      "nullable": true
                    },
                    "output_format": {
                      "type": "string",
                      "enum": [
                        "mp4",
                        "mov"
                      ]
                    },
                    "fps": {
                      "type": "number",
                      "nullable": true
                    },
                    "output_resolution": {
                      "minItems": 2,
                      "maxItems": 2,
                      "type": "array",
                      "items": {
                        "type": "number"
                      },
                      "nullable": true
                    },
                    "pads": {
                      "minItems": 4,
                      "maxItems": 4,
                      "type": "array",
                      "items": {
                        "type": "number",
                        "minimum": -8000,
                        "maximum": 8000
                      }
                    },
                    "gb": {
                      "type": "number",
                      "nullable": true
                    },
                    "mb": {
                      "type": "number",
                      "nullable": true
                    },
                    "quality": {
                      "type": "string",
                      "nullable": true
                    },
                    "img_size": {
                      "type": "array",
                      "items": {
                        "type": "number"
                      },
                      "nullable": true
                    },
                    "pickle_mode": {
                      "type": "string",
                      "nullable": true
                    },
                    "cf_batch_size": {
                      "type": "number",
                      "nullable": true
                    },
                    "resize_factor": {
                      "type": "number",
                      "nullable": true
                    },
                    "expressiveness": {
                      "type": "number",
                      "nullable": true
                    },
                    "inp_batch_size": {
                      "type": "number",
                      "nullable": true
                    },
                    "fidelity_weight": {
                      "type": "number",
                      "nullable": true
                    },
                    "wav2lip_batch_size": {
                      "type": "number",
                      "nullable": true
                    },
                    "face_det_batch_size": {
                      "type": "number",
                      "nullable": true
                    }
                  }
                },
                "segments": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "startTime": {
                        "type": "number"
                      },
                      "endTime": {
                        "type": "number"
                      },
                      "startFrame": {
                        "type": "number"
                      },
                      "endFrame": {
                        "type": "number"
                      },
                      "audioInput": {
                        "type": "object",
                        "properties": {
                          "refId": {
                            "type": "string"
                          },
                          "startTime": {
                            "type": "number"
                          },
                          "endTime": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "refId"
                        ]
                      },
                      "optionsOverride": {
                        "type": "object",
                        "properties": {
                          "active_speaker_detection": {
                            "type": "object",
                            "properties": {
                              "auto_detect": {
                                "default": false,
                                "type": "boolean"
                              },
                              "use_v2": {
                                "type": "boolean"
                              },
                              "v3": {
                                "type": "boolean"
                              },
                              "frame_number": {
                                "type": "number"
                              },
                              "coordinates": {
                                "minItems": 2,
                                "maxItems": 2,
                                "type": "array",
                                "items": {
                                  "type": "number"
                                }
                              },
                              "bounding_boxes": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  },
                                  "nullable": true
                                }
                              },
                              "bounding_boxes_url": {
                                "type": "string"
                              },
                              "face_image": {
                                "type": "string"
                              }
                            }
                          },
                          "sync_mode": {
                            "type": "string",
                            "enum": [
                              "cut_off",
                              "bounce",
                              "loop",
                              "silence",
                              "remap"
                            ]
                          },
                          "occlusion_detection_enabled": {
                            "type": "boolean"
                          },
                          "temperature": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1
                          },
                          "disable_blending": {
                            "type": "boolean"
                          },
                          "pad_percent": {
                            "type": "number"
                          },
                          "mask_uri": {
                            "type": "string"
                          },
                          "use_retinaface": {
                            "type": "boolean"
                          },
                          "use_insightface": {
                            "type": "boolean"
                          }
                        }
                      }
                    }
                  },
                  "nullable": true
                },
                "outputMediaUrl": {
                  "type": "string",
                  "nullable": true
                },
                "segmentOutputMediaUrl": {
                  "type": "string",
                  "nullable": true
                },
                "segmentOutputBucketPath": {
                  "type": "string",
                  "nullable": true
                },
                "creatorName": {
                  "type": "string",
                  "nullable": true
                },
                "outputMediaLength": {
                  "type": "number",
                  "nullable": true
                },
                "potentialError": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "number"
                        },
                        "message": {
                          "type": "string"
                        },
                        "errorCode": {
                          "type": "string"
                        },
                        "docsLink": {
                          "type": "string",
                          "format": "uri"
                        }
                      },
                      "required": [
                        "message"
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "nullable": true
                },
                "isPublic": {
                  "type": "boolean",
                  "nullable": true
                },
                "deletedAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
                  "nullable": true
                },
                "projectId": {
                  "type": "string",
                  "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
                  "nullable": true
                },
                "outputFileName": {
                  "type": "string",
                  "nullable": true
                },
                "outputExtension": {
                  "type": "string",
                  "nullable": true
                },
                "workflow": {
                  "type": "string",
                  "enum": [
                    "lipsync",
                    "translate_and_dub",
                    "change_appearance",
                    "image_to_video",
                    "edit_dialogue",
                    "assistant",
                    "timeline",
                    null
                  ],
                  "nullable": true
                },
                "parentGenerationId": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                  "nullable": true
                },
                "dialogueEditJobId": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                  "nullable": true
                },
                "outputThumbnailsManifestUrl": {
                  "type": "string",
                  "nullable": true
                }
              },
              "required": [
                "id",
                "organizationId",
                "userId",
                "apiKeyId",
                "createdAt",
                "updatedAt",
                "startedAt",
                "finishedAt",
                "status",
                "model",
                "modelName",
                "inputs",
                "webhookUrl",
                "thumbnailUrl",
                "frameCount",
                "options",
                "outputMediaUrl",
                "segmentOutputMediaUrl",
                "segmentOutputBucketPath",
                "outputMediaLength",
                "potentialError",
                "isPublic",
                "deletedAt",
                "projectId"
              ]
            }
          },
          "nextCursor": {
            "type": "string"
          },
          "totalCount": {
            "type": "number"
          }
        },
        "required": [
          "items",
          "totalCount"
        ]
      },
      "GenerationProgressDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "percent": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "percent"
        ]
      },
      "CountResponseDto": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number"
          }
        },
        "required": [
          "count"
        ]
      },
      "PublicGenerationResponseDto__schema0": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicGenerationResponseDto__schema0"
            }
          },
          {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/PublicGenerationResponseDto__schema0"
            }
          }
        ],
        "nullable": true
      },
      "PublicGenerationResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
          },
          "organizationId": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
          },
          "userId": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
            "nullable": true
          },
          "apiKeyId": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "startedAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
            "nullable": true
          },
          "finishedAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
            "nullable": true
          },
          "status": {
            "type": "string",
            "enum": [
              "PENDING",
              "PROCESSING",
              "COMPLETED",
              "FAILED",
              "REJECTED"
            ]
          },
          "model": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "description": {
                "type": "string",
                "nullable": true
              },
              "type": {
                "type": "string"
              },
              "version": {
                "type": "string"
              },
              "features": {
                "default": [],
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "deprecatedAt": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
                "nullable": true
              }
            },
            "required": [
              "id",
              "name",
              "description",
              "type",
              "version",
              "deprecatedAt"
            ]
          },
          "modelName": {
            "type": "string"
          },
          "inputs": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "format": "uri"
                },
                "assetId": {
                  "type": "string",
                  "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "video",
                    "image",
                    "audio",
                    "text"
                  ]
                },
                "refId": {
                  "type": "string"
                },
                "generatedBy": {
                  "type": "string",
                  "enum": [
                    "tts"
                  ]
                },
                "segments_secs": {
                  "type": "array",
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                },
                "segments_frames": {
                  "type": "array",
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                },
                "trim_secs": {
                  "type": "array",
                  "items": {
                    "type": "number"
                  }
                },
                "provider": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "script": {
                      "type": "string"
                    },
                    "voiceId": {
                      "type": "string"
                    },
                    "stability": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1
                    },
                    "similarityBoost": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1
                    }
                  },
                  "required": [
                    "name",
                    "script",
                    "voiceId"
                  ]
                }
              },
              "required": [
                "type"
              ]
            }
          },
          "webhookUrl": {
            "type": "string",
            "nullable": true
          },
          "thumbnailUrl": {
            "type": "string",
            "nullable": true
          },
          "frameCount": {
            "type": "number",
            "nullable": true
          },
          "options": {
            "type": "object",
            "properties": {
              "prompt": {
                "anyOf": [
                  {
                    "type": "string",
                    "enum": [
                      "happy",
                      "sad",
                      "angry",
                      "disgusted",
                      "surprised",
                      "neutral"
                    ]
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "prompt_image_uris": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "i2v_prompt": {
                "type": "string"
              },
              "system_prompt": {
                "type": "string"
              },
              "temperature": {
                "type": "number",
                "minimum": 0,
                "maximum": 1,
                "nullable": true
              },
              "sync_mode": {
                "type": "string",
                "enum": [
                  "cut_off",
                  "bounce",
                  "loop",
                  "silence",
                  "remap"
                ]
              },
              "model_mode": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "active_speaker_detection": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "auto_detect": {
                        "default": false,
                        "type": "boolean"
                      },
                      "use_v2": {
                        "type": "boolean"
                      },
                      "v3": {
                        "type": "boolean"
                      },
                      "frame_number": {
                        "type": "number"
                      },
                      "coordinates": {
                        "minItems": 2,
                        "maxItems": 2,
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      },
                      "bounding_boxes": {
                        "type": "array",
                        "items": {
                          "type": "array",
                          "items": {
                            "type": "number"
                          },
                          "nullable": true
                        }
                      },
                      "bounding_boxes_url": {
                        "type": "string"
                      },
                      "face_image": {
                        "type": "string"
                      }
                    }
                  },
                  {
                    "type": "boolean"
                  }
                ]
              },
              "face_boxes_url": {
                "type": "string"
              },
              "occlusion_detection_enabled": {
                "type": "boolean"
              },
              "reasoning_enabled": {
                "type": "boolean"
              },
              "refinement_enabled": {
                "type": "boolean"
              },
              "blending_mode": {
                "type": "string",
                "enum": [
                  "default",
                  "advanced",
                  "disabled"
                ]
              },
              "output_file_name": {
                "type": "string"
              },
              "output_bucket_name": {
                "type": "string"
              },
              "output_bucket_path": {
                "type": "string"
              },
              "disable_blending": {
                "type": "boolean"
              },
              "pad_percent": {
                "type": "number"
              },
              "mask_uri": {
                "type": "string"
              },
              "mask_inner_box": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "nullable": true
              },
              "audio_guidance_scale": {
                "type": "number",
                "nullable": true
              },
              "num_steps": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991,
                "nullable": true
              },
              "use_retinaface": {
                "type": "boolean"
              },
              "use_insightface": {
                "type": "boolean"
              },
              "disable_scene_detection": {
                "type": "boolean"
              },
              "extra_services_options": {
                "type": "object",
                "additionalProperties": {
                  "$ref": "#/components/schemas/PublicGenerationResponseDto__schema0"
                }
              },
              "original_audio_url": {
                "type": "string"
              },
              "occlusion_prompt": {
                "type": "string"
              },
              "rotate": {
                "type": "number",
                "minimum": 0,
                "maximum": 360
              },
              "active_speaker": {
                "type": "boolean"
              },
              "speedup": {
                "type": "number",
                "minimum": 1,
                "maximum": 4,
                "nullable": true
              },
              "output_format": {
                "type": "string",
                "enum": [
                  "mp4",
                  "mov"
                ]
              },
              "fps": {
                "type": "number",
                "nullable": true
              },
              "output_resolution": {
                "minItems": 2,
                "maxItems": 2,
                "type": "array",
                "items": {
                  "type": "number"
                },
                "nullable": true
              },
              "pads": {
                "minItems": 4,
                "maxItems": 4,
                "type": "array",
                "items": {
                  "type": "number",
                  "minimum": -8000,
                  "maximum": 8000
                }
              },
              "gb": {
                "type": "number",
                "nullable": true
              },
              "mb": {
                "type": "number",
                "nullable": true
              },
              "quality": {
                "type": "string",
                "nullable": true
              },
              "img_size": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "nullable": true
              },
              "pickle_mode": {
                "type": "string",
                "nullable": true
              },
              "cf_batch_size": {
                "type": "number",
                "nullable": true
              },
              "resize_factor": {
                "type": "number",
                "nullable": true
              },
              "expressiveness": {
                "type": "number",
                "nullable": true
              },
              "inp_batch_size": {
                "type": "number",
                "nullable": true
              },
              "fidelity_weight": {
                "type": "number",
                "nullable": true
              },
              "wav2lip_batch_size": {
                "type": "number",
                "nullable": true
              },
              "face_det_batch_size": {
                "type": "number",
                "nullable": true
              }
            }
          },
          "segments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "startTime": {
                  "type": "number"
                },
                "endTime": {
                  "type": "number"
                },
                "startFrame": {
                  "type": "number"
                },
                "endFrame": {
                  "type": "number"
                },
                "audioInput": {
                  "type": "object",
                  "properties": {
                    "refId": {
                      "type": "string"
                    },
                    "startTime": {
                      "type": "number"
                    },
                    "endTime": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "refId"
                  ]
                },
                "optionsOverride": {
                  "type": "object",
                  "properties": {
                    "active_speaker_detection": {
                      "type": "object",
                      "properties": {
                        "auto_detect": {
                          "default": false,
                          "type": "boolean"
                        },
                        "use_v2": {
                          "type": "boolean"
                        },
                        "v3": {
                          "type": "boolean"
                        },
                        "frame_number": {
                          "type": "number"
                        },
                        "coordinates": {
                          "minItems": 2,
                          "maxItems": 2,
                          "type": "array",
                          "items": {
                            "type": "number"
                          }
                        },
                        "bounding_boxes": {
                          "type": "array",
                          "items": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            },
                            "nullable": true
                          }
                        },
                        "bounding_boxes_url": {
                          "type": "string"
                        },
                        "face_image": {
                          "type": "string"
                        }
                      }
                    },
                    "sync_mode": {
                      "type": "string",
                      "enum": [
                        "cut_off",
                        "bounce",
                        "loop",
                        "silence",
                        "remap"
                      ]
                    },
                    "occlusion_detection_enabled": {
                      "type": "boolean"
                    },
                    "temperature": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1
                    },
                    "disable_blending": {
                      "type": "boolean"
                    },
                    "pad_percent": {
                      "type": "number"
                    },
                    "mask_uri": {
                      "type": "string"
                    },
                    "use_retinaface": {
                      "type": "boolean"
                    },
                    "use_insightface": {
                      "type": "boolean"
                    }
                  }
                }
              }
            },
            "nullable": true
          },
          "outputMediaUrl": {
            "type": "string",
            "nullable": true
          },
          "segmentOutputMediaUrl": {
            "type": "string",
            "nullable": true
          },
          "segmentOutputBucketPath": {
            "type": "string",
            "nullable": true
          },
          "creatorName": {
            "type": "string",
            "nullable": true
          },
          "outputMediaLength": {
            "type": "number",
            "nullable": true
          },
          "potentialError": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "number"
                  },
                  "message": {
                    "type": "string"
                  },
                  "errorCode": {
                    "type": "string"
                  },
                  "docsLink": {
                    "type": "string",
                    "format": "uri"
                  }
                },
                "required": [
                  "message"
                ]
              },
              {
                "type": "null"
              }
            ],
            "nullable": true
          },
          "isPublic": {
            "type": "boolean",
            "nullable": true
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
            "nullable": true
          },
          "projectId": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
            "nullable": true
          },
          "outputFileName": {
            "type": "string",
            "nullable": true
          },
          "outputExtension": {
            "type": "string",
            "nullable": true
          },
          "videoInputUrl": {
            "type": "string",
            "nullable": true
          },
          "thumbnailsManifestUrl": {
            "type": "string",
            "nullable": true
          },
          "outputThumbnailsManifestUrl": {
            "type": "string",
            "nullable": true
          },
          "imageInputUrl": {
            "type": "string",
            "nullable": true
          },
          "downloadUrl": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "id",
          "organizationId",
          "userId",
          "apiKeyId",
          "createdAt",
          "updatedAt",
          "startedAt",
          "finishedAt",
          "status",
          "model",
          "modelName",
          "inputs",
          "webhookUrl",
          "thumbnailUrl",
          "frameCount",
          "options",
          "outputMediaUrl",
          "segmentOutputMediaUrl",
          "segmentOutputBucketPath",
          "outputMediaLength",
          "potentialError",
          "isPublic",
          "deletedAt",
          "projectId",
          "downloadUrl"
        ]
      },
      "GenerationDto__schema0": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GenerationDto__schema0"
            }
          },
          {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/GenerationDto__schema0"
            }
          }
        ],
        "nullable": true
      },
      "GenerationDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
          },
          "organizationId": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
          },
          "userId": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
            "nullable": true
          },
          "apiKeyId": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "startedAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
            "nullable": true
          },
          "finishedAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
            "nullable": true
          },
          "status": {
            "type": "string",
            "enum": [
              "PENDING",
              "PROCESSING",
              "COMPLETED",
              "FAILED",
              "REJECTED"
            ]
          },
          "model": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "description": {
                "type": "string",
                "nullable": true
              },
              "type": {
                "type": "string"
              },
              "version": {
                "type": "string"
              },
              "features": {
                "default": [],
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "deprecatedAt": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
                "nullable": true
              }
            },
            "required": [
              "id",
              "name",
              "description",
              "type",
              "version",
              "deprecatedAt"
            ]
          },
          "modelName": {
            "type": "string"
          },
          "inputs": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "format": "uri"
                },
                "assetId": {
                  "type": "string",
                  "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "video",
                    "image",
                    "audio",
                    "text"
                  ]
                },
                "refId": {
                  "type": "string"
                },
                "generatedBy": {
                  "type": "string",
                  "enum": [
                    "tts"
                  ]
                },
                "segments_secs": {
                  "type": "array",
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                },
                "segments_frames": {
                  "type": "array",
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                },
                "trim_secs": {
                  "type": "array",
                  "items": {
                    "type": "number"
                  }
                },
                "provider": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "script": {
                      "type": "string"
                    },
                    "voiceId": {
                      "type": "string"
                    },
                    "stability": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1
                    },
                    "similarityBoost": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1
                    }
                  },
                  "required": [
                    "name",
                    "script",
                    "voiceId"
                  ]
                }
              },
              "required": [
                "type"
              ]
            }
          },
          "webhookUrl": {
            "type": "string",
            "nullable": true
          },
          "thumbnailUrl": {
            "type": "string",
            "nullable": true
          },
          "frameCount": {
            "type": "number",
            "nullable": true
          },
          "options": {
            "type": "object",
            "properties": {
              "prompt": {
                "anyOf": [
                  {
                    "type": "string",
                    "enum": [
                      "happy",
                      "sad",
                      "angry",
                      "disgusted",
                      "surprised",
                      "neutral"
                    ]
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "prompt_image_uris": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "i2v_prompt": {
                "type": "string"
              },
              "system_prompt": {
                "type": "string"
              },
              "temperature": {
                "type": "number",
                "minimum": 0,
                "maximum": 1,
                "nullable": true
              },
              "sync_mode": {
                "type": "string",
                "enum": [
                  "cut_off",
                  "bounce",
                  "loop",
                  "silence",
                  "remap"
                ]
              },
              "model_mode": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "active_speaker_detection": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "auto_detect": {
                        "default": false,
                        "type": "boolean"
                      },
                      "use_v2": {
                        "type": "boolean"
                      },
                      "v3": {
                        "type": "boolean"
                      },
                      "frame_number": {
                        "type": "number"
                      },
                      "coordinates": {
                        "minItems": 2,
                        "maxItems": 2,
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      },
                      "bounding_boxes": {
                        "type": "array",
                        "items": {
                          "type": "array",
                          "items": {
                            "type": "number"
                          },
                          "nullable": true
                        }
                      },
                      "bounding_boxes_url": {
                        "type": "string"
                      },
                      "face_image": {
                        "type": "string"
                      }
                    }
                  },
                  {
                    "type": "boolean"
                  }
                ]
              },
              "face_boxes_url": {
                "type": "string"
              },
              "occlusion_detection_enabled": {
                "type": "boolean"
              },
              "reasoning_enabled": {
                "type": "boolean"
              },
              "refinement_enabled": {
                "type": "boolean"
              },
              "blending_mode": {
                "type": "string",
                "enum": [
                  "default",
                  "advanced",
                  "disabled"
                ]
              },
              "output_file_name": {
                "type": "string"
              },
              "output_bucket_name": {
                "type": "string"
              },
              "output_bucket_path": {
                "type": "string"
              },
              "disable_blending": {
                "type": "boolean"
              },
              "pad_percent": {
                "type": "number"
              },
              "mask_uri": {
                "type": "string"
              },
              "mask_inner_box": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "nullable": true
              },
              "audio_guidance_scale": {
                "type": "number",
                "nullable": true
              },
              "num_steps": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991,
                "nullable": true
              },
              "use_retinaface": {
                "type": "boolean"
              },
              "use_insightface": {
                "type": "boolean"
              },
              "disable_scene_detection": {
                "type": "boolean"
              },
              "extra_services_options": {
                "type": "object",
                "additionalProperties": {
                  "$ref": "#/components/schemas/GenerationDto__schema0"
                }
              },
              "original_audio_url": {
                "type": "string"
              },
              "occlusion_prompt": {
                "type": "string"
              },
              "rotate": {
                "type": "number",
                "minimum": 0,
                "maximum": 360
              },
              "active_speaker": {
                "type": "boolean"
              },
              "speedup": {
                "type": "number",
                "minimum": 1,
                "maximum": 4,
                "nullable": true
              },
              "output_format": {
                "type": "string",
                "enum": [
                  "mp4",
                  "mov"
                ]
              },
              "fps": {
                "type": "number",
                "nullable": true
              },
              "output_resolution": {
                "minItems": 2,
                "maxItems": 2,
                "type": "array",
                "items": {
                  "type": "number"
                },
                "nullable": true
              },
              "pads": {
                "minItems": 4,
                "maxItems": 4,
                "type": "array",
                "items": {
                  "type": "number",
                  "minimum": -8000,
                  "maximum": 8000
                }
              },
              "gb": {
                "type": "number",
                "nullable": true
              },
              "mb": {
                "type": "number",
                "nullable": true
              },
              "quality": {
                "type": "string",
                "nullable": true
              },
              "img_size": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "nullable": true
              },
              "pickle_mode": {
                "type": "string",
                "nullable": true
              },
              "cf_batch_size": {
                "type": "number",
                "nullable": true
              },
              "resize_factor": {
                "type": "number",
                "nullable": true
              },
              "expressiveness": {
                "type": "number",
                "nullable": true
              },
              "inp_batch_size": {
                "type": "number",
                "nullable": true
              },
              "fidelity_weight": {
                "type": "number",
                "nullable": true
              },
              "wav2lip_batch_size": {
                "type": "number",
                "nullable": true
              },
              "face_det_batch_size": {
                "type": "number",
                "nullable": true
              }
            }
          },
          "segments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "startTime": {
                  "type": "number"
                },
                "endTime": {
                  "type": "number"
                },
                "startFrame": {
                  "type": "number"
                },
                "endFrame": {
                  "type": "number"
                },
                "audioInput": {
                  "type": "object",
                  "properties": {
                    "refId": {
                      "type": "string"
                    },
                    "startTime": {
                      "type": "number"
                    },
                    "endTime": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "refId"
                  ]
                },
                "optionsOverride": {
                  "type": "object",
                  "properties": {
                    "active_speaker_detection": {
                      "type": "object",
                      "properties": {
                        "auto_detect": {
                          "default": false,
                          "type": "boolean"
                        },
                        "use_v2": {
                          "type": "boolean"
                        },
                        "v3": {
                          "type": "boolean"
                        },
                        "frame_number": {
                          "type": "number"
                        },
                        "coordinates": {
                          "minItems": 2,
                          "maxItems": 2,
                          "type": "array",
                          "items": {
                            "type": "number"
                          }
                        },
                        "bounding_boxes": {
                          "type": "array",
                          "items": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            },
                            "nullable": true
                          }
                        },
                        "bounding_boxes_url": {
                          "type": "string"
                        },
                        "face_image": {
                          "type": "string"
                        }
                      }
                    },
                    "sync_mode": {
                      "type": "string",
                      "enum": [
                        "cut_off",
                        "bounce",
                        "loop",
                        "silence",
                        "remap"
                      ]
                    },
                    "occlusion_detection_enabled": {
                      "type": "boolean"
                    },
                    "temperature": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1
                    },
                    "disable_blending": {
                      "type": "boolean"
                    },
                    "pad_percent": {
                      "type": "number"
                    },
                    "mask_uri": {
                      "type": "string"
                    },
                    "use_retinaface": {
                      "type": "boolean"
                    },
                    "use_insightface": {
                      "type": "boolean"
                    }
                  }
                }
              }
            },
            "nullable": true
          },
          "outputMediaUrl": {
            "type": "string",
            "nullable": true
          },
          "segmentOutputMediaUrl": {
            "type": "string",
            "nullable": true
          },
          "segmentOutputBucketPath": {
            "type": "string",
            "nullable": true
          },
          "creatorName": {
            "type": "string",
            "nullable": true
          },
          "outputMediaLength": {
            "type": "number",
            "nullable": true
          },
          "potentialError": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "number"
                  },
                  "message": {
                    "type": "string"
                  },
                  "errorCode": {
                    "type": "string"
                  },
                  "docsLink": {
                    "type": "string",
                    "format": "uri"
                  }
                },
                "required": [
                  "message"
                ]
              },
              {
                "type": "null"
              }
            ],
            "nullable": true
          },
          "isPublic": {
            "type": "boolean",
            "nullable": true
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
            "nullable": true
          },
          "projectId": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
            "nullable": true
          },
          "outputFileName": {
            "type": "string",
            "nullable": true
          },
          "outputExtension": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "id",
          "organizationId",
          "userId",
          "apiKeyId",
          "createdAt",
          "updatedAt",
          "startedAt",
          "finishedAt",
          "status",
          "model",
          "modelName",
          "inputs",
          "webhookUrl",
          "thumbnailUrl",
          "frameCount",
          "options",
          "outputMediaUrl",
          "segmentOutputMediaUrl",
          "segmentOutputBucketPath",
          "outputMediaLength",
          "potentialError",
          "isPublic",
          "deletedAt",
          "projectId"
        ]
      },
      "ThumbnailUploadResponseDto": {
        "type": "object",
        "properties": {
          "uploadUrl": {
            "type": "string"
          },
          "uploadToken": {
            "type": "string"
          },
          "uploadKey": {
            "type": "string"
          }
        },
        "required": [
          "uploadUrl",
          "uploadToken",
          "uploadKey"
        ]
      },
      "CompleteThumbnailUploadBodyDto": {
        "type": "object",
        "properties": {
          "uploadToken": {
            "type": "string"
          },
          "uploadKey": {
            "type": "string"
          }
        },
        "required": [
          "uploadToken",
          "uploadKey"
        ]
      },
      "UpdateOutputFileNameDto": {
        "type": "object",
        "properties": {
          "outputFileName": {
            "type": "string",
            "maxLength": 255
          }
        },
        "required": [
          "outputFileName"
        ]
      },
      "UpdateOutputThumbnailsManifestDto": {
        "type": "object",
        "properties": {
          "outputThumbnailsManifestUrl": {
            "type": "string",
            "maxLength": 2048,
            "format": "uri"
          }
        },
        "required": [
          "outputThumbnailsManifestUrl"
        ]
      },
      "UpdateOutputThumbnailsManifestResponseDto": {
        "type": "object",
        "properties": {
          "outputThumbnailsManifestUrl": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "outputThumbnailsManifestUrl"
        ]
      },
      "SubmitFeedbackBodyDto": {
        "type": "object",
        "properties": {
          "feedbackType": {
            "type": "string",
            "enum": [
              "upvote",
              "downvote"
            ]
          },
          "textFeedback": {
            "type": "string",
            "maxLength": 4000,
            "nullable": true
          },
          "tags": {
            "type": "array",
            "description": "Tags the user selected. A submit replaces the whole set, so send the complete selection on every call, not the chip that was just tapped.",
            "items": {
              "type": "string",
              "enum": [
                "no_lip_movement",
                "poor_synchronization",
                "visual_artifacts",
                "wrong_character",
                "model_technical",
                "other",
                "sync_drift",
                "identity_changed",
                "texture_loss",
                "unnatural_teeth_or_tongue",
                "blurry_or_low_res",
                "background_or_body_artifacts",
                "voice_wrong",
                "voice_unnatural",
                "audio_quality",
                "wrong_pronunciation",
                "wrong_language_or_accent",
                "translation_wrong",
                "script_mismatch",
                "dub_length_mismatch",
                "no_motion",
                "motion_unnatural",
                "sudden_jerk",
                "not_what_i_asked_for",
                "unexpected_failure",
                "input_should_be_supported",
                "error_message_unclear",
                "rejected_wrongly",
                "sync_accurate",
                "looks_natural",
                "identity_preserved",
                "voice_natural",
                "translation_accurate",
                "followed_prompt",
                "motion_natural",
                "good_enough_to_ship"
              ]
            }
          },
          "source": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^[a-z0-9_-]+$",
            "description": "Surface the feedback was given on, not where the generation was made. Carries a GENERATION_SOURCES value, which is also the vocabulary the historical backfill copies off the generation.",
            "nullable": true
          },
          "syncMode": {
            "type": "string",
            "enum": [
              "cut_off",
              "bounce",
              "loop",
              "silence",
              "remap",
              null
            ],
            "description": "Lipsync sync mode: cut_off | bounce | loop | silence | remap",
            "nullable": true
          },
          "textPending": {
            "type": "boolean",
            "description": "The text is still being composed, so skip analysis until it is committed"
          }
        },
        "required": [
          "feedbackType"
        ]
      },
      "FeedbackSuggestionItemDto": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "Suggestion text"
          },
          "priority": {
            "enum": [
              "high",
              "medium",
              "low"
            ],
            "type": "string",
            "description": "Priority level"
          }
        },
        "required": [
          "text",
          "priority"
        ]
      },
      "FeedbackSuggestionDto": {
        "type": "object",
        "properties": {
          "isActionable": {
            "type": "boolean",
            "description": "Whether the feedback is actionable"
          },
          "category": {
            "enum": [
              "no_lip_movement",
              "poor_synchronization",
              "visual_artifacts",
              "wrong_character",
              "model_technical",
              "other"
            ],
            "type": "string",
            "description": "Feedback category"
          },
          "summary": {
            "type": "string",
            "description": "Summary of the feedback"
          },
          "suggestions": {
            "description": "List of suggestions",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FeedbackSuggestionItemDto"
            }
          },
          "confidence": {
            "type": "number",
            "description": "Confidence score (0-1)"
          }
        },
        "required": [
          "isActionable",
          "category",
          "summary",
          "suggestions",
          "confidence"
        ]
      },
      "FeedbackDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Feedback ID"
          },
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp"
          },
          "updatedAt": {
            "type": "string",
            "description": "Update timestamp"
          },
          "generationId": {
            "type": "string",
            "description": "Generation ID this feedback is for"
          },
          "userId": {
            "type": "string",
            "description": "User ID who submitted the feedback"
          },
          "organizationId": {
            "type": "string",
            "description": "Organization ID"
          },
          "modelName": {
            "type": "string",
            "description": "Model name used for the generation"
          },
          "feedbackType": {
            "enum": [
              "upvote",
              "downvote"
            ],
            "type": "string",
            "description": "Type of feedback"
          },
          "textFeedback": {
            "type": "string",
            "nullable": true,
            "description": "Free-text feedback supplied with the vote, on either polarity"
          },
          "tags": {
            "description": "Tags the user selected, empty when the row carries none",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "suggestion": {
            "nullable": true,
            "description": "AI-generated suggestion based on feedback",
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/FeedbackSuggestionDto"
              }
            ]
          }
        },
        "required": [
          "id",
          "createdAt",
          "updatedAt",
          "generationId",
          "userId",
          "organizationId",
          "modelName",
          "feedbackType",
          "tags"
        ]
      },
      "SubmitGenerationScoreBodyDto": {
        "type": "object",
        "properties": {
          "score": {
            "type": "integer",
            "minimum": 1,
            "maximum": 5
          },
          "context": {
            "type": "string",
            "enum": [
              "first_job",
              "periodic",
              "manual"
            ]
          },
          "blocker": {
            "type": "string",
            "enum": [
              "quality",
              "speed",
              "unclear_steps",
              "pricing",
              "no_real_use_case",
              "other",
              null
            ],
            "nullable": true
          },
          "highlight": {
            "type": "string",
            "enum": [
              "quality",
              "speed",
              "ease_of_use",
              "good_use_case",
              "other",
              null
            ],
            "nullable": true
          },
          "nextProjectIntent": {
            "type": "string",
            "enum": [
              "yes",
              "no",
              "unsure",
              null
            ],
            "nullable": true
          },
          "comment": {
            "type": "string",
            "maxLength": 1000,
            "nullable": true
          },
          "source": {
            "type": "string",
            "nullable": true
          },
          "syncMode": {
            "type": "string",
            "nullable": true
          },
          "workflow": {
            "type": "string",
            "enum": [
              "lipsync",
              "translate_and_dub",
              "change_appearance",
              "image_to_video",
              "edit_dialogue",
              "assistant",
              "timeline",
              null
            ],
            "nullable": true
          },
          "tags": {
            "type": "array",
            "description": "Defect or highlight tags the user selected, keyed to the score: below the positive threshold only defect tags are legal, at or above it only highlight tags.",
            "items": {
              "type": "string",
              "enum": [
                "no_lip_movement",
                "poor_synchronization",
                "visual_artifacts",
                "wrong_character",
                "model_technical",
                "other",
                "sync_drift",
                "identity_changed",
                "texture_loss",
                "unnatural_teeth_or_tongue",
                "blurry_or_low_res",
                "background_or_body_artifacts",
                "voice_wrong",
                "voice_unnatural",
                "audio_quality",
                "wrong_pronunciation",
                "wrong_language_or_accent",
                "translation_wrong",
                "script_mismatch",
                "dub_length_mismatch",
                "no_motion",
                "motion_unnatural",
                "sudden_jerk",
                "not_what_i_asked_for",
                "unexpected_failure",
                "input_should_be_supported",
                "error_message_unclear",
                "rejected_wrongly",
                "sync_accurate",
                "looks_natural",
                "identity_preserved",
                "voice_natural",
                "translation_accurate",
                "followed_prompt",
                "motion_natural",
                "good_enough_to_ship"
              ]
            }
          }
        },
        "required": [
          "score",
          "context"
        ]
      },
      "GenerationScoreDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Generation score ID"
          },
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp"
          },
          "updatedAt": {
            "type": "string",
            "description": "Update timestamp"
          },
          "generationId": {
            "type": "string",
            "description": "Generation ID this score is for"
          },
          "userId": {
            "type": "string",
            "description": "User ID who submitted the score"
          },
          "organizationId": {
            "type": "string",
            "description": "Organization ID"
          },
          "projectId": {
            "type": "string",
            "nullable": true,
            "description": "Project the generation belongs to"
          },
          "score": {
            "type": "number",
            "description": "Satisfaction score (1-5)"
          },
          "context": {
            "enum": [
              "first_job",
              "periodic",
              "manual"
            ],
            "type": "string",
            "description": "Why the score was prompted"
          },
          "blocker": {
            "nullable": true,
            "enum": [
              "quality",
              "speed",
              "unclear_steps",
              "pricing",
              "no_real_use_case",
              "other"
            ],
            "type": "string",
            "description": "Reason for a low score"
          },
          "highlight": {
            "nullable": true,
            "enum": [
              "quality",
              "speed",
              "ease_of_use",
              "good_use_case",
              "other"
            ],
            "type": "string",
            "description": "What the user liked about a high score"
          },
          "nextProjectIntent": {
            "nullable": true,
            "enum": [
              "yes",
              "no",
              "unsure"
            ],
            "type": "string",
            "description": "Whether the user plans another project"
          },
          "comment": {
            "type": "string",
            "nullable": true,
            "description": "Free-text comment"
          },
          "syncMode": {
            "type": "string",
            "nullable": true,
            "description": "Lipsync sync mode: cut_off | bounce | loop | silence | remap"
          },
          "modelName": {
            "type": "string",
            "nullable": true,
            "description": "Model used for the generation"
          },
          "source": {
            "type": "string",
            "nullable": true,
            "description": "Where the score was prompted"
          },
          "workflow": {
            "type": "string",
            "nullable": true,
            "description": "Creator workflow the scored generation belongs to"
          },
          "tags": {
            "description": "Defect or highlight tags the user selected, empty when the row carries none",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "id",
          "createdAt",
          "updatedAt",
          "generationId",
          "userId",
          "organizationId",
          "score",
          "context",
          "tags"
        ]
      },
      "GenerationTotalDto": {
        "type": "object",
        "properties": {
          "model": {
            "type": "string",
            "description": "Model name"
          },
          "organizationPlanType": {
            "type": "string",
            "nullable": true,
            "description": "Organization plan type"
          },
          "totalFramesCount": {
            "type": "number",
            "description": "Total frames count"
          },
          "totalGenerationsAmountBilledCents": {
            "type": "number",
            "description": "Total amount billed in cents"
          }
        },
        "required": [
          "model",
          "totalFramesCount",
          "totalGenerationsAmountBilledCents"
        ]
      },
      "IntegrationTotalDto": {
        "type": "object",
        "properties": {
          "integrationName": {
            "type": "string",
            "description": "Integration name"
          },
          "organizationPlanType": {
            "type": "string",
            "nullable": true,
            "description": "Organization plan type"
          },
          "totalSecondsGenerated": {
            "type": "number",
            "description": "Total seconds generated"
          },
          "totalIntegrationsAmountBilledCents": {
            "type": "number",
            "description": "Total amount billed in cents"
          }
        },
        "required": [
          "integrationName",
          "totalSecondsGenerated",
          "totalIntegrationsAmountBilledCents"
        ]
      },
      "UsageAdditionalMultipliersDto": {
        "type": "object",
        "properties": {
          "reasoning": {
            "type": "number",
            "description": "Reasoning multiplier if enabled"
          }
        }
      },
      "UsageItemDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Usage record ID"
          },
          "type": {
            "enum": [
              "generation",
              "integration"
            ],
            "type": "string",
            "description": "Usage type"
          },
          "organizationPlanType": {
            "type": "string",
            "nullable": true,
            "description": "Organization plan type at time of usage"
          },
          "framesCount": {
            "type": "number",
            "description": "Number of frames processed"
          },
          "amountBilledCents": {
            "type": "number",
            "description": "Amount billed in cents"
          },
          "integrations": {
            "type": "object",
            "description": "Integration usage details by name",
            "additionalProperties": {
              "type": "object"
            }
          },
          "finishedAt": {
            "format": "date-time",
            "type": "string",
            "description": "When the usage completed"
          },
          "modelName": {
            "type": "string",
            "nullable": true,
            "description": "Model name used"
          },
          "apiKeyName": {
            "type": "string",
            "nullable": true,
            "description": "API key name"
          },
          "apiKeySecretMask": {
            "type": "string",
            "nullable": true,
            "description": "API key secret mask"
          },
          "apiKeyRevoked": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether API key is revoked"
          },
          "additionalMultipliers": {
            "description": "Additional multipliers applied",
            "allOf": [
              {
                "$ref": "#/components/schemas/UsageAdditionalMultipliersDto"
              }
            ]
          },
          "frameCostCents": {
            "type": "number",
            "description": "Frame cost in cents (deprecated)",
            "deprecated": true
          },
          "additionalCostCents": {
            "type": "number",
            "description": "Additional cost in cents (deprecated)",
            "deprecated": true
          }
        },
        "required": [
          "id",
          "type",
          "framesCount",
          "amountBilledCents",
          "integrations",
          "finishedAt",
          "frameCostCents",
          "additionalCostCents"
        ]
      },
      "UsageResponseDto": {
        "type": "object",
        "properties": {
          "items": {
            "description": "Usage records",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UsageItemDto"
            }
          },
          "nextCursor": {
            "type": "string",
            "description": "Cursor for next page"
          }
        },
        "required": [
          "items"
        ]
      },
      "UsageDependencyUnavailableErrorDto": {
        "type": "object",
        "properties": {
          "statusCode": {
            "enum": [
              503
            ],
            "type": "number",
            "example": 503
          },
          "errorCode": {
            "type": "string",
            "enum": [
              "usage_dependency_unavailable"
            ],
            "example": "usage_dependency_unavailable",
            "description": "Stable machine-readable error code."
          },
          "message": {
            "type": "string",
            "example": "Usage totals are temporarily unavailable."
          },
          "suggestion": {
            "type": "string",
            "example": "Retry the request with backoff. If it keeps failing, contact support with the request id."
          }
        },
        "required": [
          "statusCode",
          "errorCode",
          "message",
          "suggestion"
        ]
      },
      "MonthComparisonDto": {
        "type": "object",
        "properties": {
          "costDiffPercent": {
            "type": "number",
            "nullable": true
          },
          "framesDiffPercent": {
            "type": "number",
            "nullable": true
          }
        },
        "required": [
          "costDiffPercent",
          "framesDiffPercent"
        ]
      },
      "ActiveJobCountDto": {
        "type": "object",
        "properties": {
          "total": {
            "type": "number",
            "description": "Total in-flight jobs across all paths (video, dubbing, TTS). For display only - not a concurrency gate."
          },
          "generations": {
            "type": "number",
            "description": "In-flight video lipsync jobs. Mirrors what the concurrency gate enforces; compare this against the plan video concurrency limit."
          },
          "dubbing": {
            "type": "number",
            "description": "In-flight standalone dubbing jobs"
          },
          "tts": {
            "type": "number",
            "description": "In-flight text-to-speech jobs"
          }
        },
        "required": [
          "total",
          "generations",
          "dubbing",
          "tts"
        ]
      },
      "BillingInfoDto": {
        "type": "object",
        "properties": {
          "plan": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "creator",
                  "scale",
                  "growth",
                  "hobbyist",
                  "enterprise",
                  "program",
                  "partner"
                ]
              },
              {
                "type": "string",
                "enum": [
                  "starter",
                  "pro",
                  "team"
                ]
              }
            ],
            "nullable": true
          },
          "billingStartsAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "billingEndsAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "canManageBilling": {
            "type": "boolean"
          },
          "hasPaymentFailure": {
            "type": "boolean"
          },
          "freeGenerationsExhausted": {
            "type": "boolean"
          },
          "freeTtsExhausted": {
            "type": "boolean"
          },
          "freeAppearancePreviewsExhausted": {
            "type": "boolean"
          },
          "paymentFailureCountExceededLimit": {
            "type": "boolean"
          },
          "freeMonthlyLimits": {
            "type": "object",
            "properties": {
              "generations": {
                "type": "object",
                "properties": {
                  "used": {
                    "type": "number"
                  },
                  "max": {
                    "type": "number"
                  }
                },
                "required": [
                  "used",
                  "max"
                ]
              },
              "tts": {
                "type": "object",
                "properties": {
                  "used": {
                    "type": "number"
                  },
                  "max": {
                    "type": "number"
                  }
                },
                "required": [
                  "used",
                  "max"
                ]
              },
              "sync3": {
                "type": "object",
                "properties": {
                  "used": {
                    "type": "number"
                  },
                  "max": {
                    "type": "number"
                  }
                },
                "required": [
                  "used",
                  "max"
                ]
              },
              "appearancePreviews": {
                "type": "object",
                "properties": {
                  "used": {
                    "type": "number"
                  },
                  "max": {
                    "type": "number"
                  }
                },
                "required": [
                  "used",
                  "max"
                ]
              },
              "monthlyResetDate": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              }
            },
            "required": [
              "generations",
              "tts",
              "sync3",
              "appearancePreviews",
              "monthlyResetDate"
            ],
            "nullable": true
          },
          "hasActiveCredits": {
            "type": "boolean"
          },
          "billingVersion": {
            "type": "string",
            "enum": [
              "v3"
            ]
          },
          "credits": {
            "type": "object",
            "properties": {
              "balance": {
                "type": "number"
              },
              "available": {
                "type": "number"
              },
              "inFlight": {
                "type": "number"
              },
              "planCredits": {
                "type": "number"
              },
              "purchasedCredits": {
                "type": "number"
              },
              "nextExpiry": {
                "type": "object",
                "properties": {
                  "credits": {
                    "type": "number"
                  },
                  "expiresAt": {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                  }
                },
                "required": [
                  "credits",
                  "expiresAt"
                ],
                "nullable": true
              },
              "monthlyGrant": {
                "type": "number"
              },
              "topUpCentsPerCredit": {
                "type": "number"
              },
              "autoTopUp": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean"
                  },
                  "thresholdCredits": {
                    "type": "number",
                    "nullable": true
                  },
                  "amountCredits": {
                    "type": "number",
                    "nullable": true
                  }
                },
                "required": [
                  "enabled",
                  "thresholdCredits",
                  "amountCredits"
                ]
              }
            },
            "required": [
              "balance",
              "available",
              "inFlight",
              "planCredits",
              "purchasedCredits",
              "nextExpiry",
              "monthlyGrant",
              "topUpCentsPerCredit",
              "autoTopUp"
            ],
            "nullable": true
          }
        },
        "required": [
          "plan",
          "billingStartsAt",
          "billingEndsAt",
          "canManageBilling",
          "hasPaymentFailure",
          "freeGenerationsExhausted",
          "freeTtsExhausted",
          "freeAppearancePreviewsExhausted",
          "paymentFailureCountExceededLimit",
          "freeMonthlyLimits",
          "hasActiveCredits"
        ]
      },
      "CreditHistoryDto": {
        "type": "object",
        "properties": {
          "entries": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "bucket": {
                  "type": "string",
                  "enum": [
                    "plan",
                    "purchased",
                    "promo"
                  ]
                },
                "sourceType": {
                  "type": "string",
                  "enum": [
                    "stripe_invoice",
                    "stripe_checkout",
                    "stripe_payment_intent",
                    "free_monthly",
                    "admin"
                  ]
                },
                "amountCredits": {
                  "type": "number"
                },
                "remainingCredits": {
                  "type": "number"
                },
                "expiresAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
                  "nullable": true
                }
              },
              "required": [
                "id",
                "createdAt",
                "bucket",
                "sourceType",
                "amountCredits",
                "remainingCredits",
                "expiresAt"
              ]
            }
          },
          "activity": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "grant",
                    "deduction",
                    "expiry",
                    "adjustment",
                    "refund"
                  ]
                },
                "amountCredits": {
                  "type": "number"
                },
                "balanceAfterCredits": {
                  "type": "number",
                  "nullable": true
                },
                "generationId": {
                  "type": "string",
                  "nullable": true
                },
                "generationType": {
                  "type": "string",
                  "enum": [
                    "lipsync",
                    "tts",
                    "dub",
                    "appearance_preview",
                    null
                  ],
                  "nullable": true
                },
                "apiKey": {
                  "type": "string",
                  "nullable": true
                },
                "model": {
                  "type": "string",
                  "nullable": true
                },
                "frames": {
                  "type": "number",
                  "nullable": true
                },
                "bucket": {
                  "type": "string",
                  "enum": [
                    "plan",
                    "purchased",
                    "promo",
                    null
                  ],
                  "nullable": true
                },
                "sourceType": {
                  "type": "string",
                  "enum": [
                    "stripe_invoice",
                    "stripe_checkout",
                    "stripe_payment_intent",
                    "free_monthly",
                    "admin",
                    null
                  ],
                  "nullable": true
                },
                "grantExpiresAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
                  "nullable": true
                },
                "plan": {
                  "type": "string",
                  "nullable": true
                },
                "reason": {
                  "type": "string",
                  "nullable": true
                }
              },
              "required": [
                "id",
                "createdAt",
                "type",
                "amountCredits",
                "balanceAfterCredits",
                "generationId",
                "generationType",
                "apiKey",
                "model",
                "frames",
                "bucket",
                "sourceType",
                "grantExpiresAt",
                "plan",
                "reason"
              ]
            }
          },
          "nextCursor": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "entries",
          "activity"
        ]
      },
      "AccountBalanceDto": {
        "type": "object",
        "properties": {
          "balance": {
            "type": "number"
          }
        },
        "required": [
          "balance"
        ]
      },
      "BillingPortalResponseDto": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          }
        },
        "required": [
          "url"
        ]
      },
      "CreateCheckoutSessionDto": {
        "type": "object",
        "properties": {
          "planType": {
            "type": "string",
            "enum": [
              "creator",
              "scale",
              "growth",
              "hobbyist",
              "enterprise",
              "program",
              "partner"
            ]
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "successUrl": {
            "type": "string",
            "format": "uri"
          },
          "cancelUrl": {
            "type": "string",
            "format": "uri"
          }
        },
        "required": [
          "planType"
        ]
      },
      "CheckoutSessionResponseDto": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "url"
        ]
      },
      "CreatePilotCheckoutSessionDto": {
        "type": "object",
        "properties": {
          "successUrl": {
            "type": "string",
            "format": "uri"
          },
          "cancelUrl": {
            "type": "string",
            "format": "uri"
          }
        }
      },
      "SubscriptionDetailsDto": {
        "type": "object",
        "properties": {
          "subscriptionId": {
            "type": "string",
            "nullable": true
          },
          "currentPlan": {
            "type": "string",
            "enum": [
              "creator",
              "scale",
              "growth",
              "hobbyist",
              "enterprise",
              "program",
              "partner",
              null
            ],
            "nullable": true
          },
          "downgrading": {
            "type": "object",
            "properties": {
              "at": {
                "type": "string"
              },
              "to": {
                "type": "string"
              }
            },
            "required": [
              "at",
              "to"
            ],
            "nullable": true
          },
          "canceling": {
            "type": "object",
            "properties": {
              "at": {
                "type": "string"
              },
              "reason": {
                "type": "string",
                "nullable": true
              }
            },
            "required": [
              "at",
              "reason"
            ],
            "nullable": true
          },
          "has3DSPaymentMethod": {
            "type": "boolean",
            "nullable": true
          }
        },
        "required": [
          "downgrading",
          "canceling"
        ]
      },
      "CreateSubscriptionDto": {
        "type": "object",
        "properties": {
          "planType": {
            "type": "string",
            "enum": [
              "creator",
              "scale",
              "growth",
              "hobbyist",
              "enterprise",
              "program",
              "partner"
            ]
          }
        },
        "required": [
          "planType"
        ]
      },
      "UpdateSubscriptionDto": {
        "type": "object",
        "properties": {
          "planType": {
            "type": "string",
            "enum": [
              "creator",
              "scale",
              "growth",
              "hobbyist",
              "enterprise",
              "program",
              "partner"
            ]
          },
          "isDowngrade": {
            "type": "boolean"
          }
        },
        "required": [
          "planType"
        ]
      },
      "UpdateSubscriptionResponseDto": {
        "type": "object",
        "properties": {
          "verificationRequired": {
            "type": "boolean"
          },
          "clientSecret": {
            "type": "string"
          }
        },
        "required": [
          "verificationRequired"
        ]
      },
      "RecoverPaymentResponseDto": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "success",
          "message"
        ]
      },
      "SubmitCancellationFeedbackDto": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string",
            "enum": [
              "not_using_enough",
              "too_expensive",
              "quality_not_good_enough",
              "switched_to_competitor",
              "missing_features",
              "one_project_only",
              "confused_about_billing",
              "technical_issues",
              "other"
            ]
          },
          "competitorName": {
            "type": "string",
            "maxLength": 200,
            "nullable": true
          },
          "additionalComments": {
            "type": "string",
            "maxLength": 2000,
            "nullable": true
          },
          "completed": {
            "type": "boolean"
          },
          "dismissedAtPhase": {
            "type": "string",
            "maxLength": 50,
            "nullable": true
          }
        },
        "required": [
          "reason"
        ]
      },
      "CancellationFeedbackResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Feedback ID"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string",
            "description": "Creation timestamp"
          },
          "reason": {
            "type": "string",
            "description": "Cancellation reason"
          },
          "competitorName": {
            "type": "string",
            "nullable": true,
            "description": "Competitor name (if applicable)"
          },
          "additionalComments": {
            "type": "string",
            "nullable": true,
            "description": "Additional comments"
          }
        },
        "required": [
          "id",
          "createdAt",
          "reason"
        ]
      },
      "IntegrationDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "websiteUrl": {
            "type": "string",
            "nullable": true
          },
          "logoUrl": {
            "type": "string",
            "nullable": true
          },
          "active": {
            "type": "boolean"
          },
          "minPlan": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "id",
          "name",
          "title",
          "description",
          "websiteUrl",
          "logoUrl",
          "active",
          "minPlan"
        ]
      },
      "CreateIntegrationDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "enum": [
              "elevenlabs"
            ]
          },
          "apiKey": {
            "type": "string",
            "minLength": 12
          }
        },
        "required": [
          "name",
          "apiKey"
        ]
      },
      "VoiceDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "internalVoiceId": {
            "type": "string",
            "nullable": true
          },
          "voiceId": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "provider": {
            "type": "string",
            "enum": [
              "elevenlabs"
            ]
          },
          "previewUrl": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "provider"
        ]
      },
      "TextToSpeechDto": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "minLength": 1,
            "maxLength": 5000
          },
          "voiceId": {
            "type": "string"
          },
          "internalVoiceId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "name": {
            "type": "string",
            "enum": [
              "elevenlabs"
            ]
          },
          "stability": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "similarityBoost": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          }
        },
        "required": [
          "text",
          "name"
        ]
      },
      "TextToSpeechResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "url": {
            "type": "string"
          },
          "duration": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "url",
          "duration"
        ]
      },
      "CloneVoiceDto": {
        "type": "object",
        "properties": {
          "integrationName": {
            "type": "string",
            "enum": [
              "elevenlabs"
            ]
          },
          "voiceName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "sampleUrls": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "string",
              "format": "uri"
            }
          }
        },
        "required": [
          "integrationName",
          "voiceName",
          "sampleUrls"
        ]
      },
      "ClonedVoiceResponseDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "voiceId": {
            "type": "string"
          },
          "internalVoiceId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "name",
          "voiceId"
        ]
      },
      "VoiceCloneBusyErrorDto": {
        "type": "object",
        "properties": {
          "statusCode": {
            "enum": [
              429
            ],
            "type": "number",
            "example": 429
          },
          "errorCode": {
            "type": "string",
            "enum": [
              "voice_clone_busy"
            ],
            "example": "voice_clone_busy"
          },
          "message": {
            "type": "string",
            "example": "Another shared voice clone is reserving provider capacity."
          },
          "suggestion": {
            "type": "string",
            "example": "Retry after the indicated delay. The active clone releases its reservation automatically."
          },
          "retryAfterSeconds": {
            "type": "number",
            "description": "Suggested seconds to wait. Also sent in the Retry-After header.",
            "example": 1
          }
        },
        "required": [
          "statusCode",
          "errorCode",
          "message",
          "suggestion",
          "retryAfterSeconds"
        ]
      },
      "VoiceCloneDependencyUnavailableErrorDto": {
        "type": "object",
        "properties": {
          "statusCode": {
            "enum": [
              503
            ],
            "type": "number",
            "example": 503
          },
          "errorCode": {
            "type": "string",
            "enum": [
              "elevenlabs_service_unavailable"
            ],
            "example": "elevenlabs_service_unavailable"
          },
          "message": {
            "type": "string",
            "example": "Voice service is temporarily unavailable."
          },
          "suggestion": {
            "type": "string",
            "example": "Retry the request with backoff. If it keeps failing, contact support with the request id."
          }
        },
        "required": [
          "statusCode",
          "errorCode",
          "message",
          "suggestion"
        ]
      },
      "CreateV3CheckoutSessionDto": {
        "type": "object",
        "properties": {
          "plan": {
            "type": "string",
            "enum": [
              "starter",
              "pro",
              "team"
            ]
          },
          "successUrl": {
            "type": "string",
            "format": "uri"
          },
          "cancelUrl": {
            "type": "string",
            "format": "uri"
          },
          "attribution": {
            "type": "object",
            "properties": {
              "source": {
                "type": "string",
                "maxLength": 64
              },
              "context": {
                "type": "string",
                "maxLength": 96
              },
              "entryPoint": {
                "type": "string",
                "maxLength": 96
              },
              "nudgeType": {
                "type": "string",
                "maxLength": 96
              },
              "attributionId": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              }
            }
          }
        },
        "required": [
          "plan"
        ]
      },
      "CreateTopUpCheckoutSessionDto": {
        "type": "object",
        "properties": {
          "credits": {
            "type": "integer",
            "minimum": 500,
            "maximum": 50000
          },
          "successUrl": {
            "type": "string",
            "format": "uri"
          },
          "cancelUrl": {
            "type": "string",
            "format": "uri"
          },
          "attribution": {
            "type": "object",
            "properties": {
              "source": {
                "type": "string",
                "maxLength": 64
              },
              "context": {
                "type": "string",
                "maxLength": 96
              },
              "entryPoint": {
                "type": "string",
                "maxLength": 96
              },
              "nudgeType": {
                "type": "string",
                "maxLength": 96
              },
              "attributionId": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              }
            }
          }
        },
        "required": [
          "credits"
        ]
      },
      "ChargeTopUpDto": {
        "type": "object",
        "properties": {
          "credits": {
            "type": "integer",
            "minimum": 500,
            "maximum": 50000
          },
          "attribution": {
            "type": "object",
            "properties": {
              "source": {
                "type": "string",
                "maxLength": 64
              },
              "context": {
                "type": "string",
                "maxLength": 96
              },
              "entryPoint": {
                "type": "string",
                "maxLength": 96
              },
              "nudgeType": {
                "type": "string",
                "maxLength": 96
              },
              "attributionId": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              }
            }
          }
        },
        "required": [
          "credits"
        ]
      },
      "ChargeTopUpResponseDto": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "succeeded",
              "requires_action",
              "processing",
              "no_payment_method"
            ]
          },
          "clientSecret": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "status",
          "clientSecret"
        ]
      },
      "ChangeV3PlanDto": {
        "type": "object",
        "properties": {
          "plan": {
            "type": "string",
            "enum": [
              "starter",
              "pro",
              "team"
            ]
          },
          "attribution": {
            "type": "object",
            "properties": {
              "source": {
                "type": "string",
                "maxLength": 64
              },
              "context": {
                "type": "string",
                "maxLength": 96
              },
              "entryPoint": {
                "type": "string",
                "maxLength": 96
              },
              "nudgeType": {
                "type": "string",
                "maxLength": 96
              },
              "attributionId": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              }
            }
          }
        },
        "required": [
          "plan"
        ]
      },
      "ChangeV3PlanResponseDto": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "upgraded",
              "downgrade_scheduled",
              "declined"
            ]
          },
          "effectiveAt": {
            "type": "string",
            "nullable": true
          },
          "verificationRequired": {
            "type": "boolean"
          },
          "clientSecret": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "status",
          "effectiveAt",
          "verificationRequired",
          "clientSecret"
        ]
      },
      "AutoTopUpSettingsResponseDto": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "thresholdCredits": {
            "type": "number",
            "nullable": true
          },
          "amountCredits": {
            "type": "number",
            "nullable": true
          }
        },
        "required": [
          "enabled",
          "thresholdCredits",
          "amountCredits"
        ]
      },
      "UpdateAutoTopUpSettingsDto": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "thresholdCredits": {
            "type": "integer",
            "minimum": 0,
            "maximum": 50000
          },
          "amountCredits": {
            "type": "integer",
            "minimum": 500,
            "maximum": 50000
          },
          "attribution": {
            "type": "object",
            "properties": {
              "source": {
                "type": "string",
                "maxLength": 64
              },
              "context": {
                "type": "string",
                "maxLength": 96
              },
              "entryPoint": {
                "type": "string",
                "maxLength": 96
              },
              "nudgeType": {
                "type": "string",
                "maxLength": 96
              },
              "attributionId": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              }
            }
          }
        },
        "required": [
          "enabled"
        ]
      },
      "UploadUrlResponseDto": {
        "type": "object",
        "properties": {
          "uploadUrl": {
            "type": "string"
          },
          "uploadToken": {
            "type": "string"
          },
          "uploadKey": {
            "type": "string"
          },
          "publicUrl": {
            "type": "string"
          }
        },
        "required": [
          "uploadUrl"
        ]
      },
      "InitiateMultipartUploadDto": {
        "type": "object",
        "properties": {
          "parts": {
            "type": "integer",
            "minimum": 1,
            "maximum": 9007199254740991
          },
          "contentLength": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "fileName": {
            "type": "string"
          },
          "isPublic": {
            "type": "boolean"
          }
        },
        "required": [
          "parts",
          "contentLength",
          "fileName",
          "isPublic"
        ]
      },
      "MultipartUploadInitResponseDto": {
        "type": "object",
        "properties": {
          "uploadId": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "presignedUrls": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "uploadId",
          "key"
        ]
      },
      "CompleteMultipartUploadDto": {
        "type": "object",
        "properties": {
          "uploadId": {
            "type": "string"
          },
          "fileName": {
            "type": "string"
          },
          "parts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "ETag": {
                  "type": "string"
                },
                "PartNumber": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "ETag",
                "PartNumber"
              ]
            }
          },
          "isPublic": {
            "type": "boolean"
          }
        },
        "required": [
          "uploadId",
          "fileName",
          "parts",
          "isPublic"
        ]
      },
      "MultipartCompleteResponseDto": {
        "type": "object",
        "properties": {
          "publicUrl": {
            "type": "string"
          }
        }
      },
      "AbortMultipartUploadDto": {
        "type": "object",
        "properties": {
          "uploadId": {
            "type": "string"
          },
          "isPublic": {
            "type": "boolean"
          },
          "fileName": {
            "type": "string"
          }
        },
        "required": [
          "uploadId",
          "isPublic",
          "fileName"
        ]
      },
      "InitiateResumableUploadDto": {
        "type": "object",
        "properties": {
          "fileName": {
            "type": "string"
          },
          "isPublic": {
            "type": "boolean"
          }
        },
        "required": [
          "fileName",
          "isPublic"
        ]
      },
      "ResumableUploadInitResponseDto": {
        "type": "object",
        "properties": {
          "uploadId": {
            "type": "string"
          },
          "key": {
            "type": "string"
          }
        },
        "required": [
          "uploadId",
          "key"
        ]
      },
      "PresignedUrlPartDto": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "partNumber": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "url",
          "partNumber"
        ]
      },
      "GuestUploadUrlResponseDto": {
        "type": "object",
        "properties": {
          "uploadUrl": {
            "type": "string"
          },
          "publicUrl": {
            "type": "string"
          }
        },
        "required": [
          "uploadUrl",
          "publicUrl"
        ]
      },
      "CreateBatchDto": {
        "type": "object",
        "properties": {
          "input": {
            "type": "string",
            "description": "JSONL file for batch generation. Send it in multipart field `input` (or `file` alias). Each non-empty line must contain `request_id`, `endpoint` exactly `\"/v2/generate\"`, and `payload` as a CreateGenerationDto object. Batch creation requires the Scale plan, at least 20 records, at most 500 records by default, no duplicate request_id values, and a file size no larger than 5 MB.",
            "format": "binary"
          },
          "webhook_url": {
            "type": "string",
            "description": "Webhook server URL to notify when the batch reaches a terminal status. Sync sends a POST request with a batch payload and a Sync-Signature header (`t=<unix>,v1=<hmac_sha256>`) signed with the organization webhook secret.",
            "example": "https://example.com/webhook"
          },
          "dry_run": {
            "type": "boolean",
            "default": false,
            "description": "When true, validates the JSONL file and returns `{ \"status\": \"VALIDATED\" }` without creating a batch."
          }
        },
        "required": [
          "input"
        ]
      },
      "BatchConcurrencyLimitErrorDto": {
        "type": "object",
        "properties": {
          "statusCode": {
            "enum": [
              429
            ],
            "type": "number",
            "example": 429
          },
          "error": {
            "type": "string",
            "enum": [
              "Too Many Requests"
            ],
            "example": "Too Many Requests"
          },
          "errorCode": {
            "type": "string",
            "enum": [
              "concurrency_limit_reached"
            ],
            "example": "concurrency_limit_reached",
            "description": "Stable machine-readable error code."
          },
          "message": {
            "type": "string",
            "description": "Human-readable explanation of the active batch limit.",
            "example": "Batch concurrency limit reached. You have 3 active batches and your plan allows 3. Please wait for existing batches to complete or upgrade your plan for higher limits."
          },
          "activeBatches": {
            "type": "number",
            "description": "Number of active batches in the organization.",
            "example": 3,
            "minimum": 0
          },
          "concurrencyLimit": {
            "type": "number",
            "description": "Maximum number of concurrent batches allowed by the plan.",
            "example": 3,
            "minimum": 1
          },
          "retryAfterSeconds": {
            "type": "number",
            "description": "Suggested seconds to wait before retrying. Also sent in the Retry-After response header.",
            "example": 20,
            "minimum": 1
          }
        },
        "required": [
          "statusCode",
          "error",
          "errorCode",
          "message",
          "activeBatches",
          "concurrencyLimit",
          "retryAfterSeconds"
        ]
      },
      "CreateDubbingDto": {
        "type": "object",
        "properties": {
          "sourceAudioUrl": {
            "type": "string",
            "format": "uri"
          },
          "providerName": {
            "type": "string",
            "default": "elevenlabs",
            "enum": [
              "elevenlabs"
            ]
          },
          "targetLang": {
            "type": "string",
            "enum": [
              "en",
              "gu",
              "no",
              "sl",
              "pa",
              "ta",
              "az",
              "gl",
              "is",
              "sw",
              "my",
              "fi",
              "el",
              "he",
              "lt",
              "ms",
              "sv",
              "fr",
              "ca",
              "hr",
              "lv",
              "ro",
              "sd",
              "th",
              "tn",
              "pl",
              "ceb",
              "da",
              "hu",
              "mr",
              "tl",
              "ug",
              "wo",
              "zu",
              "zh",
              "hi",
              "as",
              "ha",
              "kk",
              "ki",
              "rn",
              "ky",
              "st",
              "te",
              "war",
              "ak",
              "be",
              "cs",
              "ka",
              "mn",
              "bo",
              "ts",
              "ar",
              "ss",
              "nl",
              "tr",
              "af",
              "bs",
              "et",
              "rw",
              "ne",
              "ko",
              "it",
              "es",
              "sq",
              "eu",
              "kn",
              "sk",
              "su",
              "ve",
              "pt",
              "am",
              "hy",
              "doi",
              "de",
              "jv",
              "mk",
              "ja",
              "vi",
              "cy",
              "nso",
              "uk",
              "bg",
              "id",
              "lg",
              "yo",
              "ml",
              "fa",
              "tg",
              "ur",
              "uz",
              "ru",
              "fil"
            ]
          },
          "sourceLang": {
            "type": "string",
            "default": "auto",
            "enum": [
              "auto",
              "en",
              "gu",
              "no",
              "sl",
              "pa",
              "ta",
              "az",
              "gl",
              "is",
              "sw",
              "my",
              "fi",
              "el",
              "he",
              "lt",
              "ms",
              "sv",
              "fr",
              "ca",
              "hr",
              "lv",
              "ro",
              "sd",
              "th",
              "tn",
              "pl",
              "ceb",
              "da",
              "hu",
              "mr",
              "tl",
              "ug",
              "wo",
              "zu",
              "zh",
              "hi",
              "as",
              "ha",
              "kk",
              "ki",
              "rn",
              "ky",
              "st",
              "te",
              "war",
              "ak",
              "be",
              "cs",
              "ka",
              "mn",
              "bo",
              "ts",
              "ar",
              "ss",
              "nl",
              "tr",
              "af",
              "bs",
              "et",
              "rw",
              "ne",
              "ko",
              "it",
              "es",
              "sq",
              "eu",
              "kn",
              "sk",
              "su",
              "ve",
              "pt",
              "am",
              "hy",
              "doi",
              "de",
              "jv",
              "mk",
              "ja",
              "vi",
              "cy",
              "nso",
              "uk",
              "bg",
              "id",
              "lg",
              "yo",
              "ml",
              "fa",
              "tg",
              "ur",
              "uz",
              "ru",
              "fil"
            ]
          },
          "numSpeakers": {
            "type": "integer",
            "deprecated": true,
            "description": "Deprecated and ignored. Dubbing v2 detects speakers automatically.",
            "minimum": 0,
            "maximum": 10
          },
          "projectId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "sourceAudioUrl",
          "targetLang"
        ]
      },
      "DubbingGenerationDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "status": {
            "type": "string",
            "enum": [
              "PENDING",
              "PROCESSING",
              "COMPLETING",
              "COMPLETED",
              "FAILED"
            ]
          },
          "sourceAudioUrl": {
            "type": "string"
          },
          "sourceLang": {
            "type": "string"
          },
          "targetLang": {
            "type": "string"
          },
          "outputMediaUrl": {
            "type": "string",
            "nullable": true
          },
          "outputDurationSec": {
            "type": "number",
            "nullable": true
          },
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "enum": [
                  "CREATE_FAILED",
                  "PROVIDER_FAILED",
                  "TIMEOUT",
                  "UPLOAD_FAILED",
                  "DOWNLOAD_FAILED",
                  "UNKNOWN"
                ]
              },
              "message": {
                "type": "string"
              }
            },
            "required": [
              "code",
              "message"
            ],
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "startedAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
            "nullable": true
          },
          "finishedAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
            "nullable": true
          }
        },
        "required": [
          "id",
          "status",
          "sourceAudioUrl",
          "sourceLang",
          "targetLang",
          "outputMediaUrl",
          "outputDurationSec",
          "error",
          "createdAt",
          "startedAt",
          "finishedAt"
        ]
      },
      "PlatformDetectionResponseDto": {
        "type": "object",
        "properties": {
          "platform": {
            "type": "string",
            "description": "Detected platform type"
          },
          "supported": {
            "type": "boolean",
            "description": "Whether the platform is supported"
          },
          "reason": {
            "type": "string",
            "description": "Reason if not supported"
          },
          "normalizedUrl": {
            "type": "string",
            "description": "Normalized URL"
          }
        },
        "required": [
          "platform",
          "supported",
          "normalizedUrl"
        ]
      },
      "PlatformMetadataResponseDto": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "Video title"
          },
          "author": {
            "type": "string",
            "description": "Video author"
          },
          "durationSeconds": {
            "type": "number",
            "description": "Duration in seconds"
          },
          "thumbnailUrl": {
            "type": "string",
            "nullable": true,
            "description": "Thumbnail URL"
          },
          "description": {
            "type": "string",
            "description": "Video description"
          },
          "platform": {
            "type": "string",
            "description": "Platform name"
          },
          "fileSizeBytes": {
            "type": "number",
            "description": "File size in bytes"
          },
          "availableQualities": {
            "description": "Available quality options",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "rawMetadata": {
            "type": "object",
            "description": "Raw metadata from platform"
          }
        },
        "required": [
          "title",
          "author",
          "durationSeconds",
          "thumbnailUrl",
          "platform",
          "fileSizeBytes",
          "availableQualities",
          "rawMetadata"
        ]
      },
      "PlatformMetadataFetchFailedErrorDto": {
        "type": "object",
        "properties": {
          "statusCode": {
            "enum": [
              422
            ],
            "type": "number",
            "example": 422
          },
          "errorCode": {
            "type": "string",
            "enum": [
              "platform_metadata_fetch_failed"
            ],
            "example": "platform_metadata_fetch_failed",
            "description": "Stable machine-readable error code."
          },
          "message": {
            "type": "string",
            "example": "We could not read metadata from this URL."
          },
          "suggestion": {
            "type": "string",
            "example": "Check that the URL is public and points to supported media, then try again."
          }
        },
        "required": [
          "statusCode",
          "errorCode",
          "message",
          "suggestion"
        ]
      },
      "PlatformMetadataUnavailableErrorDto": {
        "type": "object",
        "properties": {
          "statusCode": {
            "enum": [
              503
            ],
            "type": "number",
            "example": 503
          },
          "errorCode": {
            "type": "string",
            "enum": [
              "platform_metadata_unavailable"
            ],
            "example": "platform_metadata_unavailable",
            "description": "Stable machine-readable error code."
          },
          "message": {
            "type": "string",
            "example": "Platform metadata is temporarily unavailable."
          },
          "suggestion": {
            "type": "string",
            "example": "Retry the request with backoff. If it keeps failing, contact support."
          }
        },
        "required": [
          "statusCode",
          "errorCode",
          "message",
          "suggestion"
        ]
      },
      "PlatformMetadataTimeoutErrorDto": {
        "type": "object",
        "properties": {
          "statusCode": {
            "enum": [
              504
            ],
            "type": "number",
            "example": 504
          },
          "errorCode": {
            "type": "string",
            "enum": [
              "platform_metadata_timeout"
            ],
            "example": "platform_metadata_timeout",
            "description": "Stable machine-readable error code."
          },
          "message": {
            "type": "string",
            "example": "Platform metadata took too long to respond."
          },
          "suggestion": {
            "type": "string",
            "example": "Retry the request with backoff. If the URL stays slow, verify that it is public and reachable."
          }
        },
        "required": [
          "statusCode",
          "errorCode",
          "message",
          "suggestion"
        ]
      },
      "StartImportBodyDto": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "format": "uri"
          },
          "projectId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "options": {
            "type": "object",
            "properties": {
              "quality": {
                "type": "string"
              },
              "extractAudio": {
                "type": "boolean"
              },
              "generateThumbnail": {
                "type": "boolean"
              }
            }
          }
        },
        "required": [
          "url",
          "projectId"
        ]
      },
      "StartImportResponseDto": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "string",
            "description": "Import job ID"
          },
          "status": {
            "type": "string",
            "description": "Import job status",
            "enum": [
              "queued"
            ]
          }
        },
        "required": [
          "jobId",
          "status"
        ]
      },
      "PlatformImportDispatchUnavailableErrorDto": {
        "type": "object",
        "properties": {
          "statusCode": {
            "enum": [
              503
            ],
            "type": "number",
            "example": 503
          },
          "errorCode": {
            "type": "string",
            "enum": [
              "platform_import_dispatch_unavailable"
            ],
            "example": "platform_import_dispatch_unavailable",
            "description": "Stable machine-readable error code."
          },
          "message": {
            "type": "string",
            "example": "Media import dispatch is temporarily unavailable."
          },
          "suggestion": {
            "type": "string",
            "example": "Retry the request with backoff."
          },
          "retryAfterSeconds": {
            "type": "number",
            "example": 2
          },
          "jobId": {
            "type": "string",
            "description": "Import job whose dispatch failed."
          },
          "dispatchAccepted": {
            "type": "boolean",
            "enum": [
              false
            ],
            "example": false
          },
          "failurePersistenceConfirmed": {
            "type": "boolean",
            "description": "Whether the failed state was durably stored before this response."
          }
        },
        "required": [
          "statusCode",
          "errorCode",
          "message",
          "suggestion",
          "retryAfterSeconds",
          "jobId",
          "dispatchAccepted",
          "failurePersistenceConfirmed"
        ]
      },
      "PlatformImportDispatchUnknownErrorDto": {
        "type": "object",
        "properties": {
          "statusCode": {
            "enum": [
              504
            ],
            "type": "number",
            "example": 504
          },
          "errorCode": {
            "type": "string",
            "enum": [
              "platform_import_dispatch_outcome_unknown"
            ],
            "example": "platform_import_dispatch_outcome_unknown",
            "description": "Stable machine-readable error code."
          },
          "message": {
            "type": "string",
            "example": "Media import dispatch acceptance could not be confirmed."
          },
          "suggestion": {
            "type": "string",
            "example": "Poll this import job using jobId. You can cancel the queued job if it does not start."
          },
          "jobId": {
            "type": "string",
            "description": "Import job to poll or cancel."
          },
          "dispatchAccepted": {
            "type": "string",
            "enum": [
              "unknown"
            ],
            "example": "unknown",
            "description": "Unknown because the Event request ended before Lambda acceptance could be confirmed."
          }
        },
        "required": [
          "statusCode",
          "errorCode",
          "message",
          "suggestion",
          "jobId",
          "dispatchAccepted"
        ]
      },
      "ImportJobStatusResponseDto": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "string",
            "description": "Import job ID"
          },
          "status": {
            "type": "string",
            "description": "Import status",
            "enum": [
              "queued",
              "downloading",
              "processing",
              "completed",
              "failed"
            ]
          },
          "progress": {
            "type": "number",
            "description": "Progress percentage (0-100)"
          },
          "assetId": {
            "type": "string",
            "description": "Asset ID when completed"
          },
          "errorMessage": {
            "type": "string",
            "description": "Error message when failed"
          },
          "startedAt": {
            "type": "string",
            "description": "When the job started"
          },
          "updatedAt": {
            "type": "string",
            "description": "When the job was last updated"
          }
        },
        "required": [
          "jobId",
          "status",
          "progress",
          "startedAt",
          "updatedAt"
        ]
      },
      "ImportJobProjectDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Project ID"
          },
          "name": {
            "type": "string",
            "nullable": true,
            "description": "Project name"
          }
        },
        "required": [
          "id"
        ]
      },
      "ImportJobItemDto": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "string",
            "description": "Import job ID"
          },
          "platform": {
            "type": "string",
            "description": "Platform name"
          },
          "sourceUrl": {
            "type": "string",
            "description": "Source URL"
          },
          "status": {
            "type": "string",
            "description": "Import status"
          },
          "progress": {
            "type": "number",
            "description": "Progress percentage"
          },
          "assetId": {
            "type": "string",
            "nullable": true,
            "description": "Asset ID when completed"
          },
          "errorMessage": {
            "type": "string",
            "nullable": true,
            "description": "Error message when failed"
          },
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp"
          },
          "updatedAt": {
            "type": "string",
            "description": "Update timestamp"
          },
          "project": {
            "nullable": true,
            "description": "Associated project",
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/ImportJobProjectDto"
              }
            ]
          }
        },
        "required": [
          "jobId",
          "platform",
          "sourceUrl",
          "status",
          "progress",
          "createdAt",
          "updatedAt"
        ]
      },
      "ListImportJobsResponseDto": {
        "type": "object",
        "properties": {
          "jobs": {
            "description": "List of import jobs",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImportJobItemDto"
            }
          },
          "total": {
            "type": "number",
            "description": "Total count of jobs"
          }
        },
        "required": [
          "jobs",
          "total"
        ]
      },
      "CancelImportBodyDto": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "jobId"
        ]
      },
      "CancelImportResponseDto": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether cancellation was successful"
          }
        },
        "required": [
          "success"
        ]
      },
      "RetryImportBodyDto": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "jobId"
        ]
      },
      "RetryImportResponseDto": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether retry was successful"
          },
          "newJobId": {
            "type": "string",
            "description": "New job ID"
          }
        },
        "required": [
          "success",
          "newJobId"
        ]
      },
      "PaginatedProjectsResponseDto__schema0": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaginatedProjectsResponseDto__schema0"
            }
          },
          {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/PaginatedProjectsResponseDto__schema0"
            }
          }
        ],
        "nullable": true
      },
      "PaginatedProjectsResponseDto": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "organizationId": {
                  "type": "string",
                  "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                },
                "userId": {
                  "type": "string",
                  "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
                  "nullable": true
                },
                "name": {
                  "type": "string",
                  "nullable": true
                },
                "description": {
                  "type": "string",
                  "nullable": true
                },
                "visibility": {
                  "type": "string",
                  "enum": [
                    "USER",
                    "ORGANIZATION"
                  ]
                },
                "deletedAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
                  "nullable": true
                },
                "mode": {
                  "type": "string",
                  "enum": [
                    "CREATOR",
                    "DEVELOPER"
                  ]
                },
                "defaultWorkflow": {
                  "type": "string",
                  "enum": [
                    "lipsync",
                    "translate_and_dub",
                    "change_appearance",
                    "image_to_video",
                    "edit_dialogue",
                    "assistant",
                    "timeline",
                    null
                  ],
                  "nullable": true
                },
                "generations": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                      },
                      "organizationId": {
                        "type": "string",
                        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                      },
                      "userId": {
                        "type": "string",
                        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
                        "nullable": true
                      },
                      "apiKeyId": {
                        "type": "string",
                        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
                        "nullable": true
                      },
                      "createdAt": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      },
                      "updatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      },
                      "startedAt": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
                        "nullable": true
                      },
                      "finishedAt": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
                        "nullable": true
                      },
                      "status": {
                        "type": "string",
                        "enum": [
                          "PENDING",
                          "PROCESSING",
                          "COMPLETED",
                          "FAILED",
                          "REJECTED"
                        ]
                      },
                      "model": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "description": {
                            "type": "string",
                            "nullable": true
                          },
                          "type": {
                            "type": "string"
                          },
                          "version": {
                            "type": "string"
                          },
                          "features": {
                            "default": [],
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "deprecatedAt": {
                            "type": "string",
                            "format": "date-time",
                            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
                            "nullable": true
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "description",
                          "type",
                          "version",
                          "deprecatedAt"
                        ]
                      },
                      "modelName": {
                        "type": "string"
                      },
                      "inputs": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "url": {
                              "type": "string",
                              "format": "uri"
                            },
                            "assetId": {
                              "type": "string",
                              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                            },
                            "type": {
                              "type": "string",
                              "enum": [
                                "video",
                                "image",
                                "audio",
                                "text"
                              ]
                            },
                            "refId": {
                              "type": "string"
                            },
                            "generatedBy": {
                              "type": "string",
                              "enum": [
                                "tts"
                              ]
                            },
                            "segments_secs": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "number"
                                }
                              }
                            },
                            "segments_frames": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "number"
                                }
                              }
                            },
                            "trim_secs": {
                              "type": "array",
                              "items": {
                                "type": "number"
                              }
                            },
                            "provider": {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "script": {
                                  "type": "string"
                                },
                                "voiceId": {
                                  "type": "string"
                                },
                                "stability": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                },
                                "similarityBoost": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                }
                              },
                              "required": [
                                "name",
                                "script",
                                "voiceId"
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        }
                      },
                      "webhookUrl": {
                        "type": "string",
                        "nullable": true
                      },
                      "thumbnailUrl": {
                        "type": "string",
                        "nullable": true
                      },
                      "frameCount": {
                        "type": "number",
                        "nullable": true
                      },
                      "options": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "anyOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "happy",
                                  "sad",
                                  "angry",
                                  "disgusted",
                                  "surprised",
                                  "neutral"
                                ]
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "prompt_image_uris": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "i2v_prompt": {
                            "type": "string"
                          },
                          "system_prompt": {
                            "type": "string"
                          },
                          "temperature": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1,
                            "nullable": true
                          },
                          "sync_mode": {
                            "type": "string",
                            "enum": [
                              "cut_off",
                              "bounce",
                              "loop",
                              "silence",
                              "remap"
                            ]
                          },
                          "model_mode": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "active_speaker_detection": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "auto_detect": {
                                    "default": false,
                                    "type": "boolean"
                                  },
                                  "use_v2": {
                                    "type": "boolean"
                                  },
                                  "v3": {
                                    "type": "boolean"
                                  },
                                  "frame_number": {
                                    "type": "number"
                                  },
                                  "coordinates": {
                                    "minItems": 2,
                                    "maxItems": 2,
                                    "type": "array",
                                    "items": {
                                      "type": "number"
                                    }
                                  },
                                  "bounding_boxes": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "number"
                                      },
                                      "nullable": true
                                    }
                                  },
                                  "bounding_boxes_url": {
                                    "type": "string"
                                  },
                                  "face_image": {
                                    "type": "string"
                                  }
                                }
                              },
                              {
                                "type": "boolean"
                              }
                            ]
                          },
                          "face_boxes_url": {
                            "type": "string"
                          },
                          "occlusion_detection_enabled": {
                            "type": "boolean"
                          },
                          "reasoning_enabled": {
                            "type": "boolean"
                          },
                          "refinement_enabled": {
                            "type": "boolean"
                          },
                          "blending_mode": {
                            "type": "string",
                            "enum": [
                              "default",
                              "advanced",
                              "disabled"
                            ]
                          },
                          "output_file_name": {
                            "type": "string"
                          },
                          "output_bucket_name": {
                            "type": "string"
                          },
                          "output_bucket_path": {
                            "type": "string"
                          },
                          "disable_blending": {
                            "type": "boolean"
                          },
                          "pad_percent": {
                            "type": "number"
                          },
                          "mask_uri": {
                            "type": "string"
                          },
                          "mask_inner_box": {
                            "type": "array",
                            "items": {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            },
                            "nullable": true
                          },
                          "audio_guidance_scale": {
                            "type": "number",
                            "nullable": true
                          },
                          "num_steps": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991,
                            "nullable": true
                          },
                          "use_retinaface": {
                            "type": "boolean"
                          },
                          "use_insightface": {
                            "type": "boolean"
                          },
                          "disable_scene_detection": {
                            "type": "boolean"
                          },
                          "extra_services_options": {
                            "type": "object",
                            "additionalProperties": {
                              "$ref": "#/components/schemas/PaginatedProjectsResponseDto__schema0"
                            }
                          },
                          "original_audio_url": {
                            "type": "string"
                          },
                          "occlusion_prompt": {
                            "type": "string"
                          },
                          "rotate": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 360
                          },
                          "active_speaker": {
                            "type": "boolean"
                          },
                          "speedup": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 4,
                            "nullable": true
                          },
                          "output_format": {
                            "type": "string",
                            "enum": [
                              "mp4",
                              "mov"
                            ]
                          },
                          "fps": {
                            "type": "number",
                            "nullable": true
                          },
                          "output_resolution": {
                            "minItems": 2,
                            "maxItems": 2,
                            "type": "array",
                            "items": {
                              "type": "number"
                            },
                            "nullable": true
                          },
                          "pads": {
                            "minItems": 4,
                            "maxItems": 4,
                            "type": "array",
                            "items": {
                              "type": "number",
                              "minimum": -8000,
                              "maximum": 8000
                            }
                          },
                          "gb": {
                            "type": "number",
                            "nullable": true
                          },
                          "mb": {
                            "type": "number",
                            "nullable": true
                          },
                          "quality": {
                            "type": "string",
                            "nullable": true
                          },
                          "img_size": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            },
                            "nullable": true
                          },
                          "pickle_mode": {
                            "type": "string",
                            "nullable": true
                          },
                          "cf_batch_size": {
                            "type": "number",
                            "nullable": true
                          },
                          "resize_factor": {
                            "type": "number",
                            "nullable": true
                          },
                          "expressiveness": {
                            "type": "number",
                            "nullable": true
                          },
                          "inp_batch_size": {
                            "type": "number",
                            "nullable": true
                          },
                          "fidelity_weight": {
                            "type": "number",
                            "nullable": true
                          },
                          "wav2lip_batch_size": {
                            "type": "number",
                            "nullable": true
                          },
                          "face_det_batch_size": {
                            "type": "number",
                            "nullable": true
                          }
                        }
                      },
                      "segments": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "startTime": {
                              "type": "number"
                            },
                            "endTime": {
                              "type": "number"
                            },
                            "startFrame": {
                              "type": "number"
                            },
                            "endFrame": {
                              "type": "number"
                            },
                            "audioInput": {
                              "type": "object",
                              "properties": {
                                "refId": {
                                  "type": "string"
                                },
                                "startTime": {
                                  "type": "number"
                                },
                                "endTime": {
                                  "type": "number"
                                }
                              },
                              "required": [
                                "refId"
                              ]
                            },
                            "optionsOverride": {
                              "type": "object",
                              "properties": {
                                "active_speaker_detection": {
                                  "type": "object",
                                  "properties": {
                                    "auto_detect": {
                                      "default": false,
                                      "type": "boolean"
                                    },
                                    "use_v2": {
                                      "type": "boolean"
                                    },
                                    "v3": {
                                      "type": "boolean"
                                    },
                                    "frame_number": {
                                      "type": "number"
                                    },
                                    "coordinates": {
                                      "minItems": 2,
                                      "maxItems": 2,
                                      "type": "array",
                                      "items": {
                                        "type": "number"
                                      }
                                    },
                                    "bounding_boxes": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "number"
                                        },
                                        "nullable": true
                                      }
                                    },
                                    "bounding_boxes_url": {
                                      "type": "string"
                                    },
                                    "face_image": {
                                      "type": "string"
                                    }
                                  }
                                },
                                "sync_mode": {
                                  "type": "string",
                                  "enum": [
                                    "cut_off",
                                    "bounce",
                                    "loop",
                                    "silence",
                                    "remap"
                                  ]
                                },
                                "occlusion_detection_enabled": {
                                  "type": "boolean"
                                },
                                "temperature": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                },
                                "disable_blending": {
                                  "type": "boolean"
                                },
                                "pad_percent": {
                                  "type": "number"
                                },
                                "mask_uri": {
                                  "type": "string"
                                },
                                "use_retinaface": {
                                  "type": "boolean"
                                },
                                "use_insightface": {
                                  "type": "boolean"
                                }
                              }
                            }
                          }
                        },
                        "nullable": true
                      },
                      "outputMediaUrl": {
                        "type": "string",
                        "nullable": true
                      },
                      "segmentOutputMediaUrl": {
                        "type": "string",
                        "nullable": true
                      },
                      "segmentOutputBucketPath": {
                        "type": "string",
                        "nullable": true
                      },
                      "creatorName": {
                        "type": "string",
                        "nullable": true
                      },
                      "outputMediaLength": {
                        "type": "number",
                        "nullable": true
                      },
                      "potentialError": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "status": {
                                "type": "number"
                              },
                              "message": {
                                "type": "string"
                              },
                              "errorCode": {
                                "type": "string"
                              },
                              "docsLink": {
                                "type": "string",
                                "format": "uri"
                              }
                            },
                            "required": [
                              "message"
                            ]
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "nullable": true
                      },
                      "isPublic": {
                        "type": "boolean",
                        "nullable": true
                      },
                      "deletedAt": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
                        "nullable": true
                      },
                      "projectId": {
                        "type": "string",
                        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
                        "nullable": true
                      },
                      "outputFileName": {
                        "type": "string",
                        "nullable": true
                      },
                      "outputExtension": {
                        "type": "string",
                        "nullable": true
                      }
                    },
                    "required": [
                      "id",
                      "organizationId",
                      "userId",
                      "apiKeyId",
                      "createdAt",
                      "updatedAt",
                      "startedAt",
                      "finishedAt",
                      "status",
                      "model",
                      "modelName",
                      "inputs",
                      "webhookUrl",
                      "thumbnailUrl",
                      "frameCount",
                      "options",
                      "outputMediaUrl",
                      "segmentOutputMediaUrl",
                      "segmentOutputBucketPath",
                      "outputMediaLength",
                      "potentialError",
                      "isPublic",
                      "deletedAt",
                      "projectId"
                    ]
                  }
                },
                "generationPresets": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                      },
                      "name": {
                        "type": "string"
                      },
                      "description": {
                        "type": "string",
                        "nullable": true
                      },
                      "model": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "description": {
                            "type": "string",
                            "nullable": true
                          },
                          "type": {
                            "type": "string"
                          },
                          "version": {
                            "type": "string"
                          },
                          "features": {
                            "default": [],
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "deprecatedAt": {
                            "type": "string",
                            "format": "date-time",
                            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
                            "nullable": true
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "description",
                          "type",
                          "version",
                          "deprecatedAt"
                        ]
                      },
                      "modelName": {
                        "type": "string"
                      },
                      "options": {
                        "type": "object",
                        "properties": {
                          "prompt": {
                            "anyOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "happy",
                                  "sad",
                                  "angry",
                                  "disgusted",
                                  "surprised",
                                  "neutral"
                                ]
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "prompt_image_uris": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "i2v_prompt": {
                            "type": "string"
                          },
                          "system_prompt": {
                            "type": "string"
                          },
                          "temperature": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1,
                            "nullable": true
                          },
                          "sync_mode": {
                            "type": "string",
                            "enum": [
                              "cut_off",
                              "bounce",
                              "loop",
                              "silence",
                              "remap"
                            ]
                          },
                          "model_mode": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "string"
                              }
                            ]
                          },
                          "active_speaker_detection": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "auto_detect": {
                                    "default": false,
                                    "type": "boolean"
                                  },
                                  "use_v2": {
                                    "type": "boolean"
                                  },
                                  "v3": {
                                    "type": "boolean"
                                  },
                                  "frame_number": {
                                    "type": "number"
                                  },
                                  "coordinates": {
                                    "minItems": 2,
                                    "maxItems": 2,
                                    "type": "array",
                                    "items": {
                                      "type": "number"
                                    }
                                  },
                                  "bounding_boxes": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "number"
                                      },
                                      "nullable": true
                                    }
                                  },
                                  "bounding_boxes_url": {
                                    "type": "string"
                                  },
                                  "face_image": {
                                    "type": "string"
                                  }
                                }
                              },
                              {
                                "type": "boolean"
                              }
                            ]
                          },
                          "face_boxes_url": {
                            "type": "string"
                          },
                          "occlusion_detection_enabled": {
                            "type": "boolean"
                          },
                          "reasoning_enabled": {
                            "type": "boolean"
                          },
                          "refinement_enabled": {
                            "type": "boolean"
                          },
                          "blending_mode": {
                            "type": "string",
                            "enum": [
                              "default",
                              "advanced",
                              "disabled"
                            ]
                          },
                          "output_file_name": {
                            "type": "string"
                          },
                          "output_bucket_name": {
                            "type": "string"
                          },
                          "output_bucket_path": {
                            "type": "string"
                          },
                          "disable_blending": {
                            "type": "boolean"
                          },
                          "pad_percent": {
                            "type": "number"
                          },
                          "mask_uri": {
                            "type": "string"
                          },
                          "mask_inner_box": {
                            "type": "array",
                            "items": {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            },
                            "nullable": true
                          },
                          "audio_guidance_scale": {
                            "type": "number",
                            "nullable": true
                          },
                          "num_steps": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991,
                            "nullable": true
                          },
                          "use_retinaface": {
                            "type": "boolean"
                          },
                          "use_insightface": {
                            "type": "boolean"
                          },
                          "disable_scene_detection": {
                            "type": "boolean"
                          },
                          "extra_services_options": {
                            "type": "object",
                            "additionalProperties": {
                              "$ref": "#/components/schemas/PaginatedProjectsResponseDto__schema0"
                            }
                          },
                          "original_audio_url": {
                            "type": "string"
                          },
                          "occlusion_prompt": {
                            "type": "string"
                          },
                          "rotate": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 360
                          },
                          "active_speaker": {
                            "type": "boolean"
                          },
                          "speedup": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 4,
                            "nullable": true
                          },
                          "output_format": {
                            "type": "string",
                            "enum": [
                              "mp4",
                              "mov"
                            ]
                          },
                          "fps": {
                            "type": "number",
                            "nullable": true
                          },
                          "output_resolution": {
                            "minItems": 2,
                            "maxItems": 2,
                            "type": "array",
                            "items": {
                              "type": "number"
                            },
                            "nullable": true
                          },
                          "pads": {
                            "minItems": 4,
                            "maxItems": 4,
                            "type": "array",
                            "items": {
                              "type": "number",
                              "minimum": -8000,
                              "maximum": 8000
                            }
                          },
                          "gb": {
                            "type": "number",
                            "nullable": true
                          },
                          "mb": {
                            "type": "number",
                            "nullable": true
                          },
                          "quality": {
                            "type": "string",
                            "nullable": true
                          },
                          "img_size": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            },
                            "nullable": true
                          },
                          "pickle_mode": {
                            "type": "string",
                            "nullable": true
                          },
                          "cf_batch_size": {
                            "type": "number",
                            "nullable": true
                          },
                          "resize_factor": {
                            "type": "number",
                            "nullable": true
                          },
                          "expressiveness": {
                            "type": "number",
                            "nullable": true
                          },
                          "inp_batch_size": {
                            "type": "number",
                            "nullable": true
                          },
                          "fidelity_weight": {
                            "type": "number",
                            "nullable": true
                          },
                          "wav2lip_batch_size": {
                            "type": "number",
                            "nullable": true
                          },
                          "face_det_batch_size": {
                            "type": "number",
                            "nullable": true
                          }
                        }
                      }
                    },
                    "required": [
                      "id",
                      "name",
                      "description",
                      "model",
                      "modelName",
                      "options"
                    ]
                  }
                },
                "assets": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                      },
                      "projectId": {
                        "type": "string",
                        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                      },
                      "assetId": {
                        "type": "string",
                        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                      },
                      "asset": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                          },
                          "createdAt": {
                            "type": "string",
                            "format": "date-time",
                            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                          },
                          "updatedAt": {
                            "type": "string",
                            "format": "date-time",
                            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                          },
                          "deletedAt": {
                            "type": "string",
                            "format": "date-time",
                            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
                            "nullable": true
                          },
                          "name": {
                            "type": "string",
                            "nullable": true
                          },
                          "url": {
                            "type": "string",
                            "nullable": true
                          },
                          "size": {
                            "type": "number",
                            "nullable": true
                          },
                          "format": {
                            "type": "string",
                            "nullable": true
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "AUDIO",
                              "VIDEO",
                              "IMAGE"
                            ]
                          },
                          "inputType": {
                            "type": "string",
                            "enum": [
                              "UPLOAD",
                              "URL",
                              "RECORD",
                              "TTS",
                              "EXTRACT",
                              "DUB",
                              "DUB_SOURCE",
                              "PLATFORM_IMPORT",
                              "PLUGIN_PREMIERE_FILE",
                              "PLUGIN_PREMIERE_TIMELINE_SELECTION",
                              "PLUGIN_RESOLVE_FILE",
                              "PLUGIN_RESOLVE_TIMELINE_SELECTION",
                              null
                            ],
                            "nullable": true
                          },
                          "durationSeconds": {
                            "type": "number",
                            "nullable": true
                          },
                          "thumbnailUrl": {
                            "type": "string",
                            "nullable": true
                          },
                          "visibility": {
                            "type": "string",
                            "enum": [
                              "USER",
                              "ORGANIZATION"
                            ]
                          },
                          "userId": {
                            "type": "string",
                            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
                            "nullable": true
                          },
                          "apiKeyId": {
                            "type": "string",
                            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
                            "nullable": true
                          },
                          "organizationId": {
                            "type": "string",
                            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                          },
                          "width": {
                            "type": "number",
                            "nullable": true
                          },
                          "height": {
                            "type": "number",
                            "nullable": true
                          },
                          "proxyPath": {
                            "type": "string",
                            "nullable": true
                          },
                          "projectId": {
                            "type": "string",
                            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
                            "nullable": true
                          }
                        },
                        "required": [
                          "id",
                          "createdAt",
                          "updatedAt",
                          "deletedAt",
                          "name",
                          "url",
                          "size",
                          "format",
                          "type",
                          "inputType",
                          "durationSeconds",
                          "thumbnailUrl",
                          "visibility",
                          "userId",
                          "apiKeyId",
                          "organizationId",
                          "width",
                          "height"
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "projectId",
                      "assetId",
                      "asset"
                    ]
                  }
                },
                "generationsCount": {
                  "type": "number"
                },
                "completedGenerationsCount": {
                  "type": "number"
                },
                "lastGenerationSource": {
                  "type": "string",
                  "nullable": true
                },
                "latestAssetThumbnailUrl": {
                  "type": "string",
                  "format": "uri",
                  "description": "Preview for the latest uploaded visual asset: the thumbnail for videos, the image itself for images.",
                  "nullable": true
                },
                "latestAssetAttachedAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
                  "description": "When the latest visual draft asset was first attached to the project, so clients can rank it against the latest generation by recency.",
                  "nullable": true
                }
              },
              "required": [
                "id",
                "createdAt",
                "updatedAt",
                "organizationId",
                "userId",
                "name",
                "description",
                "visibility",
                "deletedAt",
                "mode",
                "generations",
                "generationPresets",
                "assets",
                "generationsCount",
                "completedGenerationsCount",
                "lastGenerationSource",
                "latestAssetThumbnailUrl",
                "latestAssetAttachedAt"
              ]
            }
          },
          "nextCursor": {
            "type": "string"
          }
        },
        "required": [
          "items"
        ]
      },
      "CreateProjectDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Optional client-supplied project id (UUID) for idempotent creation. Re-sending the same id returns the existing project instead of creating a duplicate; the other request fields are ignored on such a replay. If the id is already used by a different user or organization, or by a deleted project, the request fails with 409.",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "name": {
            "type": "string",
            "minLength": 1
          },
          "description": {
            "type": "string"
          },
          "visibility": {
            "type": "string",
            "description": "Who can see the project. Defaults to USER (visible only to the owner).",
            "enum": [
              "USER",
              "ORGANIZATION"
            ]
          },
          "mode": {
            "type": "string",
            "description": "Project mode. Defaults to CREATOR.",
            "enum": [
              "CREATOR",
              "DEVELOPER"
            ]
          },
          "defaultWorkflow": {
            "type": "string",
            "description": "Default top-level creator workflow for this project.",
            "enum": [
              "lipsync",
              "translate_and_dub",
              "change_appearance",
              "image_to_video",
              "edit_dialogue",
              "assistant",
              "timeline"
            ]
          }
        },
        "required": [
          "name"
        ]
      },
      "ProjectDto__schema0": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectDto__schema0"
            }
          },
          {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/ProjectDto__schema0"
            }
          }
        ],
        "nullable": true
      },
      "ProjectDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "organizationId": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
          },
          "userId": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "visibility": {
            "type": "string",
            "enum": [
              "USER",
              "ORGANIZATION"
            ]
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
            "nullable": true
          },
          "mode": {
            "type": "string",
            "enum": [
              "CREATOR",
              "DEVELOPER"
            ]
          },
          "defaultWorkflow": {
            "type": "string",
            "enum": [
              "lipsync",
              "translate_and_dub",
              "change_appearance",
              "image_to_video",
              "edit_dialogue",
              "assistant",
              "timeline",
              null
            ],
            "nullable": true
          },
          "generations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                },
                "organizationId": {
                  "type": "string",
                  "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                },
                "userId": {
                  "type": "string",
                  "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
                  "nullable": true
                },
                "apiKeyId": {
                  "type": "string",
                  "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
                  "nullable": true
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "startedAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
                  "nullable": true
                },
                "finishedAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
                  "nullable": true
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "PENDING",
                    "PROCESSING",
                    "COMPLETED",
                    "FAILED",
                    "REJECTED"
                  ]
                },
                "model": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string",
                      "nullable": true
                    },
                    "type": {
                      "type": "string"
                    },
                    "version": {
                      "type": "string"
                    },
                    "features": {
                      "default": [],
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "deprecatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
                      "nullable": true
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "description",
                    "type",
                    "version",
                    "deprecatedAt"
                  ]
                },
                "modelName": {
                  "type": "string"
                },
                "inputs": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "url": {
                        "type": "string",
                        "format": "uri"
                      },
                      "assetId": {
                        "type": "string",
                        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "video",
                          "image",
                          "audio",
                          "text"
                        ]
                      },
                      "refId": {
                        "type": "string"
                      },
                      "generatedBy": {
                        "type": "string",
                        "enum": [
                          "tts"
                        ]
                      },
                      "segments_secs": {
                        "type": "array",
                        "items": {
                          "type": "array",
                          "items": {
                            "type": "number"
                          }
                        }
                      },
                      "segments_frames": {
                        "type": "array",
                        "items": {
                          "type": "array",
                          "items": {
                            "type": "number"
                          }
                        }
                      },
                      "trim_secs": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        }
                      },
                      "provider": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "script": {
                            "type": "string"
                          },
                          "voiceId": {
                            "type": "string"
                          },
                          "stability": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1
                          },
                          "similarityBoost": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1
                          }
                        },
                        "required": [
                          "name",
                          "script",
                          "voiceId"
                        ]
                      }
                    },
                    "required": [
                      "type"
                    ]
                  }
                },
                "webhookUrl": {
                  "type": "string",
                  "nullable": true
                },
                "thumbnailUrl": {
                  "type": "string",
                  "nullable": true
                },
                "frameCount": {
                  "type": "number",
                  "nullable": true
                },
                "options": {
                  "type": "object",
                  "properties": {
                    "prompt": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "happy",
                            "sad",
                            "angry",
                            "disgusted",
                            "surprised",
                            "neutral"
                          ]
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    "prompt_image_uris": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "i2v_prompt": {
                      "type": "string"
                    },
                    "system_prompt": {
                      "type": "string"
                    },
                    "temperature": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1,
                      "nullable": true
                    },
                    "sync_mode": {
                      "type": "string",
                      "enum": [
                        "cut_off",
                        "bounce",
                        "loop",
                        "silence",
                        "remap"
                      ]
                    },
                    "model_mode": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    "active_speaker_detection": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "auto_detect": {
                              "default": false,
                              "type": "boolean"
                            },
                            "use_v2": {
                              "type": "boolean"
                            },
                            "v3": {
                              "type": "boolean"
                            },
                            "frame_number": {
                              "type": "number"
                            },
                            "coordinates": {
                              "minItems": 2,
                              "maxItems": 2,
                              "type": "array",
                              "items": {
                                "type": "number"
                              }
                            },
                            "bounding_boxes": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "number"
                                },
                                "nullable": true
                              }
                            },
                            "bounding_boxes_url": {
                              "type": "string"
                            },
                            "face_image": {
                              "type": "string"
                            }
                          }
                        },
                        {
                          "type": "boolean"
                        }
                      ]
                    },
                    "face_boxes_url": {
                      "type": "string"
                    },
                    "occlusion_detection_enabled": {
                      "type": "boolean"
                    },
                    "reasoning_enabled": {
                      "type": "boolean"
                    },
                    "refinement_enabled": {
                      "type": "boolean"
                    },
                    "blending_mode": {
                      "type": "string",
                      "enum": [
                        "default",
                        "advanced",
                        "disabled"
                      ]
                    },
                    "output_file_name": {
                      "type": "string"
                    },
                    "output_bucket_name": {
                      "type": "string"
                    },
                    "output_bucket_path": {
                      "type": "string"
                    },
                    "disable_blending": {
                      "type": "boolean"
                    },
                    "pad_percent": {
                      "type": "number"
                    },
                    "mask_uri": {
                      "type": "string"
                    },
                    "mask_inner_box": {
                      "type": "array",
                      "items": {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      "nullable": true
                    },
                    "audio_guidance_scale": {
                      "type": "number",
                      "nullable": true
                    },
                    "num_steps": {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991,
                      "nullable": true
                    },
                    "use_retinaface": {
                      "type": "boolean"
                    },
                    "use_insightface": {
                      "type": "boolean"
                    },
                    "disable_scene_detection": {
                      "type": "boolean"
                    },
                    "extra_services_options": {
                      "type": "object",
                      "additionalProperties": {
                        "$ref": "#/components/schemas/ProjectDto__schema0"
                      }
                    },
                    "original_audio_url": {
                      "type": "string"
                    },
                    "occlusion_prompt": {
                      "type": "string"
                    },
                    "rotate": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 360
                    },
                    "active_speaker": {
                      "type": "boolean"
                    },
                    "speedup": {
                      "type": "number",
                      "minimum": 1,
                      "maximum": 4,
                      "nullable": true
                    },
                    "output_format": {
                      "type": "string",
                      "enum": [
                        "mp4",
                        "mov"
                      ]
                    },
                    "fps": {
                      "type": "number",
                      "nullable": true
                    },
                    "output_resolution": {
                      "minItems": 2,
                      "maxItems": 2,
                      "type": "array",
                      "items": {
                        "type": "number"
                      },
                      "nullable": true
                    },
                    "pads": {
                      "minItems": 4,
                      "maxItems": 4,
                      "type": "array",
                      "items": {
                        "type": "number",
                        "minimum": -8000,
                        "maximum": 8000
                      }
                    },
                    "gb": {
                      "type": "number",
                      "nullable": true
                    },
                    "mb": {
                      "type": "number",
                      "nullable": true
                    },
                    "quality": {
                      "type": "string",
                      "nullable": true
                    },
                    "img_size": {
                      "type": "array",
                      "items": {
                        "type": "number"
                      },
                      "nullable": true
                    },
                    "pickle_mode": {
                      "type": "string",
                      "nullable": true
                    },
                    "cf_batch_size": {
                      "type": "number",
                      "nullable": true
                    },
                    "resize_factor": {
                      "type": "number",
                      "nullable": true
                    },
                    "expressiveness": {
                      "type": "number",
                      "nullable": true
                    },
                    "inp_batch_size": {
                      "type": "number",
                      "nullable": true
                    },
                    "fidelity_weight": {
                      "type": "number",
                      "nullable": true
                    },
                    "wav2lip_batch_size": {
                      "type": "number",
                      "nullable": true
                    },
                    "face_det_batch_size": {
                      "type": "number",
                      "nullable": true
                    }
                  }
                },
                "segments": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "startTime": {
                        "type": "number"
                      },
                      "endTime": {
                        "type": "number"
                      },
                      "startFrame": {
                        "type": "number"
                      },
                      "endFrame": {
                        "type": "number"
                      },
                      "audioInput": {
                        "type": "object",
                        "properties": {
                          "refId": {
                            "type": "string"
                          },
                          "startTime": {
                            "type": "number"
                          },
                          "endTime": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "refId"
                        ]
                      },
                      "optionsOverride": {
                        "type": "object",
                        "properties": {
                          "active_speaker_detection": {
                            "type": "object",
                            "properties": {
                              "auto_detect": {
                                "default": false,
                                "type": "boolean"
                              },
                              "use_v2": {
                                "type": "boolean"
                              },
                              "v3": {
                                "type": "boolean"
                              },
                              "frame_number": {
                                "type": "number"
                              },
                              "coordinates": {
                                "minItems": 2,
                                "maxItems": 2,
                                "type": "array",
                                "items": {
                                  "type": "number"
                                }
                              },
                              "bounding_boxes": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  },
                                  "nullable": true
                                }
                              },
                              "bounding_boxes_url": {
                                "type": "string"
                              },
                              "face_image": {
                                "type": "string"
                              }
                            }
                          },
                          "sync_mode": {
                            "type": "string",
                            "enum": [
                              "cut_off",
                              "bounce",
                              "loop",
                              "silence",
                              "remap"
                            ]
                          },
                          "occlusion_detection_enabled": {
                            "type": "boolean"
                          },
                          "temperature": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1
                          },
                          "disable_blending": {
                            "type": "boolean"
                          },
                          "pad_percent": {
                            "type": "number"
                          },
                          "mask_uri": {
                            "type": "string"
                          },
                          "use_retinaface": {
                            "type": "boolean"
                          },
                          "use_insightface": {
                            "type": "boolean"
                          }
                        }
                      }
                    }
                  },
                  "nullable": true
                },
                "outputMediaUrl": {
                  "type": "string",
                  "nullable": true
                },
                "segmentOutputMediaUrl": {
                  "type": "string",
                  "nullable": true
                },
                "segmentOutputBucketPath": {
                  "type": "string",
                  "nullable": true
                },
                "creatorName": {
                  "type": "string",
                  "nullable": true
                },
                "outputMediaLength": {
                  "type": "number",
                  "nullable": true
                },
                "potentialError": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "number"
                        },
                        "message": {
                          "type": "string"
                        },
                        "errorCode": {
                          "type": "string"
                        },
                        "docsLink": {
                          "type": "string",
                          "format": "uri"
                        }
                      },
                      "required": [
                        "message"
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "nullable": true
                },
                "isPublic": {
                  "type": "boolean",
                  "nullable": true
                },
                "deletedAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
                  "nullable": true
                },
                "projectId": {
                  "type": "string",
                  "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
                  "nullable": true
                },
                "outputFileName": {
                  "type": "string",
                  "nullable": true
                },
                "outputExtension": {
                  "type": "string",
                  "nullable": true
                }
              },
              "required": [
                "id",
                "organizationId",
                "userId",
                "apiKeyId",
                "createdAt",
                "updatedAt",
                "startedAt",
                "finishedAt",
                "status",
                "model",
                "modelName",
                "inputs",
                "webhookUrl",
                "thumbnailUrl",
                "frameCount",
                "options",
                "outputMediaUrl",
                "segmentOutputMediaUrl",
                "segmentOutputBucketPath",
                "outputMediaLength",
                "potentialError",
                "isPublic",
                "deletedAt",
                "projectId"
              ]
            }
          },
          "generationPresets": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                },
                "name": {
                  "type": "string"
                },
                "description": {
                  "type": "string",
                  "nullable": true
                },
                "model": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string",
                      "nullable": true
                    },
                    "type": {
                      "type": "string"
                    },
                    "version": {
                      "type": "string"
                    },
                    "features": {
                      "default": [],
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "deprecatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
                      "nullable": true
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "description",
                    "type",
                    "version",
                    "deprecatedAt"
                  ]
                },
                "modelName": {
                  "type": "string"
                },
                "options": {
                  "type": "object",
                  "properties": {
                    "prompt": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "happy",
                            "sad",
                            "angry",
                            "disgusted",
                            "surprised",
                            "neutral"
                          ]
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    "prompt_image_uris": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "i2v_prompt": {
                      "type": "string"
                    },
                    "system_prompt": {
                      "type": "string"
                    },
                    "temperature": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1,
                      "nullable": true
                    },
                    "sync_mode": {
                      "type": "string",
                      "enum": [
                        "cut_off",
                        "bounce",
                        "loop",
                        "silence",
                        "remap"
                      ]
                    },
                    "model_mode": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    "active_speaker_detection": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "auto_detect": {
                              "default": false,
                              "type": "boolean"
                            },
                            "use_v2": {
                              "type": "boolean"
                            },
                            "v3": {
                              "type": "boolean"
                            },
                            "frame_number": {
                              "type": "number"
                            },
                            "coordinates": {
                              "minItems": 2,
                              "maxItems": 2,
                              "type": "array",
                              "items": {
                                "type": "number"
                              }
                            },
                            "bounding_boxes": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "number"
                                },
                                "nullable": true
                              }
                            },
                            "bounding_boxes_url": {
                              "type": "string"
                            },
                            "face_image": {
                              "type": "string"
                            }
                          }
                        },
                        {
                          "type": "boolean"
                        }
                      ]
                    },
                    "face_boxes_url": {
                      "type": "string"
                    },
                    "occlusion_detection_enabled": {
                      "type": "boolean"
                    },
                    "reasoning_enabled": {
                      "type": "boolean"
                    },
                    "refinement_enabled": {
                      "type": "boolean"
                    },
                    "blending_mode": {
                      "type": "string",
                      "enum": [
                        "default",
                        "advanced",
                        "disabled"
                      ]
                    },
                    "output_file_name": {
                      "type": "string"
                    },
                    "output_bucket_name": {
                      "type": "string"
                    },
                    "output_bucket_path": {
                      "type": "string"
                    },
                    "disable_blending": {
                      "type": "boolean"
                    },
                    "pad_percent": {
                      "type": "number"
                    },
                    "mask_uri": {
                      "type": "string"
                    },
                    "mask_inner_box": {
                      "type": "array",
                      "items": {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      "nullable": true
                    },
                    "audio_guidance_scale": {
                      "type": "number",
                      "nullable": true
                    },
                    "num_steps": {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991,
                      "nullable": true
                    },
                    "use_retinaface": {
                      "type": "boolean"
                    },
                    "use_insightface": {
                      "type": "boolean"
                    },
                    "disable_scene_detection": {
                      "type": "boolean"
                    },
                    "extra_services_options": {
                      "type": "object",
                      "additionalProperties": {
                        "$ref": "#/components/schemas/ProjectDto__schema0"
                      }
                    },
                    "original_audio_url": {
                      "type": "string"
                    },
                    "occlusion_prompt": {
                      "type": "string"
                    },
                    "rotate": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 360
                    },
                    "active_speaker": {
                      "type": "boolean"
                    },
                    "speedup": {
                      "type": "number",
                      "minimum": 1,
                      "maximum": 4,
                      "nullable": true
                    },
                    "output_format": {
                      "type": "string",
                      "enum": [
                        "mp4",
                        "mov"
                      ]
                    },
                    "fps": {
                      "type": "number",
                      "nullable": true
                    },
                    "output_resolution": {
                      "minItems": 2,
                      "maxItems": 2,
                      "type": "array",
                      "items": {
                        "type": "number"
                      },
                      "nullable": true
                    },
                    "pads": {
                      "minItems": 4,
                      "maxItems": 4,
                      "type": "array",
                      "items": {
                        "type": "number",
                        "minimum": -8000,
                        "maximum": 8000
                      }
                    },
                    "gb": {
                      "type": "number",
                      "nullable": true
                    },
                    "mb": {
                      "type": "number",
                      "nullable": true
                    },
                    "quality": {
                      "type": "string",
                      "nullable": true
                    },
                    "img_size": {
                      "type": "array",
                      "items": {
                        "type": "number"
                      },
                      "nullable": true
                    },
                    "pickle_mode": {
                      "type": "string",
                      "nullable": true
                    },
                    "cf_batch_size": {
                      "type": "number",
                      "nullable": true
                    },
                    "resize_factor": {
                      "type": "number",
                      "nullable": true
                    },
                    "expressiveness": {
                      "type": "number",
                      "nullable": true
                    },
                    "inp_batch_size": {
                      "type": "number",
                      "nullable": true
                    },
                    "fidelity_weight": {
                      "type": "number",
                      "nullable": true
                    },
                    "wav2lip_batch_size": {
                      "type": "number",
                      "nullable": true
                    },
                    "face_det_batch_size": {
                      "type": "number",
                      "nullable": true
                    }
                  }
                }
              },
              "required": [
                "id",
                "name",
                "description",
                "model",
                "modelName",
                "options"
              ]
            }
          }
        },
        "required": [
          "id",
          "createdAt",
          "updatedAt",
          "organizationId",
          "userId",
          "name",
          "description",
          "visibility",
          "deletedAt",
          "mode",
          "generations",
          "generationPresets"
        ]
      },
      "AttachProjectAssetDto": {
        "type": "object",
        "properties": {
          "assetId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "assetId"
        ]
      },
      "GetOrCreateFromPluginBodyDto": {
        "type": "object",
        "properties": {
          "pluginProjectId": {
            "type": "string",
            "minLength": 1
          },
          "pluginProjectName": {
            "type": "string",
            "minLength": 1
          },
          "mode": {
            "type": "string",
            "default": "CREATOR",
            "enum": [
              "CREATOR",
              "DEVELOPER"
            ]
          },
          "visibility": {
            "type": "string",
            "default": "USER",
            "enum": [
              "ORGANIZATION",
              "USER"
            ]
          }
        },
        "required": [
          "pluginProjectId",
          "pluginProjectName"
        ]
      },
      "UpdateProjectDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "visibility": {
            "type": "string",
            "enum": [
              "USER",
              "ORGANIZATION"
            ]
          },
          "mode": {
            "type": "string",
            "enum": [
              "CREATOR",
              "DEVELOPER"
            ]
          }
        }
      },
      "CreatorWorkflowsEnrollmentBodyDto": {
        "type": "object",
        "properties": {
          "variant": {
            "type": "string",
            "enum": [
              "control",
              "treatment",
              null
            ],
            "nullable": true
          }
        },
        "required": [
          "variant"
        ]
      },
      "CreatorWorkflowsEnrollmentResponseDto": {
        "type": "object",
        "properties": {
          "variant": {
            "type": "string",
            "enum": [
              "control",
              "treatment",
              null
            ],
            "nullable": true
          },
          "assignment": {
            "type": "object",
            "properties": {
              "variant": {
                "type": "string",
                "enum": [
                  "control",
                  "treatment"
                ]
              },
              "flag": {
                "type": "string",
                "enum": [
                  "creator_workflows_experiment"
                ]
              },
              "assignedAt": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "source": {
                "type": "string",
                "enum": [
                  "signup_flag",
                  "internal_dev_override",
                  "admin",
                  "migration",
                  "new_user_default"
                ]
              }
            },
            "required": [
              "variant",
              "flag",
              "assignedAt",
              "source"
            ]
          }
        },
        "required": [
          "variant"
        ]
      },
      "StartDeviceAuthDto": {
        "type": "object",
        "properties": {
          "clientId": {
            "type": "string"
          }
        }
      },
      "DeviceAuthStartResponseDto": {
        "type": "object",
        "properties": {
          "deviceCode": {
            "type": "string",
            "description": "Device code for polling"
          },
          "userCode": {
            "type": "string",
            "description": "User code to enter on verification page"
          },
          "verificationUri": {
            "type": "string",
            "description": "URL for user verification"
          },
          "expiresIn": {
            "type": "number",
            "description": "Seconds until codes expire"
          },
          "interval": {
            "type": "number",
            "description": "Recommended polling interval in seconds"
          }
        },
        "required": [
          "deviceCode",
          "userCode",
          "verificationUri",
          "expiresIn",
          "interval"
        ]
      },
      "ApproveDeviceAuthDto": {
        "type": "object",
        "properties": {
          "userCode": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "userCode"
        ]
      },
      "DeviceAuthApproveResponseDto": {
        "type": "object",
        "properties": {
          "ok": {
            "type": "boolean",
            "description": "Whether approval was successful"
          }
        },
        "required": [
          "ok"
        ]
      },
      "DeviceAuthPollUserDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "User ID"
          },
          "email": {
            "type": "string",
            "description": "User email"
          }
        }
      },
      "DeviceAuthPollResponseDto": {
        "type": "object",
        "properties": {
          "status": {
            "enum": [
              "pending",
              "ready",
              "expired"
            ],
            "type": "string",
            "description": "Current status of device auth"
          },
          "accessToken": {
            "type": "string",
            "description": "Session token when approved"
          },
          "tokenType": {
            "type": "string",
            "description": "Token type (Bearer)"
          },
          "expiresIn": {
            "type": "number",
            "description": "Seconds until token expires"
          },
          "user": {
            "description": "User information",
            "allOf": [
              {
                "$ref": "#/components/schemas/DeviceAuthPollUserDto"
              }
            ]
          },
          "activeOrganizationId": {
            "type": "string",
            "description": "Active organization ID"
          }
        },
        "required": [
          "status"
        ]
      },
      "SessionUserDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "User ID"
          },
          "email": {
            "type": "string",
            "description": "User email"
          },
          "name": {
            "type": "string",
            "description": "User name"
          },
          "image": {
            "type": "string",
            "description": "User avatar URL"
          }
        },
        "required": [
          "id"
        ]
      },
      "SessionInfoDto": {
        "type": "object",
        "properties": {
          "activeOrganizationId": {
            "type": "string",
            "description": "Active organization ID"
          }
        }
      },
      "DeviceAuthSessionResponseDto": {
        "type": "object",
        "properties": {
          "user": {
            "description": "User information",
            "allOf": [
              {
                "$ref": "#/components/schemas/SessionUserDto"
              }
            ]
          },
          "session": {
            "description": "Session information",
            "allOf": [
              {
                "$ref": "#/components/schemas/SessionInfoDto"
              }
            ]
          }
        },
        "required": [
          "user",
          "session"
        ]
      },
      "CreateDialogueEditDto": {
        "type": "object",
        "properties": {
          "transcript": {
            "type": "object",
            "properties": {
              "segments": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "words": {
                      "minItems": 1,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "text": {
                            "type": "string",
                            "minLength": 1
                          },
                          "startMs": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "endMs": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "id",
                          "text",
                          "startMs",
                          "endMs"
                        ]
                      }
                    }
                  },
                  "required": [
                    "id",
                    "words"
                  ]
                }
              },
              "speakerCount": {
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991,
                "minimum": 0
              }
            },
            "required": [
              "segments",
              "speakerCount"
            ]
          },
          "edits": {
            "type": "array",
            "minItems": 1,
            "maxItems": 100,
            "items": {
              "oneOf": [
                {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "type": "string",
                      "enum": [
                        "change"
                      ]
                    },
                    "wordId": {
                      "type": "string"
                    },
                    "replacement": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    }
                  },
                  "required": [
                    "kind",
                    "wordId",
                    "replacement"
                  ]
                },
                {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "type": "string",
                      "enum": [
                        "remove"
                      ]
                    },
                    "wordIds": {
                      "minItems": 1,
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "kind",
                    "wordIds"
                  ]
                }
              ]
            }
          },
          "sourceVideoUrl": {
            "type": "string",
            "format": "uri"
          },
          "startMs": {
            "type": "integer",
            "default": 0,
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "endMs": {
            "type": "integer",
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0
          },
          "voiceId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "projectId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "transcript",
          "edits",
          "sourceVideoUrl"
        ]
      },
      "DialogueEditJobDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "status": {
            "type": "string",
            "enum": [
              "PENDING",
              "PROCESSING",
              "COMPLETED",
              "FAILED"
            ]
          },
          "sourceVideoUrl": {
            "type": "string"
          },
          "sourceStartMs": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "sourceEndMs": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991,
            "nullable": true
          },
          "previewAudioUrl": {
            "type": "string",
            "nullable": true
          },
          "previewDurationMs": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991,
            "nullable": true
          },
          "sourceTranscript": {
            "type": "object",
            "properties": {
              "segments": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "words": {
                      "minItems": 1,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "text": {
                            "type": "string",
                            "minLength": 1
                          },
                          "startMs": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "endMs": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "id",
                          "text",
                          "startMs",
                          "endMs"
                        ]
                      }
                    }
                  },
                  "required": [
                    "id",
                    "words"
                  ]
                }
              },
              "speakerCount": {
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991,
                "minimum": 0
              }
            },
            "required": [
              "segments",
              "speakerCount"
            ],
            "nullable": true
          },
          "edits": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "type": "string",
                      "enum": [
                        "change"
                      ]
                    },
                    "wordId": {
                      "type": "string"
                    },
                    "replacement": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    }
                  },
                  "required": [
                    "kind",
                    "wordId",
                    "replacement"
                  ]
                },
                {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "type": "string",
                      "enum": [
                        "remove"
                      ]
                    },
                    "wordIds": {
                      "minItems": 1,
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "kind",
                    "wordIds"
                  ]
                }
              ]
            }
          },
          "resultTranscript": {
            "type": "object",
            "properties": {
              "segments": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "words": {
                      "minItems": 1,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "text": {
                            "type": "string",
                            "minLength": 1
                          },
                          "startMs": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "endMs": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "id",
                          "text",
                          "startMs",
                          "endMs"
                        ]
                      }
                    }
                  },
                  "required": [
                    "id",
                    "words"
                  ]
                }
              },
              "speakerCount": {
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991,
                "minimum": 0
              }
            },
            "required": [
              "segments",
              "speakerCount"
            ],
            "nullable": true
          },
          "resultSlots": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "outputStartMs": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "outputDurationMs": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "sourceStartMs": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "sourceDurationMs": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "kind": {
                  "type": "string",
                  "enum": [
                    "change",
                    "removal",
                    "silence"
                  ]
                }
              },
              "required": [
                "outputStartMs",
                "outputDurationMs",
                "kind"
              ]
            },
            "nullable": true
          },
          "voiceId": {
            "type": "string",
            "nullable": true
          },
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "enum": [
                  "EXTRACTION_FAILED",
                  "VOICE_CLONE_FAILED",
                  "SYNTHESIS_FAILED",
                  "EDIT_TOO_LONG",
                  "SOURCE_TOO_LONG",
                  "PLAN_FAILED",
                  "TIMEOUT",
                  "UNKNOWN"
                ]
              },
              "message": {
                "type": "string"
              },
              "spanText": {
                "type": "string"
              }
            },
            "required": [
              "code",
              "message"
            ],
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "startedAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
            "nullable": true
          },
          "finishedAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
            "nullable": true
          }
        },
        "required": [
          "id",
          "status",
          "sourceVideoUrl",
          "sourceStartMs",
          "sourceEndMs",
          "previewAudioUrl",
          "previewDurationMs",
          "sourceTranscript",
          "edits",
          "resultTranscript",
          "resultSlots",
          "voiceId",
          "error",
          "createdAt",
          "startedAt",
          "finishedAt"
        ]
      },
      "CreateTranscriptionDto": {
        "type": "object",
        "properties": {
          "sourceVideoUrl": {
            "type": "string",
            "format": "uri"
          },
          "sourceAudioUrl": {
            "type": "string",
            "format": "uri"
          },
          "startMs": {
            "type": "integer",
            "default": 0,
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "endMs": {
            "type": "integer",
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0
          },
          "maxSourceSeconds": {
            "type": "integer",
            "exclusiveMinimum": true,
            "maximum": 3600,
            "minimum": 0
          },
          "projectId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        }
      },
      "TranscriptionJobDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "status": {
            "type": "string",
            "enum": [
              "PENDING",
              "PROCESSING",
              "COMPLETED",
              "FAILED"
            ]
          },
          "sourceVideoUrl": {
            "type": "string",
            "nullable": true
          },
          "sourceStartMs": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "sourceEndMs": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991,
            "nullable": true
          },
          "transcript": {
            "type": "object",
            "properties": {
              "segments": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "words": {
                      "minItems": 1,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "text": {
                            "type": "string",
                            "minLength": 1
                          },
                          "startMs": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "endMs": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "id",
                          "text",
                          "startMs",
                          "endMs"
                        ]
                      }
                    }
                  },
                  "required": [
                    "id",
                    "words"
                  ]
                }
              },
              "speakerCount": {
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991,
                "minimum": 0
              }
            },
            "required": [
              "segments",
              "speakerCount"
            ],
            "nullable": true
          },
          "speakerCount": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "nullable": true
          },
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "enum": [
                  "NO_AUDIO",
                  "NO_AUDIO_TRACK",
                  "SOURCE_TOO_LONG",
                  "EXTRACTION_FAILED",
                  "PROVIDER_FAILED",
                  "TIMEOUT",
                  "UNKNOWN"
                ]
              },
              "message": {
                "type": "string"
              }
            },
            "required": [
              "code",
              "message"
            ],
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "startedAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
            "nullable": true
          },
          "finishedAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
            "nullable": true
          }
        },
        "required": [
          "id",
          "status",
          "sourceVideoUrl",
          "sourceStartMs",
          "sourceEndMs",
          "transcript",
          "speakerCount",
          "error",
          "createdAt",
          "startedAt",
          "finishedAt"
        ]
      },
      "TokenBodyDto": {
        "type": "object",
        "properties": {
          "grant_type": {
            "type": "string",
            "enum": [
              "authorization_code",
              "refresh_token"
            ]
          },
          "code": {
            "type": "string"
          },
          "redirect_uri": {
            "type": "string"
          },
          "client_id": {
            "type": "string"
          },
          "client_secret": {
            "type": "string"
          },
          "code_verifier": {
            "type": "string"
          },
          "refresh_token": {
            "type": "string"
          }
        },
        "required": [
          "grant_type"
        ]
      },
      "TokenResponseDto": {
        "type": "object",
        "properties": {
          "access_token": {
            "type": "string",
            "description": "Access token"
          },
          "token_type": {
            "type": "string",
            "description": "Token type",
            "example": "Bearer"
          },
          "expires_in": {
            "type": "number",
            "description": "Seconds until token expires"
          },
          "refresh_token": {
            "type": "string",
            "description": "Refresh token"
          },
          "scope": {
            "type": "string",
            "description": "Granted scope"
          }
        },
        "required": [
          "access_token",
          "token_type",
          "expires_in"
        ]
      },
      "RegisterBodyDto": {
        "type": "object",
        "properties": {
          "client_name": {
            "type": "string"
          },
          "redirect_uris": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "string",
              "format": "uri"
            }
          },
          "grant_types": {
            "type": "array",
            "default": [
              "authorization_code",
              "refresh_token"
            ],
            "items": {
              "type": "string"
            }
          },
          "scope": {
            "type": "string"
          }
        },
        "required": [
          "redirect_uris"
        ]
      },
      "RegisterResponseDto": {
        "type": "object",
        "properties": {
          "client_id": {
            "type": "string",
            "description": "Client ID"
          },
          "client_secret": {
            "type": "string",
            "description": "Client secret"
          },
          "client_name": {
            "type": "string",
            "description": "Client name"
          },
          "redirect_uris": {
            "description": "Registered redirect URIs",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "grant_types": {
            "description": "Allowed grant types",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "scope": {
            "type": "string",
            "description": "Scope"
          },
          "client_id_issued_at": {
            "type": "number",
            "description": "Unix timestamp of client creation"
          }
        },
        "required": [
          "client_id",
          "redirect_uris",
          "grant_types",
          "client_id_issued_at"
        ]
      },
      "ClientReadResponseDto": {
        "type": "object",
        "properties": {
          "client_id": {
            "type": "string",
            "description": "Client ID"
          },
          "client_name": {
            "type": "string",
            "description": "Client name"
          },
          "redirect_uris": {
            "description": "Registered redirect URIs",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "grant_types": {
            "description": "Allowed grant types",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "scope": {
            "type": "string",
            "description": "Scope"
          },
          "client_id_issued_at": {
            "type": "number",
            "description": "Unix timestamp of client creation"
          }
        },
        "required": [
          "client_id",
          "redirect_uris",
          "grant_types",
          "client_id_issued_at"
        ]
      },
      "RevokeBodyDto": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "minLength": 1
          },
          "token_type_hint": {
            "type": "string",
            "default": "access_token",
            "enum": [
              "access_token",
              "refresh_token"
            ]
          },
          "client_id": {
            "type": "string",
            "minLength": 1
          },
          "client_secret": {
            "type": "string"
          }
        },
        "required": [
          "token",
          "client_id"
        ]
      },
      "UserinfoResponseDto": {
        "type": "object",
        "properties": {
          "sub": {
            "type": "string",
            "description": "User ID (sub claim)"
          },
          "email": {
            "type": "string",
            "description": "User email"
          },
          "name": {
            "type": "string",
            "description": "User name"
          },
          "picture": {
            "type": "string",
            "description": "User avatar URL"
          },
          "client_id": {
            "type": "string",
            "description": "Client ID"
          },
          "organization_id": {
            "type": "string",
            "description": "Organization ID"
          },
          "expires_at": {
            "type": "number",
            "description": "Token expiration (Unix timestamp)"
          }
        },
        "required": [
          "sub",
          "client_id"
        ]
      },
      "InvitationListItemDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Invitation ID"
          },
          "email": {
            "type": "string",
            "description": "Invitee email address"
          },
          "organizationId": {
            "type": "string",
            "description": "Organization ID"
          },
          "invitedByUserId": {
            "type": "string",
            "description": "ID of user who sent the invitation"
          },
          "code": {
            "type": "string",
            "description": "Unique invitation code"
          },
          "role": {
            "type": "string",
            "description": "Role assigned to the invitee"
          },
          "status": {
            "type": "string",
            "description": "Invitation status"
          },
          "expiresAt": {
            "format": "date-time",
            "type": "string",
            "description": "Expiration timestamp"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string",
            "description": "Creation timestamp"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string",
            "nullable": true,
            "description": "Update timestamp"
          },
          "isResend": {
            "type": "boolean",
            "description": "Whether invitation was resent"
          },
          "metadata": {
            "type": "object",
            "nullable": true,
            "description": "Additional metadata"
          }
        },
        "required": [
          "id",
          "email",
          "organizationId",
          "invitedByUserId",
          "code",
          "role",
          "status",
          "expiresAt",
          "createdAt",
          "isResend"
        ]
      },
      "InvitationOrganizationDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true,
            "description": "Organization name"
          }
        }
      },
      "InvitationDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Invitation ID"
          },
          "email": {
            "type": "string",
            "description": "Invitee email address"
          },
          "organizationId": {
            "type": "string",
            "description": "Organization ID"
          },
          "invitedByUserId": {
            "type": "string",
            "description": "ID of user who sent the invitation"
          },
          "code": {
            "type": "string",
            "description": "Unique invitation code"
          },
          "role": {
            "type": "string",
            "description": "Role assigned to the invitee"
          },
          "status": {
            "type": "string",
            "description": "Invitation status"
          },
          "expiresAt": {
            "format": "date-time",
            "type": "string",
            "description": "Expiration timestamp"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string",
            "description": "Creation timestamp"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string",
            "nullable": true,
            "description": "Update timestamp"
          },
          "isResend": {
            "type": "boolean",
            "description": "Whether invitation was resent"
          },
          "metadata": {
            "type": "object",
            "nullable": true,
            "description": "Additional metadata"
          },
          "organization": {
            "description": "Organization details",
            "allOf": [
              {
                "$ref": "#/components/schemas/InvitationOrganizationDto"
              }
            ]
          }
        },
        "required": [
          "id",
          "email",
          "organizationId",
          "invitedByUserId",
          "code",
          "role",
          "status",
          "expiresAt",
          "createdAt",
          "isResend",
          "organization"
        ]
      },
      "CreateInvitationsDto": {
        "type": "object",
        "properties": {
          "invitations": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "object",
              "properties": {
                "email": {
                  "type": "string",
                  "format": "email",
                  "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                },
                "role": {
                  "type": "string",
                  "enum": [
                    "member",
                    "admin"
                  ]
                }
              },
              "required": [
                "email",
                "role"
              ]
            }
          }
        },
        "required": [
          "invitations"
        ]
      },
      "AcceptInvitationDto": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          }
        },
        "required": [
          "code"
        ]
      },
      "AcceptInvitationResponseDto": {
        "type": "object",
        "properties": {
          "exceedsSeatLimit": {
            "type": "boolean",
            "description": "Whether accepting exceeds seat limit"
          }
        },
        "required": [
          "exceedsSeatLimit"
        ]
      },
      "UpdateInvitationDto": {
        "type": "object",
        "properties": {
          "role": {
            "type": "string",
            "enum": [
              "member",
              "admin"
            ]
          }
        },
        "required": [
          "role"
        ]
      },
      "CreateAppearancePreviewDto": {
        "type": "object",
        "properties": {
          "sourceImageUrl": {
            "type": "string"
          },
          "iterationSourceImageUrl": {
            "type": "string"
          },
          "prompt": {
            "type": "string",
            "maxLength": 1000
          },
          "referenceImageUrls": {
            "type": "array",
            "default": [],
            "maxItems": 4,
            "items": {
              "type": "string"
            }
          },
          "faceSelection": {
            "type": "object",
            "properties": {
              "frameNumber": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "coordinates": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "faceImageUrl": {
                "type": "string"
              }
            }
          },
          "aspectRatio": {
            "type": "string",
            "enum": [
              "auto",
              "21:9",
              "16:9",
              "3:2",
              "4:3",
              "5:4",
              "1:1",
              "4:5",
              "3:4",
              "2:3",
              "9:16"
            ]
          },
          "source": {
            "type": "string",
            "default": "from_original",
            "enum": [
              "from_original",
              "iterate"
            ]
          },
          "idempotencyKey": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          }
        },
        "required": [
          "sourceImageUrl"
        ]
      },
      "AppearancePreviewResponseDto": {
        "type": "object",
        "properties": {
          "previewId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "imageUrl": {
            "type": "string",
            "format": "uri"
          },
          "model": {
            "type": "string",
            "enum": [
              "appearence-1"
            ]
          },
          "source": {
            "type": "string",
            "enum": [
              "from_original",
              "iterate"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          }
        },
        "required": [
          "previewId",
          "imageUrl",
          "model",
          "source",
          "createdAt"
        ]
      },
      "ProjectDownloadAllManifestResponseDto": {
        "type": "object",
        "properties": {
          "files": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "url": {
                  "type": "string"
                },
                "sizeBytes": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991,
                  "nullable": true
                }
              },
              "required": [
                "name",
                "url"
              ]
            }
          },
          "zipFilename": {
            "type": "string"
          }
        },
        "required": [
          "files",
          "zipFilename"
        ]
      },
      "ErrorCatalogEntryDto": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "suggestion": {
            "type": "string"
          }
        },
        "required": [
          "code",
          "message",
          "suggestion"
        ]
      },
      "SubmitSupportRequestDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "bug",
              "feature_request",
              "general_request"
            ]
          },
          "message": {
            "type": "string",
            "minLength": 10,
            "maxLength": 2000
          },
          "metadata": {
            "type": "object",
            "properties": {
              "pluginVersion": {
                "type": "string"
              },
              "premiereVersion": {
                "type": "string"
              },
              "os": {
                "type": "string"
              }
            }
          }
        },
        "required": [
          "type",
          "message"
        ]
      },
      "CreateTtsDto": {
        "type": "object",
        "properties": {
          "script": {
            "type": "string",
            "minLength": 1,
            "maxLength": 5000
          },
          "voiceId": {
            "type": "string",
            "minLength": 1
          },
          "provider": {
            "type": "string",
            "enum": [
              "elevenlabs"
            ]
          },
          "stability": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "similarityBoost": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          }
        },
        "required": [
          "script",
          "voiceId",
          "provider"
        ]
      },
      "TtsGenerationResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "duration": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "url",
          "duration"
        ]
      },
      "UserOnboardingDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Onboarding record ID"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string",
            "description": "Creation timestamp"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string",
            "description": "Update timestamp"
          },
          "version": {
            "type": "number",
            "description": "Onboarding version"
          },
          "userId": {
            "type": "string",
            "description": "User ID"
          },
          "completedAt": {
            "format": "date-time",
            "type": "string",
            "nullable": true,
            "description": "Completion timestamp"
          },
          "type": {
            "type": "string",
            "description": "Onboarding type",
            "enum": [
              "referral",
              "tools",
              "useCase",
              "teamSize",
              "signupPlan",
              "adobePluginNps",
              "premierePluginNps",
              "resolvePluginNps",
              "studioLiteNps",
              "firstResultScore",
              "periodicResultScore"
            ]
          },
          "values": {
            "type": "object",
            "nullable": true,
            "description": "Onboarding values (shape depends on type)"
          }
        },
        "required": [
          "id",
          "createdAt",
          "updatedAt",
          "version",
          "userId",
          "type"
        ]
      },
      "CreateUserOnboardingDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "referral",
              "tools",
              "useCase",
              "teamSize",
              "signupPlan",
              "adobePluginNps",
              "premierePluginNps",
              "resolvePluginNps",
              "studioLiteNps",
              "firstResultScore",
              "periodicResultScore"
            ]
          },
          "values": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {},
            "nullable": true
          }
        },
        "required": [
          "type"
        ]
      },
      "UserOnboardingCreateResponseDto": {
        "type": "object",
        "properties": {
          "version": {
            "type": "number",
            "description": "Onboarding version"
          },
          "type": {
            "type": "string",
            "description": "Onboarding type",
            "enum": [
              "referral",
              "tools",
              "useCase",
              "teamSize",
              "signupPlan",
              "adobePluginNps",
              "premierePluginNps",
              "resolvePluginNps",
              "studioLiteNps",
              "firstResultScore",
              "periodicResultScore"
            ]
          },
          "values": {
            "type": "object",
            "nullable": true,
            "description": "Onboarding values (shape depends on type)"
          }
        },
        "required": [
          "version",
          "type"
        ]
      },
      "VerifyWatermarkBodyDto": {
        "type": "object",
        "properties": {
          "video_url": {
            "type": "string",
            "format": "uri"
          }
        },
        "required": [
          "video_url"
        ]
      },
      "VerifyWatermarkResponseDto": {
        "type": "object",
        "properties": {
          "detected": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "detected",
          "message"
        ]
      },
      "AnalyzeVideoDto": {
        "type": "object",
        "properties": {
          "assetId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "spriteSheetUrls": {
            "type": "array",
            "minItems": 1,
            "maxItems": 10,
            "items": {
              "type": "string",
              "format": "uri"
            }
          },
          "videoDuration": {
            "type": "number",
            "exclusiveMinimum": true,
            "minimum": 0
          },
          "totalFrames": {
            "type": "integer",
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0
          }
        },
        "required": [
          "spriteSheetUrls",
          "videoDuration",
          "totalFrames"
        ]
      },
      "VideoAnalysisConfidenceDto": {
        "type": "object",
        "properties": {
          "speakers": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "obstruction": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "lowLighting": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "extremeAngle": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "closeUp": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "isAnimated": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "closedLips": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "nonHumanoid": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          }
        },
        "required": [
          "speakers",
          "obstruction",
          "lowLighting",
          "extremeAngle",
          "closeUp",
          "isAnimated",
          "closedLips",
          "nonHumanoid"
        ]
      },
      "VideoAnalysisResponseDto": {
        "type": "object",
        "properties": {
          "confidence": {
            "properties": {
              "speakers": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              "obstruction": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              "lowLighting": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              "extremeAngle": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              "closeUp": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              "isAnimated": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              "closedLips": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              "nonHumanoid": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              }
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/VideoAnalysisConfidenceDto"
              }
            ]
          },
          "multipleSpeakers": {
            "type": "boolean"
          },
          "speakerCount": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "hasObstruction": {
            "type": "boolean"
          },
          "obstructions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string"
                },
                "location": {
                  "type": "string"
                },
                "severity": {
                  "type": "string",
                  "enum": [
                    "minor",
                    "moderate",
                    "severe"
                  ]
                }
              },
              "required": [
                "type",
                "location",
                "severity"
              ]
            }
          },
          "lowLighting": {
            "type": "boolean"
          },
          "extremeAngle": {
            "type": "boolean"
          },
          "closeUp": {
            "type": "boolean"
          },
          "isAnimated": {
            "type": "boolean"
          },
          "closedLips": {
            "type": "boolean"
          },
          "nonHumanoid": {
            "type": "boolean"
          },
          "reasoning": {
            "type": "string"
          },
          "version": {
            "type": "integer",
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0
          }
        },
        "required": [
          "confidence",
          "multipleSpeakers",
          "speakerCount",
          "hasObstruction",
          "obstructions",
          "lowLighting",
          "extremeAngle",
          "closeUp",
          "isAnimated",
          "closedLips",
          "nonHumanoid",
          "reasoning",
          "version"
        ]
      },
      "CreateVoiceDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "provider": {
            "type": "string",
            "enum": [
              "elevenlabs"
            ]
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "assetId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "name",
          "provider"
        ],
        "allOf": [
          {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  }
                },
                "required": [
                  "url"
                ]
              },
              {
                "type": "object",
                "properties": {
                  "assetId": {
                    "type": "string",
                    "format": "uuid",
                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                  }
                },
                "required": [
                  "assetId"
                ]
              }
            ]
          }
        ]
      },
      "ClonedVoiceDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "voiceId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "voiceId",
          "name"
        ]
      },
      "VideoInputItem": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "video"
            ],
            "example": "video"
          },
          "url": {
            "type": "string",
            "example": "https://assets.sync.so/videos/samples/influencer.mp4",
            "description": "CDN/HTTP URL to a source video. Either `url` or `assetId` is required."
          },
          "assetId": {
            "type": "string",
            "example": "123e4567-e89b-12d3-a456-426614174000",
            "description": "Sync asset ID for a previously uploaded video. Either `url` or `assetId` is required."
          },
          "segments_secs": {
            "type": "array",
            "items": {
              "type": "array",
              "description": "First number is start time, second number is end time",
              "items": {
                "type": "number"
              },
              "minItems": 2,
              "maxItems": 2
            },
            "example": [
              [
                5,
                10
              ]
            ],
            "description": "Start and end time in seconds for each video segment to apply generation to",
            "deprecated": true
          },
          "segments_frames": {
            "type": "array",
            "items": {
              "type": "array",
              "description": "First number is start frame, second number is end frame",
              "items": {
                "type": "number"
              },
              "minItems": 2,
              "maxItems": 2
            },
            "example": [
              [
                0,
                25
              ]
            ],
            "description": "Start and end frames for each video segment to apply generation to",
            "deprecated": true
          }
        },
        "required": [
          "type"
        ],
        "allOf": [
          {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "example": "https://assets.sync.so/videos/samples/influencer.mp4",
                    "description": "CDN/HTTP URL to a source video. Either `url` or `assetId` is required."
                  }
                },
                "required": [
                  "url"
                ]
              },
              {
                "type": "object",
                "properties": {
                  "assetId": {
                    "type": "string",
                    "example": "123e4567-e89b-12d3-a456-426614174000",
                    "description": "Sync asset ID for a previously uploaded video. Either `url` or `assetId` is required."
                  }
                },
                "required": [
                  "assetId"
                ]
              }
            ]
          }
        ]
      },
      "ImageInputItem": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "image"
            ],
            "example": "image"
          },
          "url": {
            "type": "string",
            "example": "https://example.com/source-image.png",
            "description": "CDN/HTTP URL to a source image. Either `url` or `assetId` is required."
          },
          "assetId": {
            "type": "string",
            "example": "123e4567-e89b-12d3-a456-426614174000",
            "description": "Sync asset ID for a previously uploaded image. Either `url` or `assetId` is required."
          }
        },
        "required": [
          "type"
        ],
        "allOf": [
          {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "example": "https://example.com/source-image.png",
                    "description": "CDN/HTTP URL to a source image. Either `url` or `assetId` is required."
                  }
                },
                "required": [
                  "url"
                ]
              },
              {
                "type": "object",
                "properties": {
                  "assetId": {
                    "type": "string",
                    "example": "123e4567-e89b-12d3-a456-426614174000",
                    "description": "Sync asset ID for a previously uploaded image. Either `url` or `assetId` is required."
                  }
                },
                "required": [
                  "assetId"
                ]
              }
            ]
          }
        ]
      },
      "AudioInputItem": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "audio"
            ],
            "example": "audio"
          },
          "refId": {
            "type": "string",
            "description": "Reference id used by `segments[].audioInput.refId` when a generation has more than one audio or text input.",
            "example": "line-a"
          },
          "url": {
            "type": "string",
            "example": "https://assets.sync.so/audios/samples/re-record.mp3",
            "description": "CDN/HTTP URL to a source audio file. Either `url` or `assetId` is required."
          },
          "assetId": {
            "type": "string",
            "example": "123e4567-e89b-12d3-a456-426614174000",
            "description": "Sync asset ID for a previously uploaded audio file. Either `url` or `assetId` is required."
          }
        },
        "required": [
          "type"
        ],
        "allOf": [
          {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "example": "https://assets.sync.so/audios/samples/re-record.mp3",
                    "description": "CDN/HTTP URL to a source audio file. Either `url` or `assetId` is required."
                  }
                },
                "required": [
                  "url"
                ]
              },
              {
                "type": "object",
                "properties": {
                  "assetId": {
                    "type": "string",
                    "example": "123e4567-e89b-12d3-a456-426614174000",
                    "description": "Sync asset ID for a previously uploaded audio file. Either `url` or `assetId` is required."
                  }
                },
                "required": [
                  "assetId"
                ]
              }
            ]
          }
        ]
      },
      "ProviderItem": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "elevenlabs"
          },
          "voiceId": {
            "type": "string",
            "example": "voice123",
            "description": "Sync voice ID (copied from cloned voices in the Studio) or ElevenLabs voice ID. Required."
          },
          "script": {
            "type": "string",
            "example": "make some magic"
          },
          "stability": {
            "type": "number",
            "example": 0.5,
            "description": "Voice stability (0-1). Lower = more expressive, higher = more stable."
          },
          "similarityBoost": {
            "type": "number",
            "example": 0.75,
            "description": "Voice similarity boost (0-1). Lower = more creative, higher = stricter adherence."
          }
        },
        "required": [
          "name",
          "voiceId",
          "script"
        ]
      },
      "TextInputItem": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "text"
            ],
            "example": "text"
          },
          "refId": {
            "type": "string",
            "description": "Reference id used by `segments[].audioInput.refId` when a generation has more than one audio or text input.",
            "example": "line-a"
          },
          "provider": {
            "description": "Integration provider",
            "allOf": [
              {
                "$ref": "#/components/schemas/ProviderItem"
              }
            ]
          }
        },
        "required": [
          "type",
          "provider"
        ]
      }
    }
  },
  "security": [
    {
      "apiKey": []
    }
  ]
}
