# pool.snapshot.query

Query all ZFS Snapshots with query-filters and query-options.

query-options.extra.holds (bool) Include hold tags for snapshots in the query result (false by default). query-options.extra.min_txg (int) Limit snapshot retrieval based on minimum transaction group. query-options.extra.max_txg (int) Limit snapshot retrieval based on maximum transaction group. query-options.extra.retention (bool) Include retention information in the query result (false by default). query-options.extra.properties (list) List of ZFS property names to retrieve.

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:

#### PoolSnapshotQueryResultItem

Type: object
No Additional Properties

##

#### Id

Type: string

Full snapshot identifier including dataset and snapshot name.

##

#### Properties

Type: object

Object mapping ZFS property names to their values and metadata.

##

Each additional property must conform to the following schema

#### PoolSnapshotEntryPropertyFields

Type: object
No Additional Properties

##

#### Value

Type: string

Current effective value of the ZFS property as a string.

##

#### Rawvalue

Type: string

Raw string value of the ZFS property as stored.

##

#### Source

Type: enum (of string)

Source of the property value.

- `NONE`: Property is not set
- `DEFAULT`: Using ZFS default value
- `LOCAL`: Set locally on this snapshot
- `TEMPORARY`: Temporary override value
- `INHERITED`: Inherited from parent dataset
- `RECEIVED`: Set by ZFS receive operation

##### Must be one of:

- "NONE"
- "DEFAULT"
- "LOCAL"
- "TEMPORARY"
- "INHERITED"
- "RECEIVED"

##

#### Parsed

Type: object

Property value parsed into the appropriate type (string, boolean, integer, etc.).

##

#### Pool

Type: string

Name of the ZFS pool containing this snapshot.

##

#### Name

Type: string

Full name of the snapshot including dataset path.

##

#### Type

Type: const

Type identifier indicating this is a ZFS snapshot.

Specific value: `"SNAPSHOT"`

##

#### Snapshot Name

Type: string

Just the snapshot name portion without the dataset path.

##

#### Dataset

Type: string

Name of the dataset this snapshot was taken from.

##

#### Createtxg

Type: string

Transaction group ID when the snapshot was created.

##

#### Holds

Type: object

Returned when options.extra.holds is set.

No Additional Properties

##

#### Truenas

Type: integer

Present if a hold has been placed on the snapshot.

##

#### Retention

Returned when options.extra.retention is set.

## Any of

## One of

#### PoolSnapshotRetentionPST

Type: object
No Additional Properties

##

#### Datetime

Type: stringFormat: date-time

Timestamp when the snapshot will be eligible for removal.

##

#### Source

Type: const

Indicates retention is managed by a periodic snapshot task.

Specific value: `"periodic_snapshot_task"`

##

#### Periodic Snapshot Task Id

Type: integer

ID of the periodic snapshot task managing this retention.

#### PoolSnapshotRetentionProperty

Type: object
No Additional Properties

##

#### Datetime

Type: stringFormat: date-time

Timestamp when the snapshot will be eligible for removal.

##

#### Source

Type: const

Indicates retention is managed by ZFS properties.

Specific value: `"property"`
Type: null

#### PoolSnapshotQueryResultItem

Type: object
No Additional Properties

##

#### Id

Type: string

Full snapshot identifier including dataset and snapshot name.

##

#### Properties

Type: object

Object mapping ZFS property names to their values and metadata.

##

Each additional property must conform to the following schema

Type: object

##

#### Pool

Type: string

Name of the ZFS pool containing this snapshot.

##

#### Name

Type: string

Full name of the snapshot including dataset path.

##

#### Type

Type: const

Type identifier indicating this is a ZFS snapshot.

Specific value: `"SNAPSHOT"`

##

#### Snapshot Name

Type: string

Just the snapshot name portion without the dataset path.

##

#### Dataset

Type: string

Name of the dataset this snapshot was taken from.

##

#### Createtxg

Type: string

Transaction group ID when the snapshot was created.

##

#### Holds

Type: object

Returned when options.extra.holds is set.

##

#### Retention

Returned when options.extra.retention is set.

## Any of

## One of

Type: object
Type: object
Type: null
Type: integer

Required roles: SNAPSHOT_READ