Canonical · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Snapd REST Asynchronous API
9 actions
9 updates
phrasing
extends
openapi/canonical-asynchronous-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Canonical's API. It is a proposal applied on top of the contract, not a document Canonical publishes.
What the actions change
x-apievangelist-phrasing
Targets 9
$.info
$.paths['/v2/confdb/{account}/{confdb-schema}/{view}'].get
$.paths['/v2/confdb/{account}/{confdb-schema}/{view}'].put
$.paths['/v2/interfaces'].post
$.paths['/v2/quotas'].post
$.paths['/v2/snaps'].post
$.paths['/v2/snaps/{name}'].post
$.paths['/v2/snaps/{name}/conf'].put
$.paths['/v2/snapshots'].post
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Snapd REST Asynchronous API
version: 1.0.0
extends: openapi/canonical-asynchronous-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 8
- target: $.paths['/v2/confdb/{account}/{confdb-schema}/{view}'].get
update:
x-apievangelist-phrasing:
intent: Read configuration values from confdb
effect: read
questions:
- How do I read values from a confdb view on a snapd device?
- Can I fetch only certain keys from a confdb view?
instructions:
- text: Read confdb view {view} of schema {schema} for account {account}.
slots:
view: path.view
schema: path.confdb-schema
account: path.account
- text: Get keys {keys} from confdb view {view} in schema {schema} owned by {account}.
slots:
keys: query.keys
view: path.view
schema: path.confdb-schema
account: path.account
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/confdb/{account}/{confdb-schema}/{view}'].put
update:
x-apievangelist-phrasing:
intent: Write configuration values to confdb
effect: write
questions:
- How do I set configuration values through a confdb view?
- Is writing to confdb an asynchronous change in snapd?
instructions:
- text: Set {values} in confdb view {view} of schema {schema} for account {account}.
slots:
values: requestBody.values
view: path.view
schema: path.confdb-schema
account: path.account
- text: Write confdb values {values} to view {view}, schema {schema}, account {account}.
slots:
values: requestBody.values
view: path.view
schema: path.confdb-schema
account: path.account
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/interfaces'].post
update:
x-apievangelist-phrasing:
intent: Connect or disconnect snap interfaces
effect: write
questions:
- How do I connect a snap's plug to a slot?
- Can I disconnect an interface and have snapd forget the connection?
instructions:
- text: Connect plugs {plugs} to slots {slots}.
slots:
plugs: requestBody.plugs
slots: requestBody.slots
- text: Run interface action {action} on plugs {plugs} and slots {slots}.
slots:
action: requestBody.action
plugs: requestBody.plugs
slots: requestBody.slots
- text: 'Disconnect plugs {plugs} and forget the connection: {forget}.'
slots:
plugs: requestBody.plugs
forget: requestBody.forget
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/quotas'].post
update:
x-apievangelist-phrasing:
intent: Create, change or remove a quota group
effect: write
questions:
- How do I limit the resources a group of snaps can use?
- Can I remove a quota group I created earlier?
instructions:
- text: Apply quota action {action} to group {group}.
slots:
action: requestBody.action
group: requestBody.quota-group
- text: Create quota group {group}.
slots:
group: requestBody.quota-group
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/snaps'].post
update:
x-apievangelist-phrasing:
intent: Install, refresh or remove several snaps
effect: write
questions:
- How do I install or refresh several snaps in one request?
- Can I sideload a local snap file instead of pulling from the store?
- Can multiple snap refreshes run as a single transaction?
instructions:
- text: Run action {action} on snaps {snaps}.
slots:
action: requestBody.action
snaps: requestBody.snaps
- text: 'Sideload the snap file at {snap_path} in dangerous mode: {dangerous}.'
slots:
snap_path: requestBody.snap-path
dangerous: requestBody.dangerous
- text: Refresh snaps {snaps} as transaction {transaction}.
slots:
snaps: requestBody.snaps
transaction: requestBody.transaction
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/snaps/{name}'].post
update:
x-apievangelist-phrasing:
intent: Install, refresh or remove one snap
effect: write
questions:
- How do I install a single snap from a specific channel?
- Can I revert one snap to an earlier revision?
- Does removing a snap with purge skip the automatic snapshot?
instructions:
- text: Install snap {name} from channel {channel}.
slots:
name: path.name
channel: requestBody.channel
- text: Perform {action} on snap {name} at revision {revision}.
slots:
action: requestBody.action
name: path.name
revision: requestBody.revision
- text: Remove snap {name} with purge set to {purge}.
slots:
name: path.name
purge: requestBody.purge
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/snaps/{name}/conf'].put
update:
x-apievangelist-phrasing:
intent: Set an installed snap's configuration
effect: write
questions:
- How do I change configuration options of an installed snap?
- Can I set system-wide snapd options through the snap config endpoint?
instructions:
- text: Update the configuration of snap {name}.
slots:
name: path.name
- text: Set options on snap {name}; use system for core system settings.
slots:
name: path.name
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/snapshots'].post
update:
x-apievangelist-phrasing:
intent: Restore, check, forget or import snapshots
effect: write
questions:
- How do I restore a saved snapshot set of my snaps' data?
- Can I verify a snapshot set is intact before relying on it?
- Can I restore a snapshot for only certain users?
instructions:
- text: Restore snapshot set {set}.
slots:
set: requestBody.set
- text: Run snapshot action {action} on set {set} for snaps {snaps}.
slots:
action: requestBody.action
set: requestBody.set
snaps: requestBody.snaps
- text: Restore snapshot set {set} only for users {users}.
slots:
set: requestBody.set
users: requestBody.users
method: generated
generated: '2026-09-26'