from typing import List, Optional, Literal from pydantic import BaseModel, Field class SourceSpec(BaseModel): name: str type: Literal["delta", "parquet"] deltalake_uri: str class QueryRequest(BaseModel): sql: str vendor: Literal["aws", "alicloud", "gcp", "azure", "local"] = "aws" region: Optional[str] = None tenant_id: Optional[str] = None o11y_id: Optional[str] = None sources: Optional[List[SourceSpec]] = Field(default=None) class QueryResponse(BaseModel): rows: List[dict] meta: dict