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.
View Overlay File View on GitHub Overlay Specification

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

Raw ↑
# 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'