The Things Network / The Things Stack · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Things Stack End Device Registry API

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

$.info
$.paths['/applications/{application_ids.application_id}/devices'].get
$.paths['/applications/{application_ids.application_id}/devices/count'].get
$.paths['/applications/{application_ids.application_id}/devices/filter'].post
$.paths['/applications/{application_ids.application_id}/devices/{device_id}'].delete
$.paths['/applications/{end_device.ids.application_ids.application_id}/devices'].post
$.paths['/applications/{end_device.ids.application_ids.application_id}/devices/{end_device.ids.device_id}'].put
$.paths['/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 End Device Registry API
  version: 1.0.0
extends: openapi/the-things-network-enddeviceregistry-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: 7
- target: $.paths['/applications/{application_ids.application_id}/devices'].get
  update:
    x-apievangelist-phrasing:
      intent: List end devices in an application
      effect: read
      questions:
      - Which end devices are registered in my application?
      - Can I sort and page through an application's devices?
      instructions:
      - text: List end devices in application {application_id}.
        slots:
          application_id: path.application_ids.application_id
      - text: Show {limit} devices per page in {application_id}, ordered by {order}.
        slots:
          limit: query.limit
          application_id: path.application_ids.application_id
          order: query.order
      method: generated
      generated: '2026-09-26'
- target: $.paths['/applications/{application_ids.application_id}/devices/count'].get
  update:
    x-apievangelist-phrasing:
      intent: Count end devices in an application
      effect: read
      questions:
      - How many end devices does my application have?
      - Can I get just a device count without listing them?
      instructions:
      - text: Count the end devices in application {application_id}.
        slots:
          application_id: path.application_ids.application_id
      - text: Tell me how many devices are registered in {application_id}.
        slots:
          application_id: path.application_ids.application_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/applications/{application_ids.application_id}/devices/filter'].post
  update:
    x-apievangelist-phrasing:
      intent: List end devices with filters
      effect: read
      questions:
      - Can I filter an application's end devices using structured criteria?
      - Is there a body-based filter for listing devices in an application?
      instructions:
      - text: List devices in application {application_id} matching filters {filters}.
        slots:
          application_id: path.application_ids.application_id
          filters: requestBody.filters
      - text: Filter end devices in {application_id} by {filters}, up to {limit}.
        slots:
          application_id: path.application_ids.application_id
          filters: requestBody.filters
          limit: requestBody.limit
      method: generated
      generated: '2026-09-26'
- target: $.paths['/applications/{application_ids.application_id}/devices/{device_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete an end device from the registry
      effect: destructive
      questions:
      - How do I delete an end device from the Identity Server registry?
      - What must be deleted from the network, application and join servers before removing a device?
      instructions:
      - text: Delete end device {device_id} from application {application_id}.
        slots:
          device_id: path.device_id
          application_id: path.application_ids.application_id
      - text: Remove registry entry for device {device_id} in {application_id}.
        slots:
          device_id: path.device_id
          application_id: path.application_ids.application_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/applications/{end_device.ids.application_ids.application_id}/devices'].post
  update:
    x-apievangelist-phrasing:
      intent: Register a new end device
      effect: write
      questions:
      - How do I add a new end device to my application?
      - Does creating a device here also register it on the Network and Application Servers?
      instructions:
      - text: Create end device {end_device} in application {application_id}.
        slots:
          end_device: requestBody.end_device
          application_id: path.end_device.ids.application_ids.application_id
      - text: Register a new device in application {application_id}.
        slots:
          application_id: path.end_device.ids.application_ids.application_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/applications/{end_device.ids.application_ids.application_id}/devices/{end_device.ids.device_id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update an end device
      effect: write
      questions:
      - How do I rename an end device or change its attributes?
      - Can I update only specific fields of a device with a field mask?
      instructions:
      - text: Update end device {device_id} in application {application_id} with {end_device}.
        slots:
          device_id: path.end_device.ids.device_id
          application_id: path.end_device.ids.application_ids.application_id
          end_device: requestBody.end_device
      - text: Change fields {field_mask} of device {device_id} in {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['/applications/{end_device_ids.application_ids.application_id}/devices/{end_device_ids.device_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an end device
      effect: read
      questions:
      - What details are registered for one of my end devices?
      - Can I choose which fields of an end device are returned?
      instructions:
      - text: Show end 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 fields {field_mask} of device {device_id} in {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'