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

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

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