{
  "openapi": "3.1.0",
  "paths": {
    "/v2/assets": {
      "get": {
        "operationId": "AssetsController_getAll",
        "summary": "List all assets for the organization",
        "description": "List all assets for the organization",
        "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",
              "enum": [
                "nameAsc",
                "nameDesc",
                "dateAsc",
                "dateDesc",
                "durationAsc",
                "durationDesc",
                "sizeAsc",
                "sizeDesc",
                "kindAsc",
                "kindDesc"
              ],
              "type": "string"
            }
          },
          {
            "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"
                }
              }
            }
          }
        },
        "tags": [
          "Assets"
        ]
      },
      "post": {
        "operationId": "AssetsController_create",
        "summary": "Create a new asset",
        "description": "Create a new asset",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "Assets",
          "internal"
        ]
      }
    },
    "/v2/assets/count": {
      "get": {
        "operationId": "AssetsController_count",
        "summary": "Get count of assets",
        "description": "Get count of assets",
        "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",
              "enum": [
                "nameAsc",
                "nameDesc",
                "dateAsc",
                "dateDesc",
                "durationAsc",
                "durationDesc",
                "sizeAsc",
                "sizeDesc",
                "kindAsc",
                "kindDesc"
              ],
              "type": "string"
            }
          },
          {
            "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
                }
              }
            }
          }
        },
        "tags": [
          "Assets",
          "internal"
        ]
      }
    },
    "/v2/assets/batch": {
      "post": {
        "operationId": "AssetsController_getMany",
        "summary": "Get multiple assets by IDs",
        "description": "Batch get assets by IDs",
        "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"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Assets",
          "internal"
        ]
      }
    },
    "/v2/assets/{id}/download": {
      "get": {
        "operationId": "AssetsController_getDownloadUrl",
        "summary": "Get download URL for an asset",
        "description": "Get download URL for an asset",
        "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"
          }
        },
        "tags": [
          "Assets",
          "internal"
        ]
      }
    },
    "/v2/assets/{id}": {
      "get": {
        "operationId": "AssetsController_get",
        "summary": "Get an asset by ID",
        "description": "Get an asset by ID",
        "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"
          }
        },
        "tags": [
          "Assets"
        ]
      },
      "patch": {
        "operationId": "AssetsController_update",
        "summary": "Update an asset",
        "description": "Update an asset",
        "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"
                }
              }
            }
          },
          "404": {
            "description": "Asset not found"
          }
        },
        "tags": [
          "Assets",
          "internal"
        ]
      },
      "delete": {
        "operationId": "AssetsController_delete",
        "summary": "Delete an asset",
        "description": "Delete an asset",
        "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"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Asset not found"
          }
        },
        "tags": [
          "Assets",
          "internal"
        ]
      }
    },
    "/v2/asset-metadata/by-asset": {
      "get": {
        "operationId": "AssetMetadataController_getByAssetId",
        "summary": "Get metadata by asset ID",
        "description": "Get all metadata entries for a given asset",
        "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"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Asset Metadata",
          "internal"
        ]
      }
    },
    "/v2/asset-metadata": {
      "get": {
        "operationId": "AssetMetadataController_get",
        "summary": "Get metadata by asset ID",
        "description": "Get a specific metadata entry by asset ID",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "Asset Metadata",
          "internal"
        ]
      },
      "post": {
        "operationId": "AssetMetadataController_upsert",
        "summary": "Upsert asset metadata",
        "description": "Create or update a metadata entry (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"
                }
              }
            }
          }
        },
        "tags": [
          "Asset Metadata",
          "internal"
        ]
      },
      "patch": {
        "operationId": "AssetMetadataController_update",
        "summary": "Update asset metadata",
        "description": "Update an existing metadata entry",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "Asset Metadata",
          "internal"
        ]
      },
      "delete": {
        "operationId": "AssetMetadataController_delete",
        "summary": "Delete asset metadata",
        "description": "Delete a metadata entry",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "Asset Metadata",
          "internal"
        ]
      }
    },
    "/v2/asset-metadata/exists": {
      "get": {
        "operationId": "AssetMetadataController_exists",
        "summary": "Check if asset metadata exists",
        "description": "Check if a metadata entry 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"
          }
        },
        "tags": [
          "Asset Metadata",
          "internal"
        ]
      }
    },
    "/v2/aescripts/provision": {
      "post": {
        "operationId": "AescriptsController_provision",
        "summary": "Provision $5 credits for aescripts plugin purchasers",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Credits provisioned or already credited",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProvisionResponseDto"
                }
              }
            }
          },
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProvisionResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/organizations/current": {
      "get": {
        "operationId": "OrganizationsController_getCurrent",
        "summary": "Get current organization",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Current organization",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationDto"
                }
              }
            }
          }
        },
        "tags": [
          "Organizations",
          "internal"
        ]
      }
    },
    "/v2/organizations/settings": {
      "get": {
        "operationId": "OrganizationsController_getSettings",
        "summary": "Get organization settings",
        "description": "Get organization settings",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Organization settings",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationSettingsDto"
                }
              }
            }
          }
        },
        "tags": [
          "Organizations",
          "internal"
        ]
      },
      "patch": {
        "operationId": "OrganizationsController_updateSettings",
        "summary": "Update organization settings (admin only)",
        "description": "Update organization settings (admin only)",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOrganizationSettingsDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Settings updated"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        },
        "tags": [
          "Organizations",
          "internal"
        ]
      }
    },
    "/v2/organizations/draft": {
      "get": {
        "operationId": "OrganizationsController_getDraft",
        "summary": "Get draft organization",
        "description": "Get draft organization for current user",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Draft organization or null",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationDto"
                }
              }
            }
          }
        },
        "tags": [
          "Organizations",
          "internal"
        ]
      }
    },
    "/v2/organizations/webhook/secret": {
      "get": {
        "operationId": "OrganizationsController_getWebhookSecret",
        "summary": "Get webhook secret",
        "description": "Get webhook secret",
        "parameters": [
          {
            "name": "masked",
            "required": false,
            "in": "query",
            "description": "Whether to return a masked version of the secret",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Webhook secret",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookSecretResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Organizations",
          "internal"
        ]
      }
    },
    "/v2/organizations": {
      "get": {
        "operationId": "OrganizationsController_getAll",
        "summary": "Get all organizations for current user",
        "description": "Get all organizations for the current user",
        "parameters": [],
        "responses": {
          "200": {
            "description": "List of organizations",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrganizationDto"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Organizations",
          "internal"
        ]
      },
      "post": {
        "operationId": "OrganizationsController_create",
        "summary": "Create a new organization",
        "description": "Create a new organization",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "Organizations",
          "internal"
        ]
      }
    },
    "/v2/organizations/notify-limit": {
      "post": {
        "operationId": "OrganizationsController_notifyLimit",
        "summary": "Send limit notification email",
        "description": "Send limit notification email",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NotifyLimitDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Notification sent",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        },
        "tags": [
          "Organizations",
          "internal"
        ]
      }
    },
    "/v2/organizations/alerts/{alertId}": {
      "patch": {
        "operationId": "OrganizationsController_updateAlert",
        "summary": "Update alert received status",
        "description": "Update alert received status",
        "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"
          }
        },
        "tags": [
          "Organizations",
          "internal"
        ]
      },
      "delete": {
        "operationId": "OrganizationsController_removeAlert",
        "summary": "Remove a received alert",
        "description": "Remove a received alert",
        "parameters": [
          {
            "name": "alertId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Alert removed"
          }
        },
        "tags": [
          "Organizations",
          "internal"
        ]
      }
    },
    "/v2/organizations/{id}": {
      "get": {
        "operationId": "OrganizationsController_getById",
        "summary": "Get organization by ID",
        "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"
          }
        },
        "tags": [
          "Organizations",
          "internal"
        ]
      },
      "patch": {
        "operationId": "OrganizationsController_update",
        "summary": "Update organization (admin only)",
        "description": "Update an organization (admin only)",
        "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"
          }
        },
        "tags": [
          "Organizations",
          "internal"
        ]
      }
    },
    "/v2/users/me": {
      "patch": {
        "operationId": "UsersController_update",
        "summary": "Update current user organization",
        "description": "Update the current user's active organization",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "User updated successfully"
          }
        },
        "tags": [
          "Users",
          "internal"
        ]
      },
      "delete": {
        "operationId": "UsersController_deleteAccount",
        "summary": "Delete current user account",
        "description": "Soft delete the current user's account",
        "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"
          }
        },
        "tags": [
          "Users",
          "internal"
        ]
      }
    },
    "/v2/users/me/can-delete": {
      "get": {
        "operationId": "UsersController_canDelete",
        "summary": "Check if user can delete their account",
        "description": "Check if the current user can delete their account",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Returns whether the user can delete their account",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CanDeleteResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Users",
          "internal"
        ]
      }
    },
    "/v2/api-keys": {
      "get": {
        "operationId": "ApiKeysController_getAll",
        "summary": "List all API keys for the organization",
        "description": "List all API keys for the organization",
        "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"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "API Keys",
          "internal"
        ]
      },
      "post": {
        "operationId": "ApiKeysController_create",
        "summary": "Create a new API key",
        "description": "Create a new API key",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "API Keys",
          "internal"
        ]
      }
    },
    "/v2/api-keys/{id}": {
      "delete": {
        "operationId": "ApiKeysController_revoke",
        "summary": "Revoke an API key (admin only)",
        "description": "Revoke an API key",
        "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"
          }
        },
        "tags": [
          "API Keys",
          "internal"
        ]
      },
      "patch": {
        "operationId": "ApiKeysController_update",
        "summary": "Update an API key (admin only)",
        "description": "Update an API key",
        "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"
          }
        },
        "tags": [
          "API Keys",
          "internal"
        ]
      }
    },
    "/v2/organizations/{organizationId}/members/me": {
      "get": {
        "operationId": "UserOrganizationsController_getCurrentMembership",
        "summary": "Get current user's membership in the organization",
        "description": "Get current user's membership in the organization",
        "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"
          }
        },
        "tags": [
          "Organization Members",
          "internal"
        ]
      }
    },
    "/v2/organizations/{organizationId}/members": {
      "get": {
        "operationId": "UserOrganizationsController_getAllMembers",
        "summary": "List all members in the organization",
        "description": "List all members in the organization",
        "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"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Organization Members",
          "internal"
        ]
      }
    },
    "/v2/organizations/{organizationId}/members/{userId}": {
      "get": {
        "operationId": "UserOrganizationsController_getMember",
        "summary": "Get a specific member by user ID",
        "description": "Get a specific member by user ID",
        "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"
          }
        },
        "tags": [
          "Organization Members",
          "internal"
        ]
      },
      "patch": {
        "operationId": "UserOrganizationsController_updateMember",
        "summary": "Update a member's role",
        "description": "Update a member's role",
        "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"
          }
        },
        "tags": [
          "Organization Members",
          "internal"
        ]
      },
      "delete": {
        "operationId": "UserOrganizationsController_removeMember",
        "summary": "Remove a member from the organization",
        "description": "Remove a member from the organization",
        "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"
          }
        },
        "tags": [
          "Organization Members",
          "internal"
        ]
      }
    },
    "/v2/plans": {
      "get": {
        "operationId": "PlansController_getAll",
        "summary": "Get all available plans",
        "description": "Get all plans (protected)",
        "parameters": [],
        "responses": {
          "200": {
            "description": "All plans with their details",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/PlanSummaryDto"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Plans",
          "internal"
        ]
      }
    },
    "/v2/plans/type": {
      "get": {
        "operationId": "PlansController_get",
        "summary": "Get plan details by type",
        "description": "Get a specific plan by type",
        "parameters": [
          {
            "name": "type",
            "required": true,
            "in": "query",
            "schema": {
              "enum": [
                "creator",
                "scale",
                "growth",
                "hobbyist",
                "enterprise",
                "program"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Plan details with pricing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlanInfoDto"
                }
              }
            }
          }
        },
        "tags": [
          "Plans",
          "internal"
        ]
      }
    },
    "/v2/plans/limits": {
      "get": {
        "operationId": "PlansController_getLimits",
        "summary": "Get limits for current plan",
        "description": "Get limits for current organization's plan",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Plan limits",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlanLimitsDto"
                }
              }
            }
          }
        },
        "tags": [
          "Plans",
          "internal"
        ]
      }
    },
    "/v2/plans/enterprise/prices": {
      "get": {
        "operationId": "PlansController_getEnterpriseUsagePrices",
        "summary": "Get enterprise usage prices",
        "description": "Get enterprise usage prices",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Enterprise pricing details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnterprisePlanDto"
                }
              }
            }
          }
        },
        "tags": [
          "Plans",
          "internal"
        ]
      }
    },
    "/v2/plans/free/model-prices": {
      "get": {
        "operationId": "PlansController_getFreeTierModelPrices",
        "summary": "Get model prices for free tier",
        "description": "Get model prices for free tier",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Model prices for free tier",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ModelPriceDto"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Plans",
          "internal"
        ]
      }
    },
    "/v2/plans/check/lipsync-duration": {
      "get": {
        "operationId": "PlansController_checkLipsyncDuration",
        "summary": "Check if lipsync duration is within plan limits",
        "description": "Check if lipsync duration is allowed",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "Plans",
          "internal"
        ]
      }
    },
    "/v2/plans/check/file-size": {
      "get": {
        "operationId": "PlansController_checkFileSize",
        "summary": "Check if file size is within plan limits",
        "description": "Check if file size is allowed",
        "parameters": [
          {
            "name": "bytes",
            "required": true,
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Limit check result",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LimitCheckResultDto"
                }
              }
            }
          }
        },
        "tags": [
          "Plans",
          "internal"
        ]
      }
    },
    "/v2/agent/chat": {
      "post": {
        "operationId": "AgentController_chat",
        "summary": "Stream AI chat responses",
        "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"
          },
          "201": {
            "description": ""
          }
        },
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/agent/sessions": {
      "get": {
        "operationId": "AgentController_listSessions",
        "summary": "List sessions for a project",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "internal"
        ]
      },
      "post": {
        "operationId": "AgentController_createSession",
        "summary": "Create a new session",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/agent/sessions/{id}": {
      "get": {
        "operationId": "AgentController_getSession",
        "summary": "Get a single session",
        "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"
          }
        },
        "tags": [
          "internal"
        ]
      },
      "delete": {
        "operationId": "AgentController_deleteSession",
        "summary": "Delete a session",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Session ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "404": {
            "description": "Session not found"
          }
        },
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/agent/sessions/{id}/state": {
      "patch": {
        "operationId": "AgentController_updateState",
        "summary": "Update session state",
        "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"
          }
        },
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/agent/sessions/{id}/metadata": {
      "patch": {
        "operationId": "AgentController_updateMetadata",
        "summary": "Update session metadata",
        "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"
          }
        },
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/agent/sessions/{id}/complete": {
      "post": {
        "operationId": "AgentController_completeSession",
        "summary": "Mark session as completed",
        "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"
                }
              }
            }
          },
          "404": {
            "description": "Session not found"
          }
        },
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/agent/sessions/{id}/processing-start": {
      "post": {
        "operationId": "AgentController_startSessionProcessing",
        "summary": "Mark session as processing",
        "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"
                }
              }
            }
          },
          "404": {
            "description": "Session not found"
          }
        },
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/agent/sessions/{id}/messages": {
      "put": {
        "operationId": "AgentController_saveMessages",
        "summary": "Save messages to a session",
        "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"
          }
        },
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/agent/dubbing/transcribe": {
      "post": {
        "operationId": "AgentController_transcribe",
        "summary": "Transcribe audio using Whisper",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/agent/dubbing/translate": {
      "post": {
        "operationId": "AgentController_translate",
        "summary": "Translate transcript segments",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/auth/redirect-info": {
      "get": {
        "operationId": "AuthController_getRedirectInfo",
        "summary": "Get redirect info for authenticated user",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Redirect info for authenticated user",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RedirectInfoDto"
                }
              }
            }
          }
        },
        "tags": [
          "Auth",
          "internal"
        ]
      }
    },
    "/v2/plugin/version": {
      "get": {
        "operationId": "PluginController_getLatestVersion",
        "summary": "Get latest plugin version",
        "description": "Get the latest plugin version information for a specific plugin type.\nThis is a public endpoint - no authentication required.",
        "parameters": [
          {
            "name": "pluginType",
            "required": true,
            "in": "query",
            "schema": {
              "enum": [
                "premiere-pro"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Plugin version info",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PluginVersionInfoDto"
                }
              }
            }
          }
        },
        "tags": [
          "Plugin",
          "internal"
        ]
      }
    },
    "/v2/plugin/versions": {
      "get": {
        "operationId": "PluginController_getAllVersions",
        "summary": "Get all plugin versions",
        "description": "Get version information for all supported plugin types.\nThis is a public endpoint - no authentication required.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "All plugin version info"
          }
        },
        "tags": [
          "Plugin",
          "internal"
        ]
      }
    },
    "/v2/generate": {
      "post": {
        "operationId": "GenerateController_createGeneration",
        "parameters": [],
        "requestBody": {
          "required": true,
          "description": "Input for creating generation job",
          "content": {
            "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"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error - Failed to create or queue generation",
            "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"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Job status retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Generation"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - Invalid or missing authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationError"
                }
              }
            }
          },
          "404": {
            "description": "Job not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationError"
                }
              }
            }
          }
        },
        "tags": [
          "Generate"
        ]
      }
    },
    "/v2/generations": {
      "get": {
        "operationId": "GenerateController_getGenerations",
        "parameters": [
          {
            "name": "status",
            "required": false,
            "in": "query",
            "description": "Filter generations by status",
            "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",
        "summary": "Get all available models",
        "parameters": [],
        "responses": {
          "200": {
            "description": "List of models",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ModelDto"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Models"
        ]
      }
    },
    "/v2/models/public": {
      "get": {
        "operationId": "ModelsController_getPublic",
        "summary": "Get all publicly available models",
        "description": "Get publicly available models.\nReturns the same model names accepted by create-generation.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "List of models",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ModelDto"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Models",
          "internal"
        ]
      }
    },
    "/v2/generations/list": {
      "get": {
        "operationId": "GenerationsController_getAll",
        "summary": "List all generations for the organization",
        "description": "List all generations for the organization.\nUses /list suffix because GET /v2/generations is taken by the public API (GenerateController).",
        "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": "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"
                }
              }
            }
          }
        },
        "tags": [
          "Generations",
          "internal"
        ]
      }
    },
    "/v2/generations/estimate": {
      "post": {
        "operationId": "GenerationsController_estimateCost",
        "summary": "Estimate cost for a generation",
        "description": "Estimate cost for a generation",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "Generations"
        ]
      }
    },
    "/v2/generations/progress": {
      "get": {
        "operationId": "GenerationsController_getProgresses",
        "summary": "Get progress for multiple generations",
        "description": "Get progress for multiple generations",
        "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"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Generations",
          "internal"
        ]
      }
    },
    "/v2/generations/count": {
      "get": {
        "operationId": "GenerationsController_getCount",
        "summary": "Count generations for the organization",
        "description": "Count generations with optional filters",
        "parameters": [
          {
            "name": "status",
            "required": false,
            "in": "query",
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              ]
            }
          },
          {
            "name": "type",
            "required": false,
            "in": "query",
            "schema": {
              "enum": [
                "playground",
                "api"
              ],
              "type": "string"
            }
          },
          {
            "name": "source",
            "required": false,
            "in": "query",
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              ]
            }
          },
          {
            "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"
                }
              }
            }
          }
        },
        "tags": [
          "Generations",
          "internal"
        ]
      }
    },
    "/v2/generations/public/{id}": {
      "get": {
        "operationId": "GenerationsController_getPublic",
        "summary": "Get a public generation by ID",
        "description": "Get a public generation by ID (no auth required)",
        "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"
          }
        },
        "tags": [
          "Generations",
          "internal"
        ]
      }
    },
    "/v2/generations/{id}": {
      "get": {
        "operationId": "GenerationsController_getById",
        "summary": "Get a generation by ID",
        "description": "Get a generation by ID",
        "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"
          }
        },
        "tags": [
          "Generations"
        ]
      },
      "delete": {
        "operationId": "GenerationsController_delete",
        "summary": "Delete a generation",
        "description": "Delete a generation",
        "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"
          }
        },
        "tags": [
          "Generations",
          "internal"
        ]
      }
    },
    "/v2/generations/{id}/download": {
      "get": {
        "operationId": "GenerationsController_getDownloadUrl",
        "summary": "Get download URL for a generation",
        "description": "Get download URL for a generation",
        "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"
          }
        },
        "tags": [
          "Generations",
          "internal"
        ]
      }
    },
    "/v2/generations/{id}/thumbnail/upload-url": {
      "get": {
        "operationId": "GenerationsController_getThumbnailUploadUrl",
        "summary": "Get a signed URL for uploading a thumbnail for a generation",
        "description": "Get a signed URL for uploading a thumbnail for a generation",
        "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"
          }
        },
        "tags": [
          "Generations",
          "internal"
        ]
      }
    },
    "/v2/generations/{id}/thumbnail/complete": {
      "post": {
        "operationId": "GenerationsController_completeThumbnailUpload",
        "summary": "Complete thumbnail upload for a generation",
        "description": "Complete thumbnail upload and update generation record",
        "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"
          }
        },
        "tags": [
          "Generations",
          "internal"
        ]
      }
    },
    "/v2/generations/{id}/public": {
      "patch": {
        "operationId": "GenerationsController_makePublic",
        "summary": "Make a generation public",
        "description": "Make a generation public",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "Generations",
          "internal"
        ]
      }
    },
    "/v2/generations/{id}/output-file-name": {
      "patch": {
        "operationId": "GenerationsController_updateOutputFileName",
        "summary": "Update the output file name for a generation",
        "description": "Update the output file name for a generation",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "Generations",
          "internal"
        ]
      }
    },
    "/v2/generations/{id}/result": {
      "get": {
        "operationId": "GenerationsController_getGenerationResults",
        "summary": "Get the result of a completed generation job",
        "description": "Get the result of a completed generation job (legacy endpoint)",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Job ID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "token",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "302": {
            "description": "Generation result retrieved successfully"
          },
          "400": {
            "description": "Bad Request - Generation not completed"
          },
          "404": {
            "description": "Not Found - Generation not found"
          }
        },
        "tags": [
          "Generations",
          "internal"
        ]
      }
    },
    "/v2/generations/{id}/segment-result": {
      "get": {
        "operationId": "GenerationsController_getGenerationSegmentResults",
        "summary": "Get the segment result of a completed generation job",
        "description": "Get the segment result of a completed generation job (legacy endpoint)",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Job ID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "token",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "302": {
            "description": "Generation segment result retrieved successfully"
          },
          "400": {
            "description": "Bad Request - Generation not completed"
          },
          "404": {
            "description": "Not Found - Generation not found"
          }
        },
        "tags": [
          "Generations",
          "internal"
        ]
      }
    },
    "/v2/generations/{generationId}/feedback": {
      "post": {
        "operationId": "FeedbackController_submit",
        "summary": "Submit generation feedback",
        "description": "Submit feedback for a generation",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "Generation Feedback",
          "internal"
        ]
      },
      "get": {
        "operationId": "FeedbackController_get",
        "summary": "Get generation feedback",
        "description": "Get feedback for a generation",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "Generation Feedback",
          "internal"
        ]
      }
    },
    "/v2/usage": {
      "get": {
        "operationId": "UsageController_getUsage",
        "summary": "Get usage records for the organization",
        "description": "Get usage records for the current billing cycle",
        "parameters": [
          {
            "name": "type",
            "required": false,
            "in": "query",
            "schema": {
              "enum": [
                "generation",
                "integration"
              ],
              "type": "string"
            }
          },
          {
            "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"
                }
              }
            }
          }
        },
        "tags": [
          "Usage",
          "internal"
        ]
      }
    },
    "/v2/usage/export": {
      "get": {
        "operationId": "UsageController_exportUsageCsv",
        "summary": "Export usage records as CSV",
        "description": "Export usage records as CSV",
        "parameters": [
          {
            "name": "type",
            "required": false,
            "in": "query",
            "schema": {
              "enum": [
                "generation",
                "integration"
              ],
              "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": "CSV file with usage records",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "Usage",
          "internal"
        ]
      }
    },
    "/v2/usage/totals": {
      "get": {
        "operationId": "UsageController_getUsageTotals",
        "summary": "Get usage totals for the organization",
        "description": "Get usage totals for the current billing cycle",
        "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"
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Usage",
          "internal"
        ]
      }
    },
    "/v2/usage/comparison": {
      "get": {
        "operationId": "UsageController_getMonthToDateComparison",
        "summary": "Get month-to-date comparison with previous period",
        "description": "Get month-to-date comparison with previous period",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "Usage",
          "internal"
        ]
      }
    },
    "/v2/usage/active-jobs": {
      "get": {
        "operationId": "UsageController_getActiveJobCount",
        "summary": "Get count of active jobs",
        "description": "Get count of active jobs (processing or pending)",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Number of active jobs",
            "content": {
              "application/json": {
                "schema": {
                  "type": "number",
                  "example": 5
                }
              }
            }
          }
        },
        "tags": [
          "Usage",
          "internal"
        ]
      }
    },
    "/v2/billing": {
      "get": {
        "operationId": "BillingController_getBillingInfo",
        "summary": "Get billing information for the organization",
        "description": "Get current billing information for the organization",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Billing information",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillingInfoDto"
                }
              }
            }
          }
        },
        "tags": [
          "Billing",
          "internal"
        ]
      }
    },
    "/v2/billing/balance": {
      "get": {
        "operationId": "BillingController_getAccountBalance",
        "summary": "Get account balance (admin only)",
        "description": "Get Stripe account balance",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Account balance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountBalanceDto"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient permissions"
          }
        },
        "tags": [
          "Billing",
          "internal"
        ]
      }
    },
    "/v2/billing/portal": {
      "post": {
        "operationId": "BillingController_createBillingPortal",
        "summary": "Create billing portal session (admin only)",
        "description": "Create a Stripe billing portal session",
        "parameters": [],
        "responses": {
          "201": {
            "description": "Billing portal URL",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillingPortalResponseDto"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient permissions"
          }
        },
        "tags": [
          "Billing",
          "internal"
        ]
      }
    },
    "/v2/billing/checkout": {
      "post": {
        "operationId": "BillingController_createCheckoutSession",
        "summary": "Create checkout session (admin only)",
        "description": "Create a Stripe checkout session for a plan",
        "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"
          }
        },
        "tags": [
          "Billing",
          "internal"
        ]
      }
    },
    "/v2/billing/checkout/pilot": {
      "post": {
        "operationId": "BillingController_createPilotCheckoutSession",
        "summary": "Create pilot checkout session (owner only)",
        "description": "Create a Stripe checkout session for enterprise pilot",
        "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"
          }
        },
        "tags": [
          "Billing",
          "internal"
        ]
      }
    },
    "/v2/subscriptions": {
      "get": {
        "operationId": "SubscriptionController_getSubscriptionDetails",
        "summary": "Get subscription details for the organization",
        "description": "Get subscription details",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Subscription details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionDetailsDto"
                }
              }
            }
          }
        },
        "tags": [
          "Subscriptions",
          "internal"
        ]
      },
      "post": {
        "operationId": "SubscriptionController_createSubscription",
        "summary": "Create a new subscription",
        "description": "Create a new subscription",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSubscriptionDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Subscription created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        },
        "tags": [
          "Subscriptions",
          "internal"
        ]
      },
      "patch": {
        "operationId": "SubscriptionController_updateSubscription",
        "summary": "Update subscription (upgrade or downgrade)",
        "description": "Update subscription (upgrade or downgrade)",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "Subscriptions",
          "internal"
        ]
      }
    },
    "/v2/subscriptions/payment-method": {
      "get": {
        "operationId": "SubscriptionController_hasPaymentMethod",
        "summary": "Check if organization has a payment method",
        "description": "Check if organization has a payment method",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Whether organization has a payment method",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        },
        "tags": [
          "Subscriptions",
          "internal"
        ]
      }
    },
    "/v2/subscriptions/recover": {
      "post": {
        "operationId": "SubscriptionController_recoverFailedPayment",
        "summary": "Recover failed subscription payment",
        "description": "Recover failed subscription payment",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Recovery result",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecoverPaymentResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Subscriptions",
          "internal"
        ]
      }
    },
    "/v2/subscriptions/downgrade": {
      "delete": {
        "operationId": "SubscriptionController_cancelDowngrade",
        "summary": "Cancel pending subscription downgrade",
        "description": "Cancel pending downgrade",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Downgrade cancelled"
          }
        },
        "tags": [
          "Subscriptions",
          "internal"
        ]
      }
    },
    "/v2/subscriptions/cancellation": {
      "delete": {
        "operationId": "SubscriptionController_cancelPendingCancellation",
        "summary": "Cancel pending subscription cancellation",
        "description": "Cancel pending subscription cancellation",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Cancellation cancelled"
          }
        },
        "tags": [
          "Subscriptions",
          "internal"
        ]
      }
    },
    "/v2/subscription/cancellation-feedback": {
      "post": {
        "operationId": "CancellationFeedbackController_submit",
        "summary": "Submit cancellation feedback",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "Subscription",
          "internal"
        ]
      }
    },
    "/v2/integrations": {
      "get": {
        "operationId": "IntegrationsController_getAll",
        "summary": "List all integrations for the organization",
        "description": "List all integrations for the organization",
        "parameters": [],
        "responses": {
          "200": {
            "description": "List of integrations",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IntegrationDto"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Integrations",
          "internal"
        ]
      },
      "post": {
        "operationId": "IntegrationsController_create",
        "summary": "Connect a new integration",
        "description": "Connect a new integration for the organization",
        "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"
          }
        },
        "tags": [
          "Integrations",
          "internal"
        ]
      }
    },
    "/v2/integrations/{id}": {
      "delete": {
        "operationId": "IntegrationsController_delete",
        "summary": "Disconnect an integration",
        "description": "Disconnect an integration",
        "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"
          }
        },
        "tags": [
          "Integrations",
          "internal"
        ]
      }
    },
    "/v2/integrations/voices": {
      "get": {
        "operationId": "IntegrationsController_getVoices",
        "summary": "Get available voices from connected integrations",
        "description": "Get available voices for the organization",
        "parameters": [],
        "responses": {
          "200": {
            "description": "List of available voices",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VoiceDto"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Integrations",
          "internal"
        ]
      }
    },
    "/v2/integrations/voices/guest": {
      "get": {
        "operationId": "IntegrationsController_getVoicesGuest",
        "summary": "Get available voices for guest users",
        "description": "Get available voices for guest (unauthenticated) users",
        "parameters": [],
        "responses": {
          "200": {
            "description": "List of available voices for guests",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VoiceDto"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        },
        "tags": [
          "Integrations",
          "internal"
        ]
      }
    },
    "/v2/integrations/voices/count": {
      "get": {
        "operationId": "IntegrationsController_getClonedVoicesCount",
        "summary": "Get count of cloned voices",
        "description": "Get count of cloned voices for the organization",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Number of cloned voices",
            "content": {
              "application/json": {
                "schema": {
                  "type": "number",
                  "example": 5
                }
              }
            }
          }
        },
        "tags": [
          "Integrations",
          "internal"
        ]
      }
    },
    "/v2/integrations/tts": {
      "post": {
        "operationId": "IntegrationsController_textToSpeech",
        "summary": "Generate text-to-speech audio",
        "description": "Generate text-to-speech audio",
        "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"
          }
        },
        "tags": [
          "Integrations",
          "internal"
        ]
      }
    },
    "/v2/integrations/voices/clone": {
      "post": {
        "operationId": "IntegrationsController_cloneVoice",
        "summary": "Clone a custom voice from audio samples",
        "description": "Clone a custom voice",
        "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"
          }
        },
        "tags": [
          "Integrations",
          "internal"
        ]
      }
    },
    "/v2/integrations/voices/{id}": {
      "delete": {
        "operationId": "IntegrationsController_deleteVoice",
        "summary": "Delete a cloned voice",
        "description": "Delete a cloned voice",
        "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"
          }
        },
        "tags": [
          "Integrations",
          "internal"
        ]
      }
    },
    "/v2/batch": {
      "post": {
        "operationId": "BatchController_createBatch",
        "summary": "Create a new batch job",
        "description": "Creates a new batch processing job with an input file",
        "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"
          }
        },
        "tags": [
          "Batch"
        ]
      },
      "get": {
        "operationId": "BatchController_listBatches",
        "summary": "List batches",
        "description": "Fetch batch processing requests from the user's account",
        "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"
          }
        },
        "tags": [
          "Batch"
        ]
      }
    },
    "/v2/batch/{id}": {
      "get": {
        "operationId": "BatchController_getBatch",
        "summary": "Get batch details",
        "description": "Fetch the details, status, and progress of a specific batch",
        "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"
          }
        },
        "tags": [
          "Batch"
        ]
      }
    },
    "/v2/batches/{id}/result": {
      "get": {
        "operationId": "BatchResultController_getBatchResult",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/storage/upload-url": {
      "get": {
        "operationId": "FileStorageController_getUploadUrl",
        "summary": "Get a pre-signed upload URL",
        "description": "Get a pre-signed upload URL",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "File Storage",
          "internal"
        ]
      }
    },
    "/v2/storage/signed-url": {
      "get": {
        "operationId": "FileStorageController_getSignedUrl",
        "summary": "Get a signed URL for a file",
        "description": "Get a signed URL for a previously uploaded file",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "File Storage",
          "internal"
        ]
      }
    },
    "/v2/storage/multipart": {
      "post": {
        "operationId": "FileStorageController_initiateMultipartUpload",
        "summary": "Initiate a multipart upload",
        "description": "Initiate a multipart upload",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "File Storage",
          "internal"
        ]
      },
      "delete": {
        "operationId": "FileStorageController_abortMultipartUpload",
        "summary": "Abort a multipart upload",
        "description": "Abort a multipart upload",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AbortMultipartUploadDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Multipart upload aborted"
          }
        },
        "tags": [
          "File Storage",
          "internal"
        ]
      }
    },
    "/v2/storage/multipart/complete": {
      "post": {
        "operationId": "FileStorageController_completeMultipartUpload",
        "summary": "Complete a multipart upload",
        "description": "Complete a multipart upload",
        "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"
                }
              }
            }
          },
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MultipartCompleteResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "File Storage",
          "internal"
        ]
      }
    },
    "/v2/storage/multipart/resumable": {
      "post": {
        "operationId": "FileStorageController_initiateResumableMultipartUpload",
        "summary": "Initiate a resumable multipart upload",
        "description": "Initiate a resumable multipart upload (without presigned URLs)",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "File Storage",
          "internal"
        ]
      }
    },
    "/v2/storage/multipart/parts": {
      "get": {
        "operationId": "FileStorageController_listUploadedParts",
        "summary": "List uploaded parts for a multipart upload",
        "description": "List already uploaded parts for resuming",
        "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"
          }
        },
        "tags": [
          "File Storage",
          "internal"
        ]
      }
    },
    "/v2/storage/multipart/urls": {
      "get": {
        "operationId": "FileStorageController_getPresignedUrlsForParts",
        "summary": "Get presigned URLs for specific parts",
        "description": "Get presigned URLs for specific part numbers (for resuming)",
        "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"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "File Storage",
          "internal"
        ]
      }
    },
    "/v2/storage/guest-upload-url": {
      "get": {
        "operationId": "FileStorageController_getGuestUploadUrl",
        "summary": "Get upload URL for guest users (rate limited)",
        "description": "Get an upload URL for guest users (rate limited)\nRate limit: 5 requests per hour per IP",
        "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": {
              "enum": [
                "videos",
                "audio",
                "faces",
                "thumbnails"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Guest upload URL",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GuestUploadUrlResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "File Storage",
          "internal"
        ]
      }
    },
    "/v2/storage/copy-guest": {
      "post": {
        "operationId": "FileStorageController_copyGuestAssetToUserBucket",
        "summary": "Copy guest asset to user bucket",
        "description": "Copy guest/sample asset to user's asset location",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CopyGuestAssetDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Asset copied successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CopyGuestAssetResponseDto"
                }
              }
            }
          },
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CopyGuestAssetResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "File Storage",
          "internal"
        ]
      }
    },
    "/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",
        "summary": "Detect platform from URL",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "Platform Import",
          "internal"
        ]
      }
    },
    "/v2/platform-import/metadata": {
      "get": {
        "operationId": "PlatformImportController_getMetadata",
        "summary": "Get metadata for a URL",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "Platform Import",
          "internal"
        ]
      }
    },
    "/v2/platform-import/start": {
      "post": {
        "operationId": "PlatformImportController_start",
        "summary": "Start an import job",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "Platform Import",
          "internal"
        ]
      }
    },
    "/v2/platform-import/status": {
      "get": {
        "operationId": "PlatformImportController_getStatus",
        "summary": "Get import job status",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "Platform Import",
          "internal"
        ]
      }
    },
    "/v2/platform-import": {
      "get": {
        "operationId": "PlatformImportController_list",
        "summary": "List import jobs",
        "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": {
              "enum": [
                "queued",
                "downloading",
                "processing",
                "completed",
                "failed"
              ],
              "type": "string"
            }
          },
          {
            "name": "platform",
            "required": false,
            "in": "query",
            "schema": {
              "enum": [
                "youtube",
                "tiktok",
                "dropbox"
              ],
              "type": "string"
            }
          },
          {
            "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"
                }
              }
            }
          }
        },
        "tags": [
          "Platform Import",
          "internal"
        ]
      }
    },
    "/v2/platform-import/cancel": {
      "post": {
        "operationId": "PlatformImportController_cancel",
        "summary": "Cancel an import job",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "Platform Import",
          "internal"
        ]
      }
    },
    "/v2/platform-import/retry": {
      "post": {
        "operationId": "PlatformImportController_retry",
        "summary": "Retry a failed import job",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "Platform Import",
          "internal"
        ]
      }
    },
    "/v2/projects": {
      "get": {
        "operationId": "ProjectsController_getAll",
        "summary": "List all projects for the organization",
        "description": "List all projects for the organization",
        "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",
              "enum": [
                "updatedAt",
                "name"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated list of projects",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedProjectsResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Projects",
          "internal"
        ]
      },
      "post": {
        "operationId": "ProjectsController_create",
        "summary": "Create a new project",
        "description": "Create a new project",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProjectDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Project created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectDto"
                }
              }
            }
          }
        },
        "tags": [
          "Projects",
          "internal"
        ]
      }
    },
    "/v2/projects/plugin": {
      "post": {
        "operationId": "ProjectsController_getOrCreateFromPlugin",
        "summary": "Get or create a project from a plugin",
        "description": "Get or create a project from a plugin (e.g., Adobe Premiere).\nUses deterministic ID derivation to ensure idempotent behavior.",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "Projects",
          "internal"
        ]
      }
    },
    "/v2/projects/{id}": {
      "get": {
        "operationId": "ProjectsController_get",
        "summary": "Get a project by ID",
        "description": "Get a project by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Project ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Project details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectDto"
                }
              }
            }
          },
          "404": {
            "description": "Project not found"
          }
        },
        "tags": [
          "Projects",
          "internal"
        ]
      },
      "patch": {
        "operationId": "ProjectsController_update",
        "summary": "Update a project",
        "description": "Update a project",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Project ID",
            "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"
          }
        },
        "tags": [
          "Projects",
          "internal"
        ]
      },
      "delete": {
        "operationId": "ProjectsController_delete",
        "summary": "Delete a project",
        "description": "Delete a project",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Project ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Project deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Project not found"
          }
        },
        "tags": [
          "Projects",
          "internal"
        ]
      }
    },
    "/v2/projects/{id}/last-generation": {
      "get": {
        "operationId": "ProjectsController_getLastGeneration",
        "summary": "Get the last generation for a project",
        "description": "Get the last generation for a project",
        "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"
          }
        },
        "tags": [
          "Projects",
          "internal"
        ]
      }
    },
    "/v2/device-auth/start": {
      "post": {
        "operationId": "DeviceAuthController_start",
        "summary": "Start device authentication flow",
        "description": "Start device authentication flow",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/device-auth/approve": {
      "post": {
        "operationId": "DeviceAuthController_approve",
        "summary": "Approve device authentication",
        "description": "Approve device authentication with user code",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/device-auth/poll": {
      "get": {
        "operationId": "DeviceAuthController_poll",
        "summary": "Poll device authentication status",
        "description": "Poll for device authentication status",
        "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"
                }
              }
            }
          }
        },
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/device-auth/session": {
      "get": {
        "operationId": "DeviceAuthController_getSession",
        "summary": "Get session information",
        "description": "Get session information using session token from context\nReturns null if session is invalid or doesn't exist",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Session information or null",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceAuthSessionResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/oauth/authorize": {
      "get": {
        "operationId": "OAuthController_authorize",
        "summary": "OAuth authorization endpoint",
        "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": {
          "200": {
            "description": ""
          },
          "302": {
            "description": "Redirects with auth code or to login"
          },
          "400": {
            "description": "Invalid parameters"
          }
        },
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/oauth/token": {
      "post": {
        "operationId": "OAuthController_token",
        "summary": "OAuth token endpoint",
        "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"
          }
        },
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/oauth/register": {
      "post": {
        "operationId": "OAuthController_register",
        "summary": "Dynamic client registration (RFC 7591)",
        "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"
          }
        },
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/oauth/revoke": {
      "post": {
        "operationId": "OAuthController_revoke",
        "summary": "Token revocation (RFC 7009)",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RevokeBodyDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Token revoked (always returns 200)"
          }
        },
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/oauth/userinfo": {
      "get": {
        "operationId": "OAuthController_userinfo",
        "summary": "Get user info for valid OAuth token",
        "parameters": [],
        "responses": {
          "200": {
            "description": "User info",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserinfoResponseDto"
                }
              }
            }
          },
          "401": {
            "description": "Invalid token"
          }
        },
        "tags": [
          "internal"
        ]
      }
    },
    "/v2/invitations": {
      "get": {
        "operationId": "InvitationsController_getAll",
        "summary": "Get all invitations for the organization",
        "description": "Get all invitations for the organization",
        "parameters": [
          {
            "name": "status",
            "required": false,
            "in": "query",
            "schema": {
              "enum": [
                "pending",
                "accepted",
                "expired"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of invitations",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InvitationListItemDto"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invitations",
          "internal"
        ]
      },
      "post": {
        "operationId": "InvitationsController_invite",
        "summary": "Create and send invitations",
        "description": "Create and send invitations (admin only)",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInvitationsDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Invitations created"
          },
          "400": {
            "description": "Bad request"
          }
        },
        "tags": [
          "Invitations",
          "internal"
        ]
      }
    },
    "/v2/invitations/code/{code}": {
      "get": {
        "operationId": "InvitationsController_getByCode",
        "summary": "Get an invitation by code",
        "description": "Get an invitation by code",
        "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"
          }
        },
        "tags": [
          "Invitations",
          "internal"
        ]
      }
    },
    "/v2/invitations/{id}": {
      "get": {
        "operationId": "InvitationsController_getById",
        "summary": "Get an invitation by ID",
        "description": "Get an invitation by ID",
        "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"
          }
        },
        "tags": [
          "Invitations",
          "internal"
        ]
      },
      "patch": {
        "operationId": "InvitationsController_update",
        "summary": "Update invitation role",
        "description": "Update an invitation role (admin only)",
        "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"
          }
        },
        "tags": [
          "Invitations",
          "internal"
        ]
      },
      "delete": {
        "operationId": "InvitationsController_delete",
        "summary": "Delete an invitation",
        "description": "Delete an invitation (admin only)",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Invitation deleted"
          },
          "404": {
            "description": "Invitation not found"
          }
        },
        "tags": [
          "Invitations",
          "internal"
        ]
      }
    },
    "/v2/invitations/accept": {
      "post": {
        "operationId": "InvitationsController_accept",
        "summary": "Accept an invitation",
        "description": "Accept an invitation",
        "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"
                }
              }
            }
          },
          "201": {
            "description": ""
          },
          "400": {
            "description": "Bad request"
          }
        },
        "tags": [
          "Invitations",
          "internal"
        ]
      }
    },
    "/v2/invitations/{id}/resend": {
      "post": {
        "operationId": "InvitationsController_resend",
        "summary": "Resend an invitation",
        "description": "Resend an invitation (admin only)",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Invitation resent"
          },
          "404": {
            "description": "Invitation not found"
          }
        },
        "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": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EstimatedGenerationCost"
                  }
                }
              }
            }
          },
          "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/support": {
      "post": {
        "operationId": "SupportController_submitRequest",
        "summary": "Submit a support request",
        "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"
          }
        },
        "tags": [
          "Support",
          "internal"
        ]
      }
    },
    "/v2/user-onboardings/type": {
      "get": {
        "operationId": "UserOnboardingsController_getByType",
        "summary": "Get onboarding by type",
        "description": "Get a specific onboarding by type for the current user",
        "parameters": [
          {
            "name": "type",
            "required": true,
            "in": "query",
            "schema": {
              "enum": [
                "referral",
                "tools",
                "adobePluginNps",
                "studioLiteNps"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Onboarding record",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserOnboardingDto"
                }
              }
            }
          }
        },
        "tags": [
          "User Onboardings",
          "internal"
        ]
      }
    },
    "/v2/user-onboardings": {
      "get": {
        "operationId": "UserOnboardingsController_get",
        "summary": "Get onboarding (deprecated)",
        "description": "Get onboarding for the current user (legacy - returns first record)",
        "deprecated": true,
        "parameters": [],
        "responses": {
          "200": {
            "description": "Onboarding record",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserOnboardingDto"
                }
              }
            }
          }
        },
        "tags": [
          "User Onboardings",
          "internal"
        ]
      },
      "post": {
        "operationId": "UserOnboardingsController_create",
        "summary": "Create user onboarding",
        "description": "Create a new user onboarding record",
        "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"
                }
              }
            }
          }
        },
        "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": [
          "internal"
        ]
      }
    }
  },
  "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": [],
  "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",
                  "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)$"
                },
                "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",
                    "PLATFORM_IMPORT",
                    "PLUGIN_PREMIERE_FILE",
                    "PLUGIN_PREMIERE_TIMELINE_SELECTION"
                  ],
                  "nullable": true
                },
                "durationSeconds": {
                  "type": "number",
                  "nullable": true
                },
                "thumbnailUrl": {
                  "type": "string",
                  "nullable": true
                },
                "visibility": {
                  "type": "string",
                  "enum": [
                    "USER",
                    "ORGANIZATION"
                  ]
                },
                "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)$",
                  "nullable": true
                },
                "apiKeyId": {
                  "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
                },
                "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)$"
                },
                "width": {
                  "type": "number",
                  "nullable": true
                },
                "height": {
                  "type": "number",
                  "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",
            "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"
          },
          "type": {
            "type": "string",
            "enum": [
              "AUDIO",
              "VIDEO",
              "IMAGE"
            ]
          },
          "inputType": {
            "type": "string",
            "enum": [
              "UPLOAD",
              "URL",
              "RECORD",
              "TTS",
              "EXTRACT",
              "PLATFORM_IMPORT",
              "PLUGIN_PREMIERE_FILE",
              "PLUGIN_PREMIERE_TIMELINE_SELECTION"
            ]
          },
          "thumbnailUrl": {
            "type": "string",
            "format": "uri",
            "nullable": true
          },
          "size": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "format": {
            "type": "string"
          },
          "durationSeconds": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "width": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "height": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "url",
          "type",
          "size"
        ]
      },
      "AssetDto": {
        "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)$"
          },
          "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",
              "PLATFORM_IMPORT",
              "PLUGIN_PREMIERE_FILE",
              "PLUGIN_PREMIERE_TIMELINE_SELECTION"
            ],
            "nullable": true
          },
          "durationSeconds": {
            "type": "number",
            "nullable": true
          },
          "thumbnailUrl": {
            "type": "string",
            "nullable": true
          },
          "visibility": {
            "type": "string",
            "enum": [
              "USER",
              "ORGANIZATION"
            ]
          },
          "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)$",
            "nullable": true
          },
          "apiKeyId": {
            "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
          },
          "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)$"
          },
          "width": {
            "type": "number",
            "nullable": true
          },
          "height": {
            "type": "number",
            "nullable": true
          }
        },
        "required": [
          "id",
          "createdAt",
          "updatedAt",
          "deletedAt",
          "name",
          "url",
          "size",
          "format",
          "type",
          "inputType",
          "durationSeconds",
          "thumbnailUrl",
          "visibility",
          "userId",
          "apiKeyId",
          "organizationId",
          "width",
          "height"
        ]
      },
      "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": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "size": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "format": {
            "type": "string",
            "minLength": 1
          },
          "width": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "height": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          }
        }
      },
      "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"
          },
          "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": {
            "nullable": true,
            "description": "Scene boundaries",
            "items": {
              "type": "array"
            },
            "type": "array"
          },
          "transcript": {
            "type": "string",
            "nullable": true,
            "description": "Transcript text"
          },
          "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"
          },
          "faceDetectionUrl": {
            "type": "string"
          },
          "activeSpeakerUrl": {
            "type": "string"
          },
          "sceneDetectionUrl": {
            "type": "string"
          },
          "scenes": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "type": "number"
              }
            }
          },
          "transcript": {
            "type": "string"
          }
        },
        "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"
              }
            }
          }
        },
        "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",
            "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)$"
          },
          "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"
            ],
            "nullable": true
          },
          "plan": {
            "type": "string",
            "enum": [
              "hobbyist",
              "creator",
              "growth",
              "scale",
              "enterprise",
              "program"
            ],
            "nullable": true
          },
          "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
              },
              "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"
                ],
                "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"
                  },
                  "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"
                ],
                "nullable": true
              }
            },
            "required": [
              "concurrencyOverride",
              "alertsReceived",
              "emailsReceived",
              "enterprisePilotAcceptedAt",
              "enterprisePilotExpiresAt",
              "startupBalanceCents",
              "startupBalanceExpiresAt",
              "startupProgramType",
              "aescriptsBalanceCents",
              "aescriptsCreditedAt",
              "appliedBalanceCents",
              "settings"
            ],
            "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
          },
          "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"
        ]
      },
      "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"
              },
              "concurrency": {
                "type": "number"
              },
              "outputLength": {
                "type": "number"
              },
              "seats": {
                "type": "number"
              },
              "voiceClone": {
                "type": "number"
              },
              "fileSize": {
                "type": "number"
              },
              "modelLimits": {
                "type": "object",
                "propertyNames": {
                  "type": "string",
                  "enum": [
                    "lipsync-1.9.0-beta",
                    "lipsync-2",
                    "lipsync-2-pro",
                    "lipsync-2-mini",
                    "lipsync-reed",
                    "react-1",
                    "studio-1",
                    "sync-3",
                    "react-2"
                  ]
                },
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "outputDuration": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "outputDuration"
                  ]
                }
              }
            }
          }
        },
        "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"
              },
              "concurrency": {
                "type": "number"
              },
              "outputLength": {
                "type": "number"
              },
              "seats": {
                "type": "number"
              },
              "voiceClone": {
                "type": "number"
              },
              "fileSize": {
                "type": "number"
              },
              "modelLimits": {
                "type": "object",
                "propertyNames": {
                  "type": "string",
                  "enum": [
                    "lipsync-1.9.0-beta",
                    "lipsync-2",
                    "lipsync-2-pro",
                    "lipsync-2-mini",
                    "lipsync-reed",
                    "react-1",
                    "studio-1",
                    "sync-3",
                    "react-2"
                  ]
                },
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "outputDuration": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "outputDuration"
                  ]
                }
              }
            }
          },
          "unitAmount": {
            "type": "number"
          }
        },
        "required": [
          "description",
          "features",
          "priority",
          "limits",
          "unitAmount"
        ]
      },
      "PlanLimitsDto": {
        "type": "object",
        "properties": {
          "billingThreshold": {
            "type": "number"
          },
          "concurrency": {
            "type": "number"
          },
          "outputLength": {
            "type": "number"
          },
          "seats": {
            "type": "number"
          },
          "voiceClone": {
            "type": "number"
          },
          "fileSize": {
            "type": "number"
          },
          "modelLimits": {
            "type": "object",
            "propertyNames": {
              "type": "string",
              "enum": [
                "lipsync-1.9.0-beta",
                "lipsync-2",
                "lipsync-2-pro",
                "lipsync-2-mini",
                "lipsync-reed",
                "react-1",
                "studio-1",
                "sync-3",
                "react-2"
              ]
            },
            "additionalProperties": {
              "type": "object",
              "properties": {
                "outputDuration": {
                  "type": "number"
                }
              },
              "required": [
                "outputDuration"
              ]
            }
          }
        },
        "required": [
          "billingThreshold",
          "concurrency",
          "outputLength",
          "seats",
          "voiceClone",
          "fileSize",
          "modelLimits"
        ]
      },
      "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": {
            "type": "string",
            "enum": [
              "creator",
              "scale",
              "growth",
              "hobbyist",
              "enterprise",
              "program"
            ]
          },
          "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"
          },
          "faceImageUrl": {
            "type": "string",
            "nullable": true,
            "description": "Face image URL"
          },
          "feedbackType": {
            "type": "string",
            "nullable": true,
            "enum": [
              "like",
              "dislike"
            ],
            "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",
            "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"
          },
          "metadata": {
            "nullable": true,
            "description": "Session metadata",
            "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"
          },
          "faceImageUrl": {
            "type": "string",
            "nullable": true,
            "description": "Face image URL"
          },
          "feedback": {
            "type": "string",
            "nullable": true,
            "description": "User feedback about the lipsync experience"
          },
          "feedbackType": {
            "type": "string",
            "nullable": true,
            "enum": [
              "like",
              "dislike"
            ],
            "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"
          }
        },
        "required": [
          "activeOrganizationId",
          "userOrgCount"
        ]
      },
      "PluginVersionInfoDto": {
        "type": "object",
        "properties": {
          "pluginType": {
            "type": "string",
            "enum": [
              "premiere-pro"
            ]
          },
          "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",
            "example": true,
            "description": "Whether to use asd-2"
          },
          "frame_number": {
            "type": "number",
            "example": 123,
            "description": "Frame number selected for speaker selection"
          },
          "coordinates": {
            "example": [
              10,
              20
            ],
            "description": "reference coordinates in the specified frame_number for speaker selection",
            "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. only works for face based models.",
            "example": "happy",
            "default": "neutral"
          },
          "model_mode": {
            "type": "string",
            "enum": [
              "lips",
              "face",
              "head",
              "lipsync",
              "emotion",
              "talking_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
          },
          "active_speaker_detection": {
            "description": "Active speaker detection configuration",
            "allOf": [
              {
                "$ref": "#/components/schemas/ActiveSpeaker"
              }
            ]
          },
          "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"
        ]
      },
      "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",
              "react-1"
            ],
            "example": "lipsync-1.9.0-beta"
          },
          "input": {
            "type": "array",
            "description": "Array of input objects. Must include one video input and either an audio or text input.",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/VideoInputItem",
                  "title": "Video Input"
                },
                {
                  "$ref": "#/components/schemas/AudioInputItem",
                  "title": "Audio Input"
                },
                {
                  "$ref": "#/components/schemas/TextInputItem",
                  "title": "Text Input"
                }
              ]
            },
            "example": [
              {
                "type": "video",
                "url": "https://synchlabs-public.s3.us-west-2.amazonaws.com/david_demo_shortvid-03a10044-7741-4cfc-816a-5bccd392d1ee.mp4"
              },
              {
                "type": "audio",
                "url": "https://synchlabs-public.s3.us-west-2.amazonaws.com/david_demo_shortaud-27623a4f-edab-4c6a-8383-871b18961a4a.wav"
              }
            ]
          },
          "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"
            }
          },
          "webhookUrl": {
            "type": "string",
            "description": "webhook url for generation status updates. once the generation completes we will send a POST request to the webhook url with the generation data.",
            "example": "https://your-server.com/webhook"
          },
          "outputFileName": {
            "type": "string",
            "description": "filename for the generated output. Only alphanumeric characters, and underscores, upto 255 characters are allowed.",
            "example": "generated_video.mp4"
          }
        },
        "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": {
            "type": "string",
            "description": "The status of the generation.",
            "enum": [
              "PENDING",
              "PROCESSING",
              "COMPLETED",
              "FAILED",
              "REJECTED"
            ]
          },
          "model": {
            "type": "string",
            "description": "The name of the model used for generation."
          },
          "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."
          },
          "error": {
            "type": "string",
            "description": "The error message if the generation failed."
          },
          "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."
          }
        },
        "required": [
          "message",
          "error",
          "statusCode"
        ]
      },
      "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"
          },
          "deprecatedAt": {
            "type": "string",
            "nullable": true,
            "description": "Deprecation timestamp if deprecated"
          }
        },
        "required": [
          "id",
          "name",
          "type",
          "version",
          "description",
          "deprecatedAt"
        ]
      },
      "PaginatedGenerationsResponseDto__schema0": {
        "anyOf": [
          {
            "type": "string",
            "nullable": true
          },
          {
            "type": "number",
            "nullable": true
          },
          {
            "type": "boolean",
            "nullable": true
          },
          {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaginatedGenerationsResponseDto__schema0"
            },
            "nullable": true
          },
          {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "$ref": "#/components/schemas/PaginatedGenerationsResponseDto__schema0"
            },
            "nullable": true
          }
        ]
      },
      "PaginatedGenerationsResponseDto": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "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)$"
                },
                "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)$"
                },
                "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)$",
                  "nullable": true
                },
                "apiKeyId": {
                  "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
                },
                "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"
                    },
                    "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",
                        "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": {
                        "type": "string",
                        "enum": [
                          "video",
                          "audio",
                          "text"
                        ]
                      },
                      "refId": {
                        "type": "string"
                      },
                      "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",
                  "format": "uri",
                  "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"
                        }
                      ]
                    },
                    "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"
                            },
                            "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"
                        }
                      ]
                    },
                    "occlusion_detection_enabled": {
                      "type": "boolean"
                    },
                    "reasoning_enabled": {
                      "type": "boolean"
                    },
                    "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",
                      "propertyNames": {
                        "type": "string"
                      },
                      "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"
                              },
                              "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"
                          }
                        }
                      }
                    },
                    "required": [
                      "audioInput"
                    ]
                  },
                  "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",
                  "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
                },
                "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"
              ]
            }
          },
          "nextCursor": {
            "type": "string"
          },
          "totalCount": {
            "type": "number"
          }
        },
        "required": [
          "items",
          "totalCount"
        ]
      },
      "EstimateCostDto": {
        "type": "object",
        "properties": {
          "model": {
            "type": "string",
            "minLength": 1
          },
          "duration": {
            "type": "number",
            "minimum": 0
          },
          "fps": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "reasoningEnabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "model",
          "duration"
        ]
      },
      "EstimateCostResponseDto": {
        "type": "object",
        "properties": {
          "estimatedFrameCount": {
            "type": "number"
          },
          "estimatedGenerationCost": {
            "type": "number"
          }
        },
        "required": [
          "estimatedFrameCount",
          "estimatedGenerationCost"
        ]
      },
      "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",
            "nullable": true
          },
          {
            "type": "number",
            "nullable": true
          },
          {
            "type": "boolean",
            "nullable": true
          },
          {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicGenerationResponseDto__schema0"
            },
            "nullable": true
          },
          {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "$ref": "#/components/schemas/PublicGenerationResponseDto__schema0"
            },
            "nullable": true
          }
        ]
      },
      "PublicGenerationResponseDto": {
        "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)$"
          },
          "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)$"
          },
          "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)$",
            "nullable": true
          },
          "apiKeyId": {
            "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
          },
          "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"
              },
              "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
              }
            }
          },
          "modelName": {
            "type": "string"
          },
          "inputs": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "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)$"
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "video",
                    "audio",
                    "text"
                  ]
                },
                "refId": {
                  "type": "string"
                },
                "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",
            "format": "uri",
            "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"
                  }
                ]
              },
              "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"
                      },
                      "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"
                  }
                ]
              },
              "occlusion_detection_enabled": {
                "type": "boolean"
              },
              "reasoning_enabled": {
                "type": "boolean"
              },
              "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",
                "propertyNames": {
                  "type": "string"
                },
                "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"
                        },
                        "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"
                    }
                  }
                }
              },
              "required": [
                "audioInput"
              ]
            },
            "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",
            "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
          },
          "outputFileName": {
            "type": "string",
            "nullable": true
          },
          "outputExtension": {
            "type": "string",
            "nullable": true
          },
          "videoInputUrl": {
            "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",
            "nullable": true
          },
          {
            "type": "number",
            "nullable": true
          },
          {
            "type": "boolean",
            "nullable": true
          },
          {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GenerationDto__schema0"
            },
            "nullable": true
          },
          {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "$ref": "#/components/schemas/GenerationDto__schema0"
            },
            "nullable": true
          }
        ]
      },
      "GenerationDto": {
        "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)$"
          },
          "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)$"
          },
          "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)$",
            "nullable": true
          },
          "apiKeyId": {
            "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
          },
          "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"
              },
              "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
              }
            }
          },
          "modelName": {
            "type": "string"
          },
          "inputs": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "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)$"
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "video",
                    "audio",
                    "text"
                  ]
                },
                "refId": {
                  "type": "string"
                },
                "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",
            "format": "uri",
            "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"
                  }
                ]
              },
              "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"
                      },
                      "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"
                  }
                ]
              },
              "occlusion_detection_enabled": {
                "type": "boolean"
              },
              "reasoning_enabled": {
                "type": "boolean"
              },
              "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",
                "propertyNames": {
                  "type": "string"
                },
                "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"
                        },
                        "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"
                    }
                  }
                }
              },
              "required": [
                "audioInput"
              ]
            },
            "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",
            "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
          },
          "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"
        ]
      },
      "SubmitFeedbackBodyDto": {
        "type": "object",
        "properties": {
          "feedbackType": {
            "type": "string",
            "enum": [
              "upvote",
              "downvote"
            ]
          },
          "textFeedback": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "feedbackType"
        ]
      },
      "FeedbackSuggestionItemDto": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "Suggestion text"
          },
          "priority": {
            "type": "string",
            "description": "Priority level",
            "enum": [
              "high",
              "medium",
              "low"
            ]
          }
        },
        "required": [
          "text",
          "priority"
        ]
      },
      "FeedbackSuggestionDto": {
        "type": "object",
        "properties": {
          "isActionable": {
            "type": "boolean",
            "description": "Whether the feedback is actionable"
          },
          "category": {
            "type": "string",
            "description": "Feedback category",
            "enum": [
              "no_lip_movement",
              "poor_synchronization",
              "visual_artifacts",
              "wrong_character",
              "model_technical",
              "other"
            ]
          },
          "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": {
            "type": "string",
            "description": "Type of feedback",
            "enum": [
              "upvote",
              "downvote"
            ]
          },
          "textFeedback": {
            "type": "string",
            "nullable": true,
            "description": "Text feedback (only for downvotes)"
          },
          "suggestion": {
            "nullable": true,
            "description": "AI-generated suggestion based on feedback",
            "allOf": [
              {
                "$ref": "#/components/schemas/FeedbackSuggestionDto"
              }
            ]
          }
        },
        "required": [
          "id",
          "createdAt",
          "updatedAt",
          "generationId",
          "userId",
          "organizationId",
          "modelName",
          "feedbackType"
        ]
      },
      "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": {
            "type": "string",
            "description": "Usage type",
            "enum": [
              "generation",
              "integration"
            ]
          },
          "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"
        ]
      },
      "MonthComparisonDto": {
        "type": "object",
        "properties": {
          "costDiffPercent": {
            "type": "number",
            "nullable": true
          },
          "framesDiffPercent": {
            "type": "number",
            "nullable": true
          }
        },
        "required": [
          "costDiffPercent",
          "framesDiffPercent"
        ]
      },
      "BillingInfoDto": {
        "type": "object",
        "properties": {
          "plan": {
            "type": "string",
            "enum": [
              "creator",
              "scale",
              "growth",
              "hobbyist",
              "enterprise",
              "program"
            ],
            "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"
          },
          "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"
                ]
              },
              "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",
              "monthlyResetDate"
            ],
            "nullable": true
          },
          "hasActiveCredits": {
            "type": "boolean"
          }
        },
        "required": [
          "plan",
          "billingStartsAt",
          "billingEndsAt",
          "canManageBilling",
          "hasPaymentFailure",
          "freeGenerationsExhausted",
          "freeTtsExhausted",
          "paymentFailureCountExceededLimit",
          "freeMonthlyLimits",
          "hasActiveCredits"
        ]
      },
      "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"
            ]
          },
          "metadata": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "type": "string"
            }
          },
          "successUrl": {
            "type": "string",
            "format": "uri"
          },
          "cancelUrl": {
            "type": "string",
            "format": "uri"
          }
        },
        "required": [
          "planType",
          "metadata"
        ]
      },
      "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"
            ],
            "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"
            ]
          }
        },
        "required": [
          "planType"
        ]
      },
      "UpdateSubscriptionDto": {
        "type": "object",
        "properties": {
          "planType": {
            "type": "string",
            "enum": [
              "creator",
              "scale",
              "growth",
              "hobbyist",
              "enterprise",
              "program"
            ]
          },
          "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": {
          "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": {
          "url": {
            "type": "string"
          },
          "duration": {
            "type": "number"
          }
        },
        "required": [
          "url",
          "duration"
        ]
      },
      "CloneVoiceDto": {
        "type": "object",
        "properties": {
          "integrationName": {
            "type": "string",
            "enum": [
              "elevenlabs"
            ]
          },
          "voiceName": {
            "type": "string",
            "minLength": 1
          },
          "sampleUrls": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "string",
              "format": "uri"
            }
          }
        },
        "required": [
          "integrationName",
          "voiceName",
          "sampleUrls"
        ]
      },
      "ClonedVoiceResponseDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "voiceId": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "voiceId"
        ]
      },
      "CreateBatchDto": {
        "type": "object",
        "properties": {
          "input": {
            "type": "string",
            "description": "JSON lines file; each line contains request_id, endpoint (\"/v2/generate\"), and payload (CreateGenerationDto object)",
            "format": "binary"
          },
          "webhook_url": {
            "type": "string",
            "description": "Webhook server URL to notify status updates",
            "example": "https://example.com/webhook"
          },
          "dry_run": {
            "type": "boolean",
            "default": false,
            "description": "When true will only validate the inputs without processing"
          }
        },
        "required": [
          "input"
        ]
      },
      "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"
        ]
      },
      "CopyGuestAssetDto": {
        "type": "object",
        "properties": {
          "sourceUrl": {
            "type": "string",
            "format": "uri"
          },
          "fileName": {
            "type": "string"
          }
        },
        "required": [
          "sourceUrl",
          "fileName"
        ]
      },
      "CopyGuestAssetResponseDto": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "publicUrl": {
            "type": "string"
          }
        },
        "required": [
          "success"
        ]
      },
      "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"
        ]
      },
      "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",
          "options"
        ]
      },
      "StartImportResponseDto": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "string",
            "description": "Import job ID"
          },
          "status": {
            "type": "string",
            "description": "Import job status",
            "enum": [
              "queued"
            ]
          }
        },
        "required": [
          "jobId",
          "status"
        ]
      },
      "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",
            "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",
            "nullable": true
          },
          {
            "type": "number",
            "nullable": true
          },
          {
            "type": "boolean",
            "nullable": true
          },
          {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaginatedProjectsResponseDto__schema0"
            },
            "nullable": true
          },
          {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "$ref": "#/components/schemas/PaginatedProjectsResponseDto__schema0"
            },
            "nullable": true
          }
        ]
      },
      "PaginatedProjectsResponseDto": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "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)$"
                },
                "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",
                  "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)$",
                  "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"
                  ]
                },
                "generations": {
                  "type": "array",
                  "items": {
                    "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)$"
                      },
                      "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)$"
                      },
                      "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)$",
                        "nullable": true
                      },
                      "apiKeyId": {
                        "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
                      },
                      "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"
                          },
                          "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",
                              "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": {
                              "type": "string",
                              "enum": [
                                "video",
                                "audio",
                                "text"
                              ]
                            },
                            "refId": {
                              "type": "string"
                            },
                            "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",
                        "format": "uri",
                        "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"
                              }
                            ]
                          },
                          "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"
                                  },
                                  "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"
                              }
                            ]
                          },
                          "occlusion_detection_enabled": {
                            "type": "boolean"
                          },
                          "reasoning_enabled": {
                            "type": "boolean"
                          },
                          "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",
                            "propertyNames": {
                              "type": "string"
                            },
                            "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"
                                    },
                                    "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"
                                }
                              }
                            }
                          },
                          "required": [
                            "audioInput"
                          ]
                        },
                        "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",
                        "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
                      },
                      "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",
                        "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"
                      },
                      "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"
                          },
                          "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"
                              }
                            ]
                          },
                          "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"
                                  },
                                  "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"
                              }
                            ]
                          },
                          "occlusion_detection_enabled": {
                            "type": "boolean"
                          },
                          "reasoning_enabled": {
                            "type": "boolean"
                          },
                          "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",
                            "propertyNames": {
                              "type": "string"
                            },
                            "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",
                        "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)$"
                      },
                      "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)$"
                      },
                      "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)$"
                      },
                      "asset": {
                        "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)$"
                          },
                          "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",
                              "PLATFORM_IMPORT",
                              "PLUGIN_PREMIERE_FILE",
                              "PLUGIN_PREMIERE_TIMELINE_SELECTION"
                            ],
                            "nullable": true
                          },
                          "durationSeconds": {
                            "type": "number",
                            "nullable": true
                          },
                          "thumbnailUrl": {
                            "type": "string",
                            "nullable": true
                          },
                          "visibility": {
                            "type": "string",
                            "enum": [
                              "USER",
                              "ORGANIZATION"
                            ]
                          },
                          "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)$",
                            "nullable": true
                          },
                          "apiKeyId": {
                            "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
                          },
                          "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)$"
                          },
                          "width": {
                            "type": "number",
                            "nullable": true
                          },
                          "height": {
                            "type": "number",
                            "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"
                },
                "lastGenerationSource": {
                  "type": "string",
                  "nullable": true
                }
              },
              "required": [
                "id",
                "createdAt",
                "updatedAt",
                "organizationId",
                "userId",
                "name",
                "description",
                "visibility",
                "deletedAt",
                "mode",
                "generations",
                "generationPresets",
                "assets",
                "generationsCount",
                "lastGenerationSource"
              ]
            }
          },
          "nextCursor": {
            "type": "string"
          }
        },
        "required": [
          "items"
        ]
      },
      "CreateProjectDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1
          },
          "description": {
            "type": "string"
          },
          "visibility": {
            "type": "string",
            "enum": [
              "USER",
              "ORGANIZATION"
            ]
          },
          "mode": {
            "type": "string",
            "enum": [
              "CREATOR",
              "DEVELOPER"
            ]
          }
        },
        "required": [
          "visibility",
          "mode"
        ]
      },
      "ProjectDto__schema0": {
        "anyOf": [
          {
            "type": "string",
            "nullable": true
          },
          {
            "type": "number",
            "nullable": true
          },
          {
            "type": "boolean",
            "nullable": true
          },
          {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectDto__schema0"
            },
            "nullable": true
          },
          {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "$ref": "#/components/schemas/ProjectDto__schema0"
            },
            "nullable": true
          }
        ]
      },
      "ProjectDto": {
        "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)$"
          },
          "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",
            "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)$",
            "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"
            ]
          },
          "generations": {
            "type": "array",
            "items": {
              "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)$"
                },
                "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)$"
                },
                "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)$",
                  "nullable": true
                },
                "apiKeyId": {
                  "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
                },
                "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"
                    },
                    "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",
                        "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": {
                        "type": "string",
                        "enum": [
                          "video",
                          "audio",
                          "text"
                        ]
                      },
                      "refId": {
                        "type": "string"
                      },
                      "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",
                  "format": "uri",
                  "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"
                        }
                      ]
                    },
                    "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"
                            },
                            "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"
                        }
                      ]
                    },
                    "occlusion_detection_enabled": {
                      "type": "boolean"
                    },
                    "reasoning_enabled": {
                      "type": "boolean"
                    },
                    "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",
                      "propertyNames": {
                        "type": "string"
                      },
                      "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"
                              },
                              "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"
                          }
                        }
                      }
                    },
                    "required": [
                      "audioInput"
                    ]
                  },
                  "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",
                  "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
                },
                "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",
                  "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"
                },
                "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"
                    },
                    "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"
                        }
                      ]
                    },
                    "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"
                            },
                            "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"
                        }
                      ]
                    },
                    "occlusion_detection_enabled": {
                      "type": "boolean"
                    },
                    "reasoning_enabled": {
                      "type": "boolean"
                    },
                    "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",
                      "propertyNames": {
                        "type": "string"
                      },
                      "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"
        ]
      },
      "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"
            ]
          }
        }
      },
      "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": {
            "type": "string",
            "description": "Current status of device auth",
            "enum": [
              "pending",
              "ready",
              "expired"
            ]
          },
          "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"
        ]
      },
      "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"
        ]
      },
      "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"
        ]
      },
      "EstimatedGenerationCost": {
        "type": "object",
        "properties": {
          "estimatedFrameCount": {
            "type": "number",
            "description": "The estimated frame count for the generation."
          },
          "estimatedGenerationCost": {
            "type": "number",
            "description": "The estimated cost of the generation in USD."
          }
        },
        "required": [
          "estimatedFrameCount",
          "estimatedGenerationCost"
        ]
      },
      "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",
          "metadata"
        ]
      },
      "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",
              "adobePluginNps",
              "studioLiteNps"
            ]
          },
          "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",
              "adobePluginNps",
              "studioLiteNps"
            ]
          },
          "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",
              "adobePluginNps",
              "studioLiteNps"
            ]
          },
          "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"
        ]
      },
      "VideoInputItem": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "video"
            ],
            "example": "video"
          },
          "url": {
            "type": "string",
            "example": "https://synchlabs-public.s3.us-west-2.amazonaws.com/david_demo_shortvid-03a10044-7741-4cfc-816a-5bccd392d1ee.mp4"
          },
          "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",
          "url"
        ]
      },
      "AudioInputItem": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "audio"
            ],
            "example": "audio"
          },
          "url": {
            "type": "string",
            "example": "https://synchlabs-public.s3.us-west-2.amazonaws.com/david_demo_shortaud-27623a4f-edab-4c6a-8383-871b18961a4a.wav"
          }
        },
        "required": [
          "type",
          "url"
        ]
      },
      "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"
          },
          "provider": {
            "description": "Integration provider",
            "allOf": [
              {
                "$ref": "#/components/schemas/ProviderItem"
              }
            ]
          }
        },
        "required": [
          "type",
          "provider"
        ]
      }
    }
  },
  "security": [
    {
      "apiKey": []
    }
  ]
}
