AddPredefinedDestination
This API can be used to add (create) a predefined destination on the backup server.
The settings can be found on the AhsayCBS web console at:
- System Settings > Basic > Predefined Destinations
URL
https://CBS.EXAMPLE.COM/obs/api/json/AddPredefinedDestination.do
Available Since Version: 9.7
Parameters
| Key | Type | Description |
|---|---|---|
| SysUser | String | Username of an AhsayCBS System User with Admin, API or Read-Only API role. |
| SysPwd | String | Password matching SysUser. |
| Type | String | The type of the predefined destination, please use one of the available type within the set provided in the table "Destination Type". |
| DestinationName | String | The name of the predefined destination, if not provided, the name will be auto-generated by the server. |
| DestinationSettings | JSON Object | The settings for the predefined destination, the underlying parameters are specific to each destination type. Please refer to the tables labeled with “DestinationSettings (DESTINATION_TYPE)” for the correct format of each destination type. |
| Owner | String | The owner administrator name of the newly added predefined destination, defaults to ADMIN. |
Return Values
| Key | Type | Description |
|---|---|---|
| Status | String | "OK" or "Error" |
| Message | String | Error message, it only appears if status displays "Error". |
| DestinationID | String | The ID for the newly added predefined destination, available only for successful addition. |
| ExptType | String | The type of exception (Java-class name), available only in error response body. |
JSON Objects
Additional Fields (to merge with return values on error)
| Key | Type | Description |
|---|---|---|
| InstructionID | String | The instruction id of this error, please refer to the table “Instruction ID” for the value set. |
| AvailableOptions | JSON Object | The available options for certain missing parameters, this field will be set when InstructionID equals MISSING_PARAMETER. |
| OAuthUrl | String | The authorization url for retrieving the authorization token, this field will be set when InstructionID equals OAUTH_OPEN_URL. |
| Message | String | The detailed message of this error. |
Destination Type
| Type | Description |
|---|---|
| FTP | An FTP-based destination. |
| SFTP | An SFTP-based destination. |
| Local | A local destination (local to the client). |
| OBS | A destination ("User Home") provided by the AhsayCBS server. |
| Pooled | A destination pool. |
| RPS | Used for replication. |
| Aliyun | Alibaba Aliyun |
| AWSCompatible | AWS Compatible |
| Azure | Microsoft Azure. |
| Backblaze | Backblaze |
| CTYun | China Telecom CTYun |
| Dropbox | Dropbox |
| GCS | Google Cloud Service |
| GDrive | Google Drive |
| OneDrive | Microsoft OneDrive |
| OneDrive4Biz | Microsoft OneDrive for Business |
| OpenStack | OpenStack |
| Rackspace | Rackspace |
| S3 | Amazon S3 |
| Wasabi | Wasabi |
Instruction ID
| Value | Description |
|---|---|
| MISSING_PARAMETER | Returned from a failed addition of a predefined destination, due to a missing parameter with predefined value set. If this ID is encountered, please refer to the RESPONSE_BODY. Message for instructions and RESPONSE_BODY_AvailableOptions for the value set. |
| OAUTH_OPEN_URL | Returned from a failed addition of predefined destination, due to undefined or empty authorization token in the request body. If encountered, please refer to RESPONSE_BODY. Message for instructions and RESPONSE_BODY.OAuthUrl for the url to kick start the authorization procedure. |
Destination Settings - OBS
| Key | Type | Description |
|---|---|---|
| Immutable | Boolean | Whether stored data cannot be changed, modified, or deleted after being created; defaults to false. |
| TempDelete | Boolean | Whether temporary delete is enabled for AhsayCBS destination; defaults to false. |
| TempDeleteDate | String | Temporary delete date in yyyy-mm-dd format; defaults to tomorrow’s date. |
| Hour | Integer | The end hour of temporary delete. "0", "1"..."23" can be set; defaults to 0. |
| Minute | Integer | The end minute of temporary delete. "0", "1"..."59" can be set; defaults to 0. |
Destination Settings - FTP
| Key | Type | Description |
|---|---|---|
| Host | String | The hostname of the FTP server. |
| Port | String | The port of the FTP server. |
| Username | String | The username of the FTP account. |
| Password | String | The password of the FTP account. |
| Ssl | Boolean | Whether the FTP connection will be in SSL mode. |
Destination Settings - SFTP
| Key | Type | Description |
|---|---|---|
| Host | String | The hostname of the SFTP server. |
| Port | String | The port of the SFTP server. |
| Username | String | The username of the SFTP account. |
| Password | String | The password of the SFTP account. |
Destination Settings - Local
| Key | Type | Descriptions |
|---|---|---|
| TopDir | String | The path to the target directory can be network locations. |
| Username | String | The username of the account. |
| Password | String | The password of the account. |
Destination Settings - Pooled
| Key | Type | Description |
|---|---|---|
| DestinationIDList | JSON Array | An array of predefined destination ids, all of the ids should reference any existing predefined destination within the AhsayCBS server. |
Destination Settings - RPS
| Key | Type | Description |
|---|---|---|
| Host | String | The hostname of the target replication AhsayCBS server. |
| Port | String | The port of the target replication AhsayCBS server. |
| Username | String | The username of the replication account created within the replication AhsayCBS server. |
| Password | String | The password of the replication account created within the replication AhsayCBS server. |
| Ssl | Boolean | Whether the connection uses SSL, defaults to "false". |
Destination Settings - Aliyun
| Key | Type | Description |
|---|---|---|
| AccessKey | String | The access key. |
| SecretKey | String | The secret key. |
| Location | String | The location of this destination, please refer to Aliyun Locations for the value set. |
| BucketName | String | The bucket name, optional. |
Destination Settings - Aliyun Locations
| Location | Value |
|---|---|
| China (Hangzhou) | oss-cn-hangzhou |
| China (Shanghai) | oss-cn-shanghai |
| China (Qingdao) | oss-cn-qingdao |
| China (Beijing) | oss-cn-beijing |
| China (Zhangjiakou) | oss-cn-zhangjiakou |
| China (Hohhot) | oss-cn-huhehaote |
| China (Ulanqab) | oss-cn-wulanchabu |
| China (Shenzhen) | oss-cn-shenzhen |
| China (Heyuan) | oss-cn-heyuan |
| China (Guangzhou) | oss-cn-guangzhou |
| China (Chengdu) | oss-cn-chengdu |
| China (Hong Kong) | oss-cn-hongkong |
| Singapore | oss-ap-southeast-1 |
| Australia (Sydney) | oss-ap-southeast-2 |
| Malaysia (Kuala Lumpur) | oss-ap-southeast-3 |
| Indonesia | oss-ap-southeast-5 |
| Japan (Tokyo) | oss-ap-northeast-1 |
| India (Mumbai) | oss-ap-south-1 |
| Germany (Frankfurt) | oss-eu-central-1 |
| UK (London) | oss-eu-west-1 |
| US (Silicon Valley) | oss-us-west-1 |
| US (Virginia) | oss-us-east-1 |
| UAE (Dubai) | oss-me-east-1 |
Destination Settings - AWSCompatible
| Key | Type | Description |
|---|---|---|
| Host | String | The hostname of the AWS Compatible service. |
| Port | String | The port of the AWS Compatible service. |
| Immutable | Boolean | Whether stored data cannot be changed, modified, or deleted after being created; defaults to false. |
| AccessKey | String | The access key. |
| SecretKey | String | The secret key. |
| BucketName | String | The bucket name. |
Destination Settings - Azure
| Key | Type | Description |
|---|---|---|
| StorageAccountName | String | The storage account name. |
| AccessKey | String | The access key of the storage account. |
| Region | String | The region of the destination, please refer to Azure Regions section for the value set. |
| Immutable | Boolean | Whether stored data cannot be changed, modified, or deleted after being created; defaults to false. |
Destination Settings - Azure Regions
| Region | Value |
|---|---|
| Global | GLOBAL |
| China | CHINA |
| Germany | GERMANY |
| USGOV | USGOV |
Destination Settings - Backblaze
| Key | Type | Description |
|---|---|---|
| KeyId | String | The key ID. |
| ApplicationKey | String | The application key. |
| Immutable | Boolean | Whether stored data cannot be changed, modified, or deleted after being created; defaults to false. |
| BucketName | String | The bucket name, optional. |
Destination Settings - CTYun
| Key | Type | Description |
|---|---|---|
| AccessKey | String | The access key. |
| AccessSecretKey | String | The access secret key. |
Destination Settings - Dropbox
| Key | Type | Description |
|---|---|---|
| AccessToken | String | The authorization token retrieved from the Dropbox site, when this field is undefined or empty, the request will fail, with RESPONSE_BODY. InstructionID set to OAUTH_OPEN_URL and RESPONSE_BODY. OAuthUrl set to the url for kick-starting the authorization procedure. |
Destination Settings - Google Cloud Storage
| Key | Type | Description |
|---|---|---|
| AccessKey | String | The access key. |
| Secret | String | The access secret key. |
| Immutable | Boolean | Whether stored data cannot be changed, modified, or deleted after being created; defaults to false. |
| LocationType | String | The location type of this destination, please refer to GCS Location Types section for the value sets. |
| Location | String | The location of this destination, please refer to GCS Locations for the value set. |
| StorageClass | String | The storage class name of this destination, please visit this page for the latest documentation. |
| BucketName | String | The bucket name, optional. |
Destination Settings - GCS Location Types
| Type | Value |
|---|---|
| Region | REGION |
| Multi-Region | MULTI_REGION |
| Dual-Region | Dual-Region_REGION |
Destination Settings - GCS Locations
| Region | Value |
|---|---|
| Montreal | NORTHAMERICA-NORTHEAST1L |
| Iowa | US-CENTRAL1 |
| South Carolina | US-EAST1 |
| Northern Virginia | US-EAST4 |
| Oregon | US-WEST1 |
| Los Angeles | US-WEST2 |
| Salt Lake City | US-WEST3 |
| Las Vegas | US-WEST4 |
| Sao Paulo | SOUTHAMERICA-EAST1 |
| Warsaw | EUROPE-NORTH1 |
| Belgium | EUROPE-WEST1 |
| London | EUROPE-WEST2 |
| Frankfurt | EUROPE-WEST3 |
| Netherlands | EUROPE-WEST4 |
| Zurich | EUROPE-WEST6 |
| Taiwan | ASIA-EAST1 |
| Hong Kong | ASIA-EAST2 |
| Tokyo | ASIA-NORTHEAST1 |
| Osaka | ASIA-NORTHEAST2 |
| Seoul | ASIA-NORTHEAST3 |
| Mumbai | ASIA-SOUTH1 |
| Singapore | ASIA-SOUTHEAST1 |
| Jakarta | ASIA-SOUTHEAST2 |
| Sydney | AUSTRALIA-SOUTHEAST1 |
Destination Settings - Google Drive
| Key | Type | Description |
|---|---|---|
| Token | String | The authorization token retrieved from Google Drive site, when this field is undefined or empty, the request will fail, with RESPONSE_BODY. InstructionID set to OAUTH_OPEN_URL and RESPONSE_BODY. OAuthUrl set to the url for kick-starting the authorization procedure. |
Destination Settings - Microsoft OneDrive
| Key | Type | Description |
|---|---|---|
| Token | String | The token for the destination, if the provided value is undefined or empty, the request will fail, with RESPONSE_BODY. InstructionID set to OAUTH_OPEN_URL and RESPONSE_BODY. OAuthUrl set to the url for kick-starting the authorization procedure. |
Destination Settings - Microsoft OneDrive4Biz
| Key | Type | Description |
|---|---|---|
| Token | String | The token for the destination, if the provided value is undefined or empty, the request will fail, with RESPONSE_BODY. InstructionID set to OAUTH_OPEN_URL and RESPONSE_BODY. OAuthUrl set to the url for kick-starting the authorization procedure. |
| Region | String | The region of the destination, please refer to the section OneDrive4Biz Regions for the value set. |
Destination Settings - Microsoft OneDrive4Biz Regions
| Region | Value |
|---|---|
| Global | GLOBAL |
| China | CHINA |
| Germany | GERMANY |
Destination Settings - OpenStack
| Key | Type | Descriptions |
|---|---|---|
| Host | String | The hostname of the OpenStack service. |
| Port | String | The port of the OpenStack service. |
| Username | String | The username of the service account. |
| Password | String | The password of the service account. |
| Project | String | The project name for this destination. If the provided value is undefined, RESPONSE_BODY. InstructionID set to MISSING_PARAMETERS, please follow the instruction provided in RESPONSE_BODY. Message to select the project for this destination. |
Destination Settings - Rackspace
| Key | Type | Description |
|---|---|---|
| Username | String | The username of the Rackspace account. |
| ApiKey | String | The API key for accessing Rackspace APIs. |
| Region | String | The region name of the Rackspace service, please refer to Rackspace Regions section for the value set. |
| ContainerName | String | The container name of the destination. |
Destination Settings - Rackspace Regions
| Region | Value |
|---|---|
| Chicago | ORD |
| Dallas Ft. Worth | DFW |
| Hong Kong | HKG |
| London | LON |
| Northern Virginia | IAD |
| Sydney | SYD |
Destination Settings - Amazon S3
| Key | Type | Description |
|---|---|---|
| AccessKey | String | The access key. |
| SecretKey | String | The secret key. |
| Immutable | Boolean | Whether stored data cannot be changed, modified, or deleted after being created; defaults to false. |
| Location | String | The location of the destination, please refer to Amazon S3 Locations for the value sets. |
| StorageClass | String | The storage class of the destination, please refer to Amazon S3 Storage Classes for the value sets. |
| BucketName | String | The bucket name, optional. |
Destination Settings - Amazon S3 Locations
| Region | Value |
|---|---|
| Africa (Cape Town) | af-south-1 |
| Asia Pacific (Hong Kong) | ap-east-1 |
| Asia Pacific (Mumbai) | ap-south-1 |
| Asia Pacific (Osaka-Local) | ap-northeast-3 |
| Asia Pacific (Seoul) | ap-northeast-2 |
| Asia Pacific (Singapore) | ap-southeast-1 |
| Asia Pacific (Singapore) | ap-southeast-1 |
| Asia Pacific (Sydney) | ap-southeast-2 |
| Asia Pacific (Tokyo) | ap-northeast-1 |
| Canada (Central) | ca-central-1 |
| China (Beijing) | cn-north-1 |
| China (Ningxia) | cn-northwest-1 |
| Europe (Ireland) | eu-west-1 |
| Europe (Frankfurt) | eu-central-1 |
| Europe (London) | eu-west-2 |
| Europe (Milan) | eu-south-1 |
| Europe (Stockholm) | eu-north-1 |
| AWS GovCloud (US-East) | us-gov-east-1 |
| AWS GovCloud (US) | us-gov-west-1 |
| Middle East (Bahrain) | me-south-1 |
| South America (Sao Paulo) | sa-east-1 |
| US East (Ohio) | us-east-2 |
| US West (Northern California) | us-west-2 |
Destination Settings - Amazon S3 Storage Classes
| Type | Value | Description |
|---|---|---|
| Standard | STANDARD | Ideal for performance sensitive use cases and frequently accessed data. This is the default storage class. |
| Standard - Infrequent Access Storage | STANDARD_IA | (IA, for infrequent access) is optimized for long-lived and less frequently accessed data, for example backups and older data where access has diminished, but the use case still demands high performance. |
| Intelligent - Tiering Storage | INTELLIGENT_TIERING | Long-lived data with changing or unknown access patterns. |
| One Zone - Infrequent Access Storage | ONEZONE_IA | Long-lived, infrequently accessed, non-critical data. |
| Reduced Redundancy Storage (RRS) | REDUCED_REDUNDANCY | (RSS) Storage class is designed for non-critical, reproducible data stored at lower levels of redundancy than the STANDARD storage class, which reduces storage costs. |
Destination Settings - Wasabi
| Key | Type | Description |
|---|---|---|
| AccessKey | String | The access key. |
| SecretKey | String | The secret key. |
| Immutable | Boolean | Whether stored data cannot be changed, modified, or deleted after being created; defaults to false. |
| BucketName | String | The bucket name, optional. |
| Location | String | The location of the Wasabi service, please refer to Wasabi Locations section for the value sets. |
Destination Settings - Wasabi Locations
| Region | Value |
|---|---|
| Toronto | ca-central-1 |
| Oregon | us-west-1 |
| Plano, Texas | us-central |
| Northern Virginia | us-east-1 |
| Southern Virginia | us-east-2 |
| Amsterdam | eu-central-1 |
| Frankfurt | eu-central-2 |
| London | eu-west-1 |
| Paris | eu-west-2 |
| Tokyo | ap-northeast-1 |
| Osaka | ap-northeast-2 |
| Singapore | ap-southeast-1 |
| Sydney | ap-southeast-2 |
Examples
Example 1: Creating a Google Drive Predefined Destination
INPUT
{
"SysUser":"api_user",
"SysPwd":"qWeRtY123456!@#$%",
"Type":"GDrive",
"SkipVerify":false,
"DestinationSettings":{
"Token":"9/abc0e-g5bc2XX2jepVtYRSiA6J4Q03rgVPfssYVu3xhyl9PiHqkiabmwM3i"
}
}
OUTPUT
{
"Status":"OK",
"DestinationID":"-1620712268943"
}
Example 2: Invalid Token for Google Drive Predefined Destination
INPUT
{
"SysUser":"api_user",
"SysPwd":"qWeRtY123456!@#$%",
"Type":"GDrive",
"DestinationSettings":{
"Token":"FAKE"
}
}
OUTPUT
{
"Status":"Error",
"Message":"[GDriveManager$GDriveAuthorization.getOAuth2TokensByTempKey] Failed to get Oauth2Tokens after retrieved from GDrive",
"ExptType":"java.lang.Exception"
}
Example 3: Creating AhsayCBS (OBS) Destination with no 2FA Setup
INPUT
{
"SysUser":"api_user",
"SysPwd":"qWeRtY123456!@#$%",
"Type":"OBS",
"DestinationSettings":{
"Immutable":true,
"TempDelete":true,
"TempDeleteDate":"2024-08-25",
"Hour":6,
"Minute":13
}
}
OUTPUT
{
"Status":"Error",
"Message":"Please setup 2FA devices to proceed with adding immutable destination.",
"ExptType":"com.ahsay.obs.core.dbs.DbsException"
}