Canonical · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for AMS external REST Containers API
11 actions
11 updates
phrasing
extends
openapi/canonical-containers-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 11
$.info
$.paths['/1.0/containers'].get
$.paths['/1.0/containers'].post
$.paths['/1.0/containers'].delete
$.paths['/1.0/containers/{id}'].get
$.paths['/1.0/containers/{id}'].delete
$.paths['/1.0/containers/{id}'].patch
$.paths['/1.0/containers/{id}/exec'].post
$.paths['/1.0/containers/{id}/logs'].get
$.paths['/1.0/containers/{id}/logs/{name}'].get
$.paths['/1.0/containers?recursion=1'].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 AMS external REST Containers API
version: 1.0.0
extends: openapi/canonical-containers-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: 10
- target: $.paths['/1.0/containers'].get
update:
x-apievangelist-phrasing:
intent: List container endpoints
effect: read
questions:
- Which Anbox containers are running, as a list of endpoint URLs?
- Can I filter the container list by application or status?
instructions:
- text: List the endpoint URLs of containers for app {app_name}.
slots:
app_name: query.app_name
- text: List container URLs with status {status} on node {node}.
slots:
status: query.status
node: query.node
- text: Page through container URLs, {limit} at a time from offset {offset}.
slots:
limit: query.limit
offset: query.offset
method: generated
generated: '2026-09-26'
- target: $.paths['/1.0/containers'].post
update:
x-apievangelist-phrasing:
intent: Launch a new Android container
effect: write
questions:
- How do I launch an Android container from an application in Anbox Cloud?
- Can I create a container from a raw image with custom CPU and memory?
- What happens if AMS can't find the resources for a new container?
instructions:
- text: Launch a container for application {app_id}.
slots:
app_id: requestBody.app_id
- text: Create a container from image {image_id} with {cpus} CPUs and {memory} memory.
slots:
image_id: requestBody.image_id
cpus: requestBody.cpus
memory: requestBody.memory
- text: 'Create a container for app {app_id} on node {node} without starting it: {no_start}.'
slots:
app_id: requestBody.app_id
node: requestBody.node
no_start: requestBody.no_start
method: generated
generated: '2026-09-26'
- target: $.paths['/1.0/containers'].delete
update:
x-apievangelist-phrasing:
intent: Delete several containers at once
effect: destructive
questions:
- How do I delete a batch of containers in one request?
- What happens if one container in a bulk delete fails?
instructions:
- text: Delete containers {ids}.
slots:
ids: requestBody.ids
- text: 'Force-delete all of these containers: {ids}.'
slots:
ids: requestBody.ids
method: generated
generated: '2026-09-26'
- target: $.paths['/1.0/containers/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get one container's details
effect: read
questions:
- What status and node is a specific Anbox container on?
- Can I look up a single container by its ID?
instructions:
- text: Show me container {id}.
slots:
id: path.id
- text: Get the status and app details of container {id}.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/1.0/containers/{id}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a container
effect: destructive
questions:
- How do I delete a single Anbox container?
- Can I force-delete a container that isn't stopping cleanly?
instructions:
- text: Delete container {id}.
slots:
id: path.id
- text: 'Force-delete container {id}: {force}.'
slots:
id: path.id
force: requestBody.force
method: generated
generated: '2026-09-26'
- target: $.paths['/1.0/containers/{id}'].patch
update:
x-apievangelist-phrasing:
intent: Start or stop a container
effect: write
questions:
- How do I stop a running container or start a stopped one?
- Can I change a container's desired status after it was created?
instructions:
- text: Set container {id} to desired status {desired_status}.
slots:
id: path.id
desired_status: requestBody.desired_status
- text: Stop container {id}.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/1.0/containers/{id}/exec'].post
update:
x-apievangelist-phrasing:
intent: Run a command inside a container
effect: write
questions:
- How do I run a shell command inside an Android container?
- Can I open an interactive terminal session into a container?
instructions:
- text: Run command {command} in container {id}.
slots:
command: requestBody.command
id: path.id
- text: Open an interactive shell in container {id} sized {width} by {height}.
slots:
id: path.id
width: requestBody.width
height: requestBody.height
- text: Execute {command} in container {id} with environment {environment}.
slots:
command: requestBody.command
id: path.id
environment: requestBody.environment
method: generated
generated: '2026-09-26'
- target: $.paths['/1.0/containers/{id}/logs'].get
update:
x-apievangelist-phrasing:
intent: List a container's collected logs
effect: read
questions:
- Which log files did AMS collect for a container that went into error?
- Are logs captured automatically when a container fails?
instructions:
- text: List the collected log files for container {id}.
slots:
id: path.id
- text: Show which logs were gathered from errored container {id}.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/1.0/containers/{id}/logs/{name}'].get
update:
x-apievangelist-phrasing:
intent: Download a specific container log file
effect: read
questions:
- How do I read the raw contents of one log file from a container?
- Can I download a single collected log by its name?
instructions:
- text: Download log file {name} from container {id}.
slots:
name: path.name
id: path.id
- text: Show me the raw contents of log {name} for container {id}.
slots:
name: path.name
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/1.0/containers?recursion=1'].get
update:
x-apievangelist-phrasing:
intent: List containers with full details
effect: read
questions:
- How do I see every Anbox container with its app, image and node in one response?
- Can I get full container records filtered by tag or image version?
instructions:
- text: Fetch full container records for application {app_id}.
slots:
app_id: query.app_id
- text: Show detailed containers running image {image_id} version {image_version}.
slots:
image_id: query.image_id
image_version: query.image_version
- text: Expand all containers tagged {tags}.
slots:
tags: query.tags
method: generated
generated: '2026-09-26'