# pool.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:

#### PoolQueryResultItem

Type: object
No Additional Properties

##

#### Id

Type: integer

Unique identifier for this storage pool.

##

#### Name

Type: string

Name of the storage pool.

##

#### Guid

Type: string

Globally unique identifier (GUID) for this pool.

##

#### All Sed

Set when pool is made up of SED disks.

## Any of

Type: boolean
Type: null

##

#### Status

Type: string

Current status of the pool.

Examples:

    "ONLINE"

    "DEGRADED"

    "FAULTED"

##

#### Path

Type: string

Filesystem path where the pool is mounted.

##

Information about the most recent scrub or resilver operation. `null` if no scan data is available.

## Any of

#### PoolScan

Type: object
No Additional Properties

##

#### Function

Type: enum (of string)

Type of ZFS pool scan.

##### Must be one of:

- "RESILVER"
- "SCRUB"

##

#### State

Type: enum (of string)

Current lifecycle state of the scan.

##### Must be one of:

- "SCANNING"
- "FINISHED"
- "CANCELED"

##

#### Start Time

Type: stringFormat: date-time

Scan start time.

##

#### End Time

Scan end time (`null` while the scan is still running).

## Any of

Type: stringFormat: date-time
Type: null

##

#### Percentage

Type: number

Scan progress (between 0 and 100%).

##

#### Bytes To Process

Type: integer

Total bytes located by scanner.

##

#### Bytes Processed

Type: integer

Total bytes to scan.

##

#### Bytes Issued

Type: integer

Issued bytes per scan pass.

##

#### Pause

Pause time of a scrub pass (`null` if the scan is not paused).

## Any of

Type: stringFormat: date-time
Type: null

##

#### Errors

Type: integer

Number of scan errors.

##

#### Total Secs Left

Number of seconds left (`null` if the scan is not running).

## Any of

Type: integer
Type: null
Type: null

##

#### Expand

Information about any active pool expansion operation. `null` if no expansion is running.

## Any of

Type: object
Example:

    {
        "bytes_reflowed": 978944,
        "bytes_to_reflow": 835584,
        "end_time": null,
        "expanding_vdev": 0,
        "percentage": 85.35564853556485,
        "start_time": null,
        "state": "FINISHED",
        "total_secs_left": null,
        "waiting_for_resilver": 0
    }

Type: null

##

#### Is Upgraded

Type: boolean

Whether this pool has been upgraded to the latest feature flags.

##

#### Healthy

Type: boolean

Whether the pool is in a healthy state with no errors or warnings.

##

#### Warning

Type: boolean

Whether the pool has warning conditions that require attention.

##

#### Status Code

Detailed status code for the pool condition. `null` if not applicable.

## Any of

Type: string
Type: null

##

#### Status Detail

Human-readable description of the pool status. `null` if not available.

## Any of

Type: string
Type: null

##

#### Size

Total size of the pool in bytes. `null` if not available.

## Any of

Type: integer
Type: null

##

#### Allocated

Amount of space currently allocated in the pool in bytes. `null` if not available.

## Any of

Type: integer
Type: null

##

#### Free

Amount of free space available in the pool in bytes. `null` if not available.

## Any of

Type: integer
Type: null

##

#### Freeing

Amount of space being freed (in bytes) by ongoing operations. `null` if not available.

## Any of

Type: integer
Type: null

##

#### Dedup Table Size

Size of the deduplication table in bytes. `null` if deduplication is not enabled.

## Any of

Type: integer
Type: null

##

#### Dedup Table Quota

Quota limit for the deduplication table. `null` if no quota is set.

## Any of

Type: string
Type: null

##

#### Fragmentation

Percentage of pool fragmentation as a string. `null` if not available.

## Any of

Type: string
Type: null

##

#### Size Str

Human-readable string representation of the pool size. `null` if not available.

## Any of

Type: string
Type: null

##

#### Allocated Str

Human-readable string representation of allocated space. `null` if not available.

## Any of

Type: string
Type: null

##

#### Free Str

Human-readable string representation of free space. `null` if not available.

## Any of

Type: string
Type: null

##

#### Freeing Str

Human-readable string representation of space being freed. `null` if not available.

## Any of

Type: string
Type: null

##

#### Autotrim

Type: object

Auto-trim configuration for the pool indicating whether automatic TRIM operations are enabled.

Example:

    {
        "parsed": "off",
        "rawvalue": "off",
        "source": "DEFAULT",
        "value": "off"
    }

##

Physical topology and structure of the pool including vdevs. `null` if not available.

## Any of

#### PoolTopology

Type: object
No Additional Properties

##

#### Data

Type: array

Array of data vdev configurations in the pool.

No Additional Items

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

Type: object

##

#### Log

Type: array

Array of ZFS Intent Log (ZIL) vdev configurations.

No Additional Items

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

Type: object

##

#### Cache

Type: array

Array of L2ARC cache vdev configurations.

No Additional Items

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

Type: object

##

#### Spare

Type: array

Array of spare disk configurations.

No Additional Items

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

Type: object

##

#### Special

Type: array

Array of special vdev configurations for metadata.

No Additional Items

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

Type: object

##

#### Dedup

Type: array

Array of deduplication table vdev configurations.

No Additional Items

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

Type: object
Type: null

#### PoolQueryResultItem

Type: object
No Additional Properties

##

#### Id

Type: integer

Unique identifier for this storage pool.

##

#### Name

Type: string

Name of the storage pool.

##

#### Guid

Type: string

Globally unique identifier (GUID) for this pool.

##

#### All Sed

Set when pool is made up of SED disks.

## Any of

Type: boolean
Type: null

##

#### Status

Type: string

Current status of the pool.

Examples:

    "ONLINE"

    "DEGRADED"

    "FAULTED"

##

#### Path

Type: string

Filesystem path where the pool is mounted.

##

Information about the most recent scrub or resilver operation. `null` if no scan data is available.

## Any of

Type: object
Type: null

##

#### Expand

Information about any active pool expansion operation. `null` if no expansion is running.

## Any of

Type: object
Example:

    {
        "bytes_reflowed": 978944,
        "bytes_to_reflow": 835584,
        "end_time": null,
        "expanding_vdev": 0,
        "percentage": 85.35564853556485,
        "start_time": null,
        "state": "FINISHED",
        "total_secs_left": null,
        "waiting_for_resilver": 0
    }

Type: null

##

#### Is Upgraded

Type: boolean

Whether this pool has been upgraded to the latest feature flags.

##

#### Healthy

Type: boolean

Whether the pool is in a healthy state with no errors or warnings.

##

#### Warning

Type: boolean

Whether the pool has warning conditions that require attention.

##

#### Status Code

Detailed status code for the pool condition. `null` if not applicable.

## Any of

Type: string
Type: null

##

#### Status Detail

Human-readable description of the pool status. `null` if not available.

## Any of

Type: string
Type: null

##

#### Size

Total size of the pool in bytes. `null` if not available.

## Any of

Type: integer
Type: null

##

#### Allocated

Amount of space currently allocated in the pool in bytes. `null` if not available.

## Any of

Type: integer
Type: null

##

#### Free

Amount of free space available in the pool in bytes. `null` if not available.

## Any of

Type: integer
Type: null

##

#### Freeing

Amount of space being freed (in bytes) by ongoing operations. `null` if not available.

## Any of

Type: integer
Type: null

##

#### Dedup Table Size

Size of the deduplication table in bytes. `null` if deduplication is not enabled.

## Any of

Type: integer
Type: null

##

#### Dedup Table Quota

Quota limit for the deduplication table. `null` if no quota is set.

## Any of

Type: string
Type: null

##

#### Fragmentation

Percentage of pool fragmentation as a string. `null` if not available.

## Any of

Type: string
Type: null

##

#### Size Str

Human-readable string representation of the pool size. `null` if not available.

## Any of

Type: string
Type: null

##

#### Allocated Str

Human-readable string representation of allocated space. `null` if not available.

## Any of

Type: string
Type: null

##

#### Free Str

Human-readable string representation of free space. `null` if not available.

## Any of

Type: string
Type: null

##

#### Freeing Str

Human-readable string representation of space being freed. `null` if not available.

## Any of

Type: string
Type: null

##

#### Autotrim

Type: object

Auto-trim configuration for the pool indicating whether automatic TRIM operations are enabled.

Example:

    {
        "parsed": "off",
        "rawvalue": "off",
        "source": "DEFAULT",
        "value": "off"
    }

##

Physical topology and structure of the pool including vdevs. `null` if not available.

## Any of

Type: object
Type: null
Type: integer

Required roles: POOL_READ