swagger: '2.0' info: title: The Things Stack — End Device Registry version: v3.36 description: The Things Stack is an open-source LoRaWAN Network Server implementation. This OpenAPI was derived from the upstream gRPC-Gateway generated api.swagger.json published by TheThingsNetwork/lorawan-stack v3.36. license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 contact: name: The Things Industries url: https://www.thethingsindustries.com host: eu1.cloud.thethings.industries basePath: /api/v3 schemes: - https consumes: - application/json produces: - application/json securityDefinitions: ApiKeyAuth: type: apiKey in: header name: Authorization description: 'Bearer API key. Set Authorization: Bearer NNSXS.xxxxxxxxxx.' security: - ApiKeyAuth: [] tags: - name: EndDeviceRegistry - name: EndDeviceBatchRegistry - name: EndDeviceTemplateConverter - name: EndDeviceQRCodeGenerator - name: EndDeviceClaimingServer - name: EndDeviceBatchClaimingServer - name: DeviceRepository paths: /applications/{application_ids.application_id}/devices: get: summary: 'List end devices in the given application. Similar to Get, this selects the fields given by the field mask. More or less fields may be returned, depending on the rights of the caller.' operationId: EndDeviceRegistry_List responses: '200': description: A successful response. schema: $ref: '#/definitions/v3EndDevices' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: application_ids.application_id in: path required: true type: string - name: field_mask description: 'The names of the end device fields that should be returned. See the API reference for which fields can be returned by the different services.' in: query required: false type: string - name: order description: 'Order the results by this field path (must be present in the field mask). Default ordering is by ID. Prepend with a minus (-) to reverse the order.' in: query required: false type: string - name: limit description: Limit the number of results per page. in: query required: false type: integer format: int64 - name: page description: Page number for pagination. 0 is interpreted as 1. in: query required: false type: integer format: int64 tags: - EndDeviceRegistry /applications/{application_ids.application_id}/devices/batch: get: summary: 'Get a batch of end devices with the given identifiers, selecting the fields specified in the field mask. More or less fields may be returned, depending on the rights of the caller. Devices not found are skipped and no error is returned.' operationId: EndDeviceBatchRegistry_Get responses: '200': description: A successful response. schema: $ref: '#/definitions/v3EndDevices' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: application_ids.application_id in: path required: true type: string - name: device_ids in: query required: false type: array items: type: string collectionFormat: multi - name: field_mask description: 'The names of the end device fields that should be returned. This mask is applied on all the end devices in the result. See the API reference for which fields can be returned by the different services.' in: query required: false type: string tags: - EndDeviceBatchRegistry delete: summary: Delete a batch of end devices with the given IDs. description: 'This operation is atomic; either all devices are deleted or none. Devices not found are skipped and no error is returned. Before calling this RPC, use the corresponding BatchDelete RPCs of NsEndDeviceRegistry, AsEndDeviceRegistry and optionally the JsEndDeviceRegistry to delete the end devices. If the devices were claimed on a Join Server, use the BatchUnclaim RPC of the DeviceClaimingServer. This is NOT done automatically.' operationId: EndDeviceBatchRegistry_Delete responses: '200': description: A successful response. schema: type: object properties: {} default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: application_ids.application_id in: path required: true type: string - name: device_ids in: query required: false type: array items: type: string collectionFormat: multi tags: - EndDeviceBatchRegistry /applications/{application_ids.application_id}/devices/count: get: summary: Count end devices in the given application. operationId: EndDeviceRegistry_Count responses: '200': description: A successful response. schema: $ref: '#/definitions/v3CountEndDevicesResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: application_ids.application_id in: path required: true type: string tags: - EndDeviceRegistry /applications/{application_ids.application_id}/devices/filter: post: summary: 'List end devices in the given application. Similar to Get, this selects the fields given by the field mask. More or less fields may be returned, depending on the rights of the caller.' operationId: EndDeviceRegistry_List2 responses: '200': description: A successful response. schema: $ref: '#/definitions/v3EndDevices' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: application_ids.application_id in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/v3EndDeviceRegistryListBody' tags: - EndDeviceRegistry /applications/{application_ids.application_id}/devices/{device_id}: delete: summary: Delete the end device with the given IDs. description: 'Before deleting an end device it first needs to be deleted from the NsEndDeviceRegistry, the AsEndDeviceRegistry and the JsEndDeviceRegistry. In addition, if the device claimed on a Join Server, it also needs to be unclaimed via the DeviceClaimingServer so it can be claimed in the future. This is NOT done automatically.' operationId: EndDeviceRegistry_Delete responses: '200': description: A successful response. schema: type: object properties: {} default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: application_ids.application_id in: path required: true type: string - name: device_id in: path required: true type: string - name: dev_eui description: The LoRaWAN DevEUI. in: query required: false type: string format: string - name: join_eui description: The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices). in: query required: false type: string format: string - name: dev_addr description: The LoRaWAN DevAddr. in: query required: false type: string format: string tags: - EndDeviceRegistry /applications/{end_device.ids.application_ids.application_id}/devices: post: summary: Create a new end device within an application. description: 'After registering an end device, it also needs to be registered in the NsEndDeviceRegistry that is exposed by the Network Server, the AsEndDeviceRegistry that is exposed by the Application Server, and the JsEndDeviceRegistry that is exposed by the Join Server.' operationId: EndDeviceRegistry_Create responses: '200': description: A successful response. schema: $ref: '#/definitions/v3EndDevice' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: end_device.ids.application_ids.application_id in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/v3EndDeviceRegistryCreateBody' tags: - EndDeviceRegistry /applications/{end_device.ids.application_ids.application_id}/devices/{end_device.ids.device_id}: put: summary: Update the end device, changing the fields specified by the field mask to the provided values. operationId: EndDeviceRegistry_Update responses: '200': description: A successful response. schema: $ref: '#/definitions/v3EndDevice' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: end_device.ids.application_ids.application_id in: path required: true type: string - name: end_device.ids.device_id in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/v3EndDeviceRegistryUpdateBody' tags: - EndDeviceRegistry /applications/{end_device_ids.application_ids.application_id}/devices/{end_device_ids.device_id}: get: summary: 'Get the end device with the given identifiers, selecting the fields specified in the field mask. More or less fields may be returned, depending on the rights of the caller.' operationId: EndDeviceRegistry_Get responses: '200': description: A successful response. schema: $ref: '#/definitions/v3EndDevice' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: end_device_ids.application_ids.application_id in: path required: true type: string - name: end_device_ids.device_id in: path required: true type: string - name: end_device_ids.dev_eui description: The LoRaWAN DevEUI. in: query required: false type: string format: string - name: end_device_ids.join_eui description: The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices). in: query required: false type: string format: string - name: end_device_ids.dev_addr description: The LoRaWAN DevAddr. in: query required: false type: string format: string - name: field_mask description: 'The names of the end device fields that should be returned. See the API reference for which fields can be returned by the different services.' in: query required: false type: string tags: - EndDeviceRegistry /dr/applications/{application_ids.application_id}/brands: get: operationId: DeviceRepository_ListBrands2 responses: '200': description: A successful response. schema: $ref: '#/definitions/v3ListEndDeviceBrandsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: application_ids.application_id in: path required: true type: string - name: limit description: Limit the number of results per page. in: query required: false type: integer format: int64 - name: page description: Page number for pagination. 0 is interpreted as 1. in: query required: false type: integer format: int64 - name: order_by description: Order (for pagination) in: query required: false type: string - name: search description: Search for brands matching a query string. in: query required: false type: string - name: field_mask description: Field mask paths. in: query required: false type: string tags: - DeviceRepository /dr/applications/{application_ids.application_id}/brands/{brand_id}: get: operationId: DeviceRepository_GetBrand2 responses: '200': description: A successful response. schema: $ref: '#/definitions/v3EndDeviceBrand' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: application_ids.application_id in: path required: true type: string - name: brand_id description: Brand identifier, as defined in the Device Repository. in: path required: true type: string - name: field_mask description: Field mask paths. in: query required: false type: string tags: - DeviceRepository /dr/applications/{application_ids.application_id}/brands/{brand_id}/models: get: operationId: DeviceRepository_ListModels4 responses: '200': description: A successful response. schema: $ref: '#/definitions/v3ListEndDeviceModelsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: application_ids.application_id in: path required: true type: string - name: brand_id description: List end devices from a specific brand. in: path required: true type: string - name: limit description: Limit the number of results per page. in: query required: false type: integer format: int64 - name: page description: Page number for pagination. 0 is interpreted as 1. in: query required: false type: integer format: int64 - name: order_by description: Order end devices in: query required: false type: string - name: search description: List end devices matching a query string. in: query required: false type: string - name: field_mask description: Field mask paths. in: query required: false type: string tags: - DeviceRepository /dr/applications/{application_ids.application_id}/brands/{brand_id}/models/{model_id}: get: operationId: DeviceRepository_GetModel2 responses: '200': description: A successful response. schema: $ref: '#/definitions/v3EndDeviceModel' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: application_ids.application_id in: path required: true type: string - name: brand_id description: Brand identifier, as defined in the Device Repository. in: path required: true type: string - name: model_id description: Model identifier, as defined in the Device Repository. in: path required: true type: string - name: field_mask description: Field mask paths. in: query required: false type: string tags: - DeviceRepository ? /dr/applications/{application_ids.application_id}/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/formatters/downlink/decoder : get: operationId: DeviceRepository_GetDownlinkDecoder2 responses: '200': description: A successful response. schema: $ref: '#/definitions/v3MessagePayloadDecoder' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: application_ids.application_id in: path required: true type: string - name: version_ids.brand_id in: path required: true type: string - name: version_ids.model_id in: path required: true type: string - name: version_ids.firmware_version in: path required: true type: string - name: version_ids.band_id in: path required: true type: string - name: version_ids.hardware_version in: query required: false type: string - name: field_mask description: Field mask paths. in: query required: false type: string tags: - DeviceRepository ? /dr/applications/{application_ids.application_id}/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/formatters/downlink/encoder : get: operationId: DeviceRepository_GetDownlinkEncoder2 responses: '200': description: A successful response. schema: $ref: '#/definitions/v3MessagePayloadEncoder' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: application_ids.application_id in: path required: true type: string - name: version_ids.brand_id in: path required: true type: string - name: version_ids.model_id in: path required: true type: string - name: version_ids.firmware_version in: path required: true type: string - name: version_ids.band_id in: path required: true type: string - name: version_ids.hardware_version in: query required: false type: string - name: field_mask description: Field mask paths. in: query required: false type: string tags: - DeviceRepository ? /dr/applications/{application_ids.application_id}/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/formatters/uplink/decoder : get: operationId: DeviceRepository_GetUplinkDecoder2 responses: '200': description: A successful response. schema: $ref: '#/definitions/v3MessagePayloadDecoder' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: application_ids.application_id in: path required: true type: string - name: version_ids.brand_id in: path required: true type: string - name: version_ids.model_id in: path required: true type: string - name: version_ids.firmware_version in: path required: true type: string - name: version_ids.band_id in: path required: true type: string - name: version_ids.hardware_version in: query required: false type: string - name: field_mask description: Field mask paths. in: query required: false type: string tags: - DeviceRepository ? /dr/applications/{application_ids.application_id}/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/template : get: operationId: DeviceRepository_GetTemplate3 responses: '200': description: A successful response. schema: $ref: '#/definitions/v3EndDeviceTemplate' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: application_ids.application_id in: path required: true type: string - name: version_ids.brand_id in: path required: true type: string - name: version_ids.model_id in: path required: true type: string - name: version_ids.firmware_version in: path required: true type: string - name: version_ids.band_id in: path required: true type: string - name: version_ids.hardware_version in: query required: false type: string - name: end_device_profile_ids.vendor_id description: VendorID managed by the LoRa Alliance, as defined in TR005. in: query required: false type: integer format: int64 - name: end_device_profile_ids.vendor_profile_id description: ID of the LoRaWAN end device profile assigned by the vendor. in: query required: false type: integer format: int64 tags: - DeviceRepository /dr/applications/{application_ids.application_id}/models: get: operationId: DeviceRepository_ListModels3 responses: '200': description: A successful response. schema: $ref: '#/definitions/v3ListEndDeviceModelsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: application_ids.application_id in: path required: true type: string - name: brand_id description: List end devices from a specific brand. in: query required: false type: string - name: limit description: Limit the number of results per page. in: query required: false type: integer format: int64 - name: page description: Page number for pagination. 0 is interpreted as 1. in: query required: false type: integer format: int64 - name: order_by description: Order end devices in: query required: false type: string - name: search description: List end devices matching a query string. in: query required: false type: string - name: field_mask description: Field mask paths. in: query required: false type: string tags: - DeviceRepository ? /dr/applications/{application_ids.application_id}/vendors/{end_device_profile_ids.vendor_id}/profiles/{end_device_profile_ids.vendor_profile_id}/template : get: operationId: DeviceRepository_GetTemplate4 responses: '200': description: A successful response. schema: $ref: '#/definitions/v3EndDeviceTemplate' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: application_ids.application_id in: path required: true type: string - name: end_device_profile_ids.vendor_id description: VendorID managed by the LoRa Alliance, as defined in TR005. in: path required: true type: integer format: int64 - name: end_device_profile_ids.vendor_profile_id description: ID of the LoRaWAN end device profile assigned by the vendor. in: path required: true type: integer format: int64 - name: version_ids.brand_id in: query required: false type: string - name: version_ids.model_id in: query required: false type: string - name: version_ids.hardware_version in: query required: false type: string - name: version_ids.firmware_version in: query required: false type: string - name: version_ids.band_id in: query required: false type: string tags: - DeviceRepository /dr/brands: get: operationId: DeviceRepository_ListBrands responses: '200': description: A successful response. schema: $ref: '#/definitions/v3ListEndDeviceBrandsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: application_ids.application_id in: query required: false type: string - name: limit description: Limit the number of results per page. in: query required: false type: integer format: int64 - name: page description: Page number for pagination. 0 is interpreted as 1. in: query required: false type: integer format: int64 - name: order_by description: Order (for pagination) in: query required: false type: string - name: search description: Search for brands matching a query string. in: query required: false type: string - name: field_mask description: Field mask paths. in: query required: false type: string tags: - DeviceRepository /dr/brands/{brand_id}: get: operationId: DeviceRepository_GetBrand responses: '200': description: A successful response. schema: $ref: '#/definitions/v3EndDeviceBrand' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: brand_id description: Brand identifier, as defined in the Device Repository. in: path required: true type: string - name: application_ids.application_id in: query required: false type: string - name: field_mask description: Field mask paths. in: query required: false type: string tags: - DeviceRepository /dr/brands/{brand_id}/models: get: operationId: DeviceRepository_ListModels2 responses: '200': description: A successful response. schema: $ref: '#/definitions/v3ListEndDeviceModelsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: brand_id description: List end devices from a specific brand. in: path required: true type: string - name: application_ids.application_id in: query required: false type: string - name: limit description: Limit the number of results per page. in: query required: false type: integer format: int64 - name: page description: Page number for pagination. 0 is interpreted as 1. in: query required: false type: integer format: int64 - name: order_by description: Order end devices in: query required: false type: string - name: search description: List end devices matching a query string. in: query required: false type: string - name: field_mask description: Field mask paths. in: query required: false type: string tags: - DeviceRepository /dr/brands/{brand_id}/models/{model_id}: get: operationId: DeviceRepository_GetModel responses: '200': description: A successful response. schema: $ref: '#/definitions/v3EndDeviceModel' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: brand_id description: Brand identifier, as defined in the Device Repository. in: path required: true type: string - name: model_id description: Model identifier, as defined in the Device Repository. in: path required: true type: string - name: application_ids.application_id in: query required: false type: string - name: field_mask description: Field mask paths. in: query required: false type: string tags: - DeviceRepository ? /dr/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/formatters/downlink/decoder : get: operationId: DeviceRepository_GetDownlinkDecoder responses: '200': description: A successful response. schema: $ref: '#/definitions/v3MessagePayloadDecoder' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: version_ids.brand_id in: path required: true type: string - name: version_ids.model_id in: path required: true type: string - name: version_ids.firmware_version in: path required: true type: string - name: version_ids.band_id in: path required: true type: string - name: application_ids.application_id in: query required: false type: string - name: version_ids.hardware_version in: query required: false type: string - name: field_mask description: Field mask paths. in: query required: false type: string tags: - DeviceRepository ? /dr/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/formatters/downlink/encoder : get: operationId: DeviceRepository_GetDownlinkEncoder responses: '200': description: A successful response. schema: $ref: '#/definitions/v3MessagePayloadEncoder' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: version_ids.brand_id in: path required: true type: string - name: version_ids.model_id in: path required: true type: string - name: version_ids.firmware_version in: path required: true type: string - name: version_ids.band_id in: path required: true type: string - name: application_ids.application_id in: query required: false type: string - name: version_ids.hardware_version in: query required: false type: string - name: field_mask description: Field mask paths. in: query required: false type: string tags: - DeviceRepository ? /dr/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/formatters/uplink/decoder : get: operationId: DeviceRepository_GetUplinkDecoder responses: '200': description: A successful response. schema: $ref: '#/definitions/v3MessagePayloadDecoder' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: version_ids.brand_id in: path required: true type: string - name: version_ids.model_id in: path required: true type: string - name: version_ids.firmware_version in: path required: true type: string - name: version_ids.band_id in: path required: true type: string - name: application_ids.application_id in: query required: false type: string - name: version_ids.hardware_version in: query required: false type: string - name: field_mask description: Field mask paths. in: query required: false type: string tags: - DeviceRepository ? /dr/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/template : get: operationId: DeviceRepository_GetTemplate responses: '200': description: A successful response. schema: $ref: '#/definitions/v3EndDeviceTemplate' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: version_ids.brand_id in: path required: true type: string - name: version_ids.model_id in: path required: true type: string - name: version_ids.firmware_version in: path required: true type: string - name: version_ids.band_id in: path required: true type: string - name: application_ids.application_id in: query required: false type: string - name: version_ids.hardware_version in: query required: false type: string - name: end_device_profile_ids.vendor_id description: VendorID managed by the LoRa Alliance, as defined in TR005. in: query required: false type: integer format: int64 - name: end_device_profile_ids.vendor_profile_id description: ID of the LoRaWAN end device profile assigned by the vendor. in: query required: false type: integer format: int64 tags: - DeviceRepository /dr/models: get: operationId: DeviceRepository_ListModels responses: '200': description: A successful response. schema: $ref: '#/definitions/v3ListEndDeviceModelsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: application_ids.application_id in: query required: false type: string - name: brand_id description: List end devices from a specific brand. in: query required: false type: string - name: limit description: Limit the number of results per page. in: query required: false type: integer format: int64 - name: page description: Page number for pagination. 0 is interpreted as 1. in: query required: false type: integer format: int64 - name: order_by description: Order end devices in: query required: false type: string - name: search description: List end devices matching a query string. in: query required: false type: string - name: field_mask description: Field mask paths. in: query required: false type: string tags: - DeviceRepository /dr/vendors/{end_device_profile_ids.vendor_id}/profiles/{end_device_profile_ids.vendor_profile_id}/template: get: operationId: DeviceRepository_GetTemplate2 responses: '200': description: A successful response. schema: $ref: '#/definitions/v3EndDeviceTemplate' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: end_device_profile_ids.vendor_id description: VendorID managed by the LoRa Alliance, as defined in TR005. in: path required: true type: integer format: int64 - name: end_device_profile_ids.vendor_profile_id description: ID of the LoRaWAN end device profile assigned by the vendor. in: path required: true type: integer format: int64 - name: application_ids.application_id in: query required: false type: string - name: version_ids.brand_id in: query required: false type: string - name: version_ids.model_id in: query required: false type: string - name: version_ids.hardware_version in: query required: false type: string - name: version_ids.firmware_version in: query required: false type: string - name: version_ids.band_id in: query required: false type: string tags: - DeviceRepository /edcs/applications/{application_ids.application_id}/authorize: post: summary: 'Authorize the End Device Claiming Server to claim devices registered in the given application. The application identifiers are the source application, where the devices are registered before they are claimed. The API key is used to access the application, find the device, verify the claim request and delete the end device from the source application. DEPRECATED: Device claiming that transfers devices between applications is no longer supported and will be removed in a future version of The Things Stack.' operationId: EndDeviceClaimingServer_AuthorizeApplication responses: '200': description: A successful response. schema: type: object properties: {} default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: application_ids.application_id in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/EndDeviceClaimingServerAuthorizeApplicationBody' tags: - EndDeviceClaimingServer /edcs/applications/{application_id}/authorize: delete: summary: 'Unauthorize the End Device Claiming Server to claim devices in the given application. This reverts the authorization given with rpc AuthorizeApplication. DEPRECATED: Device claiming that transfers devices between applications is no longer supported and will be removed in a future version of The Things Stack.' operationId: EndDeviceClaimingServer_UnauthorizeApplication responses: '200': description: A successful response. schema: type: object properties: {} default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: application_id in: path required: true type: string tags: - EndDeviceClaimingServer /edcs/claim: post: summary: Claims the end device on a Join Server by claim authentication code or QR code. operationId: EndDeviceClaimingServer_Claim responses: '200': description: A successful response. schema: $ref: '#/definitions/v3EndDeviceIdentifiers' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v3ClaimEndDeviceRequest' tags: - EndDeviceClaimingServer /edcs/claim/info: post: summary: Return whether claiming is available for a given JoinEUI. operationId: EndDeviceClaimingServer_GetInfoByJoinEUI responses: '200': description: A successful response. schema: $ref: '#/definitions/v3GetInfoByJoinEUIResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v3GetInfoByJoinEUIRequest' tags: - EndDeviceClaimingServer /edcs/claim/info/batch: post: summary: Return whether claiming is supported for each Join EUI in a given list. operationId: EndDeviceBatchClaimingServer_GetInfoByJoinEUIs responses: '200': description: A successful response. schema: $ref: '#/definitions/v3GetInfoByJoinEUIsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v3GetInfoByJoinEUIsRequest' tags: - EndDeviceBatchClaimingServer /edcs/claim/{application_ids.application_id}/devices/batch: delete: summary: 'Unclaims multiple end devices on an external Join Server. All devices must have the same application ID. Check the response for devices that could not be unclaimed.' operationId: EndDeviceBatchClaimingServer_Unclaim responses: '200': description: A successful response. schema: $ref: '#/definitions/v3BatchUnclaimEndDevicesResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: application_ids.application_id in: path required: true type: string - name: device_ids in: query required: false type: array items: type: string collectionFormat: multi tags: - EndDeviceBatchClaimingServer /edcs/claim/{application_ids.application_id}/devices/{device_id}: get: summary: 'Gets the claim status of an end device. EUIs provided in the request are ignored and the end device is looked up by the given identifiers.' operationId: EndDeviceClaimingServer_GetClaimStatus responses: '200': description: A successful response. schema: $ref: '#/definitions/v3GetClaimStatusResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: application_ids.application_id in: path required: true type: string - name: device_id in: path required: true type: string - name: dev_eui description: The LoRaWAN DevEUI. in: query required: false type: string format: string - name: join_eui description: The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices). in: query required: false type: string format: string - name: dev_addr description: The LoRaWAN DevAddr. in: query required: false type: string format: string tags: - EndDeviceClaimingServer delete: summary: 'Unclaims the end device on a Join Server. EUIs provided in the request are ignored and the end device is looked up by the given identifiers.' operationId: EndDeviceClaimingServer_Unclaim responses: '200': description: A successful response. schema: type: object properties: {} default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: application_ids.application_id in: path required: true type: string - name: device_id in: path required: true type: string - name: dev_eui description: The LoRaWAN DevEUI. in: query required: false type: string format: string - name: join_eui description: The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices). in: query required: false type: string format: string - name: dev_addr description: The LoRaWAN DevAddr. in: query required: false type: string format: string tags: - EndDeviceClaimingServer /edtc/convert: post: summary: Converts the binary data to a stream of end device templates. operationId: EndDeviceTemplateConverter_Convert responses: '200': description: A successful response.(streaming responses) schema: type: object properties: result: $ref: '#/definitions/v3EndDeviceTemplate' error: $ref: '#/definitions/googlerpcStatus' title: Stream result of v3EndDeviceTemplate default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v3ConvertEndDeviceTemplateRequest' tags: - EndDeviceTemplateConverter /edtc/formats: get: summary: Returns the configured formats to convert from. operationId: EndDeviceTemplateConverter_ListFormats responses: '200': description: A successful response. schema: $ref: '#/definitions/v3EndDeviceTemplateFormats' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' tags: - EndDeviceTemplateConverter /qr-codes/end-devices: post: summary: Generates a QR code. operationId: EndDeviceQRCodeGenerator_Generate responses: '200': description: A successful response. schema: $ref: '#/definitions/v3GenerateQRCodeResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v3GenerateEndDeviceQRCodeRequest' tags: - EndDeviceQRCodeGenerator /qr-codes/end-devices/formats: get: summary: Returns the supported formats. operationId: EndDeviceQRCodeGenerator_ListFormats responses: '200': description: A successful response. schema: $ref: '#/definitions/v3QRCodeFormats' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' tags: - EndDeviceQRCodeGenerator /qr-codes/end-devices/formats/{format_id}: get: summary: Return the QR code format. operationId: EndDeviceQRCodeGenerator_GetFormat responses: '200': description: A successful response. schema: $ref: '#/definitions/v3QRCodeFormat' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: format_id description: QR code format identifier. Enumerate available formats with rpc ListFormats in the EndDeviceQRCodeGenerator service. in: path required: true type: string tags: - EndDeviceQRCodeGenerator /qr-codes/end-devices/parse: post: summary: Parse QR Codes of known formats and return the information contained within. operationId: EndDeviceQRCodeGenerator_Parse responses: '200': description: A successful response. schema: $ref: '#/definitions/v3ParseEndDeviceQRCodeResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v3ParseEndDeviceQRCodeRequest' tags: - EndDeviceQRCodeGenerator /qr-codes/end-devices/{format_id}/parse: post: summary: Parse QR Codes of known formats and return the information contained within. operationId: EndDeviceQRCodeGenerator_Parse2 responses: '200': description: A successful response. schema: $ref: '#/definitions/v3ParseEndDeviceQRCodeResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/googlerpcStatus' parameters: - name: format_id description: 'QR code format identifier. Enumerate available formats with the rpc `ListFormats`. If this field is not specified, the server will attempt to parse the data with each known format.' in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/v3EndDeviceQRCodeGeneratorParseBody' tags: - EndDeviceQRCodeGenerator definitions: ADRSettingsDynamicMode: type: object properties: margin: type: number format: float description: 'The ADR margin (dB) tells the network server how much margin it should add in ADR requests. A bigger margin is less efficient, but gives a better chance of successful reception. If unset, the default value from Network Server configuration will be used.' min_data_rate_index: $ref: '#/definitions/v3DataRateIndexValue' description: 'Minimum data rate index. If unset, the default value from Network Server configuration will be used.' max_data_rate_index: $ref: '#/definitions/v3DataRateIndexValue' description: 'Maximum data rate index. If unset, the default value from Network Server configuration will be used.' min_tx_power_index: type: integer format: int64 description: 'Minimum transmission power index. If unset, the default value from Network Server configuration will be used.' max_tx_power_index: type: integer format: int64 description: 'Maximum transmission power index. If unset, the default value from Network Server configuration will be used.' min_nb_trans: type: integer format: int64 description: 'Minimum number of retransmissions. If unset, the default value from Network Server configuration will be used.' max_nb_trans: type: integer format: int64 description: 'Maximum number of retransmissions. If unset, the default value from Network Server configuration will be used.' channel_steering: $ref: '#/definitions/DynamicModeChannelSteeringSettings' overrides: $ref: '#/definitions/DynamicModeOverrides' description: Configuration options for dynamic ADR. ADRSettingsStaticMode: type: object properties: data_rate_index: $ref: '#/definitions/v3DataRateIndex' description: Data rate index to use. tx_power_index: type: integer format: int64 description: Transmission power index to use. nb_trans: type: integer format: int64 description: Number of retransmissions. description: Configuration options for static ADR. ApplicationDownlinkClassBC: type: object properties: gateways: type: array items: type: object $ref: '#/definitions/v3ClassBCGatewayIdentifiers' description: 'Possible gateway identifiers, antenna index, and group index to use for this downlink message. The Network Server selects one of these gateways for downlink, based on connectivity, signal quality, channel utilization and an available slot. If none of the gateways can be selected, the downlink message fails. If empty, a gateway and antenna is selected automatically from the gateways seen in recent uplinks. If group index is set, gateways will be grouped by the index for the Network Server to select one gateway per group.' absolute_time: type: string format: date-time description: 'Absolute time when the downlink message should be transmitted. This requires the gateway to have GPS time synchronization. If the time is in the past or if there is a scheduling conflict, the downlink message fails. If null, the time is selected based on slot availability. This is recommended in class B mode.' ApplicationDownlinkConfirmedRetry: type: object properties: attempt: type: integer format: int64 description: The number of attempted confirmed downlink acknowledgements. max_attempts: type: integer format: int64 description: 'The maximum number of confirmed downlink acknowledgement attempts. If null, the Application Server configuration is used instead.' ChannelSteeringSettingsLoRaNarrowMode: type: object description: 'Configuration options for LoRa narrow channels steering. The narrow mode attempts to steer the end device towards using the LoRa modulated, 125kHz bandwidth channels.' CompliancesCompliance: type: object properties: body: type: string norm: type: string standard: type: string version: type: string DownlinkMessageMessageMACPayload: type: object properties: f_port: type: integer format: int64 full_f_cnt: type: integer format: int64 DownlinkMessageMessageMHDR: type: object properties: m_type: $ref: '#/definitions/v3MType' DynamicModeChannelSteeringSettings: type: object properties: lora_narrow: $ref: '#/definitions/ChannelSteeringSettingsLoRaNarrowMode' disabled: $ref: '#/definitions/DynamicModeChannelSteeringSettingsDisabledMode' description: 'EXPERIMENTAL: Channel steering settings.' DynamicModeChannelSteeringSettingsDisabledMode: type: object description: 'Configuration options for cases in which ADR is not supposed to steer the end device to another set of channels.' DynamicModeOverrides: type: object properties: data_rate_0: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_1: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_2: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_3: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_4: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_5: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_6: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_7: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_8: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_9: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_10: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_11: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_12: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_13: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_14: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' data_rate_15: $ref: '#/definitions/DynamicModePerDataRateIndexOverride' description: 'EXPERIMENTAL: Configuration overrides.' DynamicModePerDataRateIndexOverride: type: object properties: min_nb_trans: type: integer format: int64 description: 'Minimum number of retransmissions. If unset, the default value from Network Server configuration will be used.' max_nb_trans: type: integer format: int64 description: 'Maximum number of retransmissions. If unset, the default value from Network Server configuration will be used.' description: 'EXPERIMENTAL: Data rate index override settings.' EndDeviceClaimingServerAuthorizeApplicationBody: type: object properties: application_ids: type: object api_key: type: string description: 'DEPRECATED: Device claiming that transfers devices between applications is no longer supported and will be removed in a future version of The Things Stack.' EndDeviceModelBattery: type: object properties: replaceable: type: boolean description: Whether the device battery can be replaced. type: type: string description: Battery type. EndDeviceModelCompliances: type: object properties: safety: type: array items: type: object $ref: '#/definitions/CompliancesCompliance' description: List of safety standards the device is compliant with. radio_equipment: type: array items: type: object $ref: '#/definitions/CompliancesCompliance' description: List of radio equipment standards the device is compliant with. EndDeviceModelDimensions: type: object properties: width: type: number format: float description: Device width (mm). height: type: number format: float description: Device height (mm). diameter: type: number format: float description: Device diameter (mm). length: type: number format: float description: Device length (mm). EndDeviceModelFirmwareVersion: type: object properties: version: type: string description: Firmware version string. numeric: type: integer format: int64 description: Numeric firmware revision number. supported_hardware_versions: type: array items: type: string description: Hardware versions supported by this firmware version. profiles: type: object additionalProperties: $ref: '#/definitions/FirmwareVersionProfile' description: Device profiles for each supported region (band). EndDeviceModelHardwareVersion: type: object properties: version: type: string description: Hardware version string. numeric: type: integer format: int64 description: Numberic hardware revision number. part_number: type: string description: Hardware part number. EndDeviceModelOperatingConditions: type: object properties: temperature: $ref: '#/definitions/OperatingConditionsLimits' description: Temperature operating conditions (Celsius). relative_humidity: $ref: '#/definitions/OperatingConditionsLimits' description: Relative humidity operating conditions (Fraction, in range [0, 1]). EndDeviceModelPhotos: type: object properties: main: type: string description: Main device photo. other: type: array items: type: string description: List of other device photos. EndDeviceModelReseller: type: object properties: name: type: string description: Reseller name. region: type: array items: type: string description: Reseller regions. url: type: string description: Reseller URL. EndDeviceModelVideos: type: object properties: main: type: string description: Link to main device video. other: type: array items: type: string description: Links to other device videos. FirmwareVersionProfile: type: object properties: vendor_id: type: string description: 'Vendor ID of the profile, as defined in the Device Repository. If this value is set, the profile is loaded from this vendor''s folder. If this value is not set, the profile is loaded from the current (end device''s) vendor.' profile_id: type: string description: Profile identifier, as defined in the Device Repository. lorawan_certified: type: boolean description: Whether the device is LoRaWAN certified. codec_id: type: string description: Payload formatter codec identifier, as defined in the Device Repository. GenerateEndDeviceQRCodeRequestImage: type: object properties: image_size: type: integer format: int64 description: Requested QR code image dimension in pixels. GetClaimStatusResponseVendorSpecific: type: object properties: organization_unique_identifier: type: integer format: int64 data: type: object description: Vendor Specific data in JSON format. MACCommandADRParamSetupReq: type: object properties: adr_ack_limit_exponent: $ref: '#/definitions/v3ADRAckLimitExponent' description: Exponent e that configures the ADR_ACK_LIMIT = 2^e messages. adr_ack_delay_exponent: $ref: '#/definitions/v3ADRAckDelayExponent' description: Exponent e that configures the ADR_ACK_DELAY = 2^e messages. MACCommandBeaconFreqAns: type: object properties: frequency_ack: type: boolean MACCommandBeaconFreqReq: type: object properties: frequency: type: string format: uint64 description: Frequency of the Class B beacons (Hz). MACCommandBeaconTimingAns: type: object properties: delay: type: integer format: int64 description: (uint16) See LoRaWAN specification. channel_index: type: integer format: int64 MACCommandDLChannelAns: type: object properties: channel_index_ack: type: boolean frequency_ack: type: boolean MACCommandDLChannelReq: type: object properties: channel_index: type: integer format: int64 frequency: type: string format: uint64 description: Downlink channel frequency (Hz). MACCommandDevStatusAns: type: object properties: battery: type: integer format: int64 description: 'Device battery status. 0 indicates that the device is connected to an external power source. 1..254 indicates a battery level. 255 indicates that the device was not able to measure the battery level.' margin: type: integer format: int32 description: SNR of the last downlink (dB; [-32, +31]). MACCommandDeviceModeConf: type: object properties: class: $ref: '#/definitions/v3Class' MACCommandDeviceModeInd: type: object properties: class: $ref: '#/definitions/v3Class' MACCommandDeviceTimeAns: type: object properties: time: type: string format: date-time MACCommandDutyCycleReq: type: object properties: max_duty_cycle: $ref: '#/definitions/v3AggregatedDutyCycle' MACCommandForceRejoinReq: type: object properties: rejoin_type: $ref: '#/definitions/v3RejoinRequestType' data_rate_index: $ref: '#/definitions/v3DataRateIndex' max_retries: type: integer format: int64 period_exponent: $ref: '#/definitions/v3RejoinPeriodExponent' description: Exponent e that configures the rejoin period = 32 * 2^e + rand(0,32) seconds. MACCommandLinkADRAns: type: object properties: channel_mask_ack: type: boolean data_rate_index_ack: type: boolean tx_power_index_ack: type: boolean MACCommandLinkADRReq: type: object properties: data_rate_index: $ref: '#/definitions/v3DataRateIndex' tx_power_index: type: integer format: int64 channel_mask: type: array items: type: boolean channel_mask_control: type: integer format: int64 nb_trans: type: integer format: int64 MACCommandLinkCheckAns: type: object properties: margin: type: integer format: int64 description: Indicates the link margin in dB of the received LinkCheckReq, relative to the demodulation floor. gateway_count: type: integer format: int64 MACCommandNewChannelAns: type: object properties: frequency_ack: type: boolean data_rate_ack: type: boolean MACCommandNewChannelReq: type: object properties: channel_index: type: integer format: int64 frequency: type: string format: uint64 description: Channel frequency (Hz). min_data_rate_index: $ref: '#/definitions/v3DataRateIndex' max_data_rate_index: $ref: '#/definitions/v3DataRateIndex' MACCommandPingSlotChannelAns: type: object properties: frequency_ack: type: boolean data_rate_index_ack: type: boolean MACCommandPingSlotChannelReq: type: object properties: frequency: type: string format: uint64 description: Ping slot channel frequency (Hz). data_rate_index: $ref: '#/definitions/v3DataRateIndex' MACCommandPingSlotInfoReq: type: object properties: period: $ref: '#/definitions/v3PingSlotPeriod' MACCommandRejoinParamSetupAns: type: object properties: max_time_exponent_ack: type: boolean MACCommandRejoinParamSetupReq: type: object properties: max_count_exponent: $ref: '#/definitions/v3RejoinCountExponent' description: Exponent e that configures the rejoin counter = 2^(e+4) messages. max_time_exponent: $ref: '#/definitions/v3RejoinTimeExponent' description: Exponent e that configures the rejoin timer = 2^(e+10) seconds. MACCommandRekeyConf: type: object properties: minor_version: $ref: '#/definitions/v3Minor' MACCommandRekeyInd: type: object properties: minor_version: $ref: '#/definitions/v3Minor' MACCommandRelayConfAns: type: object properties: second_channel_frequency_ack: type: boolean second_channel_ack_offset_ack: type: boolean second_channel_data_rate_index_ack: type: boolean second_channel_index_ack: type: boolean default_channel_index_ack: type: boolean cad_periodicity_ack: type: boolean MACCommandRelayConfReq: type: object properties: configuration: $ref: '#/definitions/MACCommandRelayConfReqConfiguration' MACCommandRelayConfReqConfiguration: type: object properties: second_channel: $ref: '#/definitions/v3RelaySecondChannel' default_channel_index: type: integer format: int64 cad_periodicity: $ref: '#/definitions/v3RelayCADPeriodicity' MACCommandRelayConfigureFwdLimitAns: type: object MACCommandRelayConfigureFwdLimitReq: type: object properties: reset_limit_counter: $ref: '#/definitions/v3RelayResetLimitCounter' join_request_limits: $ref: '#/definitions/v3RelayForwardLimits' notify_limits: $ref: '#/definitions/v3RelayForwardLimits' global_uplink_limits: $ref: '#/definitions/v3RelayForwardLimits' overall_limits: $ref: '#/definitions/v3RelayForwardLimits' MACCommandRelayCtrlUplinkListAns: type: object properties: rule_index_ack: type: boolean w_f_cnt: type: integer format: int64 MACCommandRelayCtrlUplinkListReq: type: object properties: rule_index: type: integer format: int64 action: $ref: '#/definitions/v3RelayCtrlUplinkListAction' MACCommandRelayEndDeviceConfAns: type: object properties: second_channel_frequency_ack: type: boolean second_channel_data_rate_index_ack: type: boolean second_channel_index_ack: type: boolean backoff_ack: type: boolean MACCommandRelayEndDeviceConfReq: type: object properties: configuration: $ref: '#/definitions/MACCommandRelayEndDeviceConfReqConfiguration' MACCommandRelayEndDeviceConfReqConfiguration: type: object properties: always: $ref: '#/definitions/v3RelayEndDeviceAlwaysMode' dynamic: $ref: '#/definitions/v3RelayEndDeviceDynamicMode' end_device_controlled: $ref: '#/definitions/v3RelayEndDeviceControlledMode' backoff: type: integer format: int64 second_channel: $ref: '#/definitions/v3RelaySecondChannel' serving_device_id: type: string MACCommandRelayNotifyNewEndDeviceReq: type: object properties: dev_addr: type: string format: string example: 2600ABCD snr: type: integer format: int32 rssi: type: integer format: int32 MACCommandRelayUpdateUplinkListAns: type: object MACCommandRelayUpdateUplinkListReq: type: object properties: rule_index: type: integer format: int64 forward_limits: $ref: '#/definitions/v3RelayUplinkForwardLimits' dev_addr: type: string format: string example: 2600ABCD w_f_cnt: type: integer format: int64 root_wor_s_key: type: string format: string example: 0123456789ABCDEF0123456789ABCDEF device_id: type: string session_key_id: type: string format: byte MACCommandResetConf: type: object properties: minor_version: $ref: '#/definitions/v3Minor' MACCommandResetInd: type: object properties: minor_version: $ref: '#/definitions/v3Minor' MACCommandRxParamSetupAns: type: object properties: rx2_data_rate_index_ack: type: boolean rx1_data_rate_offset_ack: type: boolean rx2_frequency_ack: type: boolean MACCommandRxParamSetupReq: type: object properties: rx2_data_rate_index: $ref: '#/definitions/v3DataRateIndex' rx1_data_rate_offset: $ref: '#/definitions/v3DataRateOffset' rx2_frequency: type: string format: uint64 description: Rx2 frequency (Hz). MACCommandRxTimingSetupReq: type: object properties: delay: $ref: '#/definitions/v3RxDelay' MACCommandTxParamSetupReq: type: object properties: max_eirp_index: $ref: '#/definitions/v3DeviceEIRP' title: 'Indicates the maximum EIRP value in dBm, indexed by the following vector: [ 8 10 12 13 14 16 18 20 21 24 26 27 29 30 33 36 ]' uplink_dwell_time: type: boolean downlink_dwell_time: type: boolean MACStateDataRateRange: type: object properties: min_data_rate_index: $ref: '#/definitions/v3DataRateIndex' max_data_rate_index: $ref: '#/definitions/v3DataRateIndex' MACStateDataRateRanges: type: object properties: ranges: type: array items: type: object $ref: '#/definitions/MACStateDataRateRange' MACStateDownlinkMessageMessage: type: object properties: m_hdr: $ref: '#/definitions/DownlinkMessageMessageMHDR' mac_payload: $ref: '#/definitions/DownlinkMessageMessageMACPayload' MACStateJoinAccept: type: object properties: payload: type: string format: byte description: Payload of the join-accept received from Join Server. request: $ref: '#/definitions/v3MACStateJoinRequest' keys: $ref: '#/definitions/v3SessionKeys' description: Network session keys associated with the join. correlation_ids: type: array items: type: string dev_addr: type: string format: string example: 2600ABCD net_id: type: string format: string example: '000013' MACStateUplinkMessageRxMetadata: type: object properties: gateway_ids: $ref: '#/definitions/lorawanv3GatewayIdentifiers' channel_rssi: type: number format: float snr: type: number format: float downlink_path_constraint: $ref: '#/definitions/v3DownlinkPathConstraint' uplink_token: type: string format: byte packet_broker: $ref: '#/definitions/UplinkMessageRxMetadataPacketBrokerMetadata' relay: $ref: '#/definitions/UplinkMessageRxMetadataRelayMetadata' MACStateUplinkMessageTxSettings: type: object properties: data_rate: $ref: '#/definitions/v3DataRate' OperatingConditionsLimits: type: object properties: min: type: number format: float description: Min value of operating conditions range. max: type: number format: float description: Max value of operating conditions range. PictureEmbedded: type: object properties: mime_type: type: string description: MIME type of the picture. data: type: string format: byte description: 'Picture data. A data URI can be constructed as follows: `data:;base64,`.' UplinkMessageRxMetadataPacketBrokerMetadata: type: object UplinkMessageRxMetadataRelayMetadata: type: object googlerpcStatus: type: object properties: code: type: integer format: int32 message: type: string details: type: array items: type: object $ref: '#/definitions/protobufAny' lorawanv3BoolValue: type: object properties: value: type: boolean lorawanv3GatewayIdentifiers: type: object properties: gateway_id: type: string eui: type: string format: string example: 70B3D57ED000ABCD description: Secondary identifier, which can only be used in specific requests. lorawanv3Location: type: object properties: latitude: type: number format: double description: The North–South position (degrees; -90 to +90), where 0 is the equator, North pole is positive, South pole is negative. longitude: type: number format: double description: The East-West position (degrees; -180 to +180), where 0 is the Prime Meridian (Greenwich), East is positive , West is negative. altitude: type: integer format: int32 description: The altitude (meters), where 0 is the mean sea level. accuracy: type: integer format: int32 description: The accuracy of the location (meters). source: $ref: '#/definitions/v3LocationSource' description: Source of the location information. lorawanv3MACPayload: type: object properties: f_hdr: $ref: '#/definitions/v3FHDR' f_port: type: integer format: int64 frm_payload: type: string format: byte decoded_payload: type: object full_f_cnt: type: integer format: int64 description: Full 32-bit FCnt value. Used internally by Network Server. lorawanv3MHDR: type: object properties: m_type: $ref: '#/definitions/v3MType' major: $ref: '#/definitions/v3Major' lorawanv3Message: type: object properties: m_hdr: $ref: '#/definitions/lorawanv3MHDR' mic: type: string format: byte mac_payload: $ref: '#/definitions/lorawanv3MACPayload' join_request_payload: $ref: '#/definitions/v3JoinRequestPayload' join_accept_payload: $ref: '#/definitions/v3JoinAcceptPayload' rejoin_request_payload: $ref: '#/definitions/v3RejoinRequestPayload' title: Message represents a LoRaWAN message lorawanv3RelayParameters: type: object properties: serving: $ref: '#/definitions/v3ServingRelayParameters' description: Parameters related to a relay which is serving end devices. served: $ref: '#/definitions/v3ServedRelayParameters' description: Parameters related to an end device served by a relay. description: 'RelayParameters represent the parameters of a relay. This is used internally by the Network Server.' protobufAny: type: object properties: '@type': type: string description: "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This\ \ string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully\ \ qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n\ (e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\n\ expect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one\ \ can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme\ \ is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary\ \ format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have\ \ them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n\ \ on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is\ \ not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\ \ As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes\ \ other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." additionalProperties: {} description: "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type\ \ of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility\ \ functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n \ \ Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(&foo)) {\n ...\n }\n\n\ Example 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class))\ \ {\n foo = any.unpack(Foo.class);\n }\n // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n\ \ foo = any.unpack(Foo.getDefaultInstance());\n }\n\n Example 3: Pack and unpack a message in Python.\n\n \ \ foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n\ \ ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := &pb.Foo{...}\n any, err := anypb.New(foo)\n\ \ if err != nil {\n ...\n }\n ...\n foo := &pb.Foo{}\n if err := any.UnmarshalTo(foo); err\ \ != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name'\ \ as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL,\ \ for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any`\ \ value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which\ \ contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n\ \ string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \ \ \"firstName\": ,\n \"lastName\": \n }\n\nIf the embedded message type is well-known and has\ \ a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom\ \ JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\"\ : \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" v3ADRAckDelayExponent: type: string enum: - ADR_ACK_DELAY_1 - ADR_ACK_DELAY_2 - ADR_ACK_DELAY_4 - ADR_ACK_DELAY_8 - ADR_ACK_DELAY_16 - ADR_ACK_DELAY_32 - ADR_ACK_DELAY_64 - ADR_ACK_DELAY_128 - ADR_ACK_DELAY_256 - ADR_ACK_DELAY_512 - ADR_ACK_DELAY_1024 - ADR_ACK_DELAY_2048 - ADR_ACK_DELAY_4096 - ADR_ACK_DELAY_8192 - ADR_ACK_DELAY_16384 - ADR_ACK_DELAY_32768 default: ADR_ACK_DELAY_1 v3ADRAckDelayExponentValue: type: object properties: value: $ref: '#/definitions/v3ADRAckDelayExponent' v3ADRAckLimitExponent: type: string enum: - ADR_ACK_LIMIT_1 - ADR_ACK_LIMIT_2 - ADR_ACK_LIMIT_4 - ADR_ACK_LIMIT_8 - ADR_ACK_LIMIT_16 - ADR_ACK_LIMIT_32 - ADR_ACK_LIMIT_64 - ADR_ACK_LIMIT_128 - ADR_ACK_LIMIT_256 - ADR_ACK_LIMIT_512 - ADR_ACK_LIMIT_1024 - ADR_ACK_LIMIT_2048 - ADR_ACK_LIMIT_4096 - ADR_ACK_LIMIT_8192 - ADR_ACK_LIMIT_16384 - ADR_ACK_LIMIT_32768 default: ADR_ACK_LIMIT_1 v3ADRAckLimitExponentValue: type: object properties: value: $ref: '#/definitions/v3ADRAckLimitExponent' v3ADRSettings: type: object properties: static: $ref: '#/definitions/ADRSettingsStaticMode' dynamic: $ref: '#/definitions/ADRSettingsDynamicMode' disabled: $ref: '#/definitions/v3ADRSettingsDisabledMode' description: Adaptive Data Rate settings. v3ADRSettingsDisabledMode: type: object description: 'Configuration options for cases in which ADR is to be disabled completely.' v3AggregatedDutyCycle: type: string enum: - DUTY_CYCLE_1 - DUTY_CYCLE_2 - DUTY_CYCLE_4 - DUTY_CYCLE_8 - DUTY_CYCLE_16 - DUTY_CYCLE_32 - DUTY_CYCLE_64 - DUTY_CYCLE_128 - DUTY_CYCLE_256 - DUTY_CYCLE_512 - DUTY_CYCLE_1024 - DUTY_CYCLE_2048 - DUTY_CYCLE_4096 - DUTY_CYCLE_8192 - DUTY_CYCLE_16384 - DUTY_CYCLE_32768 default: DUTY_CYCLE_1 description: " - DUTY_CYCLE_1: 100%.\n - DUTY_CYCLE_2: 50%.\n - DUTY_CYCLE_4: 25%.\n - DUTY_CYCLE_8: 12.5%.\n - DUTY_CYCLE_16:\ \ 6.25%.\n - DUTY_CYCLE_32: 3.125%.\n - DUTY_CYCLE_64: 1.5625%.\n - DUTY_CYCLE_128: Roughly 0.781%.\n - DUTY_CYCLE_256:\ \ Roughly 0.390%.\n - DUTY_CYCLE_512: Roughly 0.195%.\n - DUTY_CYCLE_1024: Roughly 0.098%.\n - DUTY_CYCLE_2048: Roughly\ \ 0.049%.\n - DUTY_CYCLE_4096: Roughly 0.024%.\n - DUTY_CYCLE_8192: Roughly 0.012%.\n - DUTY_CYCLE_16384: Roughly 0.006%.\n\ \ - DUTY_CYCLE_32768: Roughly 0.003%." v3AggregatedDutyCycleValue: type: object properties: value: $ref: '#/definitions/v3AggregatedDutyCycle' v3ApplicationDownlink: type: object properties: session_key_id: type: string format: byte description: Join Server issued identifier for the session keys used by this downlink. f_port: type: integer format: int64 f_cnt: type: integer format: int64 frm_payload: type: string format: byte description: 'The frame payload of the downlink message. The payload is encrypted if the skip_payload_crypto field of the EndDevice is true.' decoded_payload: type: object description: 'The decoded frame payload of the downlink message. When scheduling downlink with a message processor configured for the end device (see formatters) or application (see default_formatters), this fields acts as input for the downlink encoder, and the output is set to frm_payload. When reading downlink (listing the queue, downlink message events, etc), this fields acts as output of the downlink decoder, and the input is frm_payload.' decoded_payload_warnings: type: array items: type: string description: Warnings generated by the message processor while encoding frm_payload (scheduling downlink) or decoding the frm_payload (reading downlink). confirmed: type: boolean class_b_c: $ref: '#/definitions/ApplicationDownlinkClassBC' description: 'Optional gateway and timing information for class B and C. If set, this downlink message will only be transmitted as class B or C downlink. If not set, this downlink message may be transmitted in class A, B and C.' priority: $ref: '#/definitions/v3TxSchedulePriority' description: Priority for scheduling the downlink message. correlation_ids: type: array items: type: string confirmed_retry: $ref: '#/definitions/ApplicationDownlinkConfirmedRetry' locations: type: object additionalProperties: $ref: '#/definitions/lorawanv3Location' description: End device location metadata, set by the Application Server while handling the message. version_ids: $ref: '#/definitions/v3EndDeviceVersionIdentifiers' description: End device version identifiers, set by the Application Server while handling the message. network_ids: $ref: '#/definitions/v3NetworkIdentifiers' description: Network identifiers, set by the Network Server that handles the message. attributes: type: object additionalProperties: type: string description: Attributes for devices, set by the Application Server while handling the message. v3ApplicationIdentifiers: type: object properties: application_id: type: string v3BatchUnclaimEndDevicesResponse: type: object properties: application_ids: $ref: '#/definitions/v3ApplicationIdentifiers' failed: type: object additionalProperties: $ref: '#/definitions/v3ErrorDetails' description: 'End devices that could not be unclaimed. The key is the device ID.' v3CFList: type: object properties: type: $ref: '#/definitions/v3CFListType' freq: type: array items: type: integer format: int64 description: 'Frequencies to be broadcasted, in hecto-Hz. These values are broadcasted as 24 bits unsigned integers. This field should not contain default values.' ch_masks: type: array items: type: boolean description: 'ChMasks controlling the channels to be used. Length of this field must be equal to the amount of uplink channels defined by the selected frequency plan.' v3CFListType: type: string enum: - FREQUENCIES - CHANNEL_MASKS default: FREQUENCIES v3ClaimEndDeviceRequest: type: object properties: authenticated_identifiers: $ref: '#/definitions/v3ClaimEndDeviceRequestAuthenticatedIdentifiers' description: Authenticated identifiers. qr_code: type: string format: byte description: Raw QR code contents. target_application_ids: $ref: '#/definitions/v3ApplicationIdentifiers' description: Application identifiers of the target end device. target_device_id: type: string description: End device ID of the target end device. If empty, use the source device ID. v3ClaimEndDeviceRequestAuthenticatedIdentifiers: type: object properties: join_eui: type: string format: string example: 70B3D57ED000ABCD description: JoinEUI (or AppEUI) of the device to claim. dev_eui: type: string format: string example: 70B3D57ED000ABCD description: DevEUI of the device to claim. authentication_code: type: string description: 'Authentication code to prove ownership. In the LoRa Alliance TR005 specification, this equals the OwnerToken.' v3Class: type: string enum: - CLASS_A - CLASS_B - CLASS_C default: CLASS_A v3ClassBCGatewayIdentifiers: type: object properties: gateway_ids: $ref: '#/definitions/lorawanv3GatewayIdentifiers' antenna_index: type: integer format: int64 group_index: type: integer format: int64 v3ConvertEndDeviceTemplateRequest: type: object properties: format_id: type: string description: ID of the format. data: type: string format: byte description: Data to convert. end_device_version_ids: $ref: '#/definitions/v3EndDeviceVersionIdentifiers' description: End device profile identifiers. v3CountEndDevicesResponse: type: object properties: count: type: string format: uint64 v3DLSettings: type: object properties: rx1_dr_offset: $ref: '#/definitions/v3DataRateOffset' rx2_dr: $ref: '#/definitions/v3DataRateIndex' opt_neg: type: boolean description: OptNeg is set if Network Server implements LoRaWAN 1.1 or greater. v3DataRate: type: object properties: lora: $ref: '#/definitions/v3LoRaDataRate' fsk: $ref: '#/definitions/v3FSKDataRate' lrfhss: $ref: '#/definitions/v3LRFHSSDataRate' v3DataRateIndex: type: string enum: - DATA_RATE_0 - DATA_RATE_1 - DATA_RATE_2 - DATA_RATE_3 - DATA_RATE_4 - DATA_RATE_5 - DATA_RATE_6 - DATA_RATE_7 - DATA_RATE_8 - DATA_RATE_9 - DATA_RATE_10 - DATA_RATE_11 - DATA_RATE_12 - DATA_RATE_13 - DATA_RATE_14 - DATA_RATE_15 default: DATA_RATE_0 v3DataRateIndexValue: type: object properties: value: $ref: '#/definitions/v3DataRateIndex' v3DataRateOffset: type: string enum: - DATA_RATE_OFFSET_0 - DATA_RATE_OFFSET_1 - DATA_RATE_OFFSET_2 - DATA_RATE_OFFSET_3 - DATA_RATE_OFFSET_4 - DATA_RATE_OFFSET_5 - DATA_RATE_OFFSET_6 - DATA_RATE_OFFSET_7 default: DATA_RATE_OFFSET_0 v3DataRateOffsetValue: type: object properties: value: $ref: '#/definitions/v3DataRateOffset' v3DecodedMessagePayload: type: object properties: data: type: object warnings: type: array items: type: string errors: type: array items: type: string v3DeviceEIRP: type: string enum: - DEVICE_EIRP_8 - DEVICE_EIRP_10 - DEVICE_EIRP_12 - DEVICE_EIRP_13 - DEVICE_EIRP_14 - DEVICE_EIRP_16 - DEVICE_EIRP_18 - DEVICE_EIRP_20 - DEVICE_EIRP_21 - DEVICE_EIRP_24 - DEVICE_EIRP_26 - DEVICE_EIRP_27 - DEVICE_EIRP_29 - DEVICE_EIRP_30 - DEVICE_EIRP_33 - DEVICE_EIRP_36 default: DEVICE_EIRP_8 description: " - DEVICE_EIRP_8: 8 dBm.\n - DEVICE_EIRP_10: 10 dBm.\n - DEVICE_EIRP_12: 12 dBm.\n - DEVICE_EIRP_13: 13\ \ dBm.\n - DEVICE_EIRP_14: 14 dBm.\n - DEVICE_EIRP_16: 16 dBm.\n - DEVICE_EIRP_18: 18 dBm.\n - DEVICE_EIRP_20: 20 dBm.\n\ \ - DEVICE_EIRP_21: 21 dBm.\n - DEVICE_EIRP_24: 24 dBm.\n - DEVICE_EIRP_26: 26 dBm.\n - DEVICE_EIRP_27: 27 dBm.\n -\ \ DEVICE_EIRP_29: 29 dBm.\n - DEVICE_EIRP_30: 30 dBm.\n - DEVICE_EIRP_33: 33 dBm.\n - DEVICE_EIRP_36: 36 dBm." v3DeviceEIRPValue: type: object properties: value: $ref: '#/definitions/v3DeviceEIRP' v3DownlinkPathConstraint: type: string enum: - DOWNLINK_PATH_CONSTRAINT_NONE - DOWNLINK_PATH_CONSTRAINT_PREFER_OTHER - DOWNLINK_PATH_CONSTRAINT_NEVER default: DOWNLINK_PATH_CONSTRAINT_NONE description: " - DOWNLINK_PATH_CONSTRAINT_NONE: Indicates that the gateway can be selected for downlink without constraints\ \ by the Network Server.\n - DOWNLINK_PATH_CONSTRAINT_PREFER_OTHER: Indicates that the gateway can be selected for downlink\ \ only if no other or better gateway can be selected.\n - DOWNLINK_PATH_CONSTRAINT_NEVER: Indicates that this gateway\ \ will never be selected for downlink, even if that results in no available downlink path." v3EncodedMessagePayload: type: object properties: f_port: type: integer format: int64 frm_payload: type: string format: byte warnings: type: array items: type: string errors: type: array items: type: string v3EndDevice: type: object properties: ids: $ref: '#/definitions/v3EndDeviceIdentifiers' created_at: type: string format: date-time updated_at: type: string format: date-time name: type: string description: Friendly name of the device. Stored in Entity Registry. description: type: string description: Description of the device. Stored in Entity Registry. attributes: type: object additionalProperties: type: string description: Key-value attributes for this end device. Typically used for organizing end devices or for storing integration-specific data. Stored in Entity Registry. version_ids: $ref: '#/definitions/v3EndDeviceVersionIdentifiers' description: Version Identifiers. Stored in Entity Registry, Network Server and Application Server. service_profile_id: type: string description: Default service profile. Stored in Entity Registry. network_server_address: type: string description: 'The address of the Network Server where this device is supposed to be registered. Stored in Entity Registry and Join Server. The typical format of the address is "host:port". If the port is omitted, the normal port inference (with DNS lookup, otherwise defaults) is used. The connection shall be established with transport layer security (TLS). Custom certificate authorities may be configured out-of-band.' network_server_kek_label: type: string description: 'The KEK label of the Network Server to use for wrapping network session keys. Stored in Join Server.' application_server_address: type: string description: 'The address of the Application Server where this device is supposed to be registered. Stored in Entity Registry and Join Server. The typical format of the address is "host:port". If the port is omitted, the normal port inference (with DNS lookup, otherwise defaults) is used. The connection shall be established with transport layer security (TLS). Custom certificate authorities may be configured out-of-band.' application_server_kek_label: type: string description: 'The KEK label of the Application Server to use for wrapping the application session key. Stored in Join Server.' application_server_id: type: string description: 'The AS-ID of the Application Server to use. Stored in Join Server.' join_server_address: type: string description: 'The address of the Join Server where this device is supposed to be registered. Stored in Entity Registry. The typical format of the address is "host:port". If the port is omitted, the normal port inference (with DNS lookup, otherwise defaults) is used. The connection shall be established with transport layer security (TLS). Custom certificate authorities may be configured out-of-band.' locations: type: object additionalProperties: $ref: '#/definitions/lorawanv3Location' description: Location of the device. Stored in Entity Registry. picture: $ref: '#/definitions/v3Picture' description: Stored in Entity Registry. supports_class_b: type: boolean description: 'Whether the device supports class B. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' supports_class_c: type: boolean description: 'Whether the device supports class C. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' lorawan_version: $ref: '#/definitions/v3MACVersion' description: 'LoRaWAN MAC version. Stored in Network Server. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' lorawan_phy_version: $ref: '#/definitions/v3PHYVersion' description: 'LoRaWAN PHY version. Stored in Network Server. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' frequency_plan_id: type: string description: 'ID of the frequency plan used by this device. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' min_frequency: type: string format: uint64 description: 'Minimum frequency the device is capable of using (Hz). Stored in Network Server. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' max_frequency: type: string format: uint64 description: 'Maximum frequency the device is capable of using (Hz). Stored in Network Server. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' supports_join: type: boolean description: 'The device supports join (it''s OTAA). Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' resets_join_nonces: type: boolean description: 'Whether the device resets the join and dev nonces (not LoRaWAN compliant). Stored in Join Server. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' root_keys: $ref: '#/definitions/v3RootKeys' description: Device root keys. Stored in Join Server. net_id: type: string format: string example: '000013' description: Home NetID. Stored in Join Server. mac_settings: $ref: '#/definitions/v3MACSettings' description: 'Settings for how the Network Server handles MAC layer for this device. Stored in Network Server. Mutually exclusive with MAC settings profile.' mac_state: $ref: '#/definitions/v3MACState' description: MAC state of the device. Stored in Network Server. pending_mac_state: $ref: '#/definitions/v3MACState' description: Pending MAC state of the device. Stored in Network Server. session: $ref: '#/definitions/v3Session' description: Current session of the device. Stored in Network Server and Application Server. pending_session: $ref: '#/definitions/v3Session' description: Pending session. Stored in Network Server and Application Server until RekeyInd is received. last_dev_nonce: type: integer format: int64 description: 'Last DevNonce used. This field is only used for devices using LoRaWAN version 1.1 and later. Stored in Join Server.' used_dev_nonces: type: array items: type: integer format: int64 description: 'Used DevNonces sorted in ascending order. This field is only used for devices using LoRaWAN versions preceding 1.1. Stored in Join Server.' last_join_nonce: type: integer format: int64 description: 'Last JoinNonce/AppNonce(for devices using LoRaWAN versions preceding 1.1) used. Stored in Join Server.' last_rj_count_0: type: integer format: int64 description: 'Last Rejoin counter value used (type 0/2). Stored in Join Server.' last_rj_count_1: type: integer format: int64 description: 'Last Rejoin counter value used (type 1). Stored in Join Server.' last_dev_status_received_at: type: string format: date-time description: 'Time when last DevStatus MAC command was received. Stored in Network Server.' power_state: $ref: '#/definitions/v3PowerState' description: 'The power state of the device; whether it is battery-powered or connected to an external power source. Received via the DevStatus MAC command at status_received_at. Stored in Network Server.' battery_percentage: type: number format: float description: 'Latest-known battery percentage of the device. Received via the DevStatus MAC command at last_dev_status_received_at or earlier. Stored in Network Server.' downlink_margin: type: integer format: int32 description: 'Demodulation signal-to-noise ratio (dB). Received via the DevStatus MAC command at last_dev_status_received_at. Stored in Network Server.' queued_application_downlinks: type: array items: type: object $ref: '#/definitions/v3ApplicationDownlink' description: 'Queued Application downlink messages. Stored in Application Server, which sets them on the Network Server. This field is deprecated and is always set equal to session.queued_application_downlinks.' formatters: $ref: '#/definitions/v3MessagePayloadFormatters' description: 'The payload formatters for this end device. Stored in Application Server. Copied on creation from template identified by version_ids.' provisioner_id: type: string description: ID of the provisioner. Stored in Join Server. provisioning_data: type: object description: Vendor-specific provisioning data. Stored in Join Server. multicast: type: boolean description: Indicates whether this device represents a multicast group. claim_authentication_code: $ref: '#/definitions/v3EndDeviceAuthenticationCode' description: 'Authentication code to claim ownership of the end device. From TTS v3.21.0 this field is stored in the Identity Server. For TTS versions < 3.21.0, this field is stored in the Join Server. The value stored on the Identity Server takes precedence.' skip_payload_crypto: type: boolean description: 'Skip decryption of uplink payloads and encryption of downlink payloads. This field is deprecated, use skip_payload_crypto_override instead.' skip_payload_crypto_override: type: boolean description: 'Skip decryption of uplink payloads and encryption of downlink payloads. This field overrides the application-level setting.' activated_at: type: string format: date-time description: 'Timestamp when the device has been activated. Stored in the Entity Registry. This field is set by the Application Server when an end device sends its first uplink. The Application Server will use the field in order to avoid repeated calls to the Entity Registry. The field cannot be unset once set.' last_seen_at: type: string format: date-time description: 'Timestamp when a device uplink has been last observed. This field is set by the Application Server and stored in the Identity Server.' serial_number: type: string lora_alliance_profile_ids: $ref: '#/definitions/v3LoRaAllianceProfileIdentifiers' mac_settings_profile_ids: $ref: '#/definitions/v3MACSettingsProfileIdentifiers' description: 'MAC settings profile identifiers. Mutually exclusive with MAC settings.' description: 'Defines an End Device registration and its state on the network. The persistence of the EndDevice is divided between the Network Server, Application Server and Join Server. SDKs are responsible for combining (if desired) the three.' v3EndDeviceAuthenticationCode: type: object properties: value: type: string valid_from: type: string format: date-time valid_to: type: string format: date-time description: Authentication code for end devices. v3EndDeviceBrand: type: object properties: brand_id: type: string description: Brand identifier, as specified in the Device Repository. name: type: string description: Brand name. private_enterprise_number: type: integer format: int64 description: Private Enterprise Number (PEN) assigned by IANA. organization_unique_identifiers: type: array items: type: string description: Organization Unique Identifiers (OUI) assigned by IEEE. lora_alliance_vendor_id: type: integer format: int64 description: VendorID managed by the LoRa Alliance, as defined in TR005. website: type: string description: Brand website URL. email: type: string description: Contact email address. logo: type: string description: Path to brand logo. v3EndDeviceIdentifiers: type: object properties: device_id: type: string application_ids: $ref: '#/definitions/v3ApplicationIdentifiers' dev_eui: type: string format: string example: 70B3D57ED000ABCD description: The LoRaWAN DevEUI. join_eui: type: string format: string example: 70B3D57ED000ABCD description: The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices). dev_addr: type: string format: string example: 2600ABCD description: The LoRaWAN DevAddr. v3EndDeviceModel: type: object properties: brand_id: type: string description: Brand identifier, as defined in the Device Repository. model_id: type: string description: Model identifier, as defined in the Device Repository. name: type: string description: Model name, as defined in the Device Repository. description: type: string description: Model description. hardware_versions: type: array items: type: object $ref: '#/definitions/EndDeviceModelHardwareVersion' description: Available hardware versions. firmware_versions: type: array items: type: object $ref: '#/definitions/EndDeviceModelFirmwareVersion' description: Available firmware versions. sensors: type: array items: type: string description: List of sensors included in the device. dimensions: $ref: '#/definitions/EndDeviceModelDimensions' description: Device dimensions. weight: type: number format: float description: Device weight (gram). battery: $ref: '#/definitions/EndDeviceModelBattery' description: Device battery information. operating_conditions: $ref: '#/definitions/EndDeviceModelOperatingConditions' description: Device operating conditions. ip_code: type: string description: Device IP rating code. key_provisioning: type: array items: $ref: '#/definitions/v3KeyProvisioning' description: Supported key provisioning methods. key_security: $ref: '#/definitions/v3KeySecurity' description: Device key security. photos: $ref: '#/definitions/EndDeviceModelPhotos' description: Device photos. videos: $ref: '#/definitions/EndDeviceModelVideos' description: Device videos. product_url: type: string description: Device information page URL. datasheet_url: type: string description: Device datasheet URL. resellers: type: array items: type: object $ref: '#/definitions/EndDeviceModelReseller' description: Reseller URLs. compliances: $ref: '#/definitions/EndDeviceModelCompliances' description: List of standards the device is compliant with. additional_radios: type: array items: type: string description: List of any additional radios included in the device. v3EndDeviceQRCodeGeneratorParseBody: type: object properties: qr_code: type: string format: byte description: Raw QR code contents. v3EndDeviceRegistryCreateBody: type: object properties: end_device: type: object properties: ids: type: object properties: device_id: type: string application_ids: type: object dev_eui: type: string format: string example: 70B3D57ED000ABCD description: The LoRaWAN DevEUI. join_eui: type: string format: string example: 70B3D57ED000ABCD description: The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices). dev_addr: type: string format: string example: 2600ABCD description: The LoRaWAN DevAddr. created_at: type: string format: date-time updated_at: type: string format: date-time name: type: string description: Friendly name of the device. Stored in Entity Registry. description: type: string description: Description of the device. Stored in Entity Registry. attributes: type: object additionalProperties: type: string description: Key-value attributes for this end device. Typically used for organizing end devices or for storing integration-specific data. Stored in Entity Registry. version_ids: $ref: '#/definitions/v3EndDeviceVersionIdentifiers' description: Version Identifiers. Stored in Entity Registry, Network Server and Application Server. service_profile_id: type: string description: Default service profile. Stored in Entity Registry. network_server_address: type: string description: 'The address of the Network Server where this device is supposed to be registered. Stored in Entity Registry and Join Server. The typical format of the address is "host:port". If the port is omitted, the normal port inference (with DNS lookup, otherwise defaults) is used. The connection shall be established with transport layer security (TLS). Custom certificate authorities may be configured out-of-band.' network_server_kek_label: type: string description: 'The KEK label of the Network Server to use for wrapping network session keys. Stored in Join Server.' application_server_address: type: string description: 'The address of the Application Server where this device is supposed to be registered. Stored in Entity Registry and Join Server. The typical format of the address is "host:port". If the port is omitted, the normal port inference (with DNS lookup, otherwise defaults) is used. The connection shall be established with transport layer security (TLS). Custom certificate authorities may be configured out-of-band.' application_server_kek_label: type: string description: 'The KEK label of the Application Server to use for wrapping the application session key. Stored in Join Server.' application_server_id: type: string description: 'The AS-ID of the Application Server to use. Stored in Join Server.' join_server_address: type: string description: 'The address of the Join Server where this device is supposed to be registered. Stored in Entity Registry. The typical format of the address is "host:port". If the port is omitted, the normal port inference (with DNS lookup, otherwise defaults) is used. The connection shall be established with transport layer security (TLS). Custom certificate authorities may be configured out-of-band.' locations: type: object additionalProperties: $ref: '#/definitions/lorawanv3Location' description: Location of the device. Stored in Entity Registry. picture: $ref: '#/definitions/v3Picture' description: Stored in Entity Registry. supports_class_b: type: boolean description: 'Whether the device supports class B. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' supports_class_c: type: boolean description: 'Whether the device supports class C. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' lorawan_version: $ref: '#/definitions/v3MACVersion' description: 'LoRaWAN MAC version. Stored in Network Server. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' lorawan_phy_version: $ref: '#/definitions/v3PHYVersion' description: 'LoRaWAN PHY version. Stored in Network Server. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' frequency_plan_id: type: string description: 'ID of the frequency plan used by this device. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' min_frequency: type: string format: uint64 description: 'Minimum frequency the device is capable of using (Hz). Stored in Network Server. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' max_frequency: type: string format: uint64 description: 'Maximum frequency the device is capable of using (Hz). Stored in Network Server. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' supports_join: type: boolean description: 'The device supports join (it''s OTAA). Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' resets_join_nonces: type: boolean description: 'Whether the device resets the join and dev nonces (not LoRaWAN compliant). Stored in Join Server. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' root_keys: $ref: '#/definitions/v3RootKeys' description: Device root keys. Stored in Join Server. net_id: type: string format: string example: '000013' description: Home NetID. Stored in Join Server. mac_settings: $ref: '#/definitions/v3MACSettings' description: 'Settings for how the Network Server handles MAC layer for this device. Stored in Network Server. Mutually exclusive with MAC settings profile.' mac_state: $ref: '#/definitions/v3MACState' description: MAC state of the device. Stored in Network Server. pending_mac_state: $ref: '#/definitions/v3MACState' description: Pending MAC state of the device. Stored in Network Server. session: $ref: '#/definitions/v3Session' description: Current session of the device. Stored in Network Server and Application Server. pending_session: $ref: '#/definitions/v3Session' description: Pending session. Stored in Network Server and Application Server until RekeyInd is received. last_dev_nonce: type: integer format: int64 description: 'Last DevNonce used. This field is only used for devices using LoRaWAN version 1.1 and later. Stored in Join Server.' used_dev_nonces: type: array items: type: integer format: int64 description: 'Used DevNonces sorted in ascending order. This field is only used for devices using LoRaWAN versions preceding 1.1. Stored in Join Server.' last_join_nonce: type: integer format: int64 description: 'Last JoinNonce/AppNonce(for devices using LoRaWAN versions preceding 1.1) used. Stored in Join Server.' last_rj_count_0: type: integer format: int64 description: 'Last Rejoin counter value used (type 0/2). Stored in Join Server.' last_rj_count_1: type: integer format: int64 description: 'Last Rejoin counter value used (type 1). Stored in Join Server.' last_dev_status_received_at: type: string format: date-time description: 'Time when last DevStatus MAC command was received. Stored in Network Server.' power_state: $ref: '#/definitions/v3PowerState' description: 'The power state of the device; whether it is battery-powered or connected to an external power source. Received via the DevStatus MAC command at status_received_at. Stored in Network Server.' battery_percentage: type: number format: float description: 'Latest-known battery percentage of the device. Received via the DevStatus MAC command at last_dev_status_received_at or earlier. Stored in Network Server.' downlink_margin: type: integer format: int32 description: 'Demodulation signal-to-noise ratio (dB). Received via the DevStatus MAC command at last_dev_status_received_at. Stored in Network Server.' queued_application_downlinks: type: array items: type: object $ref: '#/definitions/v3ApplicationDownlink' description: 'Queued Application downlink messages. Stored in Application Server, which sets them on the Network Server. This field is deprecated and is always set equal to session.queued_application_downlinks.' formatters: $ref: '#/definitions/v3MessagePayloadFormatters' description: 'The payload formatters for this end device. Stored in Application Server. Copied on creation from template identified by version_ids.' provisioner_id: type: string description: ID of the provisioner. Stored in Join Server. provisioning_data: type: object description: Vendor-specific provisioning data. Stored in Join Server. multicast: type: boolean description: Indicates whether this device represents a multicast group. claim_authentication_code: $ref: '#/definitions/v3EndDeviceAuthenticationCode' description: 'Authentication code to claim ownership of the end device. From TTS v3.21.0 this field is stored in the Identity Server. For TTS versions < 3.21.0, this field is stored in the Join Server. The value stored on the Identity Server takes precedence.' skip_payload_crypto: type: boolean description: 'Skip decryption of uplink payloads and encryption of downlink payloads. This field is deprecated, use skip_payload_crypto_override instead.' skip_payload_crypto_override: type: boolean description: 'Skip decryption of uplink payloads and encryption of downlink payloads. This field overrides the application-level setting.' activated_at: type: string format: date-time description: 'Timestamp when the device has been activated. Stored in the Entity Registry. This field is set by the Application Server when an end device sends its first uplink. The Application Server will use the field in order to avoid repeated calls to the Entity Registry. The field cannot be unset once set.' last_seen_at: type: string format: date-time description: 'Timestamp when a device uplink has been last observed. This field is set by the Application Server and stored in the Identity Server.' serial_number: type: string lora_alliance_profile_ids: $ref: '#/definitions/v3LoRaAllianceProfileIdentifiers' mac_settings_profile_ids: $ref: '#/definitions/v3MACSettingsProfileIdentifiers' description: 'MAC settings profile identifiers. Mutually exclusive with MAC settings.' description: 'Defines an End Device registration and its state on the network. The persistence of the EndDevice is divided between the Network Server, Application Server and Join Server. SDKs are responsible for combining (if desired) the three.' v3EndDeviceRegistryListBody: type: object properties: application_ids: type: object field_mask: type: string description: 'The names of the end device fields that should be returned. See the API reference for which fields can be returned by the different services.' order: type: string description: 'Order the results by this field path (must be present in the field mask). Default ordering is by ID. Prepend with a minus (-) to reverse the order.' limit: type: integer format: int64 description: Limit the number of results per page. page: type: integer format: int64 description: Page number for pagination. 0 is interpreted as 1. filters: type: array items: type: object $ref: '#/definitions/v3ListEndDevicesRequestFilter' v3EndDeviceRegistryUpdateBody: type: object properties: end_device: type: object properties: ids: type: object properties: application_ids: type: object dev_eui: type: string format: string example: 70B3D57ED000ABCD description: The LoRaWAN DevEUI. join_eui: type: string format: string example: 70B3D57ED000ABCD description: The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices). dev_addr: type: string format: string example: 2600ABCD description: The LoRaWAN DevAddr. created_at: type: string format: date-time updated_at: type: string format: date-time name: type: string description: Friendly name of the device. Stored in Entity Registry. description: type: string description: Description of the device. Stored in Entity Registry. attributes: type: object additionalProperties: type: string description: Key-value attributes for this end device. Typically used for organizing end devices or for storing integration-specific data. Stored in Entity Registry. version_ids: $ref: '#/definitions/v3EndDeviceVersionIdentifiers' description: Version Identifiers. Stored in Entity Registry, Network Server and Application Server. service_profile_id: type: string description: Default service profile. Stored in Entity Registry. network_server_address: type: string description: 'The address of the Network Server where this device is supposed to be registered. Stored in Entity Registry and Join Server. The typical format of the address is "host:port". If the port is omitted, the normal port inference (with DNS lookup, otherwise defaults) is used. The connection shall be established with transport layer security (TLS). Custom certificate authorities may be configured out-of-band.' network_server_kek_label: type: string description: 'The KEK label of the Network Server to use for wrapping network session keys. Stored in Join Server.' application_server_address: type: string description: 'The address of the Application Server where this device is supposed to be registered. Stored in Entity Registry and Join Server. The typical format of the address is "host:port". If the port is omitted, the normal port inference (with DNS lookup, otherwise defaults) is used. The connection shall be established with transport layer security (TLS). Custom certificate authorities may be configured out-of-band.' application_server_kek_label: type: string description: 'The KEK label of the Application Server to use for wrapping the application session key. Stored in Join Server.' application_server_id: type: string description: 'The AS-ID of the Application Server to use. Stored in Join Server.' join_server_address: type: string description: 'The address of the Join Server where this device is supposed to be registered. Stored in Entity Registry. The typical format of the address is "host:port". If the port is omitted, the normal port inference (with DNS lookup, otherwise defaults) is used. The connection shall be established with transport layer security (TLS). Custom certificate authorities may be configured out-of-band.' locations: type: object additionalProperties: $ref: '#/definitions/lorawanv3Location' description: Location of the device. Stored in Entity Registry. picture: $ref: '#/definitions/v3Picture' description: Stored in Entity Registry. supports_class_b: type: boolean description: 'Whether the device supports class B. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' supports_class_c: type: boolean description: 'Whether the device supports class C. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' lorawan_version: $ref: '#/definitions/v3MACVersion' description: 'LoRaWAN MAC version. Stored in Network Server. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' lorawan_phy_version: $ref: '#/definitions/v3PHYVersion' description: 'LoRaWAN PHY version. Stored in Network Server. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' frequency_plan_id: type: string description: 'ID of the frequency plan used by this device. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' min_frequency: type: string format: uint64 description: 'Minimum frequency the device is capable of using (Hz). Stored in Network Server. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' max_frequency: type: string format: uint64 description: 'Maximum frequency the device is capable of using (Hz). Stored in Network Server. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' supports_join: type: boolean description: 'The device supports join (it''s OTAA). Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' resets_join_nonces: type: boolean description: 'Whether the device resets the join and dev nonces (not LoRaWAN compliant). Stored in Join Server. Copied on creation from template identified by version_ids, if any or from the home Network Server device profile, if any.' root_keys: $ref: '#/definitions/v3RootKeys' description: Device root keys. Stored in Join Server. net_id: type: string format: string example: '000013' description: Home NetID. Stored in Join Server. mac_settings: $ref: '#/definitions/v3MACSettings' description: 'Settings for how the Network Server handles MAC layer for this device. Stored in Network Server. Mutually exclusive with MAC settings profile.' mac_state: $ref: '#/definitions/v3MACState' description: MAC state of the device. Stored in Network Server. pending_mac_state: $ref: '#/definitions/v3MACState' description: Pending MAC state of the device. Stored in Network Server. session: $ref: '#/definitions/v3Session' description: Current session of the device. Stored in Network Server and Application Server. pending_session: $ref: '#/definitions/v3Session' description: Pending session. Stored in Network Server and Application Server until RekeyInd is received. last_dev_nonce: type: integer format: int64 description: 'Last DevNonce used. This field is only used for devices using LoRaWAN version 1.1 and later. Stored in Join Server.' used_dev_nonces: type: array items: type: integer format: int64 description: 'Used DevNonces sorted in ascending order. This field is only used for devices using LoRaWAN versions preceding 1.1. Stored in Join Server.' last_join_nonce: type: integer format: int64 description: 'Last JoinNonce/AppNonce(for devices using LoRaWAN versions preceding 1.1) used. Stored in Join Server.' last_rj_count_0: type: integer format: int64 description: 'Last Rejoin counter value used (type 0/2). Stored in Join Server.' last_rj_count_1: type: integer format: int64 description: 'Last Rejoin counter value used (type 1). Stored in Join Server.' last_dev_status_received_at: type: string format: date-time description: 'Time when last DevStatus MAC command was received. Stored in Network Server.' power_state: $ref: '#/definitions/v3PowerState' description: 'The power state of the device; whether it is battery-powered or connected to an external power source. Received via the DevStatus MAC command at status_received_at. Stored in Network Server.' battery_percentage: type: number format: float description: 'Latest-known battery percentage of the device. Received via the DevStatus MAC command at last_dev_status_received_at or earlier. Stored in Network Server.' downlink_margin: type: integer format: int32 description: 'Demodulation signal-to-noise ratio (dB). Received via the DevStatus MAC command at last_dev_status_received_at. Stored in Network Server.' queued_application_downlinks: type: array items: type: object $ref: '#/definitions/v3ApplicationDownlink' description: 'Queued Application downlink messages. Stored in Application Server, which sets them on the Network Server. This field is deprecated and is always set equal to session.queued_application_downlinks.' formatters: $ref: '#/definitions/v3MessagePayloadFormatters' description: 'The payload formatters for this end device. Stored in Application Server. Copied on creation from template identified by version_ids.' provisioner_id: type: string description: ID of the provisioner. Stored in Join Server. provisioning_data: type: object description: Vendor-specific provisioning data. Stored in Join Server. multicast: type: boolean description: Indicates whether this device represents a multicast group. claim_authentication_code: $ref: '#/definitions/v3EndDeviceAuthenticationCode' description: 'Authentication code to claim ownership of the end device. From TTS v3.21.0 this field is stored in the Identity Server. For TTS versions < 3.21.0, this field is stored in the Join Server. The value stored on the Identity Server takes precedence.' skip_payload_crypto: type: boolean description: 'Skip decryption of uplink payloads and encryption of downlink payloads. This field is deprecated, use skip_payload_crypto_override instead.' skip_payload_crypto_override: type: boolean description: 'Skip decryption of uplink payloads and encryption of downlink payloads. This field overrides the application-level setting.' activated_at: type: string format: date-time description: 'Timestamp when the device has been activated. Stored in the Entity Registry. This field is set by the Application Server when an end device sends its first uplink. The Application Server will use the field in order to avoid repeated calls to the Entity Registry. The field cannot be unset once set.' last_seen_at: type: string format: date-time description: 'Timestamp when a device uplink has been last observed. This field is set by the Application Server and stored in the Identity Server.' serial_number: type: string lora_alliance_profile_ids: $ref: '#/definitions/v3LoRaAllianceProfileIdentifiers' mac_settings_profile_ids: $ref: '#/definitions/v3MACSettingsProfileIdentifiers' description: 'MAC settings profile identifiers. Mutually exclusive with MAC settings.' description: 'Defines an End Device registration and its state on the network. The persistence of the EndDevice is divided between the Network Server, Application Server and Join Server. SDKs are responsible for combining (if desired) the three.' field_mask: type: string description: 'The names of the end device fields that should be updated. See the API reference for which fields can be set on the different services.' v3EndDeviceTemplate: type: object properties: end_device: $ref: '#/definitions/v3EndDevice' field_mask: type: string mapping_key: type: string v3EndDeviceTemplateFormat: type: object properties: name: type: string description: type: string file_extensions: type: array items: type: string v3EndDeviceTemplateFormats: type: object properties: formats: type: object additionalProperties: $ref: '#/definitions/v3EndDeviceTemplateFormat' v3EndDeviceVersionIdentifiers: type: object properties: brand_id: type: string model_id: type: string hardware_version: type: string firmware_version: type: string band_id: type: string description: Identifies an end device model with version information. v3EndDevices: type: object properties: end_devices: type: array items: type: object $ref: '#/definitions/v3EndDevice' v3ErrorDetails: type: object properties: namespace: type: string description: Namespace of the error (typically the package name in The Things Stack). name: type: string description: Name of the error. message_format: type: string description: 'The default (fallback) message format that should be used for the error. This is also used if the client does not have a translation for the error.' attributes: type: object description: 'Attributes that should be filled into the message format. Any extra attributes can be displayed as error details.' correlation_id: type: string description: 'The correlation ID of the error can be used to correlate the error to stack traces the network may (or may not) store about recent errors.' cause: $ref: '#/definitions/v3ErrorDetails' description: The error that caused this error. code: type: integer format: int64 description: The status code of the error. details: type: array items: type: object $ref: '#/definitions/protobufAny' description: The details of the error. description: 'Error details that are communicated over gRPC (and HTTP) APIs. The messages (for translation) are stored as "error::".' v3FCtrl: type: object properties: adr: type: boolean adr_ack_req: type: boolean description: Only on uplink. ack: type: boolean f_pending: type: boolean description: Only on downlink. class_b: type: boolean description: Only on uplink. v3FHDR: type: object properties: dev_addr: type: string format: string example: 2600ABCD f_ctrl: $ref: '#/definitions/v3FCtrl' f_cnt: type: integer format: int64 f_opts: type: string format: byte v3FSKDataRate: type: object properties: bit_rate: type: integer format: int64 description: Bit rate (bps). v3FrequencyValue: type: object properties: value: type: string format: uint64 v3GenerateEndDeviceQRCodeRequest: type: object properties: format_id: type: string description: QR code format identifier. Enumerate available formats with rpc ListFormats in the EndDeviceQRCodeGenerator service. end_device: $ref: '#/definitions/v3EndDevice' description: End device to use as input to generate the QR code. image: $ref: '#/definitions/GenerateEndDeviceQRCodeRequestImage' description: If set, the server will render the QR code image according to these settings. v3GenerateQRCodeResponse: type: object properties: text: type: string description: Text representation of the QR code contents. image: $ref: '#/definitions/v3Picture' description: QR code in PNG format, if requested. v3GetClaimStatusResponse: type: object properties: end_device_ids: $ref: '#/definitions/v3EndDeviceIdentifiers' home_net_id: type: string format: string example: '000013' home_ns_id: type: string format: string example: 70B3D57ED000ABCD vendor_specific: $ref: '#/definitions/GetClaimStatusResponseVendorSpecific' v3GetInfoByJoinEUIRequest: type: object properties: join_eui: type: string format: string example: 70B3D57ED000ABCD v3GetInfoByJoinEUIResponse: type: object properties: join_eui: type: string format: string example: 70B3D57ED000ABCD supports_claiming: type: boolean description: If set, this Join EUI is available for claiming on one of the configured Join Servers. v3GetInfoByJoinEUIsRequest: type: object properties: requests: type: array items: type: object $ref: '#/definitions/v3GetInfoByJoinEUIRequest' v3GetInfoByJoinEUIsResponse: type: object properties: infos: type: array items: type: object $ref: '#/definitions/v3GetInfoByJoinEUIResponse' v3JoinAcceptPayload: type: object properties: encrypted: type: string format: byte join_nonce: type: string format: string example: ABCDEF net_id: type: string format: string example: '000013' dev_addr: type: string format: string example: 2600ABCD dl_settings: $ref: '#/definitions/v3DLSettings' rx_delay: $ref: '#/definitions/v3RxDelay' cf_list: $ref: '#/definitions/v3CFList' v3JoinRequestPayload: type: object properties: join_eui: type: string format: string example: 70B3D57ED000ABCD dev_eui: type: string format: string example: 70B3D57ED000ABCD dev_nonce: type: string format: string example: ABCD v3KeyEnvelope: type: object properties: key: type: string format: string example: 0123456789ABCDEF0123456789ABCDEF description: The unencrypted AES key. kek_label: type: string description: The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key. encrypted_key: type: string format: byte v3KeyProvisioning: type: string enum: - KEY_PROVISIONING_UNKNOWN - KEY_PROVISIONING_CUSTOM - KEY_PROVISIONING_JOIN_SERVER - KEY_PROVISIONING_MANIFEST default: KEY_PROVISIONING_UNKNOWN description: " - KEY_PROVISIONING_UNKNOWN: Unknown Key Provisioning.\n - KEY_PROVISIONING_CUSTOM: Custom Key Provisioning.\n\ \ - KEY_PROVISIONING_JOIN_SERVER: Key Provisioning from the Global Join Server.\n - KEY_PROVISIONING_MANIFEST: Key Provisioning\ \ from Manifest." v3KeySecurity: type: string enum: - KEY_SECURITY_UNKNOWN - KEY_SECURITY_NONE - KEY_SECURITY_READ_PROTECTED - KEY_SECURITY_SECURE_ELEMENT default: KEY_SECURITY_UNKNOWN description: " - KEY_SECURITY_UNKNOWN: Unknown key security.\n - KEY_SECURITY_NONE: No key security.\n - KEY_SECURITY_READ_PROTECTED:\ \ Read Protected key security.\n - KEY_SECURITY_SECURE_ELEMENT: Key security using the Security Element." v3LRFHSSDataRate: type: object properties: modulation_type: type: integer format: int64 operating_channel_width: type: integer format: int64 description: Operating Channel Width (Hz). coding_rate: type: string v3ListEndDeviceBrandsResponse: type: object properties: brands: type: array items: type: object $ref: '#/definitions/v3EndDeviceBrand' v3ListEndDeviceModelsResponse: type: object properties: models: type: array items: type: object $ref: '#/definitions/v3EndDeviceModel' v3ListEndDevicesRequestFilter: type: object properties: updated_since: type: string format: date-time description: Filter end devices by fields. v3LoRaAllianceProfileIdentifiers: type: object properties: vendor_id: type: integer format: int64 description: VendorID managed by the LoRa Alliance, as defined in TR005. vendor_profile_id: type: integer format: int64 description: ID of the LoRaWAN end device profile assigned by the vendor. v3LoRaDataRate: type: object properties: bandwidth: type: integer format: int64 description: Bandwidth (Hz). spreading_factor: type: integer format: int64 coding_rate: type: string v3LocationSource: type: string enum: - SOURCE_UNKNOWN - SOURCE_GPS - SOURCE_REGISTRY - SOURCE_IP_GEOLOCATION - SOURCE_WIFI_RSSI_GEOLOCATION - SOURCE_BT_RSSI_GEOLOCATION - SOURCE_LORA_RSSI_GEOLOCATION - SOURCE_LORA_TDOA_GEOLOCATION - SOURCE_COMBINED_GEOLOCATION default: SOURCE_UNKNOWN description: " - SOURCE_UNKNOWN: The source of the location is not known or not set.\n - SOURCE_GPS: The location is determined\ \ by GPS.\n - SOURCE_REGISTRY: The location is set in and updated from a registry.\n - SOURCE_IP_GEOLOCATION: The location\ \ is estimated with IP geolocation.\n - SOURCE_WIFI_RSSI_GEOLOCATION: The location is estimated with WiFi RSSI geolocation.\n\ \ - SOURCE_BT_RSSI_GEOLOCATION: The location is estimated with BT/BLE RSSI geolocation.\n - SOURCE_LORA_RSSI_GEOLOCATION:\ \ The location is estimated with LoRa RSSI geolocation.\n - SOURCE_LORA_TDOA_GEOLOCATION: The location is estimated\ \ with LoRa TDOA geolocation.\n - SOURCE_COMBINED_GEOLOCATION: The location is estimated by a combination of geolocation\ \ sources.\n\nMore estimation methods can be added." v3MACCommand: type: object properties: cid: $ref: '#/definitions/v3MACCommandIdentifier' raw_payload: type: string format: byte reset_ind: $ref: '#/definitions/MACCommandResetInd' reset_conf: $ref: '#/definitions/MACCommandResetConf' link_check_ans: $ref: '#/definitions/MACCommandLinkCheckAns' link_adr_req: $ref: '#/definitions/MACCommandLinkADRReq' link_adr_ans: $ref: '#/definitions/MACCommandLinkADRAns' duty_cycle_req: $ref: '#/definitions/MACCommandDutyCycleReq' rx_param_setup_req: $ref: '#/definitions/MACCommandRxParamSetupReq' rx_param_setup_ans: $ref: '#/definitions/MACCommandRxParamSetupAns' dev_status_ans: $ref: '#/definitions/MACCommandDevStatusAns' new_channel_req: $ref: '#/definitions/MACCommandNewChannelReq' new_channel_ans: $ref: '#/definitions/MACCommandNewChannelAns' dl_channel_req: $ref: '#/definitions/MACCommandDLChannelReq' dl_channel_ans: $ref: '#/definitions/MACCommandDLChannelAns' rx_timing_setup_req: $ref: '#/definitions/MACCommandRxTimingSetupReq' tx_param_setup_req: $ref: '#/definitions/MACCommandTxParamSetupReq' rekey_ind: $ref: '#/definitions/MACCommandRekeyInd' rekey_conf: $ref: '#/definitions/MACCommandRekeyConf' adr_param_setup_req: $ref: '#/definitions/MACCommandADRParamSetupReq' device_time_ans: $ref: '#/definitions/MACCommandDeviceTimeAns' force_rejoin_req: $ref: '#/definitions/MACCommandForceRejoinReq' rejoin_param_setup_req: $ref: '#/definitions/MACCommandRejoinParamSetupReq' rejoin_param_setup_ans: $ref: '#/definitions/MACCommandRejoinParamSetupAns' ping_slot_info_req: $ref: '#/definitions/MACCommandPingSlotInfoReq' ping_slot_channel_req: $ref: '#/definitions/MACCommandPingSlotChannelReq' ping_slot_channel_ans: $ref: '#/definitions/MACCommandPingSlotChannelAns' beacon_timing_ans: $ref: '#/definitions/MACCommandBeaconTimingAns' beacon_freq_req: $ref: '#/definitions/MACCommandBeaconFreqReq' beacon_freq_ans: $ref: '#/definitions/MACCommandBeaconFreqAns' device_mode_ind: $ref: '#/definitions/MACCommandDeviceModeInd' device_mode_conf: $ref: '#/definitions/MACCommandDeviceModeConf' relay_conf_req: $ref: '#/definitions/MACCommandRelayConfReq' relay_conf_ans: $ref: '#/definitions/MACCommandRelayConfAns' relay_end_device_conf_req: $ref: '#/definitions/MACCommandRelayEndDeviceConfReq' relay_end_device_conf_ans: $ref: '#/definitions/MACCommandRelayEndDeviceConfAns' relay_update_uplink_list_req: $ref: '#/definitions/MACCommandRelayUpdateUplinkListReq' relay_update_uplink_list_ans: $ref: '#/definitions/MACCommandRelayUpdateUplinkListAns' relay_ctrl_uplink_list_req: $ref: '#/definitions/MACCommandRelayCtrlUplinkListReq' relay_ctrl_uplink_list_ans: $ref: '#/definitions/MACCommandRelayCtrlUplinkListAns' relay_configure_fwd_limit_req: $ref: '#/definitions/MACCommandRelayConfigureFwdLimitReq' relay_configure_fwd_limit_ans: $ref: '#/definitions/MACCommandRelayConfigureFwdLimitAns' relay_notify_new_end_device_req: $ref: '#/definitions/MACCommandRelayNotifyNewEndDeviceReq' v3MACCommandIdentifier: type: string enum: - CID_RFU_0 - CID_RESET - CID_LINK_CHECK - CID_LINK_ADR - CID_DUTY_CYCLE - CID_RX_PARAM_SETUP - CID_DEV_STATUS - CID_NEW_CHANNEL - CID_RX_TIMING_SETUP - CID_TX_PARAM_SETUP - CID_DL_CHANNEL - CID_REKEY - CID_ADR_PARAM_SETUP - CID_DEVICE_TIME - CID_FORCE_REJOIN - CID_REJOIN_PARAM_SETUP - CID_PING_SLOT_INFO - CID_PING_SLOT_CHANNEL - CID_BEACON_TIMING - CID_BEACON_FREQ - CID_DEVICE_MODE - CID_RELAY_CONF - CID_RELAY_END_DEVICE_CONF - CID_RELAY_FILTER_LIST - CID_RELAY_UPDATE_UPLINK_LIST - CID_RELAY_CTRL_UPLINK_LIST - CID_RELAY_CONFIGURE_FWD_LIMIT - CID_RELAY_NOTIFY_NEW_END_DEVICE default: CID_RFU_0 title: '- CID_BEACON_TIMING: Deprecated' v3MACParameters: type: object properties: max_eirp: type: number format: float description: Maximum EIRP (dBm). adr_data_rate_index: $ref: '#/definitions/v3DataRateIndex' description: 'ADR: data rate index to use.' adr_tx_power_index: type: integer format: int64 description: 'ADR: transmission power index to use.' adr_nb_trans: type: integer format: int64 description: 'ADR: number of retransmissions.' adr_ack_limit: type: integer format: int64 description: 'ADR: number of messages to wait before setting ADRAckReq. This field is deprecated, use adr_ack_limit_exponent instead.' adr_ack_delay: type: integer format: int64 description: 'ADR: number of messages to wait after setting ADRAckReq and before changing TxPower or DataRate. This field is deprecated, use adr_ack_delay_exponent instead.' rx1_delay: $ref: '#/definitions/v3RxDelay' description: Rx1 delay (Rx2 delay is Rx1 delay + 1 second). rx1_data_rate_offset: $ref: '#/definitions/v3DataRateOffset' description: Data rate offset for Rx1. rx2_data_rate_index: $ref: '#/definitions/v3DataRateIndex' description: Data rate index for Rx2. rx2_frequency: type: string format: uint64 description: Frequency for Rx2 (Hz). max_duty_cycle: $ref: '#/definitions/v3AggregatedDutyCycle' description: Maximum uplink duty cycle (of all channels). rejoin_time_periodicity: $ref: '#/definitions/v3RejoinTimeExponent' description: Time within which a rejoin-request must be sent. rejoin_count_periodicity: $ref: '#/definitions/v3RejoinCountExponent' description: Message count within which a rejoin-request must be sent. ping_slot_frequency: type: string format: uint64 description: Frequency of the class B ping slot (Hz). ping_slot_data_rate_index: $ref: '#/definitions/v3DataRateIndex' description: 'Data rate index of the class B ping slot. This field is deprecated, use ping_slot_data_rate_index_value instead.' beacon_frequency: type: string format: uint64 description: Frequency of the class B beacon (Hz). channels: type: array items: type: object $ref: '#/definitions/v3MACParametersChannel' description: Configured uplink channels and optionally Rx1 frequency. uplink_dwell_time: $ref: '#/definitions/lorawanv3BoolValue' description: 'Whether uplink dwell time is set (400ms). If unset, then the value is either unknown or irrelevant(Network Server cannot modify it).' downlink_dwell_time: $ref: '#/definitions/lorawanv3BoolValue' description: 'Whether downlink dwell time is set (400ms). If unset, then the value is either unknown or irrelevant(Network Server cannot modify it).' adr_ack_limit_exponent: $ref: '#/definitions/v3ADRAckLimitExponentValue' description: 'ADR: number of messages to wait before setting ADRAckReq.' adr_ack_delay_exponent: $ref: '#/definitions/v3ADRAckDelayExponentValue' description: 'ADR: number of messages to wait after setting ADRAckReq and before changing TxPower or DataRate.' ping_slot_data_rate_index_value: $ref: '#/definitions/v3DataRateIndexValue' description: Data rate index of the class B ping slot. relay: $ref: '#/definitions/lorawanv3RelayParameters' description: Relay parameters. description: 'MACParameters represent the parameters of the device''s MAC layer (active or desired). This is used internally by the Network Server.' v3MACParametersChannel: type: object properties: uplink_frequency: type: string format: uint64 description: Uplink frequency of the channel (Hz). downlink_frequency: type: string format: uint64 description: Downlink frequency of the channel (Hz). min_data_rate_index: $ref: '#/definitions/v3DataRateIndex' description: Index of the minimum data rate for uplink. max_data_rate_index: $ref: '#/definitions/v3DataRateIndex' description: Index of the maximum data rate for uplink. enable_uplink: type: boolean description: Channel can be used by device for uplink. v3MACSettings: type: object properties: class_b_timeout: type: string description: 'Maximum delay for the device to answer a MAC request or a confirmed downlink frame. If unset, the default value from Network Server configuration will be used.' ping_slot_periodicity: $ref: '#/definitions/v3PingSlotPeriodValue' description: 'Periodicity of the class B ping slot. If unset, the default value from Network Server configuration will be used.' ping_slot_data_rate_index: $ref: '#/definitions/v3DataRateIndexValue' description: 'Data rate index of the class B ping slot. If unset, the default value from Network Server configuration will be used.' ping_slot_frequency: $ref: '#/definitions/v3ZeroableFrequencyValue' description: 'Frequency of the class B ping slot (Hz). If unset, the default value from Network Server configuration will be used.' beacon_frequency: $ref: '#/definitions/v3ZeroableFrequencyValue' description: 'Frequency of the class B beacon (Hz). If unset, the default value from Network Server configuration will be used.' class_c_timeout: type: string description: 'Maximum delay for the device to answer a MAC request or a confirmed downlink frame. If unset, the default value from Network Server configuration will be used.' rx1_delay: $ref: '#/definitions/v3RxDelayValue' description: 'Class A Rx1 delay. If unset, the default value from Network Server configuration or regional parameters specification will be used.' rx1_data_rate_offset: $ref: '#/definitions/v3DataRateOffsetValue' description: 'Rx1 data rate offset. If unset, the default value from Network Server configuration will be used.' rx2_data_rate_index: $ref: '#/definitions/v3DataRateIndexValue' description: 'Data rate index for Rx2. If unset, the default value from Network Server configuration or regional parameters specification will be used.' rx2_frequency: $ref: '#/definitions/v3FrequencyValue' description: 'Frequency for Rx2 (Hz). If unset, the default value from Network Server configuration or regional parameters specification will be used.' factory_preset_frequencies: type: array items: type: string format: uint64 description: 'List of factory-preset frequencies. If unset, the default value from Network Server configuration or regional parameters specification will be used.' max_duty_cycle: $ref: '#/definitions/v3AggregatedDutyCycleValue' description: Maximum uplink duty cycle (of all channels). supports_32_bit_f_cnt: $ref: '#/definitions/lorawanv3BoolValue' description: 'Whether the device supports 32-bit frame counters. If unset, the default value from Network Server configuration will be used.' use_adr: $ref: '#/definitions/lorawanv3BoolValue' description: 'Whether the Network Server should use ADR for the device. This field is deprecated, use adr_settings instead.' adr_margin: type: number format: float description: 'The ADR margin (dB) tells the network server how much margin it should add in ADR requests. A bigger margin is less efficient, but gives a better chance of successful reception. This field is deprecated, use adr_settings.dynamic.margin instead.' resets_f_cnt: $ref: '#/definitions/lorawanv3BoolValue' description: 'Whether the device resets the frame counters (not LoRaWAN compliant). If unset, the default value from Network Server configuration will be used.' status_time_periodicity: type: string description: 'The interval after which a DevStatusReq MACCommand shall be sent. If unset, the default value from Network Server configuration will be used.' status_count_periodicity: type: integer format: int64 description: 'Number of uplink messages after which a DevStatusReq MACCommand shall be sent. If unset, the default value from Network Server configuration will be used.' desired_rx1_delay: $ref: '#/definitions/v3RxDelayValue' description: 'The Rx1 delay Network Server should configure device to use via MAC commands or Join-Accept. If unset, the default value from Network Server configuration or regional parameters specification will be used.' desired_rx1_data_rate_offset: $ref: '#/definitions/v3DataRateOffsetValue' description: 'The Rx1 data rate offset Network Server should configure device to use via MAC commands or Join-Accept. If unset, the default value from Network Server configuration will be used.' desired_rx2_data_rate_index: $ref: '#/definitions/v3DataRateIndexValue' description: 'The Rx2 data rate index Network Server should configure device to use via MAC commands or Join-Accept. If unset, the default value from frequency plan, Network Server configuration or regional parameters specification will be used.' desired_rx2_frequency: $ref: '#/definitions/v3FrequencyValue' description: 'The Rx2 frequency index Network Server should configure device to use via MAC commands. If unset, the default value from frequency plan, Network Server configuration or regional parameters specification will be used.' desired_max_duty_cycle: $ref: '#/definitions/v3AggregatedDutyCycleValue' description: 'The maximum uplink duty cycle (of all channels) Network Server should configure device to use via MAC commands. If unset, the default value from Network Server configuration will be used.' desired_adr_ack_limit_exponent: $ref: '#/definitions/v3ADRAckLimitExponentValue' description: 'The ADR ACK limit Network Server should configure device to use via MAC commands. If unset, the default value from Network Server configuration or regional parameters specification will be used.' desired_adr_ack_delay_exponent: $ref: '#/definitions/v3ADRAckDelayExponentValue' description: 'The ADR ACK delay Network Server should configure device to use via MAC commands. If unset, the default value from Network Server configuration or regional parameters specification will be used.' desired_ping_slot_data_rate_index: $ref: '#/definitions/v3DataRateIndexValue' description: 'The data rate index of the class B ping slot Network Server should configure device to use via MAC commands. If unset, the default value from Network Server configuration will be used.' desired_ping_slot_frequency: $ref: '#/definitions/v3ZeroableFrequencyValue' description: 'The frequency of the class B ping slot (Hz) Network Server should configure device to use via MAC commands. If unset, the default value from Network Server configuration or regional parameters specification will be used.' desired_beacon_frequency: $ref: '#/definitions/v3ZeroableFrequencyValue' description: 'The frequency of the class B beacon (Hz) Network Server should configure device to use via MAC commands. If unset, the default value from Network Server configuration will be used.' desired_max_eirp: $ref: '#/definitions/v3DeviceEIRPValue' description: 'Maximum EIRP (dBm). If unset, the default value from regional parameters specification will be used.' class_b_c_downlink_interval: type: string description: The minimum duration passed before a network-initiated(e.g. Class B or C) downlink following an arbitrary downlink. uplink_dwell_time: $ref: '#/definitions/lorawanv3BoolValue' description: 'Whether uplink dwell time is set (400ms). If unset, the default value from Network Server configuration or regional parameters specification will be used.' downlink_dwell_time: $ref: '#/definitions/lorawanv3BoolValue' description: 'Whether downlink dwell time is set (400ms). If unset, the default value from Network Server configuration or regional parameters specification will be used.' adr: $ref: '#/definitions/v3ADRSettings' description: 'Adaptive Data Rate settings. If unset, the default value from Network Server configuration or regional parameters specification will be used.' schedule_downlinks: $ref: '#/definitions/lorawanv3BoolValue' description: 'Whether or not downlink messages should be scheduled. This option can be used in order to disable any downlink interaction with the end device. It will affect all types of downlink messages: data and MAC downlinks, and join accepts.' relay: $ref: '#/definitions/v3RelaySettings' description: 'The relay settings the end device is using. If unset, the default value from Network Server configuration or regional parameters specification will be used.' desired_relay: $ref: '#/definitions/v3RelaySettings' description: 'The relay settings the Network Server should configure device to use via MAC commands. If unset, the default value from Network Server configuration or regional parameters specification will be used.' v3MACSettingsProfileIdentifiers: type: object properties: application_ids: $ref: '#/definitions/v3ApplicationIdentifiers' description: Application IDs. profile_id: type: string description: Profile ID. v3MACState: type: object properties: current_parameters: $ref: '#/definitions/v3MACParameters' description: Current LoRaWAN MAC parameters. desired_parameters: $ref: '#/definitions/v3MACParameters' description: Desired LoRaWAN MAC parameters. device_class: $ref: '#/definitions/v3Class' title: 'Currently active LoRaWAN device class - Device class is A by default - If device sets ClassB bit in uplink, this will be set to B - If device sent DeviceModeInd MAC message, this will be set to that value' lorawan_version: $ref: '#/definitions/v3MACVersion' description: LoRaWAN MAC version. last_confirmed_downlink_at: type: string format: date-time description: Time when the last confirmed downlink message or MAC command was scheduled. last_dev_status_f_cnt_up: type: integer format: int64 description: Frame counter value of last uplink containing DevStatusAns. ping_slot_periodicity: $ref: '#/definitions/v3PingSlotPeriodValue' description: Periodicity of the class B ping slot. pending_application_downlink: $ref: '#/definitions/v3ApplicationDownlink' description: A confirmed application downlink, for which an acknowledgment is expected to arrive. queued_responses: type: array items: type: object $ref: '#/definitions/v3MACCommand' description: 'Queued MAC responses. Regenerated on each uplink.' pending_requests: type: array items: type: object $ref: '#/definitions/v3MACCommand' description: 'Pending MAC requests(i.e. sent requests, for which no response has been received yet). Regenerated on each downlink.' queued_join_accept: $ref: '#/definitions/MACStateJoinAccept' description: 'Queued join-accept. Set each time a (re-)join request accept is received from Join Server and removed each time a downlink is scheduled.' pending_join_request: $ref: '#/definitions/v3MACStateJoinRequest' description: 'Pending join request. Set each time a join-accept is scheduled and removed each time an uplink is received from the device.' rx_windows_available: type: boolean description: 'Whether or not Rx windows are expected to be open. Set to true every time an uplink is received. Set to false every time a successful downlink scheduling attempt is made.' recent_uplinks: type: array items: type: object $ref: '#/definitions/v3MACStateUplinkMessage' description: 'Recent data uplink messages sorted by time. The number of messages stored may depend on configuration.' recent_downlinks: type: array items: type: object $ref: '#/definitions/v3MACStateDownlinkMessage' description: 'Recent data downlink messages sorted by time. The number of messages stored may depend on configuration.' last_network_initiated_downlink_at: type: string format: date-time description: Time when the last network-initiated downlink message was scheduled. rejected_adr_data_rate_indexes: type: array items: $ref: '#/definitions/v3DataRateIndex' description: 'ADR Data rate index values rejected by the device. Reset each time `current_parameters.channels` change. Elements are sorted in ascending order.' rejected_adr_tx_power_indexes: type: array items: type: integer format: int64 description: 'ADR TX output power index values rejected by the device. Elements are sorted in ascending order.' rejected_frequencies: type: array items: type: string format: uint64 description: Frequencies rejected by the device. last_downlink_at: type: string format: date-time description: Time when the last downlink message was scheduled. rejected_data_rate_ranges: type: object additionalProperties: $ref: '#/definitions/MACStateDataRateRanges' description: Data rate ranges rejected by the device per frequency. last_adr_change_f_cnt_up: type: integer format: int64 description: Frame counter of uplink, which confirmed the last ADR parameter change. recent_mac_command_identifiers: type: array items: $ref: '#/definitions/v3MACCommandIdentifier' description: 'MAC command identifiers sent by the end device in the last received uplink. The Network Server may choose to store only certain types of MAC command identifiers in the underlying implementation.' pending_relay_downlink: $ref: '#/definitions/v3RelayForwardDownlinkReq' description: 'Pending relay downlink contents. The pending downlink will be scheduled to the relay in either Rx1 or Rx2. The pending downlink will be cleared after the scheduling attempt.' description: 'MACState represents the state of MAC layer of the device. MACState is reset on each join for OTAA or ResetInd for ABP devices. This is used internally by the Network Server.' v3MACStateDownlinkMessage: type: object properties: payload: $ref: '#/definitions/MACStateDownlinkMessageMessage' correlation_ids: type: array items: type: string description: 'A minimal DownlinkMessage definition which is binary compatible with the top level DownlinkMessage message. Used for type safe recent downlink storage.' v3MACStateJoinRequest: type: object properties: downlink_settings: $ref: '#/definitions/v3DLSettings' rx_delay: $ref: '#/definitions/v3RxDelay' cf_list: $ref: '#/definitions/v3CFList' v3MACStateUplinkMessage: type: object properties: payload: $ref: '#/definitions/lorawanv3Message' settings: $ref: '#/definitions/MACStateUplinkMessageTxSettings' rx_metadata: type: array items: type: object $ref: '#/definitions/MACStateUplinkMessageRxMetadata' received_at: type: string format: date-time correlation_ids: type: array items: type: string device_channel_index: type: integer format: int64 description: 'A minimal UplinkMessage definition which is binary compatible with the top level UplinkMessage message. Used for type safe recent uplink storage.' v3MACVersion: type: string enum: - MAC_UNKNOWN - MAC_V1_0 - MAC_V1_0_1 - MAC_V1_0_2 - MAC_V1_1 - MAC_V1_0_3 - MAC_V1_0_4 default: MAC_UNKNOWN v3MType: type: string enum: - JOIN_REQUEST - JOIN_ACCEPT - UNCONFIRMED_UP - UNCONFIRMED_DOWN - CONFIRMED_UP - CONFIRMED_DOWN - REJOIN_REQUEST - PROPRIETARY default: JOIN_REQUEST v3Major: type: string enum: - LORAWAN_R1 default: LORAWAN_R1 v3MessagePayloadDecoder: type: object properties: formatter: $ref: '#/definitions/v3PayloadFormatter' description: Payload formatter type. formatter_parameter: type: string description: Parameter for the formatter, must be set together. codec_id: type: string examples: type: array items: type: object $ref: '#/definitions/v3MessagePayloadDecoderExample' v3MessagePayloadDecoderExample: type: object properties: description: type: string input: $ref: '#/definitions/v3EncodedMessagePayload' output: $ref: '#/definitions/v3DecodedMessagePayload' v3MessagePayloadEncoder: type: object properties: formatter: $ref: '#/definitions/v3PayloadFormatter' description: Payload formatter type. formatter_parameter: type: string description: Parameter for the formatter, must be set together. codec_id: type: string examples: type: array items: type: object $ref: '#/definitions/v3MessagePayloadEncoderExample' v3MessagePayloadEncoderExample: type: object properties: description: type: string input: $ref: '#/definitions/v3DecodedMessagePayload' output: $ref: '#/definitions/v3EncodedMessagePayload' v3MessagePayloadFormatters: type: object properties: up_formatter: $ref: '#/definitions/v3PayloadFormatter' description: Payload formatter for uplink messages, must be set together with its parameter. up_formatter_parameter: type: string description: Parameter for the up_formatter, must be set together. The API enforces a maximum length of 64KB, but the size may be restricted further by deployment configuration. down_formatter: $ref: '#/definitions/v3PayloadFormatter' description: Payload formatter for downlink messages, must be set together with its parameter. down_formatter_parameter: type: string description: Parameter for the down_formatter, must be set together. The API enforces a maximum length of 64KB, but the size may be restricted further by deployment configuration. v3Minor: type: string enum: - MINOR_RFU_0 - MINOR_1 - MINOR_RFU_2 - MINOR_RFU_3 - MINOR_RFU_4 - MINOR_RFU_5 - MINOR_RFU_6 - MINOR_RFU_7 - MINOR_RFU_8 - MINOR_RFU_9 - MINOR_RFU_10 - MINOR_RFU_11 - MINOR_RFU_12 - MINOR_RFU_13 - MINOR_RFU_14 - MINOR_RFU_15 default: MINOR_RFU_0 v3NetworkIdentifiers: type: object properties: net_id: type: string format: string example: '000013' description: LoRa Alliance NetID. ns_id: type: string format: string example: 70B3D57ED000ABCD description: LoRaWAN NSID (EUI-64) that uniquely identifies the Network Server instance. tenant_id: type: string description: Optional tenant identifier for multi-tenant deployments. cluster_id: type: string description: Cluster identifier of the Network Server. cluster_address: type: string description: Cluster address of the Network Server. tenant_address: type: string description: Optional tenant address for multi-tenant deployments. description: Identifies a Network Server. v3PHYVersion: type: string enum: - PHY_UNKNOWN - PHY_V1_0 - TS001_V1_0 - PHY_V1_0_1 - TS001_V1_0_1 - PHY_V1_0_2_REV_A - RP001_V1_0_2 - PHY_V1_0_2_REV_B - RP001_V1_0_2_REV_B - PHY_V1_1_REV_A - RP001_V1_1_REV_A - PHY_V1_1_REV_B - RP001_V1_1_REV_B - PHY_V1_0_3_REV_A - RP001_V1_0_3_REV_A - RP002_V1_0_0 - RP002_V1_0_1 - RP002_V1_0_2 - RP002_V1_0_3 - RP002_V1_0_4 default: PHY_UNKNOWN v3ParseEndDeviceQRCodeRequest: type: object properties: format_id: type: string description: 'QR code format identifier. Enumerate available formats with the rpc `ListFormats`. If this field is not specified, the server will attempt to parse the data with each known format.' qr_code: type: string format: byte description: Raw QR code contents. v3ParseEndDeviceQRCodeResponse: type: object properties: format_id: type: string description: Identifier of the format used to successfully parse the QR code data. end_device_template: $ref: '#/definitions/v3EndDeviceTemplate' v3PayloadFormatter: type: string enum: - FORMATTER_NONE - FORMATTER_REPOSITORY - FORMATTER_GRPC_SERVICE - FORMATTER_JAVASCRIPT - FORMATTER_CAYENNELPP default: FORMATTER_NONE description: " - FORMATTER_NONE: No payload formatter to work with raw payload only.\n - FORMATTER_REPOSITORY: Use payload\ \ formatter for the end device type from a repository.\n - FORMATTER_GRPC_SERVICE: gRPC service payload formatter. The\ \ parameter is the host:port of the service.\n - FORMATTER_JAVASCRIPT: Custom payload formatter that executes Javascript\ \ code. The parameter is a JavaScript filename.\n - FORMATTER_CAYENNELPP: CayenneLPP payload formatter.\n\nMore payload\ \ formatters can be added." v3Picture: type: object properties: embedded: $ref: '#/definitions/PictureEmbedded' description: 'Embedded picture. Omitted if there are external URLs available (in sizes).' sizes: type: object additionalProperties: type: string description: URLs of the picture for different sizes, if available on a CDN. v3PingSlotPeriod: type: string enum: - PING_EVERY_1S - PING_EVERY_2S - PING_EVERY_4S - PING_EVERY_8S - PING_EVERY_16S - PING_EVERY_32S - PING_EVERY_64S - PING_EVERY_128S default: PING_EVERY_1S description: " - PING_EVERY_1S: Every second.\n - PING_EVERY_2S: Every 2 seconds.\n - PING_EVERY_4S: Every 4 seconds.\n\ \ - PING_EVERY_8S: Every 8 seconds.\n - PING_EVERY_16S: Every 16 seconds.\n - PING_EVERY_32S: Every 32 seconds.\n -\ \ PING_EVERY_64S: Every 64 seconds.\n - PING_EVERY_128S: Every 128 seconds." v3PingSlotPeriodValue: type: object properties: value: $ref: '#/definitions/v3PingSlotPeriod' v3PowerState: type: string enum: - POWER_UNKNOWN - POWER_BATTERY - POWER_EXTERNAL default: POWER_UNKNOWN description: Power state of the device. v3QRCodeFormat: type: object properties: name: type: string description: type: string field_mask: type: string description: The entity fields required to generate the QR code. v3QRCodeFormats: type: object properties: formats: type: object additionalProperties: $ref: '#/definitions/v3QRCodeFormat' description: Available formats. The map key is the format identifier. v3RejoinCountExponent: type: string enum: - REJOIN_COUNT_16 - REJOIN_COUNT_32 - REJOIN_COUNT_64 - REJOIN_COUNT_128 - REJOIN_COUNT_256 - REJOIN_COUNT_512 - REJOIN_COUNT_1024 - REJOIN_COUNT_2048 - REJOIN_COUNT_4096 - REJOIN_COUNT_8192 - REJOIN_COUNT_16384 - REJOIN_COUNT_32768 - REJOIN_COUNT_65536 - REJOIN_COUNT_131072 - REJOIN_COUNT_262144 - REJOIN_COUNT_524288 default: REJOIN_COUNT_16 v3RejoinPeriodExponent: type: string enum: - REJOIN_PERIOD_0 - REJOIN_PERIOD_1 - REJOIN_PERIOD_2 - REJOIN_PERIOD_3 - REJOIN_PERIOD_4 - REJOIN_PERIOD_5 - REJOIN_PERIOD_6 - REJOIN_PERIOD_7 default: REJOIN_PERIOD_0 description: " - REJOIN_PERIOD_0: Every 32 to 64 seconds.\n - REJOIN_PERIOD_1: Every 64 to 96 seconds.\n - REJOIN_PERIOD_2:\ \ Every 128 to 160 seconds.\n - REJOIN_PERIOD_3: Every 256 to 288 seconds.\n - REJOIN_PERIOD_4: Every 512 to 544 seconds.\n\ \ - REJOIN_PERIOD_5: Every 1024 to 1056 seconds.\n - REJOIN_PERIOD_6: Every 2048 to 2080 seconds.\n - REJOIN_PERIOD_7:\ \ Every 4096 to 4128 seconds." v3RejoinRequestPayload: type: object properties: rejoin_type: $ref: '#/definitions/v3RejoinRequestType' net_id: type: string format: string example: '000013' join_eui: type: string format: string example: 70B3D57ED000ABCD dev_eui: type: string format: string example: 70B3D57ED000ABCD rejoin_cnt: type: integer format: int64 description: Contains RJCount0 or RJCount1 depending on rejoin_type. v3RejoinRequestType: type: string enum: - CONTEXT - SESSION - KEYS default: CONTEXT description: " - CONTEXT: Resets DevAddr, Session Keys, Frame Counters, Radio Parameters.\n - SESSION: Equivalent to the\ \ initial JoinRequest.\n - KEYS: Resets DevAddr, Session Keys, Frame Counters, while keeping the Radio Parameters." v3RejoinTimeExponent: type: string enum: - REJOIN_TIME_0 - REJOIN_TIME_1 - REJOIN_TIME_2 - REJOIN_TIME_3 - REJOIN_TIME_4 - REJOIN_TIME_5 - REJOIN_TIME_6 - REJOIN_TIME_7 - REJOIN_TIME_8 - REJOIN_TIME_9 - REJOIN_TIME_10 - REJOIN_TIME_11 - REJOIN_TIME_12 - REJOIN_TIME_13 - REJOIN_TIME_14 - REJOIN_TIME_15 default: REJOIN_TIME_0 description: " - REJOIN_TIME_0: Every ~17.1 minutes.\n - REJOIN_TIME_1: Every ~34.1 minutes.\n - REJOIN_TIME_2: Every\ \ ~1.1 hours.\n - REJOIN_TIME_3: Every ~2.3 hours.\n - REJOIN_TIME_4: Every ~4.6 hours.\n - REJOIN_TIME_5: Every ~9.1\ \ hours.\n - REJOIN_TIME_6: Every ~18.2 hours.\n - REJOIN_TIME_7: Every ~1.5 days.\n - REJOIN_TIME_8: Every ~3.0 days.\n\ \ - REJOIN_TIME_9: Every ~6.1 days.\n - REJOIN_TIME_10: Every ~12.1 days.\n - REJOIN_TIME_11: Every ~3.5 weeks.\n -\ \ REJOIN_TIME_12: Every ~1.6 months.\n - REJOIN_TIME_13: Every ~3.2 months.\n - REJOIN_TIME_14: Every ~6.4 months.\n\ \ - REJOIN_TIME_15: Every ~1.1 year." v3RelayCADPeriodicity: type: string enum: - RELAY_CAD_PERIODICITY_1_SECOND - RELAY_CAD_PERIODICITY_500_MILLISECONDS - RELAY_CAD_PERIODICITY_250_MILLISECONDS - RELAY_CAD_PERIODICITY_100_MILLISECONDS - RELAY_CAD_PERIODICITY_50_MILLISECONDS - RELAY_CAD_PERIODICITY_20_MILLISECONDS default: RELAY_CAD_PERIODICITY_1_SECOND title: '- RELAY_CAD_PERIODICITY_20_MILLISECONDS: sic' v3RelayCtrlUplinkListAction: type: string enum: - RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT - RELAY_CTRL_UPLINK_LIST_ACTION_REMOVE_TRUSTED_END_DEVICE default: RELAY_CTRL_UPLINK_LIST_ACTION_READ_W_F_CNT v3RelayEndDeviceAlwaysMode: type: object v3RelayEndDeviceControlledMode: type: object v3RelayEndDeviceDynamicMode: type: object properties: smart_enable_level: $ref: '#/definitions/v3RelaySmartEnableLevel' description: 'The number of consecutive uplinks without a valid downlink before the end device attempts to use the relay mode to transmit messages.' v3RelayForwardDownlinkReq: type: object properties: raw_payload: type: string format: byte v3RelayForwardLimits: type: object properties: bucket_size: $ref: '#/definitions/v3RelayLimitBucketSize' description: 'The multiplier used to compute the total bucket size for the limits. The multiplier is multiplied by the reload rate in order to compute the total bucket size.' reload_rate: type: integer format: int64 description: The number of tokens which are replenished in the bucket every hour. v3RelayLimitBucketSize: type: string enum: - RELAY_LIMIT_BUCKET_SIZE_1 - RELAY_LIMIT_BUCKET_SIZE_2 - RELAY_LIMIT_BUCKET_SIZE_4 - RELAY_LIMIT_BUCKET_SIZE_12 default: RELAY_LIMIT_BUCKET_SIZE_1 title: '- RELAY_LIMIT_BUCKET_SIZE_12: sic' v3RelayResetLimitCounter: type: string enum: - RELAY_RESET_LIMIT_COUNTER_ZERO - RELAY_RESET_LIMIT_COUNTER_RELOAD_RATE - RELAY_RESET_LIMIT_COUNTER_MAX_VALUE - RELAY_RESET_LIMIT_COUNTER_NO_RESET default: RELAY_RESET_LIMIT_COUNTER_ZERO v3RelaySecondChAckOffset: type: string enum: - RELAY_SECOND_CH_ACK_OFFSET_0 - RELAY_SECOND_CH_ACK_OFFSET_200 - RELAY_SECOND_CH_ACK_OFFSET_400 - RELAY_SECOND_CH_ACK_OFFSET_800 - RELAY_SECOND_CH_ACK_OFFSET_1600 - RELAY_SECOND_CH_ACK_OFFSET_3200 default: RELAY_SECOND_CH_ACK_OFFSET_0 title: "- RELAY_SECOND_CH_ACK_OFFSET_0: 0 kHz\n - RELAY_SECOND_CH_ACK_OFFSET_200: 200 kHz\n - RELAY_SECOND_CH_ACK_OFFSET_400:\ \ 400 kHz\n - RELAY_SECOND_CH_ACK_OFFSET_800: 800 kHz\n - RELAY_SECOND_CH_ACK_OFFSET_1600: 1.6 MHz\n - RELAY_SECOND_CH_ACK_OFFSET_3200:\ \ 3.2 MHz" v3RelaySecondChannel: type: object properties: ack_offset: $ref: '#/definitions/v3RelaySecondChAckOffset' description: The frequency (Hz) offset used for the WOR acknowledgement. data_rate_index: $ref: '#/definitions/v3DataRateIndex' description: The data rate index used by the WOR and WOR acknowledgement. frequency: type: string format: uint64 description: The frequency (Hz) used by the wake on radio message. v3RelaySettings: type: object properties: serving: $ref: '#/definitions/v3ServingRelaySettings' served: $ref: '#/definitions/v3ServedRelaySettings' description: 'RelaySettings represent the settings of a relay. This is used internally by the Network Server.' v3RelaySmartEnableLevel: type: string enum: - RELAY_SMART_ENABLE_LEVEL_8 - RELAY_SMART_ENABLE_LEVEL_16 - RELAY_SMART_ENABLE_LEVEL_32 - RELAY_SMART_ENABLE_LEVEL_64 default: RELAY_SMART_ENABLE_LEVEL_8 v3RelayUplinkForwardLimits: type: object properties: bucket_size: $ref: '#/definitions/v3RelayLimitBucketSize' description: 'The multiplier used to compute the total bucket size for the limits. The multiplier is multiplied by the reload rate in order to compute the total bucket size.' reload_rate: type: integer format: int64 description: The number of tokens which are replenished in the bucket every hour. v3RelayUplinkForwardingRule: type: object properties: limits: $ref: '#/definitions/v3RelayUplinkForwardLimits' description: 'Bucket configuration for the served end device. If unset, no individual limits will apply to the end device, but the relay global limitations will apply.' last_w_f_cnt: type: integer format: int64 description: Last wake on radio frame counter used by the served end device. device_id: type: string description: End device identifier of the served end device. session_key_id: type: string format: byte description: Session key ID of the session keys used to derive the root relay session key. v3RootKeys: type: object properties: root_key_id: type: string description: Join Server issued identifier for the root keys. app_key: $ref: '#/definitions/v3KeyEnvelope' description: The (encrypted) Application Key. nwk_key: $ref: '#/definitions/v3KeyEnvelope' description: The (encrypted) Network Key. description: 'Root keys for a LoRaWAN device. These are stored on the Join Server.' v3RxDelay: type: string enum: - RX_DELAY_0 - RX_DELAY_1 - RX_DELAY_2 - RX_DELAY_3 - RX_DELAY_4 - RX_DELAY_5 - RX_DELAY_6 - RX_DELAY_7 - RX_DELAY_8 - RX_DELAY_9 - RX_DELAY_10 - RX_DELAY_11 - RX_DELAY_12 - RX_DELAY_13 - RX_DELAY_14 - RX_DELAY_15 default: RX_DELAY_0 description: " - RX_DELAY_0: 1 second.\n - RX_DELAY_1: 1 second.\n - RX_DELAY_2: 2 seconds.\n - RX_DELAY_3: 3 seconds.\n\ \ - RX_DELAY_4: 4 seconds.\n - RX_DELAY_5: 5 seconds.\n - RX_DELAY_6: 6 seconds.\n - RX_DELAY_7: 7 seconds.\n - RX_DELAY_8:\ \ 8 seconds.\n - RX_DELAY_9: 9 seconds.\n - RX_DELAY_10: 10 seconds.\n - RX_DELAY_11: 11 seconds.\n - RX_DELAY_12: 12\ \ seconds.\n - RX_DELAY_13: 13 seconds.\n - RX_DELAY_14: 14 seconds.\n - RX_DELAY_15: 15 seconds." v3RxDelayValue: type: object properties: value: $ref: '#/definitions/v3RxDelay' v3ServedRelayParameters: type: object properties: always: $ref: '#/definitions/v3RelayEndDeviceAlwaysMode' description: The end device will always attempt to use the relay mode in order to send uplink messages. dynamic: $ref: '#/definitions/v3RelayEndDeviceDynamicMode' description: 'The end device will attempt to use relay mode only after a number of uplink messages have been sent without receiving a valid a downlink message.' end_device_controlled: $ref: '#/definitions/v3RelayEndDeviceControlledMode' description: The end device will control when it uses the relay mode. This is the default mode. backoff: type: integer format: int64 description: Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly. second_channel: $ref: '#/definitions/v3RelaySecondChannel' description: Second wake on radio channel configuration. serving_device_id: type: string description: End device identifier of the serving end device. v3ServedRelaySettings: type: object properties: always: $ref: '#/definitions/v3RelayEndDeviceAlwaysMode' description: The end device will always attempt to use the relay mode in order to send uplink messages. dynamic: $ref: '#/definitions/v3RelayEndDeviceDynamicMode' description: 'The end device will attempt to use relay mode only after a number of uplink messages have been sent without receiving a valid a downlink message.' end_device_controlled: $ref: '#/definitions/v3RelayEndDeviceControlledMode' description: The end device will control when it uses the relay mode. This is the default mode. backoff: type: integer format: int64 description: 'Number of wake on radio frames to be sent without an acknowledgement before sending the uplink message directly. If unset, the default value from Network Server configuration will be used.' second_channel: $ref: '#/definitions/v3RelaySecondChannel' description: Second wake on radio channel configuration. serving_device_id: type: string description: End device identifier of the serving end device. v3ServingRelayForwardingLimits: type: object properties: reset_behavior: $ref: '#/definitions/v3RelayResetLimitCounter' description: Reset behavior of the buckets upon limit update. join_requests: $ref: '#/definitions/v3RelayForwardLimits' description: 'Bucket configuration for join requests. If unset, no individual limits will apply to join requests, but the relay overall limitations will apply.' notifications: $ref: '#/definitions/v3RelayForwardLimits' description: 'Bucket configuration for unknown device notifications. If unset, no individual limits will apply to unknown end device notifications, but the relay overall limitations will still apply.' uplink_messages: $ref: '#/definitions/v3RelayForwardLimits' description: 'Bucket configuration for uplink messages across all served end devices. If unset, no individual limits will apply to uplink messages across all served end devices, but the relay overall limitations will still apply.' overall: $ref: '#/definitions/v3RelayForwardLimits' description: 'Bucket configuration for all relay messages. If unset, no overall limits will apply to the relay, but individual limitations will still apply.' v3ServingRelayParameters: type: object properties: second_channel: $ref: '#/definitions/v3RelaySecondChannel' description: Second wake on radio channel configuration. default_channel_index: type: integer format: int64 description: Index of the default wake on radio channel. cad_periodicity: $ref: '#/definitions/v3RelayCADPeriodicity' description: Channel activity detection periodicity. uplink_forwarding_rules: type: array items: type: object $ref: '#/definitions/v3RelayUplinkForwardingRule' description: Configured uplink forwarding rules. limits: $ref: '#/definitions/v3ServingRelayForwardingLimits' description: 'Configured forwarding limits. If unset, the default value from Network Server configuration will be used.' v3ServingRelaySettings: type: object properties: second_channel: $ref: '#/definitions/v3RelaySecondChannel' description: Second wake on radio channel configuration. default_channel_index: type: integer format: int64 description: 'Index of the default wake on radio channel. If unset, the default value from Network Server configuration will be used.' cad_periodicity: $ref: '#/definitions/v3RelayCADPeriodicity' description: Channel activity detection periodicity. uplink_forwarding_rules: type: array items: type: object $ref: '#/definitions/v3RelayUplinkForwardingRule' description: Configured uplink forwarding rules. limits: $ref: '#/definitions/v3ServingRelayForwardingLimits' description: 'Configured forwarding limits. If unset, the default value from Network Server configuration will be used.' v3Session: type: object properties: dev_addr: type: string format: string example: 2600ABCD description: 'Device Address, issued by the Network Server or chosen by device manufacturer in case of testing range (beginning with 00-03). Known by Network Server, Application Server and Join Server. Owned by Network Server.' keys: $ref: '#/definitions/v3SessionKeys' last_f_cnt_up: type: integer format: int64 description: Last uplink frame counter value used. Network Server only. Application Server assumes the Network Server checked it. last_n_f_cnt_down: type: integer format: int64 description: Last network downlink frame counter value used. Network Server only. last_a_f_cnt_down: type: integer format: int64 description: Last application downlink frame counter value used. Application Server only. last_conf_f_cnt_down: type: integer format: int64 description: Frame counter of the last confirmed downlink message sent. Network Server only. started_at: type: string format: date-time description: Time when the session started. Network Server only. queued_application_downlinks: type: array items: type: object $ref: '#/definitions/v3ApplicationDownlink' description: Queued Application downlink messages. Stored in Application Server and Network Server. v3SessionKeys: type: object properties: session_key_id: type: string format: byte description: 'Join Server issued identifier for the session keys. This ID can be used to request the keys from the Join Server in case the are lost.' f_nwk_s_int_key: $ref: '#/definitions/v3KeyEnvelope' description: 'The (encrypted) Forwarding Network Session Integrity Key (or Network Session Key in 1.0 compatibility mode). This key is stored by the (forwarding) Network Server.' s_nwk_s_int_key: $ref: '#/definitions/v3KeyEnvelope' description: 'The (encrypted) Serving Network Session Integrity Key. This key is stored by the (serving) Network Server.' nwk_s_enc_key: $ref: '#/definitions/v3KeyEnvelope' description: 'The (encrypted) Network Session Encryption Key. This key is stored by the (serving) Network Server.' app_s_key: $ref: '#/definitions/v3KeyEnvelope' description: 'The (encrypted) Application Session Key. This key is stored by the Application Server.' description: 'Session keys for a LoRaWAN session. Only the components for which the keys were meant, will have the key-encryption-key (KEK) to decrypt the individual keys.' v3TxSchedulePriority: type: string enum: - LOWEST - LOW - BELOW_NORMAL - NORMAL - ABOVE_NORMAL - HIGH - HIGHEST default: LOWEST v3ZeroableFrequencyValue: type: object properties: value: type: string format: uint64