End Device Claiming APIs

The EndDeviceClaimingServer service

Method EndDeviceClaimingServer.AuthorizeApplication
Request type AuthorizeApplicationRequest
Response type google.protobuf.Empty
HTTP bindings

POST /api/v3/edcs/applications/{application_ids.application_id}/authorize

Method EndDeviceClaimingServer.UnauthorizeApplication
Request type ApplicationIdentifiers
Response type google.protobuf.Empty
HTTP bindings

DELETE /api/v3/edcs/applications/{application_id}/authorize

Method EndDeviceClaimingServer.Claim
Description Claims the end device by claim authentication code or QR code and transfers the device to the target application.
Request type ClaimEndDeviceRequest
Response type EndDeviceIdentifiers
HTTP bindings

POST /api/v3/edcs/claim

Messages

Message ApplicationIdentifiers

Field Type Description
application_id string

max_len: 36

pattern: ^[a-z0-9](?:[-]?[a-z0-9]){2,}$

Show object example
{
  "application_id": "",
}

Message AuthorizeApplicationRequest

Field Type Description
application_ids ApplicationIdentifiers

required

api_key string

min_len: 1

Show object example
{
  "application_ids": {},
  "api_key": "",
}

Message ClaimEndDeviceRequest

Field Type Description
authenticated_identifiers ClaimEndDeviceRequest.AuthenticatedIdentifiers
qr_code bytes

max_len: 1024

target_application_ids ApplicationIdentifiers

Application identifiers of the target end device.

required

target_device_id string

End device ID of the target end device. If empty, use the source device ID.

max_len: 36

pattern: ^[a-z0-9](?:[-]?[a-z0-9]){2,}$|^$

target_network_server_address string

The address of the Network Server where the device will be registered. If set and if the source device is currently registered on a Network Server, settings will be transferred. If not set, the device shall not be registered on a Network Server.

pattern: ^(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*(?:[A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])(?::[0-9]{1,5})?$|^$

target_network_server_kek_label string

The KEK label of the Network Server to use for wrapping network session keys.

max_len: 2048

target_application_server_address string

The address of the Application Server where the device will be registered. If set and if the source device is currently registered on an Application Server, settings will be transferred. If not set, the device shall not be registered on an Application Server.

pattern: ^(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*(?:[A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])(?::[0-9]{1,5})?$|^$

target_application_server_kek_label string

The KEK label of the Application Server to use for wrapping the application session key.

max_len: 2048

target_application_server_id string

The AS-ID of the Application Server to use.

max_len: 100

target_net_id bytes

Home NetID.

invalidate_authentication_code bool

If set, invalidate the authentication code with which the device gets claimed. This prohibits subsequent claiming requests.

Restrictions
Only one of authenticated_identifiers, qr_code can be set.
Show object example
{
  "authenticated_identifiers": {},
  "qr_code": "",
  "target_application_ids": {},
  "target_device_id": "",
  "target_network_server_address": "",
  "target_network_server_kek_label": "",
  "target_application_server_address": "",
  "target_application_server_kek_label": "",
  "target_application_server_id": "",
  "target_net_id": "",
  "invalidate_authentication_code": false,
}

Message ClaimEndDeviceRequest.AuthenticatedIdentifiers

Field Type Description
join_eui bytes
dev_eui bytes
authentication_code string

pattern: ^[A-Z0-9]{1,32}$

Show object example
{
  "join_eui": "",
  "dev_eui": "",
  "authentication_code": "",
}

Message EndDeviceIdentifiers

Field Type Description
device_id string

max_len: 36

pattern: ^[a-z0-9](?:[-]?[a-z0-9]){2,}$

application_ids ApplicationIdentifiers

required

dev_eui bytes

The LoRaWAN DevEUI.

join_eui bytes

The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).

dev_addr bytes

The LoRaWAN DevAddr.

Show object example
{
  "device_id": "",
  "application_ids": {},
  "dev_eui": "",
  "join_eui": "",
  "dev_addr": "",
}