Canonical · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for LXD external REST Network Zones API
15 actions
15 updates
phrasing
extends
openapi/canonical-network-zones-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.
What the actions change
x-apievangelist-phrasing
Targets 15
$.info
$.paths['/1.0/network-zones'].get
$.paths['/1.0/network-zones'].post
$.paths['/1.0/network-zones/{zone}'].get
$.paths['/1.0/network-zones/{zone}'].put
$.paths['/1.0/network-zones/{zone}'].delete
$.paths['/1.0/network-zones/{zone}'].patch
$.paths['/1.0/network-zones/{zone}/records'].get
$.paths['/1.0/network-zones/{zone}/records'].post
$.paths['/1.0/network-zones/{zone}/records/{name}'].get
$.paths['/1.0/network-zones/{zone}/records/{name}'].put
$.paths['/1.0/network-zones/{zone}/records/{name}'].delete
$.paths['/1.0/network-zones/{zone}/records/{name}'].patch
$.paths['/1.0/network-zones/{zone}/records?recursion=1'].get
$.paths['/1.0/network-zones?recursion=1'].get
OpenAPI Overlay
# 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 Network Zones API
version: 1.0.0
extends: openapi/canonical-network-zones-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/network-zones'].get
update:
x-apievangelist-phrasing:
intent: List network zones as URLs
effect: read
questions:
- Which DNS network zones are defined on my LXD server?
- Can I list network zone URLs across all projects?
instructions:
- text: List the URLs of my network zones.
- text: List network zone URLs in project {project}.
slots:
project: query.project
method: generated
generated: '2026-09-26'
- target: $.paths['/1.0/network-zones'].post
update:
x-apievangelist-phrasing:
intent: Create a network zone
effect: write
questions:
- How do I create a new DNS zone for my LXD networks?
- Can I set config and a description when adding a network zone?
instructions:
- text: Create network zone {name}.
slots:
name: requestBody.name
- text: Add network zone {name} described as {description} with config {config}.
slots:
name: requestBody.name
description: requestBody.description
config: requestBody.config
method: generated
generated: '2026-09-26'
- target: $.paths['/1.0/network-zones/{zone}'].get
update:
x-apievangelist-phrasing:
intent: Get a network zone
effect: read
questions:
- What configuration does a particular network zone have?
- Where can I read one DNS zone's settings in a project?
instructions:
- text: Show this network zone's configuration.
- text: Get the network zone details in project {project}.
slots:
project: query.project
- text: Show the configuration of network zone {zone}.
slots:
zone: path.zone
method: generated
generated: '2026-10-01'
- target: $.paths['/1.0/network-zones/{zone}'].put
update:
x-apievangelist-phrasing:
intent: Replace a network zone's configuration
effect: write
questions:
- How do I overwrite a network zone's entire config at once?
- Will replacing a zone's config drop keys I leave out?
instructions:
- text: Replace the whole network zone config with {config}.
slots:
config: requestBody.config
- text: Overwrite the zone's config {config} and description {description}.
slots:
config: requestBody.config
description: requestBody.description
- text: Replace all settings of network zone {zone} with config {config}.
slots:
zone: path.zone
config: requestBody.config
method: generated
generated: '2026-10-01'
- target: $.paths['/1.0/network-zones/{zone}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a network zone
effect: destructive
questions:
- Can I remove a DNS network zone I no longer use?
- Can I delete a network zone that belongs to another project?
instructions:
- text: Delete this network zone.
- text: Remove the network zone from project {project}.
slots:
project: query.project
- text: Delete network zone {zone}.
slots:
zone: path.zone
method: generated
generated: '2026-10-01'
- target: $.paths['/1.0/network-zones/{zone}'].patch
update:
x-apievangelist-phrasing:
intent: Partially update a network zone
effect: write
questions:
- Can I change only the description of a network zone?
- How do I tweak one config key on a zone without resending all of it?
instructions:
- text: Patch just the network zone description to {description}.
slots:
description: requestBody.description
- text: Merge config keys {config} into the zone's existing settings.
slots:
config: requestBody.config
- text: Patch network zone {zone}, changing only its description to {description}.
slots:
zone: path.zone
description: requestBody.description
method: generated
generated: '2026-10-01'
- target: $.paths['/1.0/network-zones/{zone}/records'].get
update:
x-apievangelist-phrasing:
intent: List records in a network zone as URLs
effect: read
questions:
- Which DNS records exist in one of my network zones?
- Can I get record URLs for a zone in a given project?
instructions:
- text: List the record URLs in this network zone.
- text: List zone record URLs in project {project}.
slots:
project: query.project
- text: Give me links to each DNS record defined under zone {zone}.
slots:
zone: path.zone
method: generated
generated: '2026-10-01'
- target: $.paths['/1.0/network-zones/{zone}/records'].post
update:
x-apievangelist-phrasing:
intent: Add a DNS record to a network zone
effect: write
questions:
- How do I add a custom DNS record to an LXD network zone?
- Can a new zone record hold several entries at once?
instructions:
- text: Add record {name} to the zone with entries {entries}.
slots:
name: requestBody.name
entries: requestBody.entries
- text: Create zone record {name} described as {description}.
slots:
name: requestBody.name
description: requestBody.description
- text: Add a new record {name} to network zone {zone}.
slots:
zone: path.zone
name: requestBody.name
method: generated
generated: '2026-10-01'
- target: $.paths['/1.0/network-zones/{zone}/records/{name}'].get
update:
x-apievangelist-phrasing:
intent: Get a network zone record
effect: read
questions:
- What entries does a single DNS record in my zone contain?
- What config does one record in a network zone hold?
instructions:
- text: Show this network zone record and its entries.
- text: Get the zone record details in project {project}.
slots:
project: query.project
- text: Show record {record} in network zone {zone}.
slots:
zone: path.zone
record: path.name
method: generated
generated: '2026-10-01'
- target: $.paths['/1.0/network-zones/{zone}/records/{name}'].put
update:
x-apievangelist-phrasing:
intent: Replace a network zone record
effect: write
questions:
- How do I overwrite all entries of an existing zone record?
- Can I replace a zone record's config and entries in one go?
instructions:
- text: Replace the zone record's entries with {entries}.
slots:
entries: requestBody.entries
- text: Overwrite the whole record with entries {entries} and config {config}.
slots:
entries: requestBody.entries
config: requestBody.config
- text: Replace record {record} in zone {zone} entirely with entries {entries}.
slots:
zone: path.zone
record: path.name
entries: requestBody.entries
method: generated
generated: '2026-10-01'
- target: $.paths['/1.0/network-zones/{zone}/records/{name}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a network zone record
effect: destructive
questions:
- Is there a way to remove a DNS record from a network zone?
- Does deleting a zone record leave the zone itself in place?
instructions:
- text: Delete this record from the network zone.
- text: Remove the zone record in project {project}.
slots:
project: query.project
- text: Delete record {record} from network zone {zone}.
slots:
zone: path.zone
record: path.name
method: generated
generated: '2026-10-01'
- target: $.paths['/1.0/network-zones/{zone}/records/{name}'].patch
update:
x-apievangelist-phrasing:
intent: Partially update a network zone record
effect: write
questions:
- Can I update just the description of one zone record?
- How do I change a record's entries without resending its config?
instructions:
- text: Patch the zone record description to {description}.
slots:
description: requestBody.description
- text: Update only the record entries to {entries}.
slots:
entries: requestBody.entries
- text: Change just the entries of record {record} in zone {zone} to {entries}.
slots:
zone: path.zone
record: path.name
entries: requestBody.entries
method: generated
generated: '2026-10-01'
- target: $.paths['/1.0/network-zones/{zone}/records?recursion=1'].get
update:
x-apievangelist-phrasing:
intent: List network zone records with full details
effect: read
questions:
- How do I get every record in a zone along with its entries in one call?
- Can I list full zone record objects instead of URLs?
instructions:
- text: List all records in this zone as full objects with entries.
- text: Get expanded zone records for project {project}.
slots:
project: query.project
- text: Fetch every record of zone {zone} expanded with its entries.
slots:
zone: path.zone
method: generated
generated: '2026-10-01'
- target: $.paths['/1.0/network-zones?recursion=1'].get
update:
x-apievangelist-phrasing:
intent: List network zones with full details
effect: read
questions:
- Can I fetch every network zone with its config in a single request?
- Can I see full network zone objects for all projects at once?
instructions:
- text: List all network zones as full objects with config.
- text: Get expanded network zones for project {project}.
slots:
project: query.project
method: generated
generated: '2026-09-26'