This repository has been archived on 2020-08-14. You can view files and clone it, but cannot push or open issues or pull requests.
statuspage/app/schemas.py

101 lines
1.6 KiB
Python
Raw Permalink Normal View History

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
2020-08-11 15:12:22 +02:00
is_superuser: bool = False
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]
2020-08-11 15:12:22 +02:00
is_superuser: Optional[bool]
class User(UserBase):
pass
class Config:
orm_mode = True
2020-08-11 15:12:22 +02:00
class MetricBase(BaseModel):
service_id: int
http_response_code: int
class Metric(BaseModel):
request_unix: float
response_unix: float
class MetricCreate(UserBase):
status: int
class Metric(MetricBase):
pass
class Config:
orm_mode = True
class APISimpleSuccessResponse(BaseModel):
success: bool = True
class APISimpleErrorResponse(BaseModel):
success: bool = False
errors: Optional[List[str]]
class Token(BaseModel):
access_token: str
token_type: str
2020-08-11 15:12:22 +02:00
class TokenPayload(BaseModel):
sub: str = None