From 4e4ae94182fafa34f26780ec075ec35d852cdd94 Mon Sep 17 00:00:00 2001 From: host Date: Sun, 9 Aug 2026 14:47:28 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D1=81=D1=85=D0=B5=D0=BC=D1=8B=20=D1=81=D0=BE?= =?UTF-8?q?=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8=D1=8F=20VM=20=D0=B8=20LXC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/schemas.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/backend/app/schemas.py b/backend/app/schemas.py index baa6a68..7cca23a 100644 --- a/backend/app/schemas.py +++ b/backend/app/schemas.py @@ -68,6 +68,15 @@ class TemplateOut(BaseModel): is_active: bool +class InstanceCreate(BaseModel): + """Запрос на синхронное создание VM или LXC из шаблона.""" + + name: str = Field(min_length=1, max_length=63, pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-]*$") + template_id: int = Field(gt=0) + username: str = Field(default="paneluser", min_length=1, max_length=32, pattern=r"^[a-z_][a-z0-9_-]*$") + password: str = Field(min_length=12, max_length=128) + + class InstanceOut(BaseModel): """Инстанс без credentials и внутренних секретов.""" @@ -82,3 +91,9 @@ class InstanceOut(BaseModel): owner_id: int template_id: int created_at: datetime + + +class InstanceCreateOut(InstanceOut): + """Ответ создания с паролем, который показывается только один раз.""" + + initial_password: str