apiVersion: naftiko/v1 kind: Capability metadata: name: end-device-lifecycle provider: the-things-network description: Provision, configure, and operate a LoRaWAN end device on The Things Stack — register the device on the Application Server, set MAC and PHY settings on the Network Server, configure activation keys on the Join Server, and verify uplink/downlink behavior. tags: - LoRaWAN - IoT - End Device - Provisioning spec: inputs: application_id: type: string description: Tenant application identifier. end_device: type: object description: End-device record including ids (device_id, dev_eui, join_eui), lorawan_version, lorawan_phy_version, and frequency_plan_id. steps: - id: register-on-as operation: ApplicationServer.AsEndDeviceRegistry.Set path: /as/applications/{application_id}/devices/{device_id} - id: set-ns-settings operation: NetworkServer.NsEndDeviceRegistry.Set path: /ns/applications/{application_id}/devices/{device_id} - id: provision-on-js operation: JoinServer.JsEndDeviceRegistry.Set path: /js/applications/{application_id}/devices/{device_id} - id: register-in-is operation: IdentityServer.EndDeviceRegistry.Create path: /applications/{application_id}/devices - id: verify-uplink operation: ApplicationServer.AppAs.GetMQTTConnectionInfo path: /as/applications/{application_id}/mqtt-connection-info outputs: end_device_id: type: string activation_status: type: string description: One of joined, abp, or pending.