Navigation
- index
- modules |
- next |
- previous |
- Lastline API »
Lastline Backup API¶
The Lastline Backup API is accessible at
https://user.lastline.com/papi/backup/<function>
The Lastline Backup API is a web-based API to configure and run the backup system on a Lastline Enterprise on-premise installation.
Methods¶
Method Index¶
list_storages()
:List available storages configured in the system
add_storage_ssh()
:Add a new SSH storage
edit_storage_ssh()
:Edit an existing SSH storage
add_storage_s3()
:Add a new Amazon S3 storage
edit_storage_s3()
:Edit an existing Amazon S3 storage
delete_storage()
:Delete an existing storage
test_storage()
:Test the configuration of an existing storage
list_jobs()
:Retrieve history of jobs (date, status...)
run_backup()
:Run a backup
restore_backup()
:Restore a backup
list_backups()
:List backups available on a given storage for a given server
list_hostnames()
:List host names that have been backed up on a given storage
add_backup_config()
:Add a new backup configuration
update_backup_config()
:Update an existing backup configuration
list_backup_config()
:List existing backup configurations
get_backup_config()
:Get a full description of a given backup configuration
delete_backup_config()
:Delete a backup configuration
test_backup_config()
:Test a backup configuration
list_ssh_ids()
:Retrieve a list of configured SSH ids
generate_new_ssh_id()
:Generate a new SSH id
delete_ssh_id()
:Delete a SSH id
get_pub_ssh_id()
:Get the public part of an existing SSH id
Method Documentation¶
-
backup.
list_storages
(response_format)¶ List available storages configured in the system
URL
/papi/backup/storage/list[. response_format]
response_format can be xml or json (defaults to json)
HTTP METHOD
GET, POSTContents of successful response
List of dictionaries; each dictionary describes a storage;
Content of the dictionary depends on the type of storage (ssh, s3)
Dictionary for a storage “ssh” contains:
- storage_name:
Name of the storage
- type:
Human-readable type of storage (“ssh”)
- username:
Username used for the ssh connection
- server_name:
Name or IP of the ssh server
- ssh_port:
Port used for the ssh connection
- ssh_id:
Name of the ssh id used for the ssh connection
- storage_base:
Full path to the directory where the backup are stored
- storage_id:
Unique identifier of the storage
- ssh_id_id:
Unique identifier of the ssh id
Dictionary for a storage “s3” contains:
- storage_name:
Name of the storage
- type:
Human-readable type of storage (“s3”)
- aws_key_id:
Identifier used to connect to Amazon AWS services
- aws_secret_key:
Secret key used to connect to Amazon AWS services
- bucket_name:
Name of the bucket where the backup are store
- file_size:
Maximum size of the files stored on the s3 storage Larger files are splited in several archives
- storage_id:
Unique identifier of the storage
-
backup.
add_storage_ssh
(response_format)¶ Add a new SSH storage
URL
/papi/backup/storage/ssh/add[. response_format]
response_format can be xml or json (defaults to json)
HTTP METHOD
POSTPOST Parameters
- storage_name:
Name of storage to add
- server_name:
Name or IP of the ssh server
- ssh_port:
Port to use for the ssh connection
- ssh_username:
Username to use for the ssh connection
- ssh_id_id:
Unique identifier of the ssh id to use for the connection
- storage_base:
Full path to the directory where the backup have to be stored
Contents of successful response
“success”
-
backup.
edit_storage_ssh
(response_format)¶ Edit an existing ssh storage
URL
/papi/backup/storage/ssh/edit[. response_format]
response_format can be xml or json (defaults to json)
HTTP METHOD
POSTPOST Parameters
All POST parameters defined for the function add_storage_ssh, extended by:
- storage_id:
Unique identifier of the storage to edit
Contents of successful response
“success”
-
backup.
add_storage_s3
(response_format)¶ Add a new amazon s3 storage
URL
/papi/backup/storage/s3/add[. response_format]
response_format can be xml or json (defaults to json)
HTTP METHOD
POSTPOST Parameters
- storage_name:
Name of storage to add
- aws_key_id:
Identifier to use for the connection to Amazon AWS services
- aws_secret_key:
Secret key to use for the connection to Amazon AWS services
- file_size:
Maximum size of the files stored on the s3 storage Larger files are splited in several archives
- bucket_name:
Name of the bucket where the backup have to be stored
Contents of successful response
“success”
-
backup.
edit_storage_s3
(response_format)¶ Edit an existing amazon s3 storage
URL
/papi/backup/storage/s3/edit[. response_format]
response_format can be xml or json (defaults to json)
HTTP METHOD
POSTPOST Parameters
All POST parameters defined for the function add_storage_s3, extended by:
- storage_id:
Unique identifier of the storage to edit
Contents of successful response
“success”
-
backup.
delete_storage
(response_format)¶ Delete an existing storage
URL
/papi/backup/storage/del[. response_format]
response_format can be xml or json (defaults to json)
HTTP METHOD
POSTPOST Parameters
- storage_id:
Unique identifier of the storage to delete
Contents of successful response
“success”
-
backup.
test_storage
(response_format)¶ Test the configuration of an existing storage
URL
/papi/backup/storage/test[. response_format]
response_format can be xml or json (defaults to json)
HTTP METHOD
GET, POSTGET, POST Parameters
- storage_name:
Name of the storage to test
Contents of successful response
“success”
-
backup.
list_jobs
(response_format)¶ List all backup jobs that have been executed on the system
URL
/papi/backup/job/list[. response_format]
response_format can be xml or json (defaults to json)
HTTP METHOD
GET, POSTContents of successful response
List of dictionaries; each dictionary describes a job and contains:
- job_status:
Human-readable status of the job (‘waiting’, ‘running’, ‘success’ or ‘failed’)
- description:
A description of the current status (set only when a job is terminated)
- backup_name:
Name of the backup associated with this job
- backup_type:
Type of backup (‘full’, ‘inc’)
- start_date:
Human-readable date in the local timezone when the job was added
- end_date:
Human-readable date in the local timezone when the job was finished (in success or failure)
- job_type:
Human-readable type of job (‘backup’, ‘restore’)
- job_id:
Unique identifier of the job
- size_transferred:
Size transferred during the operation (remains to 0 until the operation is completed)
- size_transferred_human:
Human-readable version of the size transferred during the operation
-
backup.
run_backup
(response_format)¶ Execute a backup
URL
/papi/backup/backup/run[. response_format]
response_format can be xml or json (defaults to json)
HTTP METHOD
POSTPOST Parameters
- backup_name:
Name of the backup to execute
- backup_type:
Human-readable type of backup to execute (‘full’ or ‘inc’)
Contents of successful response
“success”
-
backup.
restore_backup
(response_format)¶ Restore a backup
URL
/papi/backup/backup/restore[. response_format]
response_format can be xml or json (defaults to json)
HTTP METHOD
POSTPOST Parameters
- storage_name:
Name of the storage where the backup to restore is stored
- backup_name:
Name of the backup to restore
- restore_date:
Human-readable date of the backup to restore in local timezone
- encryption_key:
Key to use to decrypt the backup (required only if backups are encrypted)
- timezone:
Local timezone
- hostname:
Name of the hostname on which the backup to restore has been created This parameter is optional; if left blank, the name of the current server (the one processing the API request) will be used
Contents of successful response
“success”
-
backup.
list_backups
(response_format)¶ List available backups on a storage
URL
/papi/backup/backup/list[. response_format]
response_format can be xml or json (defaults to json)
HTTP METHOD
GET, POSTPOST Parameters
- storage_name:
Name of the storage where the backups to list are stored. This parameter is optional; if left blank, the returned content will contains informations for all storages
- hostname:
Name of the server from which the backups to list have been created. This parameter is optional; if left blank, the name of the current server (the one processing the API request) will be used
- timezone:
Local timezone
- date_from:
Low boundary of a date range used to filter returned backups. If not specified, no low boundary filtering is applied
- date_to:
High boundary of a date range used to filter returned backups. If not specified, no high boundary filtering is applied
Contents of successful response
Dictionary of dictionary.
First level
The first level of dictionary maps a storage with a set of backups For each entry, the key represents the name of the storage and the associated value the list of backups on this storage for the designated server:
{'storage1':<second level object>, 'storage2':<second level object>, ...}
Second level
Each dictionary on the second level describes a list of backups For each entry, the key represents the name of the backup and the associated value is a list of actual backups of this backup name:
{'backup1':[<third level object>],'backup2':[<third level object>]...}
Third level
The third level is a dictionary that describes a backup stored on a storage; it contains:
- date:
Human-readable date of the backup in the local timezone
- path:
Extended name of backup
- full:
boolean that indicates if the backup is a full backup (true) or an incremental (false)
- encrypted:
boolean set if the backup is encrypted
- hostname:
Name of the server from which the backups to list have been created. This basically matched the parameter “hostname” sent in the request. However if the parameter is omited in the request, the retured value will be set to the name of the current server (the one processing the API request) Note that this information is redondant across all listed backups.
To summarize:
{'storage1': {'backup1':[ {'date': '...', 'path': '...', 'full': true, 'encrypted': false, 'hostname': 'myserver'}, {'date': '...', 'path': '...', 'full': false, 'encrypted': false, 'hostname': 'myserver'}, {'date': '...', 'path': '...', 'full': false, 'encrypted': false, 'hostname': 'myserver'}], 'backup2':[ {'date': '...', 'path': '...', 'full': true, 'encrypted': true, 'hostname': 'myserver'}, {'date': '...', 'path': '...', 'full': true, 'encrypted': false, 'hostname': 'myserver'}, {'date': '...', 'path': '...', 'full': false, 'encrypted': false, 'hostname': 'myserver'}]}, 'storage2': {'backup1':[ {'date': '...', 'path': '...', 'full': true, 'encrypted': true, 'hostname': 'myserver'}, {'date': '...', 'path': '...', 'full': false, 'encrypted': true, 'hostname': 'myserver'}, {'date': '...', 'path': '...', 'full': false, 'encrypted': true, 'hostname': 'myserver'}], 'backup3':[ {'date': '...', 'path': '...', 'full': true, 'encrypted': false, 'hostname': 'myserver'}, {'date': '...', 'path': '...', 'full': true, 'encrypted': false, 'hostname': 'myserver'}, {'date': '...', 'path': '...', 'full': true, 'encrypted': false, 'hostname': 'myserver'}]}}
-
backup.
list_hostnames
(response_format)¶ List name of servers that have at least one valid backup on a storage
URL
/papi/backup/backup/list-hostname[. response_format]
response_format can be xml or json (defaults to json)
HTTP METHOD
GET, POSTPOST Parameters
- storage_name:
Name of the storage where the backups are stored. This parameter is optional; if left blank, the returned content will contains informations for all storages
Contents of successful response
Dictionary of list.
For each entry, the key represents the name of the storage and the associated value is a list server names that have a valid backup on this storage
To summarize:
{'storage1':['server1','server2'], 'storage2':['server1','server3'], 'storage3':['server3']}
-
backup.
add_backup_config
(response_format)¶ Add a new configuration for a backup
URL
/papi/backup/backup-config/add[. response_format]
response_format can be xml or json (defaults to json)
HTTP METHOD
POSTPOST Parameters
- backup_name:
Name of the backup configuration to add
- storage_id:
Unique identifier of the storage where the backups shoud be stored
- encryption_key:
Encryption key to use during the backup. Encryption rely on a aes256 CBC and is done on the server side. When activated, all data are encrypted before being sent to the storage. This parameter is optional; if left blank the backups will not be encrypted
The next parameters exists both for the full and incremental backup configurations; in each name, <type> has to be replaced either by ‘full’ or ‘inc’
- schedule_<type>_period:
Human-readable period of the backup. Must be one of: ‘deactivated’,’yearly’,’monthly’,’weekly’,’daily’ or ‘hourly’
- schedule_<type>_frequency:
Frequency of the backup in the defined period For example period=’yearly’ and frequency=2 means every other month
- schedule_<type>_time_list:
List of time to run the backup; meaning depends on value of schedule_<type>_period ‘deactivated’: does not matter ‘yearly’: list of months (1-12) ‘monthly’: list of days (1-31) ‘weekly’: list of day of the week (0-6) ‘daily’: does not matter ‘hourly’: list of hours (0-23)
- schedule_<type>_day_run:
Comma separated list of days to run the backup on; valid only if period is ‘yearly’
- schedule_<type>_time_run:
Comma separated list of hours to run the backup on; valid only if period is ‘yearly’,’monthly’,’weekly’ or ‘daily’
Contents of successful response
‘success’
-
backup.
update_backup_config
(response_format)¶ Add a new configuration for a backup
URL
/papi/backup/backup-config/edit[. response_format]
response_format can be xml or json (defaults to json)
HTTP METHOD
POSTPOST Parameters
All POST parameters defined for the function add_backup_config, extended by:
- backup_id:
Unique identifier of the backup configuration to update
Contents of successful response
‘success’
-
backup.
list_backup_config
(response_format)¶ List existing backup configurations
URL
/papi/backup/backup-config/list[. response_format]
response_format can be xml or json (defaults to json)
HTTP METHOD
GET, POSTGET, POST Parameters
- timezone:
Local timezone
Contents of successful response
List of dictionaries
Each dictionary represents a backup configuration and contains:
- backup_id:
Unique identifier of the backup configuration
- backup_name:
Name of the backup configuration
- storage_name:
Name of the storage where the backups are stored
- encryption_key:
Encryption key to use during the backup
- full:
Dictionary <last backup> that represents the status of the last full backup
- inc:
Dictionary <last backup> that represents the status of the last incremental backup
A dictionary <last backup> describes the status of the last backup job associated with this backup configuration; it contains:
- job_status:
Human-readable status of the backup job (‘waiting’, ‘running’, ‘success’ or ‘failed’)
- description:
A description of the current status (set only when the job is terminated)
- start_date:
Human-readable date in the local timezone when the job was added
- end_date:
Human-readable date in the local timezone when the job was finished (in success or failure)
-
backup.
get_backup_config
(response_format)¶ Get the configuration of a backup
URL
/papi/backup/backup-config/get[. response_format]
response_format can be xml or json (defaults to json)
HTTP METHOD
GET, POSTGET, POST Parameters
- backup_name:
Name of the backup configuration to retrieve
Contents of successful response
The answer is a dictionary with 3 entries:
- “config”: dictionary <general config> with general configuration
- “full”; dictionary <schedule> with configuration of full backups
- “inc”; dictionary <schedule> with configuration of incremental backups
dictionary <general config>
This dictionary represents the general configuration; it contains:
- backup_id:
Unique identifier of the backup configuration
- backup_name:
Name of the backup configuration
- storage_name:
Name of the storage where the backups are stored
- encryption_key:
Encryption key to use during the backup
dictionary <schedule>
This dictionary represents the schedule configuration; the structure is similar for full and incremental configuration
- period:
Human-readable period of the backup. Must be one of: ‘deactivated’,’yearly’,’monthly’,’weekly’,’daily’ or ‘hourly’
- frequency:
Frequency of the backup in the defined period For example period=’yearly’ and frequency=2 means every other month
- time_list:
List of time to run the backup; meaning depends on value of schedule_<type>_period ‘deactivated’: does not matter ‘yearly’: list of months (1-12) ‘monthly’: list of days (1-31) ‘weekly’: list of day of the week (0-6) ‘daily’: does not matter ‘hourly’: list of hours (0-23)
- day_run:
Comma separated list of days the backup will run on; valid only if period is ‘yearly’
- time_run:
Comma separated list of hours the backup will run on; valid only if period is ‘yearly’,’monthly’,’weekly’ or ‘daily’
- backup_type:
Deprecated field that should not be used
- template:
Deprecated field that should not be used
-
backup.
delete_backup_config
(response_format)¶ Delete an existing backup configuration
URL
/papi/backup/backup-config/del[. response_format]
response_format can be xml or json (defaults to json)
HTTP METHOD
POSTPOST Parameters
- backup_id:
Unique identifier of the backup configuration to delete
Contents of successful response
“success”
-
backup.
test_backup_config
(response_format)¶ Test the configuration of a backup
URL
/papi/backup/backup-config/test[. response_format]
response_format can be xml or json (defaults to json)
HTTP METHOD
GET, POSTGET, POST Parameters
- backup_id:
Unique identifier of the backup configuration to test
Contents of successful response
“success”
-
backup.
list_ssh_ids
(response_format)¶ List all existing ssh id
URL
/papi/backup/ssh-id/list[. response_format]
response_format can be xml or json (defaults to json)
HTTP METHOD
GET, POSTContents of successful response
List of dictionaries. Each dictionary reprensents an exising ssh id and contains:
- ssh_id_id:
Unique identifier of the ssh id
- key_name:
User-friendly name of the ssh id
- key_length:
Length of the key associated with this ssh id
-
backup.
generate_new_ssh_id
(response_format)¶ Generate a new ssh id
URL
/papi/backup/ssh-id/new[. response_format]
response_format can be xml or json (defaults to json)
HTTP METHOD
POSTGET, POST Parameters
- key_name:
User-friendly name of the ssh id
- key_length:
Length of the key to create
Contents of successful response
‘success’
-
backup.
delete_ssh_id
(response_format)¶ Delete an existing ssh id
URL
/papi/backup/ssh-id/del[. response_format]
response_format can be xml or json (defaults to json)
HTTP METHOD
POSTPOST Parameters
- ssh_id_id:
Unique identifier of the ssh id to delete
Contents of successful response
“success”
-
backup.
get_pub_ssh_id
(response_format)¶ Retrieve the public part of the key associated with a ssh id
URL
/papi/backup/ssh-id/get-pub[. response_format]
response_format can be xml or json (defaults to json)
HTTP METHOD
GET, POSTGET, POST Parameters
- ssh_id_id:
Unique identifier of the ssh id to retrieve
Contents of successful response
Dictionary that contains:
- pub_key:
Value of the public part
Example:
"ssh-rsa AAA ... hgF== root@manager3"
Error Codes¶
-
backup.
LLAPI_BACKUP_ERROR__INVALID_CREDENTIAL_STORAGE
¶ Error code 4000: Returned when credential configured to access a storage are invalid
-
backup.
LLAPI_BACKUP_ERROR__INVALID_STORAGE
¶ Error code 4001: Returned when configured storage is invalid
-
backup.
LLAPI_BACKUP_ERROR__INVALID_DECRYPTION_KEY
¶ Error code 4002: Returned when given decrytion key is not valid
-
backup.
LLAPI_BACKUP_ERROR__DECRYPTION_KEY_MISSING
¶ Error code 4003: Returned when the decryption key is missing
-
backup.
LLAPI_BACKUP_ERROR__CORRUPTED_BACKUP
¶ Error code 4004: Returned when the remote backup is corrupted
-
backup.
LLAPI_BACKUP_ERROR__TRANSFER_FAILED
¶ Error code 4005: Returned when a file transfer failed
Table Of Contents
Previous topic
Lastline AuditLog Result Format
Next topic
Lastline Custom Intelligence API
Quick search
Navigation
- index
- modules |
- next |
- previous |
- Lastline API »