Canonical · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for AMS external REST Nodes API

7 actions 7 updates phrasing extends openapi/canonical-nodes-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 7

$.info
$.paths['/1.0/nodes'].get
$.paths['/1.0/nodes'].post
$.paths['/1.0/nodes/{name}'].get
$.paths['/1.0/nodes/{name}'].delete
$.paths['/1.0/nodes/{name}'].patch
$.paths['/1.0/nodes?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 Nodes API
  version: 1.0.0
extends: openapi/canonical-nodes-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: 6
- target: $.paths['/1.0/nodes'].get
  update:
    x-apievangelist-phrasing:
      intent: List Anbox nodes
      effect: read
      questions:
      - Which nodes does AMS know about in my Anbox Cloud cluster?
      - Can I list nodes with recursion to control how much detail comes back?
      instructions:
      - text: List the nodes known to AMS.
      - text: List AMS nodes with recursion level {recursion}.
        slots:
          recursion: query.recursion
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1.0/nodes'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a node to AMS
      effect: write
      questions:
      - How do I add a new LXD node to Anbox Cloud?
      - Can I register an existing unmanaged LXD node instead of having AMS bootstrap one?
      - Is it possible to set GPU slots and CPU allocation rate on a new node?
      instructions:
      - text: Create node {name} at address {address}.
        slots:
          name: requestBody.name
          address: requestBody.address
      - text: Add unmanaged node {name} at {address} with unmanaged {unmanaged}.
        slots:
          name: requestBody.name
          address: requestBody.address
          unmanaged: requestBody.unmanaged
      - text: Create node {name} with {gpu_slots} GPU slots and storage device {storage_device}.
        slots:
          name: requestBody.name
          gpu_slots: requestBody.gpu_slots
          storage_device: requestBody.storage_device
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1.0/nodes/{name}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one Anbox node
      effect: read
      questions:
      - What resources does a specific AMS node have?
      - Is a particular node schedulable right now?
      instructions:
      - text: Show node {name}.
        slots:
          name: path.name
      - text: Get the resources and status of node {name}.
        slots:
          name: path.name
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1.0/nodes/{name}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete an Anbox node
      effect: destructive
      questions:
      - How do I remove a node from AMS?
      - Can I delete a node from AMS but keep it in the LXD cluster?
      instructions:
      - text: Delete node {name}.
        slots:
          name: path.name
      - text: Remove node {name} from AMS with keep_in_cluster {keep_in_cluster}.
        slots:
          name: path.name
          keep_in_cluster: requestBody.keep_in_cluster
      - text: Force-delete node {name}.
        slots:
          name: path.name
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1.0/nodes/{name}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update an Anbox node
      effect: write
      questions:
      - How do I stop new containers from being scheduled on a node?
      - Can I change a node's GPU slots or memory allocation rate?
      instructions:
      - text: Mark node {name} unschedulable {unschedulable}.
        slots:
          name: path.name
          unschedulable: requestBody.unschedulable
      - text: Set node {name} to {gpu_slots} GPU slots and tags {tags}.
        slots:
          name: path.name
          gpu_slots: requestBody.gpu_slots
          tags: requestBody.tags
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1.0/nodes?recursion=1'].get
  update:
    x-apievangelist-phrasing:
      intent: List Anbox nodes with full details
      effect: read
      questions:
      - Can I get every node's CPU, memory and GPU slots in one call?
      - What resources does each AMS node have?
      instructions:
      - text: Fetch every AMS node with full resource details.
      - text: Show all nodes expanded, recursion {recursion}.
        slots:
          recursion: query.recursion
      method: generated
      generated: '2026-09-26'