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