Mini Shell
"""TypedDict typehints for Backup Authority API replies"""
from typing import TypedDict, Union
from restic import ResticRepo
# https://www.python.org/dev/peps/pep-0589/
class SharedFailoverLocks(TypedDict):
"""Return format of get_shared_failover_locks"""
server_lock: Union[int, None] # timestamp
user_locks: list[str] # snapshot IDs
class AgentClientLookup(TypedDict):
"""Reply dict format for support agent bucket lookups for v/ded servers"""
wans: dict[str, str]
repo: ResticRepo
svr_class: str
class AgentCpuserLookup(TypedDict):
"""Reply dict format for support agent bucket lookups for cPanel users"""
wans: dict[str, str]
repo: ResticRepo
class VznodeBackupLookup(TypedDict):
"""Reply dict format for ``BakAuth.vzclient_backup``"""
endpoints: dict[str, str]
node_keys: ResticRepo
vps_keys: dict[int, ResticRepo]
# task_ids is sent by bakauth but not stored in this dict
changed: dict[int, str]
class VznodeRestoreLookup(TypedDict):
"""Reply dict format for ``BakAuth.vzclient_restore``"""
this_endpoint: str
key_info: ResticRepo
all_endpoints: dict[str, str]
class UserBuckets(TypedDict):
"""Reply dict format for ``BakAuth.get_user_buckets``"""
copy_users: list[str]
quotas_gb: dict[str, int]
repos: dict[str, ResticRepo]
missing: list[str]
class RegCopy(TypedDict):
"""Info on a cross-coast cluster"""
name: str
location: str
endpoint: str
class RegDetails(TypedDict):
"""Reply dict format for ``BakAuth.get_reg_details``"""
name: str # cluster name
location: str
svr_class: str # imh_vps, imh_reseller, imh_shared, hub_shared, or imh_ded
client_host: str # short hostname bakauth knows this client as
endpoint: str # url such as https://backups.lax1.imhcloud.net
wans: dict[str, str] # name -> urls for all clusters' wans
copy: RegCopy
repo: ResticRepo
Zerion Mini Shell 1.0