mirror of
https://github.com/N4S4/synology-api.git
synced 2025-08-03 16:54:41 +00:00
Adding extra functions for Hyper Backup
This commit is contained in:
@ -54,6 +54,122 @@ class Backup(base_api.BaseApi):
|
||||
|
||||
return self.request_data(api_name, api_path, req_param)
|
||||
|
||||
def backup_task_run(self, taskid: str) -> dict[str, object] | str:
|
||||
api_name = 'SYNO.Backup.Task'
|
||||
info = self.gen_list[api_name]
|
||||
api_path = info['path']
|
||||
req_param = {
|
||||
'version': info['minVersion'],
|
||||
'method': 'backup',
|
||||
'task_id': taskid
|
||||
}
|
||||
return self.request_data(api_name, api_path, req_param)
|
||||
|
||||
def backup_task_cancel(self, taskid: str) -> dict[str, object] | str:
|
||||
api_name = 'SYNO.Backup.Task'
|
||||
info = self.gen_list[api_name]
|
||||
api_path = info['path']
|
||||
req_param = {
|
||||
'version': info['minVersion'],
|
||||
'method': 'cancel',
|
||||
'task_state': 'backupable',
|
||||
'task_id': taskid
|
||||
}
|
||||
return self.request_data(api_name, api_path, req_param)
|
||||
|
||||
def backup_task_suspend(self, taskid: str) -> dict[str, object] | str:
|
||||
api_name = 'SYNO.Backup.Task'
|
||||
info = self.gen_list[api_name]
|
||||
api_path = info['path']
|
||||
req_param = {
|
||||
'version': info['minVersion'],
|
||||
'method': 'suspend',
|
||||
'task_state': 'backupable',
|
||||
'task_id': taskid
|
||||
}
|
||||
return self.request_data(api_name, api_path, req_param)
|
||||
|
||||
def backup_task_discard(self, taskid: str) -> dict[str, object] | str:
|
||||
api_name = 'SYNO.Backup.Task'
|
||||
info = self.gen_list[api_name]
|
||||
api_path = info['path']
|
||||
req_param = {
|
||||
'version': info['minVersion'],
|
||||
'method': 'discard',
|
||||
'task_id': taskid
|
||||
}
|
||||
return self.request_data(api_name, api_path, req_param)
|
||||
|
||||
def backup_task_resume(self, taskid: str) -> dict[str, object] | str:
|
||||
api_name = 'SYNO.Backup.Task'
|
||||
info = self.gen_list[api_name]
|
||||
api_path = info['path']
|
||||
req_param = {
|
||||
'version': info['minVersion'],
|
||||
'method': 'resume',
|
||||
'task_id': taskid
|
||||
}
|
||||
return self.request_data(api_name, api_path, req_param)
|
||||
|
||||
def backup_task_remove(self, task_id_list: list[int]) -> dict[str, object] | str:
|
||||
api_name = 'SYNO.Backup.Task'
|
||||
info = self.gen_list[api_name]
|
||||
api_path = info['path']
|
||||
req_param = {
|
||||
'version': info['minVersion'],
|
||||
'method': 'delete',
|
||||
'is_remove_data': False,
|
||||
'task_id_list': task_id_list
|
||||
}
|
||||
return self.request_data(api_name, api_path, req_param)
|
||||
|
||||
def integrity_check_run(self, taskid: str) -> dict[str, object] | str:
|
||||
api_name = 'SYNO.Backup.Target'
|
||||
info = self.gen_list[api_name]
|
||||
api_path = info['path']
|
||||
req_param = {
|
||||
'version': info['minVersion'],
|
||||
'method': 'error_detect',
|
||||
'detect_data': True,
|
||||
'sessId': 'null',
|
||||
'sessKey': 'null',
|
||||
'task_id': taskid
|
||||
}
|
||||
return self.request_data(api_name, api_path, req_param)
|
||||
|
||||
def integrity_check_cancel(self, taskid: str) -> dict[str, object] | str:
|
||||
api_name = 'SYNO.Backup.Target'
|
||||
info = self.gen_list[api_name]
|
||||
api_path = info['path']
|
||||
req_param = {
|
||||
'version': info['minVersion'],
|
||||
'method': 'error_detect_cancel',
|
||||
'task_id': taskid
|
||||
}
|
||||
return self.request_data(api_name, api_path, req_param)
|
||||
|
||||
def hb_logs_get(self,
|
||||
limit: int = 1000,
|
||||
offset: int = 0,
|
||||
filter_keyword: str = '',
|
||||
# filter_level: str = '', For some reason when passing filter_level, the API returns error 120.
|
||||
filter_date_from: int = 0,
|
||||
filter_date_to: int = 0) -> dict[str, object] | str:
|
||||
api_name = 'SYNO.SDS.Backup.Client.Common.Log'
|
||||
info = self.gen_list[api_name]
|
||||
api_path = info['path']
|
||||
req_param = {
|
||||
'version': info['minVersion'],
|
||||
'method': 'list',
|
||||
'limit': limit,
|
||||
'offset': offset,
|
||||
'filter_keyword': filter_keyword,
|
||||
# 'filter_level': filter_level,
|
||||
'filter_date_from': filter_date_from,
|
||||
'filter_date_to': filter_date_to
|
||||
}
|
||||
return self.request_data(api_name, api_path, req_param)
|
||||
|
||||
def vault_target_list(self) -> dict[str, object]: # TODO not working
|
||||
api_name = 'SYNO.Backup.Service.VersionBackup.Target'
|
||||
info = self.gen_list[api_name]
|
||||
|
Reference in New Issue
Block a user