Canonical · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Snapd REST Experimental API
9 actions
9 updates
phrasing
extends
openapi/canonical-experimental-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'].post
$.paths['/v2/interfaces/requests/prompts'].get
$.paths['/v2/interfaces/requests/prompts/{id}'].get
$.paths['/v2/interfaces/requests/prompts/{id}'].post
$.paths['/v2/interfaces/requests/rules'].get
$.paths['/v2/interfaces/requests/rules'].post
$.paths['/v2/interfaces/requests/rules/{id}'].get
$.paths['/v2/interfaces/requests/rules/{id}'].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 Experimental API
version: 1.0.0
extends: openapi/canonical-experimental-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'].post
update:
x-apievangelist-phrasing:
intent: Delegate or withdraw remote confdb management
effect: write
questions:
- How do I let an operator remotely manage confdb values on my device?
- Can I withdraw an operator's remote confdb access later?
- Is it possible to limit delegation to certain confdb views or auth methods?
instructions:
- text: Delegate confdb views {views} to operator {operator-id} with action {action}.
slots:
views: requestBody.views
operator-id: requestBody.operator-id
action: requestBody.action
- text: Run {action} for operator {operator-id} using authentications {authentications}.
slots:
action: requestBody.action
operator-id: requestBody.operator-id
authentications: requestBody.authentications
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/interfaces/requests/prompts'].get
update:
x-apievangelist-phrasing:
intent: List outstanding access prompts
effect: read
questions:
- Which snap permission prompts are waiting for a reply?
- Can I see pending access requests for a particular user?
instructions:
- text: List all outstanding access prompts.
- text: Show pending prompts for user {user-id}.
slots:
user-id: query.user-id
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/interfaces/requests/prompts/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get one access prompt
effect: read
questions:
- What exactly is a particular pending prompt asking permission for?
- Can I fetch a single access prompt by its ID?
instructions:
- text: Show prompt {id}.
slots:
id: path.id
- text: Get the details of access prompt {id} for user {user-id}.
slots:
id: path.id
user-id: query.user-id
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/interfaces/requests/prompts/{id}'].post
update:
x-apievangelist-phrasing:
intent: Allow or deny an access prompt
effect: write
questions:
- How do I allow or deny a snap's pending access request?
- Can my answer to a prompt become a lasting rule with a set lifespan?
instructions:
- text: Reply {action} to prompt {id} for lifespan {lifespan} with constraints {constraints}.
slots:
action: requestBody.action
id: path.id
lifespan: requestBody.lifespan
constraints: requestBody.constraints
- text: Allow prompt {id} for {duration} under constraints {constraints}, lifespan {lifespan}.
slots:
id: path.id
duration: requestBody.duration
constraints: requestBody.constraints
lifespan: requestBody.lifespan
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/interfaces/requests/rules'].get
update:
x-apievangelist-phrasing:
intent: List access prompting rules
effect: read
questions:
- What prompting rules have been saved for my snaps?
- Can I filter access rules by snap or interface?
instructions:
- text: List prompting rules for snap {snap}.
slots:
snap: query.snap
- text: Show rules on interface {interface}.
slots:
interface: query.interface
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/interfaces/requests/rules'].post
update:
x-apievangelist-phrasing:
intent: Create an access rule or remove rules by selector
effect: write
questions:
- How do I add a new access rule without waiting for a prompt?
- Can I delete a whole set of rules that match a selector?
instructions:
- text: Create a new prompting rule for user {user-id}.
slots:
user-id: query.user-id
- text: Remove all access rules matching a selector.
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/interfaces/requests/rules/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get one access rule
effect: read
questions:
- What does a specific prompting rule allow or deny?
- Can I look up an access rule by its ID?
instructions:
- text: Show rule {id}.
slots:
id: path.id
- text: Get access rule {id} for user {user-id}.
slots:
id: path.id
user-id: query.user-id
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/interfaces/requests/rules/{id}'].post
update:
x-apievangelist-phrasing:
intent: Patch or remove one access rule
effect: write
questions:
- Can I edit an existing prompting rule by ID?
- How do I delete a single access rule?
instructions:
- text: Patch prompting rule {id}.
slots:
id: path.id
- text: Remove the single access rule {id}.
slots:
id: path.id
method: generated
generated: '2026-09-26'
Work with this as data
Every overlay here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for openapi overlays
4 MCP tools reach this
find_overlaysBrowse and filter every overlay in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/canonical-experimental-api-phrasing-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.