The Things Network / The Things Stack · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Things Stack — Join Server Js End Device Registry API

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

$.info
$.paths['/js/applications/{application_ids.application_id}/devices/{device_id}'].delete
$.paths['/js/applications/{application_ids.application_id}/provision-devices'].put
$.paths['/js/applications/{end_device.ids.application_ids.application_id}/devices'].post
$.paths['/js/applications/{end_device.ids.application_ids.application_id}/devices/{end_device.ids.device_id}'].put
$.paths['/js/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 — Join Server Js End Device Registry API
  version: 1.0.0
extends: openapi/the-things-network-jsenddeviceregistry-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: 5
- target: $.paths['/js/applications/{application_ids.application_id}/devices/{device_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a device from the Join Server
      effect: destructive
      questions:
      - How do I remove an end device's keys and record from the Join Server?
      - What happens if more than one device matches when deleting on the Join Server?
      instructions:
      - text: Delete device {device_id} of application {application_id} from the Join Server.
        slots:
          device_id: path.device_id
          application_id: path.application_ids.application_id
      - text: Remove Join 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['/js/applications/{application_ids.application_id}/provision-devices'].put
  update:
    x-apievangelist-phrasing:
      intent: Provision devices on the Join Server (deprecated)
      effect: write
      questions:
      - Can I still bulk provision devices on the Join Server with vendor provisioning data?
      - Is the Join Server provisioning endpoint deprecated in favor of the template converter?
      instructions:
      - text: Provision devices in application {application_id} using provisioner {provisioner_id}.
        slots:
          application_id: path.application_ids.application_id
          provisioner_id: requestBody.provisioner_id
      - text: Load provisioning data {provisioning_data} into app {application_id} with the deprecated provisioner.
        slots:
          provisioning_data: requestBody.provisioning_data
          application_id: path.application_ids.application_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/js/applications/{end_device.ids.application_ids.application_id}/devices'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a device on the Join Server
      effect: write
      questions:
      - How do I register a new device's root keys on the Join Server?
      - Can I add a Join Server device without its ID in the URL?
      instructions:
      - text: Create end device {end_device} on the Join 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 Join 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['/js/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 Join Server
      effect: write
      questions:
      - How do I update an existing device's Join Server settings or keys?
      - Can I change only certain Join Server fields using a field mask?
      instructions:
      - text: Update Join 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 Join 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['/js/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 Join Server
      effect: read
      questions:
      - What does the Join Server store about one of my devices?
      - Can I read a device's Join Server record with only selected fields?
      instructions:
      - text: Show Join 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 Join 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'