# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for LXD external REST Cluster API version: 1.0.0 extends: openapi/canonical-cluster-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: 14 - target: $.paths['/1.0/cluster'].get update: x-apievangelist-phrasing: intent: Get the LXD cluster configuration effect: read questions: - Is clustering enabled on my LXD server and what is its configuration? - Where can I see the current LXD cluster settings? instructions: - text: Show the current LXD cluster configuration. - text: Check whether this LXD server is clustered and with what settings. method: generated generated: '2026-09-26' - target: $.paths['/1.0/cluster'].put update: x-apievangelist-phrasing: intent: Replace the LXD cluster configuration effect: write questions: - How do I enable clustering on an LXD server or join it to an existing cluster? - Can I set the server name and cluster address for LXD clustering in one call? instructions: - text: Enable LXD clustering with server name {server_name}. slots: server_name: requestBody.server_name - text: Join this server to the LXD cluster at {cluster_address} using join token {cluster_token}. slots: cluster_address: requestBody.cluster_address cluster_token: requestBody.cluster_token method: generated generated: '2026-09-26' - target: $.paths['/1.0/cluster/certificate'].put update: x-apievangelist-phrasing: intent: Replace the cluster certificate effect: write questions: - How do I rotate the TLS certificate used by my whole LXD cluster? - Does replacing the cluster certificate reload LXD on every member? instructions: - text: Replace the LXD cluster certificate with {cert} and key {key}. slots: cert: requestBody.cluster_certificate key: requestBody.cluster_certificate_key - text: Install a new cluster-wide certificate {cert} on every LXD member. slots: cert: requestBody.cluster_certificate method: generated generated: '2026-09-26' - target: $.paths['/1.0/cluster/groups'].post update: x-apievangelist-phrasing: intent: Create a cluster group effect: write questions: - Can I group some LXD cluster members together for placement? - How do I create a named cluster group with chosen members? instructions: - text: Create cluster group {name} containing members {members}. slots: name: requestBody.name members: requestBody.members - text: Add a new LXD cluster group {name} described as {description}. slots: name: requestBody.name description: requestBody.description method: generated generated: '2026-09-26' - target: $.paths['/1.0/cluster/members'].get update: x-apievangelist-phrasing: intent: List cluster member URLs effect: read questions: - Which servers are members of my LXD cluster? - What are the URLs of every LXD cluster member? instructions: - text: List the URLs of all LXD cluster members. - text: Show which servers belong to this cluster. method: generated generated: '2026-09-26' - target: $.paths['/1.0/cluster/members'].post update: x-apievangelist-phrasing: intent: Request a join token for a new member effect: write questions: - How do I get a join token so a new server can join the LXD cluster? - What do I need before adding another machine to my cluster? instructions: - text: Create a cluster join token for new server {server_name}. slots: server_name: requestBody.server_name - text: Generate a token so {server_name} can join this LXD cluster. slots: server_name: requestBody.server_name method: generated generated: '2026-09-26' - target: $.paths['/1.0/cluster/members/{name}'].get update: x-apievangelist-phrasing: intent: Get one cluster member effect: read questions: - Can I see the roles and failure domain of a single LXD cluster member? - Where do I look up the configuration of one cluster member? instructions: - text: Show the details of the named cluster member. - text: Get the roles and groups of one specific LXD cluster member. - text: Get the roles, groups and address of member {member}. slots: member: path.name method: generated generated: '2026-10-01' - target: $.paths['/1.0/cluster/members/{name}'].put update: x-apievangelist-phrasing: intent: Replace a cluster member's configuration effect: write questions: - How do I overwrite all settings of one LXD cluster member? - Can I set a member's failure domain, roles and groups in one full update? instructions: - text: Replace the cluster member's configuration with roles {roles} and groups {groups}. slots: roles: requestBody.roles groups: requestBody.groups - text: Set the whole member config, putting it in failure domain {failure_domain}. slots: failure_domain: requestBody.failure_domain - text: Replace the full configuration of cluster member {member} with roles {roles}. slots: member: path.name roles: requestBody.roles method: generated generated: '2026-10-01' - target: $.paths['/1.0/cluster/members/{name}'].post update: x-apievangelist-phrasing: intent: Rename a cluster member effect: write questions: - Can I rename a server that is already in my LXD cluster? - How do I change a cluster member's name? instructions: - text: Rename the cluster member to {server_name}. slots: server_name: requestBody.server_name - text: Give this LXD cluster member the new name {server_name}. slots: server_name: requestBody.server_name - text: Rename cluster member {member} to {server_name}. slots: member: path.name server_name: requestBody.server_name method: generated generated: '2026-10-01' - target: $.paths['/1.0/cluster/members/{name}'].delete update: x-apievangelist-phrasing: intent: Remove a member from the cluster effect: destructive questions: - How do I remove a server from my LXD cluster? - What happens to a machine when it is deleted from the cluster? instructions: - text: Remove the named member from the LXD cluster. - text: Delete this server from the cluster membership. - text: Kick server {member} out of this cluster. slots: member: path.name method: generated generated: '2026-10-01' - target: $.paths['/1.0/cluster/members/{name}'].patch update: x-apievangelist-phrasing: intent: Update some settings of a cluster member effect: write questions: - Can I change just the description of an LXD cluster member without resending everything? - Is there a partial update for a member's roles? instructions: - text: Change only the description of the cluster member to {description}. slots: description: requestBody.description - text: Patch the member's roles to {roles}, leaving other settings untouched. slots: roles: requestBody.roles - text: Patch cluster member {member} so only its description becomes {description}. slots: member: path.name description: requestBody.description method: generated generated: '2026-10-01' - target: $.paths['/1.0/cluster/members/{name}/state'].get update: x-apievangelist-phrasing: intent: Get a cluster member's state effect: read questions: - What is the current state of one LXD cluster member? - Can I check whether a cluster member is evacuated? instructions: - text: Show the state of the named cluster member. - text: Check if this LXD member is currently evacuated or online. - text: Check whether member {member} is online or evacuated. slots: member: path.name method: generated generated: '2026-10-01' - target: $.paths['/1.0/cluster/members/{name}/state'].post update: x-apievangelist-phrasing: intent: Evacuate or restore a cluster member effect: write questions: - How do I evacuate all instances off an LXD cluster member before maintenance? - Can I bring an evacuated cluster member back into service? instructions: - text: Run the {action} action on the cluster member. slots: action: requestBody.action - text: Evacuate the member using mode {mode}, forcing it if needed ({force}). slots: mode: requestBody.mode force: requestBody.force - text: Evacuate cluster member {member} using action {action}. slots: member: path.name action: requestBody.action method: generated generated: '2026-10-01' - target: $.paths['/1.0/cluster/members?recursion=1'].get update: x-apievangelist-phrasing: intent: List cluster members with full details effect: read questions: - Can I get every LXD cluster member's full record in one call rather than just URLs? - Which request returns expanded cluster member objects? instructions: - text: List all cluster members with their full details expanded. - text: Show every LXD member's status, roles and address in one response. method: generated generated: '2026-09-26'