# retoor <retoor@molodetz.nl>
from __future__ import annotations
from typing import Optional
from devplacepy.schemas.base import _Out
class BackupStoragePathOut(_Out):
key: str = ""
label: str = ""
path: str = ""
size_bytes: int = 0
size_human: str = ""
file_count: int = 0
exists: bool = False
class BackupOut(_Out):
uid: str = ""
job_uid: str = ""
target: str = ""
label: str = ""
status: str = ""
filename: str = ""
size_bytes: int = 0
size_human: str = ""
bytes_in: int = 0
file_count: int = 0
dir_count: int = 0
sha256: str = ""
schedule_uid: str = ""
created_by: str = ""
created_at: Optional[str] = None
completed_at: Optional[str] = None
error: Optional[str] = None
download_url: Optional[str] = None
class BackupJobOut(_Out):
uid: str = ""
kind: str = ""
status: str = ""
target: Optional[str] = None
backup_uid: Optional[str] = None
download_url: Optional[str] = None
error: Optional[str] = None
bytes_out: int = 0
file_count: int = 0
sha256: Optional[str] = None
created_at: Optional[str] = None
completed_at: Optional[str] = None
class BackupScheduleOut(_Out):
uid: str = ""
name: str = ""
target: str = ""
kind: str = ""
every_seconds: int = 0
cron: Optional[str] = None
enabled: int = 0
keep_last: int = 0
next_run_at: Optional[str] = None
last_run_at: Optional[str] = None
last_job_uid: Optional[str] = None
run_count: int = 0
created_at: Optional[str] = None
class BackupDashboardOut(_Out):
storage: dict = {}
backups: list[BackupOut] = []
schedules: list[BackupScheduleOut] = []
targets: list[dict] = []
metrics: dict = {}
generated_at: Optional[str] = None
can_download_backups: bool = False
admin_section: Optional[str] = None