200 lines
11 KiB
Python
200 lines
11 KiB
Python
# archive-control-proto commit: 03b6751d420e8e4e4cc9aeef4f76b13e28a7265f
|
|
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: ...
|