Canonical · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Canonical Operations API
13 actions
13 updates
phrasing
extends
openapi/canonical-operations-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 13
$.info
$.paths['/1.0/operations'].get
$.paths['/1.0/operations/{uuid}'].get
$.paths['/1.0/operations/{uuid}'].delete
$.paths['/1.0/operations/{uuid}/wait'].get
$.paths['/1.0/operations/{uuid}/websocket'].get
$.paths['/1.0/operations?recursion=1'].get
$.paths['/1.0/operations/{id}'].get
$.paths['/1.0/operations/{id}'].delete
$.paths['/1.0/operations/{id}/wait'].get
$.paths['/1.0/operations/{id}/wait?public'].get
$.paths['/1.0/operations/{id}/websocket'].get
$.paths['/1.0/operations/{id}/websocket?public'].get
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 Canonical Operations API
version: 1.0.0
extends: openapi/canonical-operations-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: 12
- target: $.paths['/1.0/operations'].get
update:
x-apievangelist-phrasing:
intent: List running and queued AMS operations
effect: read
questions:
- Which background operations are in progress or queued on my Anbox Management Service?
- Can I get just the URLs of pending AMS operations?
instructions:
- text: List the URLs of AMS operations that are running or queued.
- text: List pending AMS operations with recursion level {recursion}.
slots:
recursion: query.recursion
method: generated
generated: '2026-09-26'
- target: $.paths['/1.0/operations/{uuid}'].get
update:
x-apievangelist-phrasing:
intent: Check the status of an AMS operation
effect: read
questions:
- What is the current status of an AMS operation I started?
- Did my Anbox container operation succeed or fail?
instructions:
- text: Get the status of AMS operation {uuid}.
slots:
uuid: path.uuid
- text: Tell me whether AMS operation {uuid} has finished.
slots:
uuid: path.uuid
method: generated
generated: '2026-09-26'
- target: $.paths['/1.0/operations/{uuid}'].delete
update:
x-apievangelist-phrasing:
intent: Cancel an AMS operation
effect: destructive
questions:
- How do I cancel a long-running AMS operation?
- Does cancelling an AMS operation remove it or just mark it as cancelling?
instructions:
- text: Cancel AMS operation {uuid}.
slots:
uuid: path.uuid
- text: Put AMS operation {uuid} into the cancelling state.
slots:
uuid: path.uuid
method: generated
generated: '2026-09-26'
- target: $.paths['/1.0/operations/{uuid}/wait'].get
update:
x-apievangelist-phrasing:
intent: Wait for an AMS operation to finish
effect: read
questions:
- Can I block until an AMS operation reaches a final status?
- Is there a timeout when waiting on an AMS operation?
instructions:
- text: Wait until AMS operation {uuid} completes.
slots:
uuid: path.uuid
- text: Wait up to {timeout} seconds for AMS operation {uuid} to finish.
slots:
uuid: path.uuid
timeout: query.timeout
method: generated
generated: '2026-09-26'
- target: $.paths['/1.0/operations/{uuid}/websocket'].get
update:
x-apievangelist-phrasing:
intent: Open a websocket to an AMS operation
effect: read
questions:
- How do I attach to the stdin and stdout of an AMS exec operation?
- Which secret do I need to open an AMS operation's websocket?
instructions:
- text: Open the websocket for AMS operation {uuid}.
slots:
uuid: path.uuid
- text: Connect to AMS operation {uuid}'s websocket using secret {secret}.
slots:
uuid: path.uuid
secret: query.secret
method: generated
generated: '2026-09-26'
- target: $.paths['/1.0/operations?recursion=1'].get
update:
x-apievangelist-phrasing:
intent: List AMS operations with full details
effect: read
questions:
- How do I see the status and progress of every queued AMS operation in one call?
- Is there an expanded list of in-flight AMS operations instead of bare URLs?
instructions:
- text: Show every in-progress AMS operation as a full object with status.
- text: Expand the queued AMS operations list at recursion {recursion}.
slots:
recursion: query.recursion
method: generated
generated: '2026-09-26'
- target: $.paths['/1.0/operations/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get the state of an LXD operation
effect: read
questions:
- What state is a background LXD operation in right now?
- Can I check progress of an LXD task like an instance copy?
instructions:
- text: Show the current state of LXD operation {id}.
slots:
id: path.id
- text: Check whether LXD background task {id} has finished yet.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/1.0/operations/{id}'].delete
update:
x-apievangelist-phrasing:
intent: Cancel an LXD operation
effect: destructive
questions:
- How do I cancel a running LXD operation?
- Can every LXD background task be cancelled, or only some?
instructions:
- text: Cancel LXD operation {id} if it supports cancelling.
slots:
id: path.id
- text: Stop the running LXD background task {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/1.0/operations/{id}/wait'].get
update:
x-apievangelist-phrasing:
intent: Wait for an LXD operation to finish
effect: read
questions:
- Can I wait on an LXD operation and get its final state back?
- How long will LXD hold my request while waiting on an operation?
instructions:
- text: Wait for LXD operation {id} to reach a final state.
slots:
id: path.id
- text: Wait on LXD operation {id} for at most {timeout} seconds.
slots:
id: path.id
timeout: query.timeout
method: generated
generated: '2026-10-01'
- target: $.paths['/1.0/operations/{id}/wait?public'].get
update:
x-apievangelist-phrasing:
intent: Wait on an LXD operation as an untrusted client
effect: read
questions:
- Can a client that isn't trusted by LXD still wait on an operation?
- Which token does an untrusted user need to wait on a public LXD operation?
instructions:
- text: As an untrusted client, wait on public LXD operation {id} using secret {secret}.
slots:
id: path.id
secret: query.secret
- text: Wait up to {timeout} seconds on the LXD operation via the public path with secret {secret}.
slots:
timeout: query.timeout
secret: query.secret
method: generated
generated: '2026-10-01'
- target: $.paths['/1.0/operations/{id}/websocket'].get
update:
x-apievangelist-phrasing:
intent: Connect to an LXD operation's websocket
effect: read
questions:
- How do I connect to the websocket stream behind an LXD operation?
- Is the LXD operation websocket meant for clients or for server-to-server use?
instructions:
- text: Connect to the websocket stream of LXD operation {id}.
slots:
id: path.id
- text: Attach to the LXD operation stream with secret {secret}.
slots:
secret: query.secret
method: generated
generated: '2026-10-01'
- target: $.paths['/1.0/operations/{id}/websocket?public'].get
update:
x-apievangelist-phrasing:
intent: Connect to an LXD operation websocket, untrusted
effect: read
questions:
- Can an untrusted LXD client join an operation's websocket through the public path?
- What must an untrusted user present to reach an operation stream on LXD?
instructions:
- text: As an untrusted user, join the public websocket of LXD operation {id} with secret {secret}.
slots:
id: path.id
secret: query.secret
- text: Relay the public operation stream to another LXD server using token {secret}.
slots:
secret: query.secret
method: generated
generated: '2026-10-01'