# archive-control-proto commit: 03b6751d420e8e4e4cc9aeef4f76b13e28a7265f import datetime from archive_control.v1 import common_pb2 as _common_pb2 from archive_control.v1 import job_pb2 as _job_pb2 from archive_control.v1 import route_pb2 as _route_pb2 from google.protobuf import duration_pb2 as _duration_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 ClientFeature(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): __slots__ = () CLIENT_FEATURE_UNSPECIFIED: _ClassVar[ClientFeature] CLIENT_FEATURE_INVENTORY_CHUNKS: _ClassVar[ClientFeature] CLIENT_FEATURE_CONTENT_TREE: _ClassVar[ClientFeature] CLIENT_FEATURE_ROUTE_PROVISIONING: _ClassVar[ClientFeature] CLIENT_FEATURE_HARD_LINK: _ClassVar[ClientFeature] CLIENT_FEATURE_REFLINK: _ClassVar[ClientFeature] CLIENT_FEATURE_SPARSE_FILES: _ClassVar[ClientFeature] CLIENT_FEATURE_PARTFILE_MIGRATION: _ClassVar[ClientFeature] CLIENT_FEATURE_PARTFILE_MERGE: _ClassVar[ClientFeature] CLIENT_FEATURE_QB_STOPPED_ADD: _ClassVar[ClientFeature] CLIENT_FEATURE_EVICTION: _ClassVar[ClientFeature] CLIENT_FEATURE_DB_BACKUP: _ClassVar[ClientFeature] class RegistrationStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): __slots__ = () REGISTRATION_STATUS_UNSPECIFIED: _ClassVar[RegistrationStatus] REGISTRATION_STATUS_ACCEPTED: _ClassVar[RegistrationStatus] REGISTRATION_STATUS_REJECTED: _ClassVar[RegistrationStatus] CLIENT_FEATURE_UNSPECIFIED: ClientFeature CLIENT_FEATURE_INVENTORY_CHUNKS: ClientFeature CLIENT_FEATURE_CONTENT_TREE: ClientFeature CLIENT_FEATURE_ROUTE_PROVISIONING: ClientFeature CLIENT_FEATURE_HARD_LINK: ClientFeature CLIENT_FEATURE_REFLINK: ClientFeature CLIENT_FEATURE_SPARSE_FILES: ClientFeature CLIENT_FEATURE_PARTFILE_MIGRATION: ClientFeature CLIENT_FEATURE_PARTFILE_MERGE: ClientFeature CLIENT_FEATURE_QB_STOPPED_ADD: ClientFeature CLIENT_FEATURE_EVICTION: ClientFeature CLIENT_FEATURE_DB_BACKUP: ClientFeature REGISTRATION_STATUS_UNSPECIFIED: RegistrationStatus REGISTRATION_STATUS_ACCEPTED: RegistrationStatus REGISTRATION_STATUS_REJECTED: RegistrationStatus class FilesystemCapabilities(_message.Message): __slots__ = ("root_name", "readable", "writable", "hard_link", "reflink", "sparse_files", "detail") ROOT_NAME_FIELD_NUMBER: _ClassVar[int] READABLE_FIELD_NUMBER: _ClassVar[int] WRITABLE_FIELD_NUMBER: _ClassVar[int] HARD_LINK_FIELD_NUMBER: _ClassVar[int] REFLINK_FIELD_NUMBER: _ClassVar[int] SPARSE_FILES_FIELD_NUMBER: _ClassVar[int] DETAIL_FIELD_NUMBER: _ClassVar[int] root_name: str readable: bool writable: bool hard_link: bool reflink: bool sparse_files: bool detail: str def __init__(self, root_name: _Optional[str] = ..., readable: _Optional[bool] = ..., writable: _Optional[bool] = ..., hard_link: _Optional[bool] = ..., reflink: _Optional[bool] = ..., sparse_files: _Optional[bool] = ..., detail: _Optional[str] = ...) -> None: ... class ClientCapabilities(_message.Message): __slots__ = ("features", "services", "filesystems", "routes", "syncthing_device_id", "syncthing_advertised_addresses", "qbittorrent_version", "qbittorrent_web_api_version", "libtorrent_version", "syncthing_version", "supported_partfile_formats", "max_envelope_bytes") FEATURES_FIELD_NUMBER: _ClassVar[int] SERVICES_FIELD_NUMBER: _ClassVar[int] FILESYSTEMS_FIELD_NUMBER: _ClassVar[int] ROUTES_FIELD_NUMBER: _ClassVar[int] SYNCTHING_DEVICE_ID_FIELD_NUMBER: _ClassVar[int] SYNCTHING_ADVERTISED_ADDRESSES_FIELD_NUMBER: _ClassVar[int] QBITTORRENT_VERSION_FIELD_NUMBER: _ClassVar[int] QBITTORRENT_WEB_API_VERSION_FIELD_NUMBER: _ClassVar[int] LIBTORRENT_VERSION_FIELD_NUMBER: _ClassVar[int] SYNCTHING_VERSION_FIELD_NUMBER: _ClassVar[int] SUPPORTED_PARTFILE_FORMATS_FIELD_NUMBER: _ClassVar[int] MAX_ENVELOPE_BYTES_FIELD_NUMBER: _ClassVar[int] features: _containers.RepeatedScalarFieldContainer[ClientFeature] services: _containers.RepeatedCompositeFieldContainer[_common_pb2.ServiceHealth] filesystems: _containers.RepeatedCompositeFieldContainer[FilesystemCapabilities] routes: _containers.RepeatedCompositeFieldContainer[_route_pb2.LocalRoute] syncthing_device_id: str syncthing_advertised_addresses: _containers.RepeatedScalarFieldContainer[str] qbittorrent_version: str qbittorrent_web_api_version: str libtorrent_version: str syncthing_version: str supported_partfile_formats: _containers.RepeatedScalarFieldContainer[str] max_envelope_bytes: int def __init__(self, features: _Optional[_Iterable[_Union[ClientFeature, str]]] = ..., services: _Optional[_Iterable[_Union[_common_pb2.ServiceHealth, _Mapping]]] = ..., filesystems: _Optional[_Iterable[_Union[FilesystemCapabilities, _Mapping]]] = ..., routes: _Optional[_Iterable[_Union[_route_pb2.LocalRoute, _Mapping]]] = ..., syncthing_device_id: _Optional[str] = ..., syncthing_advertised_addresses: _Optional[_Iterable[str]] = ..., qbittorrent_version: _Optional[str] = ..., qbittorrent_web_api_version: _Optional[str] = ..., libtorrent_version: _Optional[str] = ..., syncthing_version: _Optional[str] = ..., supported_partfile_formats: _Optional[_Iterable[str]] = ..., max_envelope_bytes: _Optional[int] = ...) -> None: ... class ActiveJobCursor(_message.Message): __slots__ = ("job_id", "job_revision", "last_event_sequence", "state", "committed") JOB_ID_FIELD_NUMBER: _ClassVar[int] JOB_REVISION_FIELD_NUMBER: _ClassVar[int] LAST_EVENT_SEQUENCE_FIELD_NUMBER: _ClassVar[int] STATE_FIELD_NUMBER: _ClassVar[int] COMMITTED_FIELD_NUMBER: _ClassVar[int] job_id: str job_revision: int last_event_sequence: int state: _job_pb2.JobState committed: bool def __init__(self, job_id: _Optional[str] = ..., job_revision: _Optional[int] = ..., last_event_sequence: _Optional[int] = ..., state: _Optional[_Union[_job_pb2.JobState, str]] = ..., committed: _Optional[bool] = ...) -> None: ... class RegisterRequest(_message.Message): __slots__ = ("protocol_version", "client", "connection_instance_id", "shared_token", "capabilities", "active_jobs") PROTOCOL_VERSION_FIELD_NUMBER: _ClassVar[int] CLIENT_FIELD_NUMBER: _ClassVar[int] CONNECTION_INSTANCE_ID_FIELD_NUMBER: _ClassVar[int] SHARED_TOKEN_FIELD_NUMBER: _ClassVar[int] CAPABILITIES_FIELD_NUMBER: _ClassVar[int] ACTIVE_JOBS_FIELD_NUMBER: _ClassVar[int] protocol_version: _common_pb2.ProtocolVersion client: _common_pb2.ClientIdentity connection_instance_id: str shared_token: str capabilities: ClientCapabilities active_jobs: _containers.RepeatedCompositeFieldContainer[ActiveJobCursor] def __init__(self, protocol_version: _Optional[_Union[_common_pb2.ProtocolVersion, _Mapping]] = ..., client: _Optional[_Union[_common_pb2.ClientIdentity, _Mapping]] = ..., connection_instance_id: _Optional[str] = ..., shared_token: _Optional[str] = ..., capabilities: _Optional[_Union[ClientCapabilities, _Mapping]] = ..., active_jobs: _Optional[_Iterable[_Union[ActiveJobCursor, _Mapping]]] = ...) -> None: ... class RegisterResponse(_message.Message): __slots__ = ("status", "negotiated_version", "connection_id", "heartbeat_interval", "heartbeat_timeout", "error") STATUS_FIELD_NUMBER: _ClassVar[int] NEGOTIATED_VERSION_FIELD_NUMBER: _ClassVar[int] CONNECTION_ID_FIELD_NUMBER: _ClassVar[int] HEARTBEAT_INTERVAL_FIELD_NUMBER: _ClassVar[int] HEARTBEAT_TIMEOUT_FIELD_NUMBER: _ClassVar[int] ERROR_FIELD_NUMBER: _ClassVar[int] status: RegistrationStatus negotiated_version: _common_pb2.ProtocolVersion connection_id: str heartbeat_interval: _duration_pb2.Duration heartbeat_timeout: _duration_pb2.Duration error: _common_pb2.Error def __init__(self, status: _Optional[_Union[RegistrationStatus, str]] = ..., negotiated_version: _Optional[_Union[_common_pb2.ProtocolVersion, _Mapping]] = ..., connection_id: _Optional[str] = ..., heartbeat_interval: _Optional[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]] = ..., heartbeat_timeout: _Optional[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]] = ..., error: _Optional[_Union[_common_pb2.Error, _Mapping]] = ...) -> None: ... class Heartbeat(_message.Message): __slots__ = ("sequence",) SEQUENCE_FIELD_NUMBER: _ClassVar[int] sequence: int def __init__(self, sequence: _Optional[int] = ...) -> None: ... class HeartbeatAck(_message.Message): __slots__ = ("sequence",) SEQUENCE_FIELD_NUMBER: _ClassVar[int] sequence: int def __init__(self, sequence: _Optional[int] = ...) -> None: ...