# cloudsync.restore

Create the opposite of cloud sync task id (PULL if it was PUSH and vice versa).

Type: object

##

Type: array
No Additional Items

#### Tuple Validation

##### Parameter 1: id

#### id

Type: integer

ID of the cloud sync task to restore from.

##### Parameter 2: opts

#### opts

Type: object

Restore operation configuration options.

No Additional Properties

##

#### Description

Type: string Default: ""

Description for the restore operation.

##

#### Transfer Mode

Type: enum (of string)

Transfer mode for the restore operation.

##### Must be one of:

- "SYNC"
- "COPY"

##

#### Path

Type: string

Local path where files will be restored.

Must be at least `1` characters long

##

#### CloudSyncEntry

Type: object

The created restore task configuration.

No Additional Properties

##

#### Id

Type: integer

Unique identifier for this cloud storage configuration.

##

#### Description

Type: string Default: ""

The name of the task to display in the UI.

##

#### Path

Type: string

The local path to back up beginning with `/mnt` or `/dev/zvol`.

##

#### CredentialsEntry

Type: object

Cloud credentials to use for each backup.

No Additional Properties

##

#### Id

Type: integer

Unique identifier for the cloud credential.

##

#### Name

Type: string

Human-readable name for the cloud credential.

Must be at least `1` characters long

##

#### Provider

Cloud provider configuration including type and authentication details.

## One of

#### AzureBlobCredentialsModel

Type: object
No Additional Properties

##

#### Type

Type: const

Cloud provider type identifier for Microsoft Azure Blob storage.

Specific value: `"AZUREBLOB"`

##

#### Account

Type: string

Azure Blob Storage account name for authentication.

Must be at least `1` characters long

##

#### Key

Type: string

Azure Blob Storage access key for authentication.

Must be at least `1` characters long

##

#### Endpoint

Default: ""

Custom Azure Blob Storage endpoint URL. Empty string for default endpoints.

## Any of

Type: const
Specific value: `""`
Type: stringFormat: uri

Must be at least `1` characters long

Must be at most `2083` characters long

#### B2CredentialsModel

Type: object
No Additional Properties

##

#### Type

Type: const

Cloud provider type identifier for Backblaze B2 storage.

Specific value: `"B2"`

##

#### Account

Type: string

Backblaze B2 account ID for authentication.

Must be at least `1` characters long

##

#### Key

Type: string

Backblaze B2 application key for authentication.

Must be at least `1` characters long

#### BoxCredentialsModel

Type: object
No Additional Properties

##

#### Type

Type: const

Cloud provider type identifier for Box cloud storage.

Specific value: `"BOX"`

##

#### Client Id

Type: string Default: ""

Box OAuth application client ID.

##

#### Client Secret

Type: string Default: ""

Box OAuth application client secret.

##

#### Token

Type: string

Box OAuth access token for API authentication.

Must be at least `1` characters long

#### DropboxCredentialsModel

Type: object
No Additional Properties

##

#### Type

Type: const

Cloud provider type identifier for Dropbox storage.

Specific value: `"DROPBOX"`

##

#### Client Id

Type: string Default: ""

Dropbox OAuth application client ID.

##

#### Client Secret

Type: string Default: ""

Dropbox OAuth application client secret.

##

#### Token

Type: string

Dropbox OAuth access token for API authentication.

Must be at least `1` characters long

#### FTPCredentialsModel

Type: object
No Additional Properties

##

#### Type

Type: const

Cloud provider type identifier for FTP.

Specific value: `"FTP"`

##

#### Host

Type: string

FTP server hostname or IP address.

Must be at least `1` characters long

##

#### Port

Type: integer Default: 21

FTP server port number.

##

#### User

Type: string

FTP username for authentication.

Must be at least `1` characters long

##

#### Pass

Type: string

FTP password for authentication.

#### GoogleCloudStorageCredentialsModel

Type: object
No Additional Properties

##

#### Type

Type: const

Cloud provider type identifier for Google Cloud Storage.

Specific value: `"GOOGLE_CLOUD_STORAGE"`

##

#### Service Account Credentials

Type: string

JSON service account credentials for Google Cloud Storage authentication.

Must be at least `1` characters long

#### GoogleDriveCredentialsModel

Type: object
No Additional Properties

##

#### Type

Type: const

Cloud provider type identifier for Google Drive.

Specific value: `"GOOGLE_DRIVE"`

##

#### Client Id

Type: string Default: ""

OAuth client ID for Google Drive API access.

##

#### Client Secret

Type: string Default: ""

OAuth client secret for Google Drive API access.

##

#### Token

Type: string

OAuth access token for Google Drive authentication.

Must be at least `1` characters long

##

#### Team Drive

Type: string Default: ""

Google Drive team drive ID or empty string for personal drive.

#### GooglePhotosCredentialsModel

Type: object
No Additional Properties

##

#### Type

Type: const

Cloud provider type identifier for Google Photos.

Specific value: `"GOOGLE_PHOTOS"`

##

#### Client Id

Type: string Default: ""

OAuth client ID for Google Photos API access.

##

#### Client Secret

Type: string Default: ""

OAuth client secret for Google Photos API access.

##

#### Token

Type: string

OAuth access token for Google Photos authentication.

Must be at least `1` characters long

#### HTTPCredentialsModel

Type: object
No Additional Properties

##

#### Type

Type: const

Cloud provider type identifier for HTTP.

Specific value: `"HTTP"`

##

#### Url

Type: stringFormat: uri

HTTP URL for file access.

Must be at least `1` characters long

Must be at most `2083` characters long

#### HubicCredentialsModel

Type: object
No Additional Properties

##

#### Type

Type: const

Cloud provider type identifier for Hubic.

Specific value: `"HUBIC"`

##

#### Token

Type: string

OAuth access token for Hubic authentication.

Must be at least `1` characters long

#### MegaCredentialsModel

Type: object
No Additional Properties

##

#### Type

Type: const

Cloud provider type identifier for MEGA.

Specific value: `"MEGA"`

##

#### User

Type: string

MEGA username for authentication.

Must be at least `1` characters long

##

#### Pass

Type: string

MEGA password for authentication.

Must be at least `1` characters long

#### OneDriveCredentialsModel

Type: object
No Additional Properties

##

#### Type

Type: const

Cloud provider type identifier for OneDrive.

Specific value: `"ONEDRIVE"`

##

#### Client Id

Type: string Default: ""

OAuth client ID for OneDrive API access.

##

#### Client Secret

Type: string Default: ""

OAuth client secret for OneDrive API access.

##

#### Token

Type: string

OAuth access token for OneDrive authentication.

Must be at least `1` characters long

##

#### Drive Type

Type: enum (of string)

Type of OneDrive to access.

##### Must be one of:

- "PERSONAL"
- "BUSINESS"
- "DOCUMENT_LIBRARY"

##

#### Drive Id

Type: string

OneDrive drive identifier.

#### PCloudCredentialsModel

Type: object
No Additional Properties

##

#### Type

Type: const

Cloud provider type identifier for pCloud.

Specific value: `"PCLOUD"`

##

#### Client Id

Type: string Default: ""

OAuth client ID for pCloud API access.

##

#### Client Secret

Type: string Default: ""

OAuth client secret for pCloud API access.

##

#### Token

Type: string

OAuth access token for pCloud authentication.

Must be at least `1` characters long

##

#### Hostname

Type: string Default: ""

pCloud hostname or empty string for default.

#### S3CredentialsModel

Type: object
No Additional Properties

##

#### Type

Type: const

Cloud provider type identifier for S3-compatible storage.

Specific value: `"S3"`

##

#### Access Key Id

Type: string

S3 access key ID for authentication.

Must be at least `1` characters long

##

#### Secret Access Key

Type: string

S3 secret access key for authentication.

Must be at least `1` characters long

##

#### Endpoint

Default: ""

S3-compatible endpoint URL or empty string for AWS S3.

## Any of

Type: const
Specific value: `""`
Type: stringFormat: uri

Must be at least `1` characters long

Must be at most `2083` characters long

##

#### Region

Type: string Default: ""

S3 region or empty string for default.

##

#### Skip Region

Type: boolean Default: false

Whether to skip region validation.

##

#### Signatures V2

Type: boolean Default: false

Whether to use AWS Signature Version 2.

##

#### Max Upload Parts

Type: integer Default: 10000

Maximum number of parts for multipart uploads.

#### SFTPCredentialsModel

Type: object
No Additional Properties

##

#### Type

Type: const

Cloud provider type identifier for SFTP.

Specific value: `"SFTP"`

##

#### Host

Type: string

SFTP server hostname or IP address.

Must be at least `1` characters long

##

#### Port

Type: integer Default: 22

SFTP server port number.

##

#### User

Type: string

SFTP username for authentication.

Must be at least `1` characters long

##

#### Pass

Default: null

SFTP password for authentication or `null` for key-based auth.

## Any of

Type: string
Type: null

##

#### Private Key

Default: null

SSH private key ID for authentication or `null` for password auth.

## Any of

Type: integer
Type: null

#### StorjIxCredentialsModel

Type: object
No Additional Properties

##

#### Type

Type: const

Cloud provider type identifier for Storj decentralized storage.

Specific value: `"STORJ_IX"`

##

#### Access Key Id

Type: string

Storj S3-compatible access key ID for authentication.

Must be at least `1` characters long

##

#### Secret Access Key

Type: string

Storj S3-compatible secret access key for authentication.

Must be at least `1` characters long

##

#### Endpoint

Type: stringFormat: uri Default: "https://gateway.storjshare.io/"

Storj gateway endpoint URL for S3-compatible access.

Must be at least `1` characters long

Must be at most `2083` characters long

#### SwiftCredentialsModel

Type: object
No Additional Properties

##

#### Type

Type: const

Cloud provider type identifier for OpenStack Swift storage.

Specific value: `"OPENSTACK_SWIFT"`

##

#### User

Type: string

Swift username for authentication.

Must be at least `1` characters long

##

#### Key

Type: string

Swift password or API key for authentication.

Must be at least `1` characters long

##

#### Auth

Type: string

Swift authentication URL endpoint.

Must be at least `1` characters long

##

#### User Id

Type: string Default: ""

Swift user ID for authentication.

##

#### Domain

Type: string Default: ""

Swift domain name for authentication.

##

#### Tenant

Type: string Default: ""

Swift tenant name for multi-tenancy.

##

#### Tenant Id

Type: string Default: ""

Swift tenant ID for multi-tenancy.

##

#### Tenant Domain

Type: string Default: ""

Swift tenant domain name.

##

#### Region

Type: string Default: ""

Swift region name for geographic distribution.

##

#### Storage Url

Type: string Default: ""

Swift storage URL endpoint.

##

#### Auth Token

Type: string Default: ""

Swift authentication token for pre-authenticated access.

##

#### Application Credential Id

Type: string Default: ""

Swift application credential ID for authentication.

##

#### Application Credential Name

Type: string Default: ""

Swift application credential name for authentication.

##

#### Application Credential Secret

Type: string Default: ""

Swift application credential secret for authentication.

##

#### Auth Version

Swift authentication API version.

- `0`: Legacy auth
- `1`: TempAuth
- `2`: Keystone v2.0
- `3`: Keystone v3
- `null`: Auto-detect

## Any of

Type: enum (of integer)

##### Must be one of:

- 0
- 1
- 2
- 3

Type: null

##

#### Endpoint Type

Swift endpoint type to use.

- `public`: Public endpoint (default)
- `internal`: Internal network endpoint
- `admin`: Administrative endpoint
- `null`: Use default

## Any of

Type: enum (of string)

##### Must be one of:

- "public"
- "internal"
- "admin"

Type: null

#### WebDavCredentialsModel

Type: object
No Additional Properties

##

#### Type

Type: const

Cloud provider type identifier for WebDAV servers.

Specific value: `"WEBDAV"`

##

#### Url

Type: stringFormat: uri

WebDAV server URL endpoint.

Must be at least `1` characters long

Must be at most `2083` characters long

##

#### Vendor

Type: enum (of string)

WebDAV server vendor type for compatibility optimizations.

- `NEXTCLOUD`: Nextcloud server
- `OWNCLOUD`: ownCloud server
- `SHAREPOINT`: Microsoft SharePoint
- `OTHER`: Generic WebDAV server

##### Must be one of:

- "NEXTCLOUD"
- "OWNCLOUD"
- "SHAREPOINT"
- "OTHER"

##

#### User

Type: string

WebDAV username for authentication.

##

#### Pass

Type: string

WebDAV password for authentication.

#### YandexCredentialsModel

Type: object
No Additional Properties

##

#### Type

Type: const

Cloud provider type identifier for Yandex Disk storage.

Specific value: `"YANDEX"`

##

#### Client Id

Type: string Default: ""

Yandex OAuth application client ID.

##

#### Client Secret

Type: string Default: ""

Yandex OAuth application client secret.

##

#### Token

Type: string

Yandex OAuth access token for API authentication.

Must be at least `1` characters long

##

#### CloudTaskAttributes

Type: object

Additional information for each backup, e.g. bucket name.

No Additional Properties

##

#### Bucket

Type: string

Name of the cloud storage bucket or container.

Must be at least `1` characters long

##

#### Folder

Type: string

Path within the cloud storage bucket to use as the root directory for operations.

##

#### Fast List

Type: boolean

Valid only for some providers. Use fewer transactions in exchange for more RAM. This may also speed up or slow down your transfer. See https://rclone.org/docs/#fast-list for more details.

##

#### Bucket Policy Only

Type: boolean

Valid only for GOOGLECLOUDSTORAGE provider. Access checks should use bucket-level IAM policies. If you want to upload objects to a bucket with Bucket Policy Only set then you will need to set this.

##

#### Chunk Size

Type: integer

Valid only for DROPBOX provider. Upload chunk size in MiB. Must fit in memory. Note that these chunks are buffered in memory and there might be a maximum of `--transfers` chunks in progress at once. Dropbox Business accounts can have monthly data transfer limits per team per month. By using larger chunk sizes you will decrease the number of data transfer calls used and you'll be able to transfer more data to your Dropbox Business account.

##

#### Acknowledge Abuse

Type: boolean

Valid only for GOOGLE_DRIVER provider. Allow files which return cannotDownloadAbusiveFile to be downloaded. If downloading a file returns the error "This file has been identified as malware or spam and cannot be downloaded" with the error code "cannotDownloadAbusiveFile" then enable this flag to indicate you acknowledge the risks of downloading the file and TrueNAS will download it anyway.

##

#### Region

Type: string

Valid only for S3 provider. S3 Region.

##

#### Encryption

Type: enum (of null or string)

Valid only for S3 provider. Server-Side Encryption.

##### Must be one of:

- null
- "AES256"

##

#### Storage Class

Type: enum (of string)

Valid only for S3 provider. The storage class to use.

##### Must be one of:

- ""
- "STANDARD"
- "REDUCED_REDUNDANCY"
- "STANDARD_IA"
- "ONEZONE_IA"
- "INTELLIGENT_TIERING"
- "GLACIER"
- "GLACIER_IR"
- "DEEP_ARCHIVE"

##

#### CloudCron

Type: object

Cron schedule dictating when the task should run.

No Additional Properties

##

#### Minute

Type: string Default: "00"

##

#### Hour

Type: string Default: "*"

"00" - "23"

##

#### Dom

Type: string Default: "*"

"1" - "31"

##

#### Month

Type: string Default: "*"

"1" (January) - "12" (December)

##

#### Dow

Type: string Default: "*"

"1" (Monday) - "7" (Sunday)

##

#### Pre Script

Type: string Default: ""

A Bash script to run immediately before every backup.

##

#### Post Script

Type: string Default: ""

A Bash script to run immediately after every backup if it succeeds.

##

#### Snapshot

Type: boolean Default: false

Whether to create a temporary snapshot of the dataset before every backup.

##

#### Include

Type: array of string

Paths to pass to `restic backup --include`.

No Additional Items

##### Each item of this array must be:

Type: string

Must be at least `1` characters long

##

#### Exclude

Type: array of string

Paths to pass to `restic backup --exclude`.

No Additional Items

##### Each item of this array must be:

Type: string

Must be at least `1` characters long

##

#### Args

Type: string Default: ""

(Slated for removal).

##

#### Enabled

Type: boolean Default: true

Can enable/disable the task.

##

#### Job

Information regarding the task's job state, e.g. progress.

## Any of

Type: object
Type: null

##

#### Locked

Type: boolean

A locked task cannot run.

##

#### Bwlimit

Type: array of object

Schedule of bandwidth limits.

No Additional Items

##### Each item of this array must be:

#### CloudSyncBwlimit

Type: object
No Additional Properties

##

#### Time

Type: string

Time at which the bandwidth limit takes effect in 24-hour format.

Examples:

    "00:00"

    "06:30"

    "18:00"

    "23:00"

##

#### Bandwidth

Bandwidth limit in bytes per second (upload and download).

## Any of

Type: integer

Value must be strictly greater than `0`

Type: null

##

#### Transfers

Default: null

Maximum number of parallel file transfers. `null` for default.

## Any of

Type: integer

Value must be strictly greater than `0`

Type: null

##

#### Direction

Type: enum (of string)

Direction of the cloud sync operation.

- `PUSH`: Upload local files to cloud storage
- `PULL`: Download files from cloud storage to local storage

##### Must be one of:

- "PUSH"
- "PULL"

##

#### Transfer Mode

Type: enum (of string)

How files are transferred between local and cloud storage.

- `SYNC`: Synchronize directories (add new, update changed, remove deleted)
- `COPY`: Copy files without removing any existing files
- `MOVE`: Move files (copy then delete from source)

##### Must be one of:

- "SYNC"
- "COPY"
- "MOVE"

##

#### Encryption

Type: boolean Default: false

Whether to encrypt files before uploading to cloud storage.

##

#### Filename Encryption

Type: boolean Default: false

Whether to encrypt filenames in addition to file contents.

##

#### Encryption Password

Type: string Default: ""

Password for client-side encryption. Empty string if encryption is disabled.

##

#### Encryption Salt

Type: string Default: ""

Salt value for encryption key derivation. Empty string if encryption is disabled.

##

#### Create Empty Src Dirs

Type: boolean Default: false

Whether to create empty directories in the destination that exist in the source.

##

#### Follow Symlinks

Type: boolean Default: false

Whether to follow symbolic links and sync the files they point to.

Required roles: CLOUD_SYNC_WRITE