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

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