Canonical · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for LXD external REST Network Forwards API

8 actions 8 updates phrasing extends openapi/canonical-network-forwards-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 8

$.info
$.paths['/1.0/networks/{networkName}/forwards'].get
$.paths['/1.0/networks/{networkName}/forwards'].post
$.paths['/1.0/networks/{networkName}/forwards/{listenAddress}'].get
$.paths['/1.0/networks/{networkName}/forwards/{listenAddress}'].put
$.paths['/1.0/networks/{networkName}/forwards/{listenAddress}'].delete
$.paths['/1.0/networks/{networkName}/forwards/{listenAddress}'].patch
$.paths['/1.0/networks/{networkName}/forwards?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 LXD external REST Network Forwards API
  version: 1.0.0
extends: openapi/canonical-network-forwards-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: 7
- target: $.paths['/1.0/networks/{networkName}/forwards'].get
  update:
    x-apievangelist-phrasing:
      intent: List network address forward URLs
      effect: read
      questions:
      - Which address forwards are set up on an LXD network?
      - Can I list the listen addresses forwarded on a network in one project?
      instructions:
      - text: List the address forwards on the network in project {project}.
        slots:
          project: query.project
      - text: Show the URLs of every network forward.
      - text: List the address forward URLs on network {network}.
        slots:
          network: path.networkName
      method: generated
      generated: '2026-10-01'
- target: $.paths['/1.0/networks/{networkName}/forwards'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a network address forward
      effect: write
      questions:
      - How do I forward an external listen address to an instance on an LXD network?
      - Can I forward only certain ports from a listen address?
      instructions:
      - text: Create an address forward on listen address {listen_address}.
        slots:
          listen_address: requestBody.listen_address
      - text: Forward ports {ports} from {listen_address} on the network.
        slots:
          ports: requestBody.ports
          listen_address: requestBody.listen_address
      - text: Create an address forward on network {network} listening on {listen_address}.
        slots:
          network: path.networkName
          listen_address: requestBody.listen_address
      method: generated
      generated: '2026-10-01'
- target: $.paths['/1.0/networks/{networkName}/forwards/{listenAddress}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a network address forward
      effect: read
      questions:
      - What ports and target does a specific address forward use?
      - Can I view one network forward by its listen address?
      instructions:
      - text: Show the address forward for the given listen address in project {project}.
        slots:
          project: query.project
      - text: Get the port mappings of one network forward.
      - text: Show the address forward for {listen_address} on network {network}.
        slots:
          network: path.networkName
          listen_address: path.listenAddress
      method: generated
      generated: '2026-10-01'
- target: $.paths['/1.0/networks/{networkName}/forwards/{listenAddress}'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace a network address forward
      effect: write
      questions:
      - How do I overwrite all port rules of an address forward?
      - Can I redefine a forward's whole configuration at once?
      instructions:
      - text: Replace the forward's port rules with {ports}.
        slots:
          ports: requestBody.ports
      - text: Overwrite the address forward configuration with {config}.
        slots:
          config: requestBody.config
      - text: Replace the port rules of forward {listen_address} on network {network} with {ports}.
        slots:
          network: path.networkName
          listen_address: path.listenAddress
          ports: requestBody.ports
      method: generated
      generated: '2026-10-01'
- target: $.paths['/1.0/networks/{networkName}/forwards/{listenAddress}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a network address forward
      effect: destructive
      questions:
      - How do I stop forwarding a listen address on an LXD network?
      - Can I remove an address forward from a project?
      instructions:
      - text: Delete the network address forward in project {project}.
        slots:
          project: query.project
      - text: Remove this listen address forward.
      - text: Delete the address forward for {listen_address} on network {network}.
        slots:
          network: path.networkName
          listen_address: path.listenAddress
      method: generated
      generated: '2026-10-01'
- target: $.paths['/1.0/networks/{networkName}/forwards/{listenAddress}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Partially update a network address forward
      effect: write
      questions:
      - Can I change just the description of an address forward?
      - Is there a way to update a forward's ports without resending everything?
      instructions:
      - text: Change only the forward's description to {description}.
        slots:
          description: requestBody.description
      - text: Patch the forward's ports to {ports}, keeping other settings.
        slots:
          ports: requestBody.ports
      - text: Patch forward {listen_address} on network {network}, changing only its description to {description}.
        slots:
          network: path.networkName
          listen_address: path.listenAddress
          description: requestBody.description
      method: generated
      generated: '2026-10-01'
- target: $.paths['/1.0/networks/{networkName}/forwards?recursion=1'].get
  update:
    x-apievangelist-phrasing:
      intent: List network forwards with details
      effect: read
      questions:
      - Can I get every network forward with its ports and config expanded?
      - Which call returns full address forward objects rather than URLs?
      instructions:
      - text: List all network forwards with full details in project {project}.
        slots:
          project: query.project
      - text: Show expanded address forward records for the network.
      - text: List every address forward on network {network} with full details.
        slots:
          network: path.networkName
      method: generated
      generated: '2026-10-01'