You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
1.7 KiB
84 lines
1.7 KiB
from __future__ import annotations
|
|
|
|
from datetime import datetime
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class FileSummary(BaseModel):
|
|
id: str
|
|
directory_id: str
|
|
name: str
|
|
mime_type: str | None
|
|
size_bytes: int
|
|
current_version_id: str | None
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
|
|
class PreviewArtifactSummary(BaseModel):
|
|
id: str
|
|
artifact_type: str
|
|
blob_id: str
|
|
status: str
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
|
|
class FileReplicaSummary(BaseModel):
|
|
id: str
|
|
blob_id: str
|
|
backend_id: str
|
|
backend_name: str
|
|
backend_type: str
|
|
backend_stability_class: str
|
|
backend_enabled: bool
|
|
storage_key: str
|
|
status: str
|
|
size_bytes: int
|
|
checksum: str | None
|
|
etag: str | None
|
|
last_verified_at: datetime | None
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
|
|
class FilePlacementBackendSummary(BaseModel):
|
|
id: str
|
|
name: str
|
|
type: str
|
|
stability_class: str
|
|
read_priority: int
|
|
write_priority: int
|
|
is_enabled: bool
|
|
|
|
|
|
class FileDetailResponse(BaseModel):
|
|
file: FileSummary
|
|
preview_artifacts: list[PreviewArtifactSummary] = []
|
|
replicas: list[FileReplicaSummary] = []
|
|
placement_file_class: str | None = None
|
|
desired_backends: list[FilePlacementBackendSummary] = []
|
|
ready_replica_backend_ids: list[str] = []
|
|
missing_backend_ids: list[str] = []
|
|
|
|
|
|
class DeletedFileSummary(FileSummary):
|
|
deleted_at: datetime
|
|
|
|
|
|
class RecycleBinResponse(BaseModel):
|
|
items: list[DeletedFileSummary]
|
|
|
|
|
|
class FileMutationResponse(BaseModel):
|
|
ok: bool = True
|
|
file: FileSummary | DeletedFileSummary
|
|
|
|
|
|
class RenameFileRequest(BaseModel):
|
|
name: str
|
|
|
|
|
|
class MoveFileRequest(BaseModel):
|
|
target_parent_id: str
|
|
|