# 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'