# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for LXD external REST Storage API version: 1.0.0 extends: openapi/canonical-storage-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-10-01' generator: build-phrasing.py label: Generated by API Evangelist operations: 52 - target: $.paths['/1.0/storage-pools'].get update: x-apievangelist-phrasing: intent: List storage pool URLs effect: read questions: - Which storage pools exist on my LXD server, just as a list of URLs? - Can I list the storage pool paths available to one project? instructions: - text: List the URLs of every LXD storage pool. - text: Give me the storage pool URLs visible in project {project}. slots: project: query.project method: generated generated: '2026-09-26' - target: $.paths['/1.0/storage-pools'].post update: x-apievangelist-phrasing: intent: Create a storage pool effect: write questions: - How do I add a new storage pool to LXD with a specific driver like zfs or btrfs? - When clustered, do I have to create the pool on each member before the global create? instructions: - text: Create a storage pool named {name} using the {driver} driver. slots: name: requestBody.name driver: requestBody.driver - text: Define pool {name} with driver {driver} on cluster member {target} first. slots: name: requestBody.name driver: requestBody.driver target: query.target - text: Add storage pool {name} described as {description}. slots: name: requestBody.name description: requestBody.description method: generated generated: '2026-09-26' - target: $.paths['/1.0/storage-pools/{name}/buckets/{bucketName}'].put update: x-apievangelist-phrasing: intent: Replace a bucket's configuration effect: write questions: - How do I overwrite all of a bucket's settings at once? - Will a full bucket update reset config keys I omit? instructions: - text: Replace the entire configuration of bucket {bucket} in pool {pool} with {config}. slots: bucket: path.bucketName pool: path.name config: requestBody.config - text: Overwrite the bucket settings and set its description to {description}. slots: description: requestBody.description method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{name}/buckets/{bucketName}'].delete update: x-apievangelist-phrasing: intent: Delete a storage bucket effect: destructive questions: - How do I remove an object storage bucket from a pool? - Can I delete a bucket that belongs to another project? instructions: - text: Delete storage bucket {bucket} from pool {pool}. slots: bucket: path.bucketName pool: path.name - text: Remove the bucket from project {project}. slots: project: query.project method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{name}/buckets/{bucketName}'].patch update: x-apievangelist-phrasing: intent: Change some bucket settings effect: write questions: - Can I change only a bucket's size limit without touching other settings? - How do I edit just the description on an existing bucket? instructions: - text: 'Patch only these config keys on bucket {bucket} in pool {pool}: {config}.' slots: bucket: path.bucketName pool: path.name config: requestBody.config - text: Update just the bucket description to {description}. slots: description: requestBody.description method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{name}/buckets/{bucketName}/keys/{keyName}'].put update: x-apievangelist-phrasing: intent: Update a bucket access key effect: write questions: - How do I change the role on an existing bucket key? - Can I rotate the secret of a bucket key I already created? instructions: - text: Change the role of key {key} on bucket {bucket} in pool {pool} to {role}. slots: key: path.keyName bucket: path.bucketName pool: path.name role: requestBody.role - text: Rotate the bucket key to access key {access_key} and secret {secret_key}. slots: access_key: requestBody.access-key secret_key: requestBody.secret-key method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{name}/buckets/{bucketName}/keys/{keyName}'].delete update: x-apievangelist-phrasing: intent: Revoke a bucket access key effect: destructive questions: - How do I revoke an access key so it can no longer reach the bucket? - Can I delete a bucket key in a specific project? instructions: - text: Delete access key {key} from bucket {bucket} in pool {pool}. slots: key: path.keyName bucket: path.bucketName pool: path.name - text: Revoke the bucket key in project {project}. slots: project: query.project method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{name}/resources'].get update: x-apievangelist-phrasing: intent: Check storage pool usage effect: read questions: - How much space is used and free in a storage pool? - Can I check disk and inode usage of a pool on a particular cluster member? instructions: - text: Show the capacity and usage figures for storage pool {pool}. slots: pool: path.name - text: Report pool resource usage on cluster member {target}. slots: target: query.target method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}'].get update: x-apievangelist-phrasing: intent: Get one storage pool effect: read questions: - What driver and settings does a particular storage pool use? - Can I look up a single pool's details as seen by one cluster member? instructions: - text: Show me the details of storage pool {pool}. slots: pool: path.poolName - text: Get that storage pool's configuration on cluster member {target}. slots: target: query.target method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}'].put update: x-apievangelist-phrasing: intent: Replace a storage pool's configuration effect: write questions: - How do I overwrite a storage pool's entire config in one request? - Does replacing a pool's configuration drop keys I leave out? instructions: - text: Replace the whole configuration of storage pool {pool} with {config}. slots: pool: path.poolName config: requestBody.config - text: Overwrite the pool's config and set its description to {description}. slots: description: requestBody.description method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}'].delete update: x-apievangelist-phrasing: intent: Delete a storage pool effect: destructive questions: - How do I remove a storage pool I no longer use? - Can a storage pool be deleted from within a specific project? instructions: - text: Delete storage pool {pool}. slots: pool: path.poolName - text: Remove the storage pool in project {project}. slots: project: query.project method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}'].patch update: x-apievangelist-phrasing: intent: Change some storage pool settings effect: write questions: - Can I tweak just one setting on a storage pool without resending everything? - How do I update only the description of an existing storage pool? instructions: - text: 'Patch storage pool {pool} with only these config keys: {config}.' slots: pool: path.poolName config: requestBody.config - text: Change just the pool's description to {description}, leaving config alone. slots: description: requestBody.description method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/buckets'].get update: x-apievangelist-phrasing: intent: List bucket URLs in a storage pool effect: read questions: - Which object storage buckets live in a given storage pool? - Can I list bucket URLs across all projects at once? instructions: - text: List the bucket URLs in storage pool {pool}. slots: pool: path.poolName - text: List bucket URLs in the pool for project {project}. slots: project: query.project - text: 'List bucket URLs in the pool across all projects: {all_projects}.' slots: all_projects: query.all-projects method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/buckets'].post update: x-apievangelist-phrasing: intent: Create an object storage bucket effect: write questions: - How do I create an S3-style bucket inside an LXD storage pool? - Can I set a size or other config when creating a new bucket? instructions: - text: Create a bucket named {name} in storage pool {pool}. slots: name: requestBody.name pool: path.poolName - text: Add bucket {name} with config {config} in project {project}. slots: name: requestBody.name config: requestBody.config project: query.project method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/buckets/{bucketName}'].get update: x-apievangelist-phrasing: intent: Get one storage bucket effect: read questions: - What is the configuration and S3 endpoint of a specific bucket? - Can I look up a single bucket's details in a given project? instructions: - text: Show me the details of bucket {bucket} in pool {pool}. slots: bucket: path.bucketName pool: path.poolName - text: Get the bucket record from project {project}. slots: project: query.project method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/buckets/{bucketName}/keys'].get update: x-apievangelist-phrasing: intent: List access key URLs for a bucket effect: read questions: - Which access keys have been issued for a bucket? - Can I get just the key paths for a bucket without the secrets? instructions: - text: List the access key URLs for bucket {bucket} in pool {pool}. slots: bucket: path.bucketName pool: path.poolName - text: Give me the bucket's key URLs in project {project}. slots: project: query.project method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/buckets/{bucketName}/keys'].post update: x-apievangelist-phrasing: intent: Create a bucket access key effect: write questions: - How do I generate a new access key for a storage bucket? - Can I give a bucket key a read-only role or supply my own secret? instructions: - text: Create a key named {name} for bucket {bucket} in pool {pool} with role {role}. slots: name: requestBody.name bucket: path.bucketName pool: path.poolName role: requestBody.role - text: Add bucket key {name} using access key {access_key} and secret {secret_key}. slots: name: requestBody.name access_key: requestBody.access-key secret_key: requestBody.secret-key method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/buckets/{bucketName}/keys/{keyName}'].get update: x-apievangelist-phrasing: intent: Get one bucket access key effect: read questions: - What role and credentials does a particular bucket key have? - Can I retrieve a single bucket key by name? instructions: - text: Reveal the role and credentials of access key {key} on bucket {bucket} in pool {pool}. slots: key: path.keyName bucket: path.bucketName pool: path.poolName - text: Look up this single access key of the bucket in project {project}. slots: project: query.project method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/buckets/{bucketName}/keys?recursion=1'].get update: x-apievangelist-phrasing: intent: List bucket keys with full details effect: read questions: - How do I see every bucket key with its role and credentials in one response? - Is there an expanded listing of bucket keys instead of URLs? instructions: - text: Fetch all keys for bucket {bucket} in pool {pool} as full records including role. slots: bucket: path.bucketName pool: path.poolName - text: Expand every bucket key's details in project {project}. slots: project: query.project method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/buckets?recursion=1'].get update: x-apievangelist-phrasing: intent: List buckets in a pool with full details effect: read questions: - How do I get complete bucket records, with config and S3 URL, for a pool? - Is there a recursive listing that expands each bucket instead of returning paths? instructions: - text: Fetch every bucket in pool {pool} as full objects rather than URLs. slots: pool: path.poolName - text: Expand all bucket details in the pool for project {project}. slots: project: query.project method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/volumes'].get update: x-apievangelist-phrasing: intent: List volume URLs in a storage pool effect: read questions: - Which storage volumes are in one particular pool? - Can I filter the volumes in a pool with a filter expression? instructions: - text: List the volume URLs in storage pool {pool}. slots: pool: path.poolName - text: List volume URLs in this pool matching filter {filter}. slots: filter: query.filter method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/volumes'].post update: x-apievangelist-phrasing: intent: Create a storage volume in a pool effect: write questions: - How do I create a new custom volume in a storage pool? - Can I create a volume by copying from another volume as the source? instructions: - text: Create volume {name} of type {type} in storage pool {pool}. slots: name: requestBody.name type: requestBody.type pool: path.poolName - text: Create volume {name} copied from source {source}. slots: name: requestBody.name source: requestBody.source method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/volumes/{type}'].get update: x-apievangelist-phrasing: intent: List a pool's volume URLs of one type effect: read questions: - How do I list only the custom volumes, or only image volumes, in a pool? - Can I get the URLs of one volume type within a single pool? instructions: - text: List URLs of {volume_type} volumes in storage pool {pool}. slots: volume_type: path.type pool: path.poolName - text: List this pool's volume URLs of this type in project {project}. slots: project: query.project method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/volumes/{type}'].post update: x-apievangelist-phrasing: intent: Create a volume via the type-specific path effect: write questions: - Can I create a volume by posting to the path that already names its type? - How do I create a block content-type volume on the type-specific endpoint? instructions: - text: Using the type-specific path, create {volume_type} volume {name} in pool {pool} with content type {content_type}. slots: volume_type: path.type name: requestBody.name pool: path.poolName content_type: requestBody.content_type - text: On the typed volume endpoint, create {name} with config {config}. slots: name: requestBody.name config: requestBody.config method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}'].get update: x-apievangelist-phrasing: intent: Get one storage volume effect: read questions: - What configuration does a specific storage volume have? - Can I look up one volume's details on a particular cluster member? instructions: - text: Show me the details of {volume_type} volume {volume} in pool {pool}. slots: volume_type: path.type volume: path.volumeName pool: path.poolName - text: Get the volume record as seen on cluster member {target}. slots: target: query.target method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}'].put update: x-apievangelist-phrasing: intent: Replace a volume's configuration effect: write questions: - How do I overwrite all of a storage volume's settings? - Can a full volume update restore it from a snapshot? instructions: - text: Replace the entire config of {volume_type} volume {volume} in pool {pool} with {config}. slots: volume_type: path.type volume: path.volumeName pool: path.poolName config: requestBody.config - text: Overwrite the volume and restore it from snapshot {restore}. slots: restore: requestBody.restore method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}'].post update: x-apievangelist-phrasing: intent: Rename, move or migrate a volume effect: write questions: - How do I rename a storage volume? - Can I move a volume to a different pool or migrate it to another server? instructions: - text: Rename {volume_type} volume {volume} in pool {pool} to {name}. slots: volume_type: path.type volume: path.volumeName pool: path.poolName name: requestBody.name - text: Move the volume into pool {pool}. slots: pool: requestBody.pool - text: 'Move the volume to project {dest_project}, without its snapshots: {volume_only}.' slots: dest_project: requestBody.project volume_only: requestBody.volume_only method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}'].delete update: x-apievangelist-phrasing: intent: Delete a storage volume effect: destructive questions: - How do I delete a custom storage volume? - Can I remove a volume that sits on a specific cluster member? instructions: - text: Delete {volume_type} storage volume {volume} from pool {pool}. slots: volume_type: path.type volume: path.volumeName pool: path.poolName - text: Remove the volume from cluster member {target}. slots: target: query.target method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}'].patch update: x-apievangelist-phrasing: intent: Change some volume settings effect: write questions: - Can I change just the size of a volume without resending its whole config? - How do I update only a volume's description? instructions: - text: 'Patch only these config keys on {volume_type} volume {volume} in pool {pool}: {config}.' slots: volume_type: path.type volume: path.volumeName pool: path.poolName config: requestBody.config - text: Set just the volume description to {description}. slots: description: requestBody.description method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/backups'].get update: x-apievangelist-phrasing: intent: List volume backup URLs effect: read questions: - Which backups exist for a storage volume? - Can I list only the backup paths for a volume? instructions: - text: List backup URLs for {volume_type} volume {volume} in pool {pool}. slots: volume_type: path.type volume: path.volumeName pool: path.poolName - text: List the volume's backup URLs in project {project}. slots: project: query.project method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/backups'].post update: x-apievangelist-phrasing: intent: Back up a storage volume effect: write questions: - How do I create a backup of a custom volume? - Can I set an expiry and compression algorithm on a volume backup? instructions: - text: Create a backup named {name} of {volume_type} volume {volume} in pool {pool}. slots: name: requestBody.name volume_type: path.type volume: path.volumeName pool: path.poolName - text: Back up the volume as {name}, compressed with {compression}, expiring {expires_at}. slots: name: requestBody.name compression: requestBody.compression_algorithm expires_at: requestBody.expires_at method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/backups/{backupName}'].get update: x-apievangelist-phrasing: intent: Get one volume backup effect: read questions: - When was a particular volume backup made and when does it expire? - Can I look up a single volume backup's metadata? instructions: - text: Show me backup {backup} of {volume_type} volume {volume} in pool {pool}. slots: backup: path.backupName volume_type: path.type volume: path.volumeName pool: path.poolName - text: Get the volume backup record in project {project}. slots: project: query.project method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/backups/{backupName}'].post update: x-apievangelist-phrasing: intent: Rename a volume backup effect: write questions: - How do I rename an existing volume backup? - Can a volume backup be given a new name after it is created? instructions: - text: Rename backup {backup} of {volume_type} volume {volume} in pool {pool} to {name}. slots: backup: path.backupName volume_type: path.type volume: path.volumeName pool: path.poolName name: requestBody.name - text: Give the volume backup in project {project} the new name {name}. slots: project: query.project name: requestBody.name method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/backups/{backupName}'].delete update: x-apievangelist-phrasing: intent: Delete a volume backup effect: destructive questions: - How do I delete an old volume backup to free space? - Can I remove a volume backup in a specific project? instructions: - text: Delete backup {backup} of {volume_type} volume {volume} in pool {pool}. slots: backup: path.backupName volume_type: path.type volume: path.volumeName pool: path.poolName - text: Remove the volume backup in project {project}. slots: project: query.project method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/backups/{backupName}/export'].get update: x-apievangelist-phrasing: intent: Download a volume backup file effect: read questions: - How do I download the raw backup file of a storage volume? - Can I export a volume backup off the server as a tarball? instructions: - text: Download the raw file for backup {backup} of {volume_type} volume {volume} in pool {pool}. slots: backup: path.backupName volume_type: path.type volume: path.volumeName pool: path.poolName - text: Export the volume backup file from project {project}. slots: project: query.project method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/backups?recursion=1'].get update: x-apievangelist-phrasing: intent: List volume backups with full details effect: read questions: - How do I see each volume backup with its creation and expiry dates? - Is there an expanded view of a volume's backups instead of URLs? instructions: - text: Fetch full records for all backups of {volume_type} volume {volume} in pool {pool}. slots: volume_type: path.type volume: path.volumeName pool: path.poolName - text: Expand the volume backups with expiry details in project {project}. slots: project: query.project method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/snapshots'].get update: x-apievangelist-phrasing: intent: List volume snapshot URLs effect: read questions: - Which snapshots have been taken of a storage volume? - Can I list just the snapshot paths for a volume? instructions: - text: List snapshot URLs for {volume_type} volume {volume} in pool {pool}. slots: volume_type: path.type volume: path.volumeName pool: path.poolName - text: List the volume's snapshot URLs on cluster member {target}. slots: target: query.target method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/snapshots'].post update: x-apievangelist-phrasing: intent: Snapshot a storage volume effect: write questions: - How do I take a snapshot of a custom volume? - Can I make a volume snapshot expire automatically? instructions: - text: Take a snapshot named {name} of {volume_type} volume {volume} in pool {pool}. slots: name: requestBody.name volume_type: path.type volume: path.volumeName pool: path.poolName - text: Snapshot the volume as {name}, expiring at {expires_at}. slots: name: requestBody.name expires_at: requestBody.expires_at method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/snapshots/{snapshotName}'].get update: x-apievangelist-phrasing: intent: Get one volume snapshot effect: read questions: - What are the details of a particular volume snapshot? - Can I check when a specific volume snapshot expires? instructions: - text: Show me snapshot {snapshot} of {volume_type} volume {volume} in pool {pool}. slots: snapshot: path.snapshotName volume_type: path.type volume: path.volumeName pool: path.poolName - text: Get the volume snapshot record in project {project}. slots: project: query.project method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/snapshots/{snapshotName}'].put update: x-apievangelist-phrasing: intent: Replace a volume snapshot's settings effect: write questions: - How do I overwrite both the description and expiry of a volume snapshot? - Does a full snapshot update clear the expiry if I leave it out? instructions: - text: 'Replace all settings of snapshot {snapshot} on {volume_type} volume {volume} in pool {pool}: description {description}, expiry {expires_at}.' slots: snapshot: path.snapshotName volume_type: path.type volume: path.volumeName pool: path.poolName description: requestBody.description expires_at: requestBody.expires_at - text: Fully rewrite the volume snapshot with description {description}. slots: description: requestBody.description method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/snapshots/{snapshotName}'].post update: x-apievangelist-phrasing: intent: Rename a volume snapshot effect: write questions: - How do I rename a snapshot of a storage volume? - Can a volume snapshot be migrated to another target? instructions: - text: Rename snapshot {snapshot} of {volume_type} volume {volume} in pool {pool} to {name}. slots: snapshot: path.snapshotName volume_type: path.type volume: path.volumeName pool: path.poolName name: requestBody.name - text: Migrate the volume snapshot using target settings {target_spec}. slots: target_spec: requestBody.target method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/snapshots/{snapshotName}'].delete update: x-apievangelist-phrasing: intent: Delete a volume snapshot effect: destructive questions: - How do I delete a volume snapshot I no longer need? - Can I remove a volume snapshot on a particular cluster member? instructions: - text: Delete snapshot {snapshot} of {volume_type} volume {volume} in pool {pool}. slots: snapshot: path.snapshotName volume_type: path.type volume: path.volumeName pool: path.poolName - text: Remove the volume snapshot on cluster member {target}. slots: target: query.target method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/snapshots/{snapshotName}'].patch update: x-apievangelist-phrasing: intent: Change a volume snapshot's expiry or description effect: write questions: - Can I extend just the expiry date on a volume snapshot? - How do I edit only the description of an existing volume snapshot? instructions: - text: Patch only the expiry of snapshot {snapshot} on {volume_type} volume {volume} in pool {pool} to {expires_at}. slots: snapshot: path.snapshotName volume_type: path.type volume: path.volumeName pool: path.poolName expires_at: requestBody.expires_at - text: Change just the volume snapshot's description to {description}. slots: description: requestBody.description method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/snapshots?recursion=1'].get update: x-apievangelist-phrasing: intent: List volume snapshots with full details effect: read questions: - How do I see every volume snapshot with its description and expiry? - Is there an expanded listing of a volume's snapshots rather than URLs? instructions: - text: Fetch full records for all snapshots of {volume_type} volume {volume} in pool {pool}. slots: volume_type: path.type volume: path.volumeName pool: path.poolName - text: Expand the volume snapshots with expiry details in project {project}. slots: project: query.project method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/volumes/{type}/{volumeName}/state'].get update: x-apievangelist-phrasing: intent: Check a volume's usage effect: read questions: - How much disk space is a storage volume actually using? - Can I see a volume's current usage data on one cluster member? instructions: - text: Show the current usage state of {volume_type} volume {volume} in pool {pool}. slots: volume_type: path.type volume: path.volumeName pool: path.poolName - text: Report volume usage from cluster member {target}. slots: target: query.target method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/volumes/{type}?recursion=1'].get update: x-apievangelist-phrasing: intent: List a pool's volumes of one type in full effect: read questions: - Can I get full objects for only the container volumes in one pool? - What does each volume of a given type in this pool look like in detail? instructions: - text: Expand every {volume_type} volume in pool {pool} into full records. slots: volume_type: path.type pool: path.poolName - text: Fetch detailed pool volumes of this type on cluster member {target}. slots: target: query.target method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools/{poolName}/volumes?recursion=1'].get update: x-apievangelist-phrasing: intent: List a pool's volumes with full details effect: read questions: - How do I see every volume in a pool with its config and content type? - Can I expand all volume records in a pool and filter them at once? instructions: - text: Fetch full records for every volume in storage pool {pool}. slots: pool: path.poolName - text: Expand volume details in this pool using filter {filter}. slots: filter: query.filter method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-pools?recursion=1'].get update: x-apievangelist-phrasing: intent: List storage pools with full details effect: read questions: - How can I see every storage pool with its driver, config and status in one call? - Is there a way to fetch full storage pool objects instead of bare URLs? instructions: - text: Fetch the complete records for all storage pools, including driver and config. - text: Show full storage pool objects for project {project}. slots: project: query.project method: generated generated: '2026-09-26' - target: $.paths['/1.0/storage-volumes'].get update: x-apievangelist-phrasing: intent: List volume URLs across all pools effect: read questions: - How do I list storage volumes from every pool at once? - Can I filter volumes server-wide regardless of which pool they are in? instructions: - text: List volume URLs across all storage pools. - text: List every pool's volume URLs matching filter {filter}. slots: filter: query.filter method: generated generated: '2026-09-26' - target: $.paths['/1.0/storage-volumes/{type}'].get update: x-apievangelist-phrasing: intent: List volume URLs of one type across pools effect: read questions: - How do I list every custom volume on the server no matter which pool holds it? - Can I get URLs of one volume type across all pools and projects? instructions: - text: List URLs of {volume_type} volumes from all pools. slots: volume_type: path.type - text: 'List server-wide volume URLs of this type, all projects: {all_projects}.' slots: all_projects: query.all-projects method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-volumes/{type}?recursion=1'].get update: x-apievangelist-phrasing: intent: List one volume type across pools in full effect: read questions: - Can I get full details of every volume of one type, server-wide? - Which container-type volumes exist across all pools, with their config? instructions: - text: Expand every {volume_type} volume across all pools into full records. slots: volume_type: path.type - text: Fetch detailed volumes of this type from all pools in project {project}. slots: project: query.project method: generated generated: '2026-10-01' - target: $.paths['/1.0/storage-volumes?recursion=1'].get update: x-apievangelist-phrasing: intent: List all pools' volumes with full details effect: read questions: - Can I fetch full volume records from every pool in one request? - What does every volume on the server look like, expanded, filtered by a condition? instructions: - text: Expand every volume on the server, from all pools, into full records. - text: Fetch detailed volumes from all pools where {filter}. slots: filter: query.filter method: generated generated: '2026-09-26'