64 lines
1.4 KiB
Python
64 lines
1.4 KiB
Python
|
|
from datetime import datetime
|
||
|
|
from typing import Dict, List, Optional
|
||
|
|
|
||
|
|
from pydantic import BaseModel, Field
|
||
|
|
|
||
|
|
|
||
|
|
class NextcloudInstanceBase(BaseModel):
|
||
|
|
customer_id: int
|
||
|
|
base_url: str
|
||
|
|
auth_type: str = "basic"
|
||
|
|
username: str
|
||
|
|
|
||
|
|
|
||
|
|
class NextcloudInstanceCreate(NextcloudInstanceBase):
|
||
|
|
password: str = Field(..., min_length=1)
|
||
|
|
|
||
|
|
|
||
|
|
class NextcloudInstanceUpdate(BaseModel):
|
||
|
|
base_url: Optional[str] = None
|
||
|
|
auth_type: Optional[str] = None
|
||
|
|
username: Optional[str] = None
|
||
|
|
password: Optional[str] = None
|
||
|
|
is_enabled: Optional[bool] = None
|
||
|
|
|
||
|
|
|
||
|
|
class NextcloudInstance(NextcloudInstanceBase):
|
||
|
|
id: int
|
||
|
|
is_enabled: bool
|
||
|
|
disabled_at: Optional[datetime] = None
|
||
|
|
created_at: datetime
|
||
|
|
updated_at: datetime
|
||
|
|
|
||
|
|
|
||
|
|
class NextcloudStatus(BaseModel):
|
||
|
|
status: str
|
||
|
|
checked_at: datetime
|
||
|
|
version: Optional[str] = None
|
||
|
|
php: Optional[str] = None
|
||
|
|
db: Optional[str] = None
|
||
|
|
metrics: Dict[str, Optional[str]] = {}
|
||
|
|
|
||
|
|
|
||
|
|
class NextcloudUserCreate(BaseModel):
|
||
|
|
uid: str
|
||
|
|
display_name: Optional[str] = None
|
||
|
|
email: Optional[str] = None
|
||
|
|
groups: List[str] = []
|
||
|
|
send_welcome: bool = True
|
||
|
|
|
||
|
|
|
||
|
|
class NextcloudPasswordReset(BaseModel):
|
||
|
|
send_email: bool = True
|
||
|
|
|
||
|
|
|
||
|
|
class NextcloudAuditLogEntry(BaseModel):
|
||
|
|
id: int
|
||
|
|
customer_id: int
|
||
|
|
instance_id: Optional[int] = None
|
||
|
|
event_type: str
|
||
|
|
request_meta: Optional[Dict] = None
|
||
|
|
response_meta: Optional[Dict] = None
|
||
|
|
actor_user_id: Optional[int] = None
|
||
|
|
created_at: datetime
|