# 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 App As API version: 1.0.0 extends: openapi/the-things-network-appas-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: 8 - target: $.paths['/as/applications/{application_ids.application_id}/devices/{device_id}/down'].get update: x-apievangelist-phrasing: intent: List a device's queued downlinks effect: read questions: - What downlink messages are currently waiting to be sent to my device? - Can I see the downlink queue for an end device? instructions: - text: List the queued downlinks for device {device_id} in application {application_id}. slots: device_id: path.device_id application_id: path.application_ids.application_id - text: Show what's pending in the downlink queue of {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['/as/applications/{application_id}/mqtt-connection-info'].get update: x-apievangelist-phrasing: intent: Get MQTT connection info for an application effect: read questions: - How do I connect an MQTT client to my application's data? - What host and username should my MQTT integration use for an application? instructions: - text: Get the MQTT connection details for application {application_id}. slots: application_id: path.application_id - text: Show how to connect an MQTT client to application {application_id}. slots: application_id: path.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}/down/decode'].post update: x-apievangelist-phrasing: intent: Decode a downlink payload with a formatter effect: read questions: - Can I test how a payload formatter decodes a downlink for my device? - How do I turn raw downlink bytes back into decoded fields? instructions: - text: Decode downlink {downlink} for device {device_id} in application {application_id}. slots: downlink: requestBody.downlink device_id: path.end_device_ids.device_id application_id: path.end_device_ids.application_ids.application_id - text: Run formatter {formatter} to decode a downlink for {device_id} in {application_id}. slots: formatter: requestBody.formatter 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}/down/encode'].post update: x-apievangelist-phrasing: intent: Encode a downlink payload with a formatter effect: read questions: - How can I check what bytes my payload formatter produces for a downlink? - Can I encode decoded downlink fields into a binary payload without sending it? instructions: - text: Encode downlink {downlink} for device {device_id} in application {application_id}. slots: downlink: requestBody.downlink device_id: path.end_device_ids.device_id application_id: path.end_device_ids.application_ids.application_id - text: Use formatter {formatter} to encode a downlink for {device_id} in {application_id}. slots: formatter: requestBody.formatter 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}/down/push'].post update: x-apievangelist-phrasing: intent: Queue downlinks to a device effect: write questions: - How do I send a downlink message to my end device? - Can I add downlinks to the end of the queue without removing existing ones? instructions: - text: Push downlinks {downlinks} to device {device_id} in application {application_id}. slots: downlinks: requestBody.downlinks device_id: path.end_device_ids.device_id application_id: path.end_device_ids.application_ids.application_id - text: Append a downlink to the queue for {device_id} in {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['/as/applications/{end_device_ids.application_ids.application_id}/devices/{end_device_ids.device_id}/down/replace'].post update: x-apievangelist-phrasing: intent: Replace or clear a device's downlink queue effect: write questions: - How do I clear all pending downlinks for a device? - Can I swap out the whole downlink queue with new messages? instructions: - text: Replace the downlink queue of device {device_id} in application {application_id} with {downlinks}. slots: device_id: path.end_device_ids.device_id application_id: path.end_device_ids.application_ids.application_id downlinks: requestBody.downlinks - text: Empty the downlink queue for {device_id} in {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['/as/applications/{end_device_ids.application_ids.application_id}/devices/{end_device_ids.device_id}/up/decode'].post update: x-apievangelist-phrasing: intent: Decode an uplink payload with a formatter effect: read questions: - Can I test my uplink payload formatter against sample bytes? - How do I see what fields an uplink decodes to? instructions: - text: Decode uplink {uplink} for device {device_id} in application {application_id}. slots: uplink: requestBody.uplink device_id: path.end_device_ids.device_id application_id: path.end_device_ids.application_ids.application_id - text: Run formatter {formatter} on an uplink for {device_id} in {application_id}. slots: formatter: requestBody.formatter 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}/up/simulate'].post update: x-apievangelist-phrasing: intent: Simulate an uplink to test integrations effect: write questions: - How do I test my webhook or integration without a real device sending data? - Can I fake an uplink message from an end device? instructions: - text: Simulate uplink message {uplink_message} from device {device_id} in application {application_id}. slots: uplink_message: requestBody.uplink_message device_id: path.end_device_ids.device_id application_id: path.end_device_ids.application_ids.application_id - text: Send a simulated upstream message for {device_id} in {application_id} to test integrations. 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'