57 lines
1.7 KiB
Python
57 lines
1.7 KiB
Python
from __future__ import annotations
|
|
|
|
from typing import Optional
|
|
|
|
from pydantic import BaseModel, ConfigDict, Field
|
|
|
|
|
|
class PromptAssetReleaseCreateRequest(BaseModel):
|
|
model_config = ConfigDict(extra="ignore")
|
|
|
|
body_snapshot: str = Field(min_length=1)
|
|
notes: Optional[str] = None
|
|
|
|
|
|
class PromptAssetReleaseActionRequest(BaseModel):
|
|
model_config = ConfigDict(extra="ignore")
|
|
|
|
reason: Optional[str] = None
|
|
|
|
|
|
class PromptAssetReleaseCheckRunRequest(BaseModel):
|
|
model_config = ConfigDict(extra="ignore")
|
|
|
|
reason: Optional[str] = None
|
|
|
|
|
|
class PromptGoldenCaseCreateRequest(BaseModel):
|
|
model_config = ConfigDict(extra="ignore")
|
|
|
|
case_name: str = Field(min_length=1, max_length=255)
|
|
input_payload: dict = Field(default_factory=dict)
|
|
expected_contract: Optional[dict] = None
|
|
expected_contains: Optional[str] = None
|
|
case_type: str = Field(default="regression", max_length=32)
|
|
priority: str = Field(default="blocking", max_length=24)
|
|
scenario_key: Optional[str] = Field(default=None, max_length=128)
|
|
tags: list[str] = Field(default_factory=list)
|
|
notes: Optional[str] = None
|
|
|
|
|
|
class PromptGoldenCaseFromCallRequest(BaseModel):
|
|
model_config = ConfigDict(extra="ignore")
|
|
|
|
case_name: Optional[str] = Field(default=None, max_length=255)
|
|
notes: Optional[str] = None
|
|
|
|
|
|
class PromptReplayRunCreateRequest(BaseModel):
|
|
model_config = ConfigDict(extra="ignore")
|
|
|
|
mode: str = Field(default="contract_smoke", max_length=32)
|
|
case_status: str = Field(default="active", max_length=32)
|
|
max_cases: int = Field(default=20, ge=1, le=100)
|
|
include_llm: bool = False
|
|
judge_enabled: bool = True
|
|
reason: Optional[str] = None
|