The Things Network / The Things Stack · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Things Stack — Application Server As End Device Registry API

5 actions 5 updates phrasing extends openapi/the-things-network-asenddeviceregistry-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 5

$.info
$.paths['/as/applications/{application_ids.application_id}/devices/{device_id}'].delete
$.paths['/as/applications/{end_device.ids.application_ids.application_id}/devices'].post
$.paths['/as/applications/{end_device.ids.application_ids.application_id}/devices/{end_device.ids.device_id}'].put
$.paths['/as/applications/{end_device_ids.application_ids.application_id}/devices/{end_device_ids.device_id}'].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 Things Stack — Application Server As End Device Registry API
  version: 1.0.0
extends: openapi/the-things-network-asenddeviceregistry-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: 4
- target: $.paths['/as/applications/{application_ids.application_id}/devices/{device_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a device from the Application Server
      effect: destructive
      questions:
      - Can I remove a device's record from the Application Server alone?
      - What happens if several devices match when I delete on the Application Server?
      instructions:
      - text: Delete device {device_id} of application {application_id} from the Application Server.
        slots:
          device_id: path.device_id
          application_id: path.application_ids.application_id
      - text: Remove Application Server record {device_id} with DevEUI {dev_eui} in app {application_id}.
        slots:
          device_id: path.device_id
          dev_eui: query.dev_eui
          application_id: path.application_ids.application_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/as/applications/{end_device.ids.application_ids.application_id}/devices'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a device on the Application Server
      effect: write
      questions:
      - How do I register a new end device on the Application Server?
      - Can I add an Application Server device without putting its ID in the URL?
      instructions:
      - text: Create end device {end_device} on the Application Server in application {application_id}.
        slots:
          end_device: requestBody.end_device
          application_id: path.end_device.ids.application_ids.application_id
      - text: Add a new Application Server device record to app {application_id}.
        slots:
          application_id: path.end_device.ids.application_ids.application_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/as/applications/{end_device.ids.application_ids.application_id}/devices/{end_device.ids.device_id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update a device on the Application Server
      effect: write
      questions:
      - How do I change an existing device's Application Server settings, like its payload formatter?
      - Can I update only some Application Server device fields with a field mask?
      instructions:
      - text: Update Application Server 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: Set fields {field_mask} on Application Server device {device_id} of app {application_id}.
        slots:
          field_mask: requestBody.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['/as/applications/{end_device_ids.application_ids.application_id}/devices/{end_device_ids.device_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a device from the Application Server
      effect: read
      questions:
      - What does the Application Server store about one of my devices?
      - Can I fetch a device's Application Server record with selected fields only?
      instructions:
      - text: Show Application Server 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 the {field_mask} of Application Server device {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'