# 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: ...