# rsynctask.query

Type: object

##

Type: array
No Additional Items

#### Tuple Validation

##### Parameter 1: filters

#### filters

Type: array Default: []

List of filters for query results. See API documentation for "Query Methods" for more guidance.

No Additional Items

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

Type: object
Examples:

    [
        [
            "name",
            "=",
            "bob"
        ]
    ]

    [
        [
            "OR",
            [
                [
                    "name",
                    "=",
                    "bob"
                ],
                [
                    "name",
                    "=",
                    "larry"
                ]
            ]
        ]
    ]

##### Parameter 2: options

#### options

Type: object
Default:
{ "extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false }

Query options including pagination, ordering, and additional parameters.

No Additional Properties

##

#### Extra

Type: object Default: {}

Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method.

##

#### Order By

Type: array of string Default: []

An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list).

No Additional Items

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

Type: string
Example:

    [
        "size",
        "-devname",
        "nulls_first:-expiretime"
    ]

##

#### Select

Type: array Default: []

An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result.

No Additional Items

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

## Any of

Type: string
Type: array
No Additional Items

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

Type: object
Example:

    [
        "username",
        "Authentication.status"
    ]

##

#### Count

Type: boolean Default: false

Return a numeric value representing the number of items that match the specified `query-filters`.

##

#### Get

Type: boolean Default: false

Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results.

##

#### Offset

Type: integer Default: 0

This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method.

##

#### Limit

Type: integer Default: 0

This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.

WARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method.

##

#### Force Sql Filters

Type: boolean Default: false

Force use of SQL for result filtering to reduce response time. May not work for all methods.

##

#### Result

## Any of

Type: array of object
No Additional Items

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

#### RsyncTaskQueryResultItem

Type: object
No Additional Properties

##

#### Id

Type: integer

Unique identifier for the rsync task.

##

#### Path

Type: string

Local filesystem path to synchronize.

Must be at most `1023` characters long

##

#### Dataset

The ZFS dataset containing the rsync task path (e.g., 'tank/data'). Returns `null` if the path cannot be resolved yet (encrypted dataset not unlocked, etc.). This is a read-only field automatically populated from "path".

## Any of

Type: string
Type: null

##

#### Relative Path

The path of the rsync task relative to the dataset mountpoint (e.g., 'backups/daily'). An empty string indicates the task path is at the dataset root. Returns `null` if the path cannot be resolved yet. This is a read-only field automatically populated from "path".

## Any of

Type: string
Type: null

##

#### User

Type: string

Username to run the rsync task as.

##

#### Mode

Type: enum (of string)

Operating mechanism for Rsync, i.e. Rsync Module mode or Rsync SSH mode.

##### Must be one of:

- "MODULE"
- "SSH"

##

#### Remotehost

IP address or hostname of the remote system. If username differs on the remote host, "username@remote_host" format should be used.

## Any of

Type: string
Type: null

##

#### Remoteport

Port number for SSH connection. Only applies when `mode` is SSH.

## Any of

Type: integer
Type: null

##

#### Remotemodule

Name of remote module, this attribute should be specified when `mode` is set to MODULE.

## Any of

Type: string
Type: null

##

In SSH mode, if `ssh_credentials` (a keychain credential of `SSH_CREDENTIALS` type) is specified then it is used to connect to the remote host. If it is not specified, then keys in `user`'s .ssh directory are used.

## Any of

#### KeychainCredentialEntry

Type: object
No Additional Properties

##

#### Id

Type: integer

Unique identifier for this keychain credential.

##

#### Name

Type: string

Distinguishes this Keychain Credential from others.

Must be at least `1` characters long

##

#### Type

Type: enum (of string)

Type of credential stored in the keychain.

- `SSH_KEY_PAIR`: SSH public/private key pair
- `SSH_CREDENTIALS`: SSH connection credentials including host and authentication

##### Must be one of:

- "SSH_KEY_PAIR"
- "SSH_CREDENTIALS"

##

#### Attributes

Credential-specific configuration and authentication data.

## Any of

#### SSHKeyPair

Type: object

At least one of the two keys must be provided on creation.

No Additional Properties

##

#### Private Key

Default: null

SSH private key in OpenSSH format. `null` if only public key is provided.

## Any of

Type: string
Type: null

##

#### Public Key

Default: null

Can be omitted and automatically derived from the private key.

## Any of

Type: string
Type: null

#### SSHCredentials

Type: object
No Additional Properties

##

#### Host

Type: string

SSH server hostname or IP address.

##

#### Port

Type: integer Default: 22

SSH server port number.

##

#### Username

Type: string Default: "root"

SSH username for authentication.

##

#### Private Key

Type: integer

Keychain Credential ID.

##

#### Remote Host Key

Type: string

Can be discovered with keychaincredential.remotesshhostkeyscan.

##

#### Connect Timeout

Type: integer Default: 10

Connection timeout in seconds for SSH connections.

Type: null

##

#### Remotepath

Type: string

Path on the remote system to synchronize with.

##

#### Direction

Type: enum (of string)

Specify if data should be PULLED or PUSHED from the remote system.

##### Must be one of:

- "PULL"
- "PUSH"

##

#### Desc

Type: string

Description of the rsync task.

##

#### RsyncTaskSchedule

Type: object

Cron schedule for when the rsync task should run.

No Additional Properties

##

#### Minute

Type: string Default: "00"

Minute when the rsync task should run (cron format).

##

#### 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)

##

#### Recursive

Type: boolean

Recursively transfer subdirectories.

##

#### Times

Type: boolean

Preserve modification times of files.

##

#### Compress

Type: boolean

Reduce the size of the data to be transmitted.

##

#### Archive

Type: boolean

Make rsync run recursively, preserving symlinks, permissions, modification times, group, and special files.

##

#### Delete

Type: boolean

Delete files in the destination directory that do not exist in the source directory.

##

#### Quiet

Type: boolean

Suppress informational messages from rsync.

##

#### Preserveperm

Type: boolean

Preserve original file permissions.

##

#### Preserveattr

Type: boolean

Preserve extended attributes of files.

##

#### Delayupdates

Type: boolean

Delay updating destination files until all transfers are complete.

##

#### Extra

Type: array of string

Array of additional rsync command-line options.

No Additional Items

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

Type: string

##

#### Enabled

Type: boolean

Whether this rsync task is enabled.

##

#### Locked

Type: boolean

Whether this rsync task is currently locked (running).

##

#### Job

Information about the currently running job. `null` if no job is running.

## Any of

Type: object
Type: null

#### RsyncTaskQueryResultItem

Type: object
No Additional Properties

##

#### Id

Type: integer

Unique identifier for the rsync task.

##

#### Path

Type: string

Local filesystem path to synchronize.

Must be at most `1023` characters long

##

#### Dataset

The ZFS dataset containing the rsync task path (e.g., 'tank/data'). Returns `null` if the path cannot be resolved yet (encrypted dataset not unlocked, etc.). This is a read-only field automatically populated from "path".

## Any of

Type: string
Type: null

##

#### Relative Path

The path of the rsync task relative to the dataset mountpoint (e.g., 'backups/daily'). An empty string indicates the task path is at the dataset root. Returns `null` if the path cannot be resolved yet. This is a read-only field automatically populated from "path".

## Any of

Type: string
Type: null

##

#### User

Type: string

Username to run the rsync task as.

##

#### Mode

Type: enum (of string)

Operating mechanism for Rsync, i.e. Rsync Module mode or Rsync SSH mode.

##### Must be one of:

- "MODULE"
- "SSH"

##

#### Remotehost

IP address or hostname of the remote system. If username differs on the remote host, "username@remote_host" format should be used.

## Any of

Type: string
Type: null

##

#### Remoteport

Port number for SSH connection. Only applies when `mode` is SSH.

## Any of

Type: integer
Type: null

##

#### Remotemodule

Name of remote module, this attribute should be specified when `mode` is set to MODULE.

## Any of

Type: string
Type: null

##

In SSH mode, if `ssh_credentials` (a keychain credential of `SSH_CREDENTIALS` type) is specified then it is used to connect to the remote host. If it is not specified, then keys in `user`'s .ssh directory are used.

## Any of

Type: object
Type: null

##

#### Remotepath

Type: string

Path on the remote system to synchronize with.

##

#### Direction

Type: enum (of string)

Specify if data should be PULLED or PUSHED from the remote system.

##### Must be one of:

- "PULL"
- "PUSH"

##

#### Desc

Type: string

Description of the rsync task.

##

Type: object

Cron schedule for when the rsync task should run.

##

#### Recursive

Type: boolean

Recursively transfer subdirectories.

##

#### Times

Type: boolean

Preserve modification times of files.

##

#### Compress

Type: boolean

Reduce the size of the data to be transmitted.

##

#### Archive

Type: boolean

Make rsync run recursively, preserving symlinks, permissions, modification times, group, and special files.

##

#### Delete

Type: boolean

Delete files in the destination directory that do not exist in the source directory.

##

#### Quiet

Type: boolean

Suppress informational messages from rsync.

##

#### Preserveperm

Type: boolean

Preserve original file permissions.

##

#### Preserveattr

Type: boolean

Preserve extended attributes of files.

##

#### Delayupdates

Type: boolean

Delay updating destination files until all transfers are complete.

##

#### Extra

Type: array of string

Array of additional rsync command-line options.

No Additional Items

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

Type: string

##

#### Enabled

Type: boolean

Whether this rsync task is enabled.

##

#### Locked

Type: boolean

Whether this rsync task is currently locked (running).

##

#### Job

Information about the currently running job. `null` if no job is running.

## Any of

Type: object
Type: null
Type: integer

Required roles: SNAPSHOT_TASK_READ