# 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 Projects API version: 1.0.0 extends: openapi/canonical-projects-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: 10 - target: $.paths['/1.0/projects'].get update: x-apievangelist-phrasing: intent: List URLs of LXD projects effect: read questions: - Which projects exist on my LXD server, as a list of links? - How do I get just the project URLs without their configuration? instructions: - text: List the URLs of all LXD projects. - text: Give me links to every project on the server. method: generated generated: '2026-09-26' - target: $.paths['/1.0/projects'].post update: x-apievangelist-phrasing: intent: Create an LXD project effect: write questions: - How do I create a new project to isolate instances in LXD? - Can I set the default network and storage pool when creating a project? instructions: - text: Create project {name} described as {description}. slots: name: requestBody.name description: requestBody.description - text: Create project {name} using network {network} and storage pool {storage}. slots: name: requestBody.name network: requestBody.network storage: requestBody.storage method: generated generated: '2026-09-26' - target: $.paths['/1.0/projects/{name}'].get update: x-apievangelist-phrasing: intent: Get one LXD project effect: read questions: - What's the configuration of a particular project? - Can I look up a single LXD project by name? instructions: - text: Show me the project I name and its settings. - text: Look up one LXD project by name. - text: Show project {project} and its settings. slots: project: path.name method: generated generated: '2026-10-01' - target: $.paths['/1.0/projects/{name}'].put update: x-apievangelist-phrasing: intent: Replace a project's entire configuration effect: write questions: - How do I overwrite a project's whole configuration? - Will a full project update drop config keys I leave out? instructions: - text: Replace the project's entire config with {config}. slots: config: requestBody.config - text: Rewrite the project with description {description} and config {config}. slots: description: requestBody.description config: requestBody.config - text: Replace the entire config of project {project} with {config}. slots: project: path.name config: requestBody.config method: generated generated: '2026-10-01' - target: $.paths['/1.0/projects/{name}'].post update: x-apievangelist-phrasing: intent: Rename an LXD project effect: write questions: - Can I rename an existing LXD project? - What's the call to give a project a new name? instructions: - text: Rename the project to {name}. slots: name: requestBody.name - text: Give this LXD project the new name {name}. slots: name: requestBody.name - text: Rename project {project} to {name}. slots: project: path.name name: requestBody.name method: generated generated: '2026-10-01' - target: $.paths['/1.0/projects/{name}'].delete update: x-apievangelist-phrasing: intent: Delete an LXD project effect: destructive questions: - How do I remove a project from LXD? - Can I force-delete a project that still has resources in it? instructions: - text: Delete the project I name. - text: Force-delete the project with force set to {force}. slots: force: query.force - text: Delete project {project}. slots: project: path.name method: generated generated: '2026-10-01' - target: $.paths['/1.0/projects/{name}'].patch update: x-apievangelist-phrasing: intent: Change some of a project's settings effect: write questions: - Can I change one project setting without resending the rest? - Is there a way to update just a project's description? instructions: - text: 'Patch the project so only these config keys change: {config}.' slots: config: requestBody.config - text: Update just the project's description to {description}. slots: description: requestBody.description - text: Merge config keys {config} into project {project}, leaving the rest as is. slots: project: path.name config: requestBody.config method: generated generated: '2026-10-01' - target: $.paths['/1.0/projects/{name}/state'].get update: x-apievangelist-phrasing: intent: Get a project's resource usage effect: read questions: - How much CPU, memory and disk is a project consuming? - Can I check a project's resource usage against its limits? instructions: - text: Show the resource consumption of the project I name. - text: Report current usage for this LXD project. - text: Show the resource usage of project {project}. slots: project: path.name method: generated generated: '2026-10-01' - target: $.paths['/1.0/projects/{name}/state'].put update: x-apievangelist-phrasing: intent: Promote or demote a project for replication effect: write questions: - How do I promote a project to leader for replication? - Can I demote a replicated project, and force it if needed? instructions: - text: Set the project's replica mode to {replica_mode}. slots: replica_mode: requestBody.replica_mode - text: Force replica mode {replica_mode} on the project with force {force}. slots: replica_mode: requestBody.replica_mode force: query.force - text: Set the replica mode of project {project} to {replica_mode}. slots: project: path.name replica_mode: requestBody.replica_mode method: generated generated: '2026-10-01' - target: $.paths['/1.0/projects?recursion=1'].get update: x-apievangelist-phrasing: intent: List LXD projects with full configuration effect: read questions: - Can I see every project's config and description in one call? - What features and limits is each LXD project set up with? instructions: - text: Fetch all projects with their full configuration, not just links. - text: Show every project's description and config settings. method: generated generated: '2026-09-26'