surtur
42b7bb69f1
* remove ssh from service types for now * validate urls as http/s using pydantic type HttpUrl
73 lines
1.2 KiB
Python
73 lines
1.2 KiB
Python
import time
|
|
from typing import List, Optional
|
|
from pydantic import BaseModel, HttpUrl
|
|
|
|
|
|
class ServiceBase(BaseModel):
|
|
name: str
|
|
owner_id: int
|
|
is_private: bool = True
|
|
description: Optional[str] = None
|
|
service_type: int
|
|
url: HttpUrl
|
|
is_active: bool = True
|
|
|
|
class Service(BaseModel):
|
|
created_unix: float
|
|
updated_unix: float = None
|
|
|
|
class ServiceCreate(ServiceBase):
|
|
pass
|
|
|
|
class ServiceUpdate(ServiceBase):
|
|
name: Optional[str]
|
|
owner_id: Optional[int]
|
|
is_private: Optional[bool]
|
|
description: Optional[str]
|
|
service_type: Optional[int]
|
|
url: Optional[HttpUrl]
|
|
is_active: Optional[bool]
|
|
|
|
class Service(ServiceBase):
|
|
pass
|
|
|
|
class Config:
|
|
orm_mode = True
|
|
|
|
|
|
|
|
class UserBase(BaseModel):
|
|
name: str
|
|
full_name: Optional[str] = None
|
|
is_active: bool = True
|
|
|
|
class User(BaseModel):
|
|
created_unix: float
|
|
updated_unix: float = None
|
|
last_login_unix: float = None
|
|
|
|
class UserCreate(UserBase):
|
|
password: str
|
|
|
|
class UserUpdate(UserBase):
|
|
name: Optional[str]
|
|
full_name: Optional[str]
|
|
password: Optional[str]
|
|
is_active: Optional[bool]
|
|
|
|
class User(UserBase):
|
|
pass
|
|
|
|
class Config:
|
|
orm_mode = True
|
|
|
|
|
|
|
|
class APISimpleSuccessResponse(BaseModel):
|
|
success: bool = True
|
|
|
|
class APISimpleErrorResponse(BaseModel):
|
|
success: bool = False
|
|
errors: Optional[List[str]]
|
|
|