41 lines
2.1 KiB
Python
41 lines
2.1 KiB
Python
from datetime import datetime
|
|
|
|
from pydantic import BaseModel, ConfigDict, Field
|
|
|
|
|
|
class ProxyTemplateDocument(BaseModel):
|
|
model_config = ConfigDict(extra="forbid")
|
|
|
|
id: str = Field(..., description="Stable template identifier")
|
|
name: str = Field(..., description="Display name")
|
|
description: str = Field(default="", description="Short explanation")
|
|
category: str = Field(default="custom", description="Template category")
|
|
protocol: str = Field(default="custom", description="Primary proxy protocol")
|
|
family: str = Field(default="custom", description="Template family")
|
|
tags: list[str] = Field(default_factory=list, description="Filter tags")
|
|
action: str = Field(default="custom", description="Primary template action")
|
|
summary: str = Field(default="", description="Short operational summary")
|
|
behavior: str = Field(default="", description="Runtime behavior description")
|
|
code: str = Field(..., description="Addon source code")
|
|
source_url: str | None = Field(default=None, description="Reference URL")
|
|
built_in: bool = Field(default=False, description="Provided by thePlug")
|
|
created_at: datetime | None = None
|
|
updated_at: datetime | None = None
|
|
|
|
|
|
class ProxyTemplateCreateInput(BaseModel):
|
|
model_config = ConfigDict(extra="forbid")
|
|
|
|
id: str = Field(..., description="Stable template identifier")
|
|
name: str = Field(..., description="Display name")
|
|
description: str = Field(default="", description="Short explanation")
|
|
category: str = Field(default="custom", description="Template category")
|
|
protocol: str = Field(default="custom", description="Primary proxy protocol")
|
|
family: str = Field(default="custom", description="Template family")
|
|
tags: list[str] = Field(default_factory=list, description="Filter tags")
|
|
action: str = Field(default="custom", description="Primary template action")
|
|
summary: str = Field(default="", description="Short operational summary")
|
|
behavior: str = Field(default="", description="Runtime behavior description")
|
|
code: str = Field(..., description="Addon source code")
|
|
source_url: str | None = Field(default=None, description="Reference URL")
|