The Things Network / The Things Stack · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Things Stack — Network Server Ns Relay Configuration…

10 actions 10 updates phrasing extends openapi/the-things-network-nsrelayconfigurationservice-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for The Things Network / The Things Stack's API. It is a proposal applied on top of the contract, not a document The Things Network / The Things Stack publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 10

$.info
$.paths['/ns/applications/{end_device_ids.application_ids.application_id}/relays'].post
$.paths['/ns/applications/{end_device_ids.application_ids.application_id}/relays/{end_device_ids.device_id}'].get
$.paths['/ns/applications/{end_device_ids.application_ids.application_id}/relays/{end_device_ids.device_id}'].put
$.paths['/ns/applications/{end_device_ids.application_ids.application_id}/relays/{end_device_ids.device_id}'].delete
$.paths['/ns/applications/{end_device_ids.application_ids.application_id}/relays/{end_device_ids.device_id}/uplink-forwarding-rules'].get
$.paths['/ns/applications/{end_device_ids.application_ids.application_id}/relays/{end_device_ids.device_id}/uplink-forwarding-rules'].post
$.paths['/ns/applications/{end_device_ids.application_ids.application_id}/relays/{end_device_ids.device_id}/uplink-forwarding-rules/{index}'].get
$.paths['/ns/applications/{end_device_ids.application_ids.application_id}/relays/{end_device_ids.device_id}/uplink-forwarding-rules/{index}'].put
$.paths['/ns/applications/{end_device_ids.application_ids.application_id}/relays/{end_device_ids.device_id}/uplink-forwarding-rules/{index}'].delete

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 Things Stack — Network Server Ns Relay Configuration…
  version: 1.0.0
extends: openapi/the-things-network-nsrelayconfigurationservice-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: 9
- target: $.paths['/ns/applications/{end_device_ids.application_ids.application_id}/relays'].post
  update:
    x-apievangelist-phrasing:
      intent: Configure an end device as a LoRaWAN relay
      effect: write
      questions:
      - How do I turn one of my end devices into a LoRaWAN relay on the Network Server?
      - Can I set relay settings for a device when I first create the relay?
      instructions:
      - text: Create a relay for device {end_device_ids} in application {application_id}.
        slots:
          end_device_ids: requestBody.end_device_ids
          application_id: path.end_device_ids.application_ids.application_id
      - text: Set up relay {end_device_ids} in app {application_id} with settings {settings}.
        slots:
          end_device_ids: requestBody.end_device_ids
          application_id: path.end_device_ids.application_ids.application_id
          settings: requestBody.settings
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ns/applications/{end_device_ids.application_ids.application_id}/relays/{end_device_ids.device_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a device's relay configuration
      effect: read
      questions:
      - What relay settings are configured on a particular end device?
      - Can I read back a relay's configuration by device ID?
      instructions:
      - text: Show the relay configuration of device {device_id} in application {application_id}.
        slots:
          device_id: path.end_device_ids.device_id
          application_id: path.end_device_ids.application_ids.application_id
      - text: Get only {field_mask} of relay {device_id} in app {application_id}.
        slots:
          field_mask: query.field_mask
          device_id: path.end_device_ids.device_id
          application_id: path.end_device_ids.application_ids.application_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ns/applications/{end_device_ids.application_ids.application_id}/relays/{end_device_ids.device_id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update a relay's settings
      effect: write
      questions:
      - How do I change the settings of an existing relay device?
      - Can I update selected relay fields with a field mask?
      instructions:
      - text: Update the relay settings of device {device_id} in application {application_id}.
        slots:
          device_id: path.end_device_ids.device_id
          application_id: path.end_device_ids.application_ids.application_id
      - text: Change relay {device_id} in app {application_id} to settings {settings}.
        slots:
          device_id: path.end_device_ids.device_id
          application_id: path.end_device_ids.application_ids.application_id
          settings: requestBody.settings
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ns/applications/{end_device_ids.application_ids.application_id}/relays/{end_device_ids.device_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove relay configuration from a device
      effect: destructive
      questions:
      - How do I stop an end device from acting as a relay?
      - Does deleting a relay remove the end device itself or only its relay role?
      instructions:
      - text: Delete the relay on device {device_id} in application {application_id}.
        slots:
          device_id: path.end_device_ids.device_id
          application_id: path.end_device_ids.application_ids.application_id
      - text: Turn off relaying for {device_id} in app {application_id}.
        slots:
          device_id: path.end_device_ids.device_id
          application_id: path.end_device_ids.application_ids.application_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ns/applications/{end_device_ids.application_ids.application_id}/relays/{end_device_ids.device_id}/uplink-forwarding-rules'].get
  update:
    x-apievangelist-phrasing:
      intent: List a relay's uplink forwarding rules
      effect: read
      questions:
      - Which uplink forwarding rules are set on my relay?
      - Can I see every rule controlling what a relay forwards upstream?
      instructions:
      - text: List the uplink forwarding rules of relay {device_id} in application {application_id}.
        slots:
          device_id: path.end_device_ids.device_id
          application_id: path.end_device_ids.application_ids.application_id
      - text: Show all forwarding rules on relay {device_id} of app {application_id}.
        slots:
          device_id: path.end_device_ids.device_id
          application_id: path.end_device_ids.application_ids.application_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ns/applications/{end_device_ids.application_ids.application_id}/relays/{end_device_ids.device_id}/uplink-forwarding-rules'].post
  update:
    x-apievangelist-phrasing:
      intent: Add an uplink forwarding rule to a relay
      effect: write
      questions:
      - How do I add a rule telling a relay which uplinks to forward?
      - Can I place a new forwarding rule at a specific index on the relay?
      instructions:
      - text: Add forwarding rule {rule} at index {index} on relay {device_id} in application {application_id}.
        slots:
          rule: requestBody.rule
          index: requestBody.index
          device_id: path.end_device_ids.device_id
          application_id: path.end_device_ids.application_ids.application_id
      - text: Create a new uplink forwarding rule for relay {device_id} in app {application_id}.
        slots:
          device_id: path.end_device_ids.device_id
          application_id: path.end_device_ids.application_ids.application_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ns/applications/{end_device_ids.application_ids.application_id}/relays/{end_device_ids.device_id}/uplink-forwarding-rules/{index}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one relay uplink forwarding rule
      effect: read
      questions:
      - What does the forwarding rule at a given index on my relay contain?
      - Can I read a single relay rule by its position?
      instructions:
      - text: Show forwarding rule {index} of relay {device_id} in application {application_id}.
        slots:
          index: path.index
          device_id: path.end_device_ids.device_id
          application_id: path.end_device_ids.application_ids.application_id
      - text: Get rule number {index} on relay {device_id} of app {application_id}.
        slots:
          index: path.index
          device_id: path.end_device_ids.device_id
          application_id: path.end_device_ids.application_ids.application_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ns/applications/{end_device_ids.application_ids.application_id}/relays/{end_device_ids.device_id}/uplink-forwarding-rules/{index}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update a relay uplink forwarding rule
      effect: write
      questions:
      - How do I edit an existing uplink forwarding rule on a relay?
      - Can I change one field of a relay rule without replacing the others?
      instructions:
      - text: Update forwarding rule {index} on relay {device_id} in application {application_id} to {rule}.
        slots:
          index: path.index
          device_id: path.end_device_ids.device_id
          application_id: path.end_device_ids.application_ids.application_id
          rule: requestBody.rule
      - text: Edit rule number {index} of relay {device_id} in app {application_id}.
        slots:
          index: path.index
          device_id: path.end_device_ids.device_id
          application_id: path.end_device_ids.application_ids.application_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/ns/applications/{end_device_ids.application_ids.application_id}/relays/{end_device_ids.device_id}/uplink-forwarding-rules/{index}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a relay uplink forwarding rule
      effect: destructive
      questions:
      - How do I remove one forwarding rule from a relay?
      - Will deleting a relay rule leave the relay itself configured?
      instructions:
      - text: Delete forwarding rule {index} from relay {device_id} in application {application_id}.
        slots:
          index: path.index
          device_id: path.end_device_ids.device_id
          application_id: path.end_device_ids.application_ids.application_id
      - text: Drop rule number {index} on relay {device_id} of app {application_id}.
        slots:
          index: path.index
          device_id: path.end_device_ids.device_id
          application_id: path.end_device_ids.application_ids.application_id
      method: generated
      generated: '2026-09-26'