feat: add archive client foundation
This commit is contained in:
@@ -0,0 +1,199 @@
|
||||
# archive-control-proto commit: 4ec852014dad74606d4078b3ae1aa208c814b033
|
||||
import datetime
|
||||
|
||||
from google.protobuf import timestamp_pb2 as _timestamp_pb2
|
||||
from google.protobuf.internal import containers as _containers
|
||||
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import message as _message
|
||||
from collections.abc import Iterable as _Iterable, Mapping as _Mapping
|
||||
from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
|
||||
|
||||
DESCRIPTOR: _descriptor.FileDescriptor
|
||||
|
||||
class TorrentRuntimeState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = ()
|
||||
TORRENT_RUNTIME_STATE_UNSPECIFIED: _ClassVar[TorrentRuntimeState]
|
||||
TORRENT_RUNTIME_STATE_STOPPED: _ClassVar[TorrentRuntimeState]
|
||||
TORRENT_RUNTIME_STATE_QUEUED: _ClassVar[TorrentRuntimeState]
|
||||
TORRENT_RUNTIME_STATE_CHECKING: _ClassVar[TorrentRuntimeState]
|
||||
TORRENT_RUNTIME_STATE_DOWNLOADING: _ClassVar[TorrentRuntimeState]
|
||||
TORRENT_RUNTIME_STATE_SEEDING: _ClassVar[TorrentRuntimeState]
|
||||
TORRENT_RUNTIME_STATE_STALLED: _ClassVar[TorrentRuntimeState]
|
||||
TORRENT_RUNTIME_STATE_ERROR: _ClassVar[TorrentRuntimeState]
|
||||
TORRENT_RUNTIME_STATE_MISSING: _ClassVar[TorrentRuntimeState]
|
||||
|
||||
class ContentEntryType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = ()
|
||||
CONTENT_ENTRY_TYPE_UNSPECIFIED: _ClassVar[ContentEntryType]
|
||||
CONTENT_ENTRY_TYPE_FILE: _ClassVar[ContentEntryType]
|
||||
CONTENT_ENTRY_TYPE_DIRECTORY: _ClassVar[ContentEntryType]
|
||||
CONTENT_ENTRY_TYPE_PADDING_FILE: _ClassVar[ContentEntryType]
|
||||
|
||||
class PlacementState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = ()
|
||||
PLACEMENT_STATE_UNSPECIFIED: _ClassVar[PlacementState]
|
||||
PLACEMENT_STATE_PRESENT: _ClassVar[PlacementState]
|
||||
PLACEMENT_STATE_MERGING: _ClassVar[PlacementState]
|
||||
PLACEMENT_STATE_EVICTING: _ClassVar[PlacementState]
|
||||
PLACEMENT_STATE_ABSENT: _ClassVar[PlacementState]
|
||||
PLACEMENT_STATE_ERROR: _ClassVar[PlacementState]
|
||||
PLACEMENT_STATE_UNKNOWN: _ClassVar[PlacementState]
|
||||
TORRENT_RUNTIME_STATE_UNSPECIFIED: TorrentRuntimeState
|
||||
TORRENT_RUNTIME_STATE_STOPPED: TorrentRuntimeState
|
||||
TORRENT_RUNTIME_STATE_QUEUED: TorrentRuntimeState
|
||||
TORRENT_RUNTIME_STATE_CHECKING: TorrentRuntimeState
|
||||
TORRENT_RUNTIME_STATE_DOWNLOADING: TorrentRuntimeState
|
||||
TORRENT_RUNTIME_STATE_SEEDING: TorrentRuntimeState
|
||||
TORRENT_RUNTIME_STATE_STALLED: TorrentRuntimeState
|
||||
TORRENT_RUNTIME_STATE_ERROR: TorrentRuntimeState
|
||||
TORRENT_RUNTIME_STATE_MISSING: TorrentRuntimeState
|
||||
CONTENT_ENTRY_TYPE_UNSPECIFIED: ContentEntryType
|
||||
CONTENT_ENTRY_TYPE_FILE: ContentEntryType
|
||||
CONTENT_ENTRY_TYPE_DIRECTORY: ContentEntryType
|
||||
CONTENT_ENTRY_TYPE_PADDING_FILE: ContentEntryType
|
||||
PLACEMENT_STATE_UNSPECIFIED: PlacementState
|
||||
PLACEMENT_STATE_PRESENT: PlacementState
|
||||
PLACEMENT_STATE_MERGING: PlacementState
|
||||
PLACEMENT_STATE_EVICTING: PlacementState
|
||||
PLACEMENT_STATE_ABSENT: PlacementState
|
||||
PLACEMENT_STATE_ERROR: PlacementState
|
||||
PLACEMENT_STATE_UNKNOWN: PlacementState
|
||||
|
||||
class ResourceId(_message.Message):
|
||||
__slots__ = ("info_hash_v1_hex", "info_hash_v2_hex")
|
||||
INFO_HASH_V1_HEX_FIELD_NUMBER: _ClassVar[int]
|
||||
INFO_HASH_V2_HEX_FIELD_NUMBER: _ClassVar[int]
|
||||
info_hash_v1_hex: str
|
||||
info_hash_v2_hex: str
|
||||
def __init__(self, info_hash_v1_hex: _Optional[str] = ..., info_hash_v2_hex: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class FileIndexRange(_message.Message):
|
||||
__slots__ = ("first", "last")
|
||||
FIRST_FIELD_NUMBER: _ClassVar[int]
|
||||
LAST_FIELD_NUMBER: _ClassVar[int]
|
||||
first: int
|
||||
last: int
|
||||
def __init__(self, first: _Optional[int] = ..., last: _Optional[int] = ...) -> None: ...
|
||||
|
||||
class SelectionSet(_message.Message):
|
||||
__slots__ = ("ranges",)
|
||||
RANGES_FIELD_NUMBER: _ClassVar[int]
|
||||
ranges: _containers.RepeatedCompositeFieldContainer[FileIndexRange]
|
||||
def __init__(self, ranges: _Optional[_Iterable[_Union[FileIndexRange, _Mapping]]] = ...) -> None: ...
|
||||
|
||||
class TorrentFile(_message.Message):
|
||||
__slots__ = ("file_index", "canonical_path", "logical_bytes", "allocated_bytes", "completed_bytes", "selected", "sparse", "padding")
|
||||
FILE_INDEX_FIELD_NUMBER: _ClassVar[int]
|
||||
CANONICAL_PATH_FIELD_NUMBER: _ClassVar[int]
|
||||
LOGICAL_BYTES_FIELD_NUMBER: _ClassVar[int]
|
||||
ALLOCATED_BYTES_FIELD_NUMBER: _ClassVar[int]
|
||||
COMPLETED_BYTES_FIELD_NUMBER: _ClassVar[int]
|
||||
SELECTED_FIELD_NUMBER: _ClassVar[int]
|
||||
SPARSE_FIELD_NUMBER: _ClassVar[int]
|
||||
PADDING_FIELD_NUMBER: _ClassVar[int]
|
||||
file_index: int
|
||||
canonical_path: str
|
||||
logical_bytes: int
|
||||
allocated_bytes: int
|
||||
completed_bytes: int
|
||||
selected: bool
|
||||
sparse: bool
|
||||
padding: bool
|
||||
def __init__(self, file_index: _Optional[int] = ..., canonical_path: _Optional[str] = ..., logical_bytes: _Optional[int] = ..., allocated_bytes: _Optional[int] = ..., completed_bytes: _Optional[int] = ..., selected: _Optional[bool] = ..., sparse: _Optional[bool] = ..., padding: _Optional[bool] = ...) -> None: ...
|
||||
|
||||
class ContentTreeEntry(_message.Message):
|
||||
__slots__ = ("canonical_path", "parent_path", "display_name", "type", "file_index", "available_file_indices", "available_logical_bytes", "available_file_count", "file")
|
||||
CANONICAL_PATH_FIELD_NUMBER: _ClassVar[int]
|
||||
PARENT_PATH_FIELD_NUMBER: _ClassVar[int]
|
||||
DISPLAY_NAME_FIELD_NUMBER: _ClassVar[int]
|
||||
TYPE_FIELD_NUMBER: _ClassVar[int]
|
||||
FILE_INDEX_FIELD_NUMBER: _ClassVar[int]
|
||||
AVAILABLE_FILE_INDICES_FIELD_NUMBER: _ClassVar[int]
|
||||
AVAILABLE_LOGICAL_BYTES_FIELD_NUMBER: _ClassVar[int]
|
||||
AVAILABLE_FILE_COUNT_FIELD_NUMBER: _ClassVar[int]
|
||||
FILE_FIELD_NUMBER: _ClassVar[int]
|
||||
canonical_path: str
|
||||
parent_path: str
|
||||
display_name: str
|
||||
type: ContentEntryType
|
||||
file_index: int
|
||||
available_file_indices: SelectionSet
|
||||
available_logical_bytes: int
|
||||
available_file_count: int
|
||||
file: TorrentFile
|
||||
def __init__(self, canonical_path: _Optional[str] = ..., parent_path: _Optional[str] = ..., display_name: _Optional[str] = ..., type: _Optional[_Union[ContentEntryType, str]] = ..., file_index: _Optional[int] = ..., available_file_indices: _Optional[_Union[SelectionSet, _Mapping]] = ..., available_logical_bytes: _Optional[int] = ..., available_file_count: _Optional[int] = ..., file: _Optional[_Union[TorrentFile, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class ResourceSummary(_message.Message):
|
||||
__slots__ = ("resource_id", "qb_torrent_id", "display_name", "runtime_state", "selected_files", "selected_complete_files", "selected_logical_bytes", "selected_complete_bytes", "total_logical_bytes", "total_file_count", "content_revision", "canonical_paths", "observed_at")
|
||||
RESOURCE_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
QB_TORRENT_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
DISPLAY_NAME_FIELD_NUMBER: _ClassVar[int]
|
||||
RUNTIME_STATE_FIELD_NUMBER: _ClassVar[int]
|
||||
SELECTED_FILES_FIELD_NUMBER: _ClassVar[int]
|
||||
SELECTED_COMPLETE_FILES_FIELD_NUMBER: _ClassVar[int]
|
||||
SELECTED_LOGICAL_BYTES_FIELD_NUMBER: _ClassVar[int]
|
||||
SELECTED_COMPLETE_BYTES_FIELD_NUMBER: _ClassVar[int]
|
||||
TOTAL_LOGICAL_BYTES_FIELD_NUMBER: _ClassVar[int]
|
||||
TOTAL_FILE_COUNT_FIELD_NUMBER: _ClassVar[int]
|
||||
CONTENT_REVISION_FIELD_NUMBER: _ClassVar[int]
|
||||
CANONICAL_PATHS_FIELD_NUMBER: _ClassVar[int]
|
||||
OBSERVED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
resource_id: ResourceId
|
||||
qb_torrent_id: str
|
||||
display_name: str
|
||||
runtime_state: TorrentRuntimeState
|
||||
selected_files: SelectionSet
|
||||
selected_complete_files: SelectionSet
|
||||
selected_logical_bytes: int
|
||||
selected_complete_bytes: int
|
||||
total_logical_bytes: int
|
||||
total_file_count: int
|
||||
content_revision: str
|
||||
canonical_paths: bool
|
||||
observed_at: _timestamp_pb2.Timestamp
|
||||
def __init__(self, resource_id: _Optional[_Union[ResourceId, _Mapping]] = ..., qb_torrent_id: _Optional[str] = ..., display_name: _Optional[str] = ..., runtime_state: _Optional[_Union[TorrentRuntimeState, str]] = ..., selected_files: _Optional[_Union[SelectionSet, _Mapping]] = ..., selected_complete_files: _Optional[_Union[SelectionSet, _Mapping]] = ..., selected_logical_bytes: _Optional[int] = ..., selected_complete_bytes: _Optional[int] = ..., total_logical_bytes: _Optional[int] = ..., total_file_count: _Optional[int] = ..., content_revision: _Optional[str] = ..., canonical_paths: _Optional[bool] = ..., observed_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class ResourceStateFingerprint(_message.Message):
|
||||
__slots__ = ("resource_id", "client_id", "qb_torrent_id", "content_revision", "selected_files", "selected_complete_files", "runtime_state", "save_path_fingerprint", "observed_at")
|
||||
RESOURCE_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
CLIENT_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
QB_TORRENT_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
CONTENT_REVISION_FIELD_NUMBER: _ClassVar[int]
|
||||
SELECTED_FILES_FIELD_NUMBER: _ClassVar[int]
|
||||
SELECTED_COMPLETE_FILES_FIELD_NUMBER: _ClassVar[int]
|
||||
RUNTIME_STATE_FIELD_NUMBER: _ClassVar[int]
|
||||
SAVE_PATH_FINGERPRINT_FIELD_NUMBER: _ClassVar[int]
|
||||
OBSERVED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
resource_id: ResourceId
|
||||
client_id: str
|
||||
qb_torrent_id: str
|
||||
content_revision: str
|
||||
selected_files: SelectionSet
|
||||
selected_complete_files: SelectionSet
|
||||
runtime_state: TorrentRuntimeState
|
||||
save_path_fingerprint: str
|
||||
observed_at: _timestamp_pb2.Timestamp
|
||||
def __init__(self, resource_id: _Optional[_Union[ResourceId, _Mapping]] = ..., client_id: _Optional[str] = ..., qb_torrent_id: _Optional[str] = ..., content_revision: _Optional[str] = ..., selected_files: _Optional[_Union[SelectionSet, _Mapping]] = ..., selected_complete_files: _Optional[_Union[SelectionSet, _Mapping]] = ..., runtime_state: _Optional[_Union[TorrentRuntimeState, str]] = ..., save_path_fingerprint: _Optional[str] = ..., observed_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class Placement(_message.Message):
|
||||
__slots__ = ("resource_id", "client_id", "state", "verified_files", "verified_logical_bytes", "generation", "fingerprint", "verified_at", "created_by_job_id")
|
||||
RESOURCE_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
CLIENT_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
STATE_FIELD_NUMBER: _ClassVar[int]
|
||||
VERIFIED_FILES_FIELD_NUMBER: _ClassVar[int]
|
||||
VERIFIED_LOGICAL_BYTES_FIELD_NUMBER: _ClassVar[int]
|
||||
GENERATION_FIELD_NUMBER: _ClassVar[int]
|
||||
FINGERPRINT_FIELD_NUMBER: _ClassVar[int]
|
||||
VERIFIED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
CREATED_BY_JOB_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
resource_id: ResourceId
|
||||
client_id: str
|
||||
state: PlacementState
|
||||
verified_files: SelectionSet
|
||||
verified_logical_bytes: int
|
||||
generation: int
|
||||
fingerprint: ResourceStateFingerprint
|
||||
verified_at: _timestamp_pb2.Timestamp
|
||||
created_by_job_id: str
|
||||
def __init__(self, resource_id: _Optional[_Union[ResourceId, _Mapping]] = ..., client_id: _Optional[str] = ..., state: _Optional[_Union[PlacementState, str]] = ..., verified_files: _Optional[_Union[SelectionSet, _Mapping]] = ..., verified_logical_bytes: _Optional[int] = ..., generation: _Optional[int] = ..., fingerprint: _Optional[_Union[ResourceStateFingerprint, _Mapping]] = ..., verified_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., created_by_job_id: _Optional[str] = ...) -> None: ...
|
||||
Reference in New Issue
Block a user