34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
from pydantic import BaseModel, Field, field_validator
|
|
|
|
|
|
class SwosBetaCredentials(BaseModel):
|
|
host: str = Field(min_length=1, max_length=255)
|
|
port: int = Field(default=80, ge=1, le=65535)
|
|
username: str = Field(default='admin', min_length=1, max_length=120)
|
|
password: str = Field(default='', max_length=255)
|
|
label: str | None = Field(default=None, max_length=120)
|
|
|
|
@field_validator('host', 'username', 'password', mode='before')
|
|
@classmethod
|
|
def normalize_text(cls, value: str | None) -> str:
|
|
return (value or '').strip()
|
|
|
|
@field_validator('label', mode='before')
|
|
@classmethod
|
|
def normalize_label(cls, value: str | None) -> str | None:
|
|
normalized = (value or '').strip()
|
|
return normalized or None
|
|
|
|
|
|
class SwosBetaProbeResponse(BaseModel):
|
|
success: bool
|
|
base_url: str
|
|
status_code: int
|
|
auth_mode: str
|
|
page_title: str | None = None
|
|
content_type: str | None = None
|
|
server: str | None = None
|
|
save_backup_visible: bool = False
|
|
backup_endpoint_ok: bool = False
|
|
note: str | None = None
|