{
  "openapi": "3.1.0",
  "info": {
    "title": "Testzilla API",
    "version": "1.0.0",
    "description": "REST API for the Testzilla voice-AI testing platform. Authenticate with an API key (`x-api-key` header). Base path is `/v1`."
  },
  "servers": [
    {
      "url": "https://api.testzilla.ai/v1",
      "description": "Production"
    },
    {
      "url": "https://api-dev.testzilla.ai/v1",
      "description": "Development"
    }
  ],
  "security": [
    {
      "ApiKeyAuth": []
    }
  ],
  "tags": [
    {
      "name": "API Keys"
    },
    {
      "name": "Activity"
    },
    {
      "name": "Batch Runs"
    },
    {
      "name": "Batches"
    },
    {
      "name": "Channels"
    },
    {
      "name": "Integrations"
    },
    {
      "name": "Personas"
    },
    {
      "name": "Projects"
    },
    {
      "name": "Queue"
    },
    {
      "name": "Reviews"
    },
    {
      "name": "Scenarios"
    },
    {
      "name": "Test Results"
    },
    {
      "name": "Tests"
    },
    {
      "name": "Transactions"
    },
    {
      "name": "User"
    }
  ],
  "paths": {
    "/activity": {
      "get": {
        "tags": [
          "Activity"
        ],
        "summary": "List activity",
        "operationId": "get_activity",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/activity/{id}": {
      "get": {
        "tags": [
          "Activity"
        ],
        "summary": "Get Activity",
        "operationId": "get_activity_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/activity/resource/{resourceType}/{resourceId}": {
      "get": {
        "tags": [
          "Activity"
        ],
        "summary": "Get Activity",
        "operationId": "get_activity_resource_resourceType_resourceId_",
        "parameters": [
          {
            "name": "resourceType",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "resourceType identifier"
          },
          {
            "name": "resourceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "resourceId identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/api-keys": {
      "get": {
        "tags": [
          "API Keys"
        ],
        "summary": "List api keys",
        "operationId": "get_api_keys",
        "responses": {
          "200": {
            "description": "The current user's API keys, newest first. Secret values are never included.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "keys": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ApiKey"
                      }
                    }
                  },
                  "required": [
                    "keys"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      },
      "post": {
        "tags": [
          "API Keys"
        ],
        "summary": "Create api keys",
        "operationId": "post_api_keys",
        "responses": {
          "201": {
            "description": "Key created. The raw `apiKey` is returned here and nowhere else, ever.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeySecret"
                }
              }
            }
          },
          "400": {
            "description": "Missing or invalid label.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          },
          "409": {
            "description": "Per-user active-key limit reached (max 25). Revoke one before creating another.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyError"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "label": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100,
                    "description": "A non-empty human label for the key (max 100 chars), e.g. \"CI pipeline\"."
                  }
                },
                "required": [
                  "label"
                ]
              }
            }
          }
        }
      }
    },
    "/api-keys/{id}": {
      "delete": {
        "tags": [
          "API Keys"
        ],
        "summary": "Delete API Key",
        "operationId": "delete_api_keys_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Key revoked (idempotent: a second call reports it was already revoked).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeySuccessMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "API key not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyError"
                }
              }
            }
          }
        }
      }
    },
    "/api-keys/{id}/rotate": {
      "post": {
        "tags": [
          "API Keys"
        ],
        "summary": "Create rotate",
        "operationId": "post_api_keys_id_rotate",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Key rotated. The new raw `apiKey` is returned here once; the previous secret is now invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeySecret"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "API key not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyError"
                }
              }
            }
          },
          "409": {
            "description": "Cannot rotate a revoked key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyError"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": false,
          "description": "No request body. The key to rotate is identified by the `id` path parameter.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/batch-runs/{batchId}/runs": {
      "get": {
        "tags": [
          "Batch Runs"
        ],
        "summary": "Get runs",
        "operationId": "get_batch_runs_batchId_runs",
        "parameters": [
          {
            "name": "batchId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "batchId identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/batch-runs/{id}": {
      "get": {
        "tags": [
          "Batch Runs"
        ],
        "summary": "Get Batch Run",
        "operationId": "get_batch_runs_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/batches": {
      "get": {
        "tags": [
          "Batches"
        ],
        "summary": "List batches",
        "operationId": "get_batches",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      },
      "post": {
        "tags": [
          "Batches"
        ],
        "summary": "Create batches",
        "operationId": "post_batches",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      }
    },
    "/batches/{id}": {
      "get": {
        "tags": [
          "Batches"
        ],
        "summary": "Get Batche",
        "operationId": "get_batches_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      },
      "put": {
        "tags": [
          "Batches"
        ],
        "summary": "Update Batche",
        "operationId": "put_batches_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Batches"
        ],
        "summary": "Delete Batche",
        "operationId": "delete_batches_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/batches/{id}/run": {
      "post": {
        "tags": [
          "Batches"
        ],
        "summary": "Create run",
        "operationId": "post_batches_id_run",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      }
    },
    "/channels": {
      "get": {
        "tags": [
          "Channels"
        ],
        "summary": "List channels",
        "operationId": "get_channels",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      },
      "post": {
        "tags": [
          "Channels"
        ],
        "summary": "Create channels",
        "operationId": "post_channels",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      }
    },
    "/channels/{id}": {
      "get": {
        "tags": [
          "Channels"
        ],
        "summary": "Get Channel",
        "operationId": "get_channels_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      },
      "put": {
        "tags": [
          "Channels"
        ],
        "summary": "Update Channel",
        "operationId": "put_channels_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Channels"
        ],
        "summary": "Delete Channel",
        "operationId": "delete_channels_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/channels/{id}/report": {
      "post": {
        "tags": [
          "Channels"
        ],
        "summary": "Create report",
        "operationId": "post_channels_id_report",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      }
    },
    "/channels/{id}/run": {
      "post": {
        "tags": [
          "Channels"
        ],
        "summary": "Create run",
        "operationId": "post_channels_id_run",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      }
    },
    "/integrations": {
      "get": {
        "tags": [
          "Integrations"
        ],
        "summary": "List integrations",
        "operationId": "get_integrations",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      },
      "post": {
        "tags": [
          "Integrations"
        ],
        "summary": "Create integrations",
        "operationId": "post_integrations",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      }
    },
    "/integrations/{id}": {
      "get": {
        "tags": [
          "Integrations"
        ],
        "summary": "Get Integration",
        "operationId": "get_integrations_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      },
      "patch": {
        "tags": [
          "Integrations"
        ],
        "summary": "Update Integration",
        "operationId": "patch_integrations_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Integrations"
        ],
        "summary": "Delete Integration",
        "operationId": "delete_integrations_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/integrations/{id}/health": {
      "get": {
        "tags": [
          "Integrations"
        ],
        "summary": "Get health",
        "operationId": "get_integrations_id_health",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/integrations/{id}/phone-numbers": {
      "get": {
        "tags": [
          "Integrations"
        ],
        "summary": "Get phone numbers",
        "operationId": "get_integrations_id_phone_numbers",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/integrations/{id}/stats": {
      "get": {
        "tags": [
          "Integrations"
        ],
        "summary": "Get stats",
        "operationId": "get_integrations_id_stats",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/personas": {
      "get": {
        "tags": [
          "Personas"
        ],
        "summary": "List personas",
        "operationId": "get_personas",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      },
      "post": {
        "tags": [
          "Personas"
        ],
        "summary": "Create personas",
        "operationId": "post_personas",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      }
    },
    "/personas/{id}": {
      "get": {
        "tags": [
          "Personas"
        ],
        "summary": "Get Persona",
        "operationId": "get_personas_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      },
      "put": {
        "tags": [
          "Personas"
        ],
        "summary": "Update Persona",
        "operationId": "put_personas_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Personas"
        ],
        "summary": "Delete Persona",
        "operationId": "delete_personas_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/projects": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "List projects",
        "operationId": "get_projects",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      },
      "post": {
        "tags": [
          "Projects"
        ],
        "summary": "Create projects",
        "operationId": "post_projects",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      }
    },
    "/projects/{id}": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Get Project",
        "operationId": "get_projects_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      },
      "put": {
        "tags": [
          "Projects"
        ],
        "summary": "Update Project",
        "operationId": "put_projects_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Projects"
        ],
        "summary": "Delete Project",
        "operationId": "delete_projects_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/projects/{id}/report": {
      "post": {
        "tags": [
          "Projects"
        ],
        "summary": "Create report",
        "operationId": "post_projects_id_report",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      }
    },
    "/projects/import-demo": {
      "post": {
        "tags": [
          "Projects"
        ],
        "summary": "Create import demo",
        "operationId": "post_projects_import_demo",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      }
    },
    "/queue": {
      "get": {
        "tags": [
          "Queue"
        ],
        "summary": "List queue",
        "operationId": "get_queue",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/queue/{id}": {
      "get": {
        "tags": [
          "Queue"
        ],
        "summary": "Get Queue",
        "operationId": "get_queue_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      },
      "delete": {
        "tags": [
          "Queue"
        ],
        "summary": "Delete Queue",
        "operationId": "delete_queue_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/queue/config": {
      "get": {
        "tags": [
          "Queue"
        ],
        "summary": "List config",
        "operationId": "get_queue_config",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/queue/process": {
      "post": {
        "tags": [
          "Queue"
        ],
        "summary": "Create process",
        "operationId": "post_queue_process",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      }
    },
    "/queue/stats": {
      "get": {
        "tags": [
          "Queue"
        ],
        "summary": "List stats",
        "operationId": "get_queue_stats",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/reviews": {
      "get": {
        "tags": [
          "Reviews"
        ],
        "summary": "List reviews",
        "operationId": "get_reviews",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/reviews/{id}": {
      "get": {
        "tags": [
          "Reviews"
        ],
        "summary": "Get Review",
        "operationId": "get_reviews_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/reviews/{id}/progress": {
      "post": {
        "tags": [
          "Reviews"
        ],
        "summary": "Create progress",
        "operationId": "post_reviews_id_progress",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      }
    },
    "/reviews/{id}/reassign": {
      "post": {
        "tags": [
          "Reviews"
        ],
        "summary": "Create reassign",
        "operationId": "post_reviews_id_reassign",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      }
    },
    "/reviews/{id}/start": {
      "post": {
        "tags": [
          "Reviews"
        ],
        "summary": "Create start",
        "operationId": "post_reviews_id_start",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      }
    },
    "/reviews/{id}/submit": {
      "post": {
        "tags": [
          "Reviews"
        ],
        "summary": "Create submit",
        "operationId": "post_reviews_id_submit",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      }
    },
    "/reviews/assign": {
      "post": {
        "tags": [
          "Reviews"
        ],
        "summary": "Create assign",
        "operationId": "post_reviews_assign",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      }
    },
    "/reviews/calibrate": {
      "post": {
        "tags": [
          "Reviews"
        ],
        "summary": "Create calibrate",
        "operationId": "post_reviews_calibrate",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      }
    },
    "/reviews/calibration/{id}": {
      "get": {
        "tags": [
          "Reviews"
        ],
        "summary": "Get Review",
        "operationId": "get_reviews_calibration_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/reviews/calibration/{id}/start": {
      "post": {
        "tags": [
          "Reviews"
        ],
        "summary": "Create start",
        "operationId": "post_reviews_calibration_id_start",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      }
    },
    "/reviews/calibration/{id}/submit": {
      "post": {
        "tags": [
          "Reviews"
        ],
        "summary": "Create submit",
        "operationId": "post_reviews_calibration_id_submit",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      }
    },
    "/reviews/calibration/history": {
      "get": {
        "tags": [
          "Reviews"
        ],
        "summary": "List history",
        "operationId": "get_reviews_calibration_history",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/reviews/calibration/status": {
      "get": {
        "tags": [
          "Reviews"
        ],
        "summary": "List status",
        "operationId": "get_reviews_calibration_status",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/reviews/pending": {
      "get": {
        "tags": [
          "Reviews"
        ],
        "summary": "List pending",
        "operationId": "get_reviews_pending",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/reviews/reviewers": {
      "get": {
        "tags": [
          "Reviews"
        ],
        "summary": "List reviewers",
        "operationId": "get_reviews_reviewers",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/reviews/stats": {
      "get": {
        "tags": [
          "Reviews"
        ],
        "summary": "List stats",
        "operationId": "get_reviews_stats",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/scenarios": {
      "get": {
        "tags": [
          "Scenarios"
        ],
        "summary": "List scenarios",
        "operationId": "get_scenarios",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      },
      "post": {
        "tags": [
          "Scenarios"
        ],
        "summary": "Create scenarios",
        "operationId": "post_scenarios",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      }
    },
    "/scenarios/{id}": {
      "get": {
        "tags": [
          "Scenarios"
        ],
        "summary": "Get Scenario",
        "operationId": "get_scenarios_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      },
      "put": {
        "tags": [
          "Scenarios"
        ],
        "summary": "Update Scenario",
        "operationId": "put_scenarios_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Scenarios"
        ],
        "summary": "Delete Scenario",
        "operationId": "delete_scenarios_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/scenarios/{id}/run": {
      "post": {
        "tags": [
          "Scenarios"
        ],
        "summary": "Create run",
        "operationId": "post_scenarios_id_run",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      }
    },
    "/scenarios/{id}/runs": {
      "get": {
        "tags": [
          "Scenarios"
        ],
        "summary": "Get runs",
        "operationId": "get_scenarios_id_runs",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/scenarios/{id}/runs/{runId}": {
      "get": {
        "tags": [
          "Scenarios"
        ],
        "summary": "Get Scenario",
        "operationId": "get_scenarios_id_runs_runId_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          },
          {
            "name": "runId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "runId identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/test-results": {
      "get": {
        "tags": [
          "Test Results"
        ],
        "summary": "List test results",
        "operationId": "get_test_results",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/test-results/{id}": {
      "get": {
        "tags": [
          "Test Results"
        ],
        "summary": "Get Test Result",
        "operationId": "get_test_results_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      },
      "delete": {
        "tags": [
          "Test Results"
        ],
        "summary": "Delete Test Result",
        "operationId": "delete_test_results_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/test-results/by-call/{callId}": {
      "get": {
        "tags": [
          "Test Results"
        ],
        "summary": "Get Test Result",
        "operationId": "get_test_results_by_call_callId_",
        "parameters": [
          {
            "name": "callId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "callId identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/tests": {
      "get": {
        "tags": [
          "Tests"
        ],
        "summary": "List tests",
        "operationId": "get_tests",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      },
      "post": {
        "tags": [
          "Tests"
        ],
        "summary": "Create tests",
        "operationId": "post_tests",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      }
    },
    "/tests/{id}": {
      "get": {
        "tags": [
          "Tests"
        ],
        "summary": "Get Test",
        "operationId": "get_tests_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      },
      "put": {
        "tags": [
          "Tests"
        ],
        "summary": "Update Test",
        "operationId": "put_tests_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Tests"
        ],
        "summary": "Delete Test",
        "operationId": "delete_tests_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/tests/{id}/results": {
      "get": {
        "tags": [
          "Tests"
        ],
        "summary": "Get results",
        "operationId": "get_tests_id_results",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/tests/{id}/run": {
      "post": {
        "tags": [
          "Tests"
        ],
        "summary": "Create run",
        "operationId": "post_tests_id_run",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Request body (schema to be documented)."
              }
            }
          }
        }
      }
    },
    "/transactions": {
      "get": {
        "tags": [
          "Transactions"
        ],
        "summary": "List transactions",
        "operationId": "get_transactions",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/transactions/{id}": {
      "get": {
        "tags": [
          "Transactions"
        ],
        "summary": "Get Transaction",
        "operationId": "get_transactions_id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "id identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/transactions/summary": {
      "get": {
        "tags": [
          "Transactions"
        ],
        "summary": "List summary",
        "operationId": "get_transactions_summary",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/user/balance": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "List balance",
        "operationId": "get_user_balance",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/user/me": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "List me",
        "operationId": "get_user_me",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (missing or invalid API key)"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "x-api-key",
        "description": "Testzilla API key."
      }
    },
    "schemas": {
      "ApiKey": {
        "type": "object",
        "description": "A single API key, masked for display. The secret key value is NEVER returned here -- only on create and rotate, exactly once.",
        "properties": {
          "id": {
            "type": "string",
            "description": "Key identifier (Firestore doc id)."
          },
          "label": {
            "type": "string",
            "description": "User-supplied human name, e.g. \"CI pipeline\"."
          },
          "prefix": {
            "type": "string",
            "description": "Non-secret display prefix of the key, e.g. \"tz_a1b2c3d4\". Safe to show in UIs.",
            "examples": [
              "tz_a1b2c3d4"
            ]
          },
          "revoked": {
            "type": "boolean",
            "description": "True once the key has been revoked; revoked keys never authenticate."
          },
          "created_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "ISO 8601 timestamp the key was created (null if not yet materialized)."
          },
          "last_used_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "ISO 8601 timestamp the key last authenticated a request (best-effort), or null if never used."
          },
          "revoked_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "ISO 8601 timestamp the key was revoked, or null if still active."
          }
        },
        "required": [
          "id",
          "label",
          "prefix",
          "revoked",
          "created_at",
          "last_used_at",
          "revoked_at"
        ]
      },
      "ApiKeySecret": {
        "type": "object",
        "description": "One-time response carrying the raw secret API key. Returned ONLY on create and rotate, and never again -- the raw key is not stored and cannot be retrieved later.",
        "properties": {
          "success": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "id": {
            "type": "string",
            "description": "Key identifier (Firestore doc id)."
          },
          "label": {
            "type": "string",
            "description": "The key label."
          },
          "prefix": {
            "type": "string",
            "description": "Non-secret display prefix, e.g. \"tz_a1b2c3d4\"."
          },
          "apiKey": {
            "type": "string",
            "description": "The raw secret API key. Shown EXACTLY ONCE. Store it immediately; it cannot be recovered afterwards."
          },
          "warning": {
            "type": "string",
            "description": "Human-readable reminder that the key will not be shown again."
          }
        },
        "required": [
          "success",
          "id",
          "label",
          "prefix",
          "apiKey",
          "warning"
        ]
      },
      "ApiKeyError": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "description": "Human-readable error message."
          }
        },
        "required": [
          "error"
        ]
      },
      "ApiKeySuccessMessage": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "success",
          "message"
        ]
      }
    }
  }
}
