chirpstack/api/md/api/api.md
2023-11-23 08:53:47 +00:00

135 KiB
Vendored
Raw Blame History

Protocol Documentation

Table of Contents

Top

api/application.proto

Application

Field Type Label Description
id string Application ID (UUID). Note: on create this will be automatically generated.
name string Application name.
description string Application description.
tenant_id string Tenant ID (UUID).
tags Application.TagsEntry repeated Tags (user defined). These tags can be used to add additional information to the application. These tags are exposed in all the integration events of devices under this application.

Application.TagsEntry

Field Type Label Description
key string
value string

ApplicationListItem

Field Type Label Description
id string Application ID (UUID).
created_at google.protobuf.Timestamp Created at timestamp.
updated_at google.protobuf.Timestamp Last update timestamp.
name string Application name.
description string Application description.

AwsSnsIntegration

Field Type Label Description
application_id string Application ID (UUID).
encoding Encoding Encoding.
region string AWS region.
access_key_id string AWS Access Key ID.
secret_access_key string AWS Secret Access Key.
topic_arn string Topic ARN.

AzureServiceBusIntegration

Field Type Label Description
application_id string Application ID (UUID).
encoding Encoding Encoding.
connection_string string Connection string.
publish_name string Publish name. This is the name of the topic or queue.

CreateApplicationRequest

Field Type Label Description
application Application Application object to create.

CreateApplicationResponse

Field Type Label Description
id string Application ID (UUID).

CreateAwsSnsIntegrationRequest

Field Type Label Description
integration AwsSnsIntegration Integration object to create.

CreateAzureServiceBusIntegrationRequest

Field Type Label Description
integration AzureServiceBusIntegration Integration object to create.

CreateGcpPubSubIntegrationRequest

Field Type Label Description
integration GcpPubSubIntegration Integration object to create.

CreateHttpIntegrationRequest

Field Type Label Description
integration HttpIntegration Integration object to create.

CreateIftttIntegrationRequest

Field Type Label Description
integration IftttIntegration Integration object.

CreateInfluxDbIntegrationRequest

Field Type Label Description
integration InfluxDbIntegration Integration object to create.

CreateLoraCloudIntegrationRequest

Field Type Label Description
integration LoraCloudIntegration Integration object to create.

CreateMyDevicesIntegrationRequest

Field Type Label Description
integration MyDevicesIntegration Integration object to create.

CreatePilotThingsIntegrationRequest

Field Type Label Description
integration PilotThingsIntegration Integration object to create.

CreateThingsBoardIntegrationRequest

Field Type Label Description
integration ThingsBoardIntegration Integration object to create.

DeleteApplicationRequest

Field Type Label Description
id string Application ID (UUID).

DeleteAwsSnsIntegrationRequest

Field Type Label Description
application_id string Application ID (UUID).

DeleteAzureServiceBusIntegrationRequest

Field Type Label Description
application_id string Application ID (UUID).

DeleteGcpPubSubIntegrationRequest

Field Type Label Description
application_id string Application ID (UUID).

DeleteHttpIntegrationRequest

Field Type Label Description
application_id string Application ID (UUID).

DeleteIftttIntegrationRequest

Field Type Label Description
application_id string Application ID (UUID).

DeleteInfluxDbIntegrationRequest

Field Type Label Description
application_id string Application ID (UUID).

DeleteLoraCloudIntegrationRequest

Field Type Label Description
application_id string Application ID (UUID).

DeleteMyDevicesIntegrationRequest

Field Type Label Description
application_id string Application ID (UUID).

DeletePilotThingsIntegrationRequest

Field Type Label Description
application_id string Application ID (UUID).

DeleteThingsBoardIntegrationRequest

Field Type Label Description
application_id string Application ID (UUID).

GcpPubSubIntegration

Field Type Label Description
application_id string Application ID (UUID).
encoding Encoding Encoding.
credentials_file string Credentials file. This IAM service-account credentials file (JSON) must have the following Pub/Sub roles: * Pub/Sub Publisher
project_id string Project ID.
topic_name string Topic name. This is the name of the Pub/Sub topic.

GenerateMqttIntegrationClientCertificateRequest

Field Type Label Description
application_id string Application ID (UUID).

GenerateMqttIntegrationClientCertificateResponse

Field Type Label Description
tls_cert string TLS certificate.
tls_key string TLS key.
ca_cert string CA certificate.
expires_at google.protobuf.Timestamp Expires at defines the expiration date of the certificate.

GetApplicationRequest

Field Type Label Description
id string Application ID (UUID).

GetApplicationResponse

Field Type Label Description
application Application Application object.
created_at google.protobuf.Timestamp Created at timestamp.
updated_at google.protobuf.Timestamp Last update timestamp.
measurement_keys string repeated Measurement keys. This contains the measurement keys from all the device-profiles that are used by the devices under this application.

GetAwsSnsIntegrationRequest

Field Type Label Description
application_id string Application ID (UUID).

GetAwsSnsIntegrationResponse

Field Type Label Description
integration AwsSnsIntegration Integration object.

GetAzureServiceBusIntegrationRequest

Field Type Label Description
application_id string Application ID (UUID).

GetAzureServiceBusIntegrationResponse

Field Type Label Description
integration AzureServiceBusIntegration Integration object.

GetGcpPubSubIntegrationRequest

Field Type Label Description
application_id string Application ID (UUID).

GetGcpPubSubIntegrationResponse

Field Type Label Description
integration GcpPubSubIntegration Integration object.

GetHttpIntegrationRequest

Field Type Label Description
application_id string Application ID (UUID).

GetHttpIntegrationResponse

Field Type Label Description
integration HttpIntegration Integration object.

GetIftttIntegrationRequest

Field Type Label Description
application_id string Application ID (UUID).

GetIftttIntegrationResponse

Field Type Label Description
integration IftttIntegration Integration object.

GetInfluxDbIntegrationRequest

Field Type Label Description
application_id string Application ID (UUID).

GetInfluxDbIntegrationResponse

Field Type Label Description
integration InfluxDbIntegration Integration object.

GetLoraCloudIntegrationRequest

Field Type Label Description
application_id string Application ID (UUID).

GetLoraCloudIntegrationResponse

Field Type Label Description
integration LoraCloudIntegration Integration object.

GetMyDevicesIntegrationRequest

Field Type Label Description
application_id string Application ID (UUID).

GetMyDevicesIntegrationResponse

Field Type Label Description
integration MyDevicesIntegration Integration object.

GetPilotThingsIntegrationRequest

Field Type Label Description
application_id string Application ID (UUID).

GetPilotThingsIntegrationResponse

Field Type Label Description
integration PilotThingsIntegration Integration object.

GetThingsBoardIntegrationRequest

Field Type Label Description
application_id string Application ID (UUID).

GetThingsBoardIntegrationResponse

Field Type Label Description
integration ThingsBoardIntegration Integration object.

HttpIntegration

Field Type Label Description
application_id string Application ID (UUID).
headers HttpIntegration.HeadersEntry repeated HTTP headers to set when making requests.
encoding Encoding Payload encoding.
event_endpoint_url string Event endpoint URL. The HTTP integration will POST all events to this enpoint. The request will contain a query parameters "event" containing the type of the event.

HttpIntegration.HeadersEntry

Field Type Label Description
key string
value string

IftttIntegration

Field Type Label Description
application_id string Application ID (UUID).
key string Key. This key can be obtained from the IFTTT Webhooks documentation page.
uplink_values string repeated Values. Up to 2 values can be forwarded to IFTTT. These values must map to the decoded payload keys. For example: { "batteryLevel": 75.3, "buttons": [{"pressed": false}, {"pressed": true}] } You would specify the following fields: uplink_values = ["batteryLevel", "buttons_0_pressed"]

Notes: The first value is always used for the DevEUI. Ignored if arbitrary_json is set to true. | | arbitrary_json | bool | | Arbitrary JSON. If set to true, ChirpStack events will be sent as-is as arbitrary JSON payload. If set to false (default), the 3 JSON values format will be used. | | event_prefix | string | | Event prefix. If set, the event name will be PREFIX_EVENT. For example if event_prefix is set to weatherstation, and uplink event will be sent as weatherstation_up to the IFTTT webhook. Note: Only characters in the A-Z, a-z and 0-9 range are allowed. |

InfluxDbIntegration

Field Type Label Description
application_id string Application ID (UUID).
endpoint string InfluxDb API write endpoint (e.g. http://localhost:8086/write).
db string InfluxDb database name. (InfluxDb v1)
username string InfluxDb username. (InfluxDb v1)
password string InfluxDb password. (InfluxDb v1)
retention_policy_name string InfluxDb retention policy name. (InfluxDb v1)
precision InfluxDbPrecision InfluxDb timestamp precision (InfluxDb v1).
version InfluxDbVersion InfluxDb version.
token string Token. (InfluxDb v2)
organization string Organization. (InfluxDb v2)
bucket string Bucket. (InfluxDb v2)

IntegrationListItem

Field Type Label Description
kind IntegrationKind Integration kind.

ListApplicationsRequest

Field Type Label Description
limit uint32 Max number of applications to return in the result-set.
offset uint32 Offset in the result-set (for pagination).
search string If set, the given string will be used to search on name (optional).
tenant_id string Tenant ID to list the applications for.

ListApplicationsResponse

Field Type Label Description
total_count uint32 Total number of applications.
result ApplicationListItem repeated Result-set.

ListIntegrationsRequest

Field Type Label Description
application_id string Application ID (UUID).

ListIntegrationsResponse

Field Type Label Description
total_count uint32 Total number of integrations available within the result-set.
result IntegrationListItem repeated Integrations within result-set.

LoraCloudIntegration

Field Type Label Description
application_id string Application ID (UUID).
modem_geolocation_services LoraCloudModemGeolocationServices Modem & Geolocation Services configuration.

LoraCloudModemGeolocationServices

Field Type Label Description
token string API token.
modem_enabled bool Device implements Modem / Modem-E stack.
forward_f_ports uint32 repeated Forward FPorts. Forward uplink messages matching the given FPorts to the MGS.
gnss_use_rx_time bool Use rx time for GNSS resolving. In case this is set to true, the MGS resolver will use the RX time of the network instead of the timestamp included in the LR1110 payload.
gnss_use_gateway_location bool Use gateway location for GNSS resolving. In the case this is set to true, ChirpStack will provide the location of one of the gateways to the MGS resolver to aid the resolving process. Disable this in case the gateway location is not accurate / incorrectly configured as an incorrect location will cause the resolver to return an error.
parse_tlv bool Parse TLV records. If enabled, stream records (expected in TLV format) are scanned for GNSS data (0x06 or 0x07). If found, ChirpStack will make an additional geolocation call to the MGS API for resolving the location of the detected payload.
geolocation_buffer_ttl uint32 Geolocation buffer TTL (in seconds). If > 0, uplink RX meta-data will be stored in a buffer so that the meta-data of multiple uplinks can be used for geolocation.
geolocation_min_buffer_size uint32 Geolocation minimum buffer size. If > 0, geolocation will only be performed when the buffer has at least the given size.
geolocation_tdoa bool TDOA based geolocation is enabled.
geolocation_rssi bool RSSI based geolocation is enabled.
geolocation_gnss bool GNSS based geolocation is enabled (LR1110).
geolocation_gnss_payload_field string GNSS payload field. This holds the name of the field in the decoded payload object which contains the GNSS payload bytes (as HEX string).
geolocation_gnss_use_rx_time bool GNSS use RX time. In case this is set to true, the resolver will use the RX time of the network instead of the timestamp included in the LR1110 payload.
geolocation_wifi bool Wifi based geolocation is enabled.
geolocation_wifi_payload_field string Wifi payload field. This holds the name of the field in the decoded payload object which contains an array of objects with the following fields: * macAddress - e.g. 01:23:45:67:89:ab * signalStrength - e.g. -51 (optional)

MyDevicesIntegration

Field Type Label Description
application_id string Application ID (UUID).
endpoint string myDevices API endpoint.

PilotThingsIntegration

Field Type Label Description
application_id string Application ID (UUID).
server string Server URL.
token string Authentication token.

ThingsBoardIntegration

Field Type Label Description
application_id string Application ID (UUID).
server string ThingsBoard server endpoint, e.g. https://example.com

UpdateApplicationRequest

Field Type Label Description
application Application Application object.

UpdateAwsSnsIntegrationRequest

Field Type Label Description
integration AwsSnsIntegration Integration object to update.

UpdateAzureServiceBusIntegrationRequest

Field Type Label Description
integration AzureServiceBusIntegration Integration object to create.

UpdateGcpPubSubIntegrationRequest

Field Type Label Description
integration GcpPubSubIntegration Integration object to update.

UpdateHttpIntegrationRequest

Field Type Label Description
integration HttpIntegration Integration object to update.

UpdateIftttIntegrationRequest

Field Type Label Description
integration IftttIntegration Integration object to update.

UpdateInfluxDbIntegrationRequest

Field Type Label Description
integration InfluxDbIntegration Integration object to update.

UpdateLoraCloudIntegrationRequest

Field Type Label Description
integration LoraCloudIntegration Integration object to update.

UpdateMyDevicesIntegrationRequest

Field Type Label Description
integration MyDevicesIntegration Integration object to update.

UpdatePilotThingsIntegrationRequest

Field Type Label Description
integration PilotThingsIntegration Integration object to update.

UpdateThingsBoardIntegrationRequest

Field Type Label Description
integration ThingsBoardIntegration Integration object to update.

Encoding

Name Number Description
JSON 0
PROTOBUF 1

InfluxDbPrecision

Name Number Description
NS 0
U 1
MS 2
S 3
M 4
H 5

InfluxDbVersion

Name Number Description
INFLUXDB_1 0
INFLUXDB_2 1

IntegrationKind

Name Number Description
HTTP 0
INFLUX_DB 1
THINGS_BOARD 2
MY_DEVICES 3
LORA_CLOUD 4
GCP_PUB_SUB 5
AWS_SNS 6
AZURE_SERVICE_BUS 7
PILOT_THINGS 8
MQTT_GLOBAL 9
IFTTT 10

ApplicationService

ApplicationService is the service providing API methods for managing applications.

Method Name Request Type Response Type Description
Create CreateApplicationRequest CreateApplicationResponse Create creates the given application.
Get GetApplicationRequest GetApplicationResponse Get the application for the given ID.
Update UpdateApplicationRequest .google.protobuf.Empty Update updates the given application.
Delete DeleteApplicationRequest .google.protobuf.Empty Delete the application for the given ID.
List ListApplicationsRequest ListApplicationsResponse Get the list of applications.
ListIntegrations ListIntegrationsRequest ListIntegrationsResponse List all configured integrations.
CreateHttpIntegration CreateHttpIntegrationRequest .google.protobuf.Empty Create HTTP integration.
GetHttpIntegration GetHttpIntegrationRequest GetHttpIntegrationResponse Get the configured HTTP integration.
UpdateHttpIntegration UpdateHttpIntegrationRequest .google.protobuf.Empty Update the HTTP integration.
DeleteHttpIntegration DeleteHttpIntegrationRequest .google.protobuf.Empty Delete the HTTP integration.
CreateInfluxDbIntegration CreateInfluxDbIntegrationRequest .google.protobuf.Empty Create InfluxDb integration.
GetInfluxDbIntegration GetInfluxDbIntegrationRequest GetInfluxDbIntegrationResponse Get InfluxDb integration.
UpdateInfluxDbIntegration UpdateInfluxDbIntegrationRequest .google.protobuf.Empty Update InfluxDb integration.
DeleteInfluxDbIntegration DeleteInfluxDbIntegrationRequest .google.protobuf.Empty Delete InfluxDb integration.
CreateThingsBoardIntegration CreateThingsBoardIntegrationRequest .google.protobuf.Empty Create ThingsBoard integration.
GetThingsBoardIntegration GetThingsBoardIntegrationRequest GetThingsBoardIntegrationResponse Get ThingsBoard integration.
UpdateThingsBoardIntegration UpdateThingsBoardIntegrationRequest .google.protobuf.Empty Update ThingsBoard integration.
DeleteThingsBoardIntegration DeleteThingsBoardIntegrationRequest .google.protobuf.Empty Delete ThingsBoard integration.
CreateMyDevicesIntegration CreateMyDevicesIntegrationRequest .google.protobuf.Empty Create myDevices integration.
GetMyDevicesIntegration GetMyDevicesIntegrationRequest GetMyDevicesIntegrationResponse Get myDevices integration.
UpdateMyDevicesIntegration UpdateMyDevicesIntegrationRequest .google.protobuf.Empty Update myDevices integration.
DeleteMyDevicesIntegration DeleteMyDevicesIntegrationRequest .google.protobuf.Empty Delete myDevices integration.
CreateLoraCloudIntegration CreateLoraCloudIntegrationRequest .google.protobuf.Empty Create LoRaCloud integration.
GetLoraCloudIntegration GetLoraCloudIntegrationRequest GetLoraCloudIntegrationResponse Get LoRaCloud integration.
UpdateLoraCloudIntegration UpdateLoraCloudIntegrationRequest .google.protobuf.Empty Update LoRaCloud integration.
DeleteLoraCloudIntegration DeleteLoraCloudIntegrationRequest .google.protobuf.Empty Delete LoRaCloud integration.
CreateGcpPubSubIntegration CreateGcpPubSubIntegrationRequest .google.protobuf.Empty Create GCP Pub/Sub integration.
GetGcpPubSubIntegration GetGcpPubSubIntegrationRequest GetGcpPubSubIntegrationResponse Get GCP Pub/Sub integration.
UpdateGcpPubSubIntegration UpdateGcpPubSubIntegrationRequest .google.protobuf.Empty Update GCP Pub/Sub integration.
DeleteGcpPubSubIntegration DeleteGcpPubSubIntegrationRequest .google.protobuf.Empty Delete GCP Pub/Sub integration.
CreateAwsSnsIntegration CreateAwsSnsIntegrationRequest .google.protobuf.Empty Create AWS SNS integration.
GetAwsSnsIntegration GetAwsSnsIntegrationRequest GetAwsSnsIntegrationResponse Get AWS SNS integration.
UpdateAwsSnsIntegration UpdateAwsSnsIntegrationRequest .google.protobuf.Empty Update AWS SNS integration.
DeleteAwsSnsIntegration DeleteAwsSnsIntegrationRequest .google.protobuf.Empty Delete AWS SNS integration.
CreateAzureServiceBusIntegration CreateAzureServiceBusIntegrationRequest .google.protobuf.Empty Create Azure Service-Bus integration.
GetAzureServiceBusIntegration GetAzureServiceBusIntegrationRequest GetAzureServiceBusIntegrationResponse Get Azure Service-Bus integration.
UpdateAzureServiceBusIntegration UpdateAzureServiceBusIntegrationRequest .google.protobuf.Empty Update Azure Service-Bus integration.
DeleteAzureServiceBusIntegration DeleteAzureServiceBusIntegrationRequest .google.protobuf.Empty Delete Azure Service-Bus integration.
CreatePilotThingsIntegration CreatePilotThingsIntegrationRequest .google.protobuf.Empty Create Pilot Things integration.
GetPilotThingsIntegration GetPilotThingsIntegrationRequest GetPilotThingsIntegrationResponse Get Pilot Things integration.
UpdatePilotThingsIntegration UpdatePilotThingsIntegrationRequest .google.protobuf.Empty Update Pilot Things integration.
DeletePilotThingsIntegration DeletePilotThingsIntegrationRequest .google.protobuf.Empty Delete Pilot Things integration.
CreateIftttIntegration CreateIftttIntegrationRequest .google.protobuf.Empty Create IFTTT integration.
GetIftttIntegration GetIftttIntegrationRequest GetIftttIntegrationResponse Get IFTTT integration.
UpdateIftttIntegration UpdateIftttIntegrationRequest .google.protobuf.Empty Update IFTTT integration.
DeleteIftttIntegration DeleteIftttIntegrationRequest .google.protobuf.Empty Delete IFTTT integration.
GenerateMqttIntegrationClientCertificate GenerateMqttIntegrationClientCertificateRequest GenerateMqttIntegrationClientCertificateResponse Generates application ID specific client-certificate.

Top

api/device.proto

ActivateDeviceRequest

Field Type Label Description
device_activation DeviceActivation Device activation object.

CreateDeviceKeysRequest

Field Type Label Description
device_keys DeviceKeys Device-keys object.

CreateDeviceRequest

Field Type Label Description
device Device Device object.

DeactivateDeviceRequest

Field Type Label Description
dev_eui string DevEUI (EUI64).

DeleteDeviceKeysRequest

Field Type Label Description
dev_eui string DevEUI (EUI64).

DeleteDeviceRequest

Field Type Label Description
dev_eui string DevEUI (EUI64).

Device

Field Type Label Description
dev_eui string DevEUI (EUI64).
name string Name.
description string Description.
application_id string Application ID (UUID).
device_profile_id string Device-profile ID (UUID).
skip_fcnt_check bool Skip frame-counter checks (this is insecure, but could be helpful for debugging).
is_disabled bool Device is disabled.
variables Device.VariablesEntry repeated Variables (user defined). These variables can be used together with integrations to store tokens / secrets that must be configured per device. These variables are not exposed in the event payloads.
tags Device.TagsEntry repeated Tags (user defined). These tags can be used to add additional information to the device. These tags are exposed in all the integration events.
join_eui string JoinEUI (optional, EUI64). This field will be automatically set / updated on OTAA. However, in some cases it must be pre-configured. For example to allow OTAA using a Relay. In this case the Relay needs to know the JoinEUI + DevEUI combinations of the devices for which it needs to forward uplinks.

Device.TagsEntry

Field Type Label Description
key string
value string

Device.VariablesEntry

Field Type Label Description
key string
value string

DeviceActivation

Field Type Label Description
dev_eui string Device EUI (EUI64).
dev_addr string Device address (HEX encoded).
app_s_key string Application session key (HEX encoded).
nwk_s_enc_key string Network session encryption key (HEX encoded).
s_nwk_s_int_key string Serving network session integrity key (HEX encoded).
f_nwk_s_int_key string Forwarding network session integrity key (HEX encoded).
f_cnt_up uint32 Uplink frame-counter.
n_f_cnt_down uint32 Downlink network frame-counter.
a_f_cnt_down uint32 Downlink application frame-counter.

DeviceKeys

Field Type Label Description
dev_eui string DevEUI (EUI64).
nwk_key string Network root key (128 bit). Note: For LoRaWAN 1.0.x, use this field for the LoRaWAN 1.0.x 'AppKey`!
app_key string Application root key (128 bit). Note: This field only needs to be set for LoRaWAN 1.1.x devices!

DeviceListItem

Field Type Label Description
dev_eui string DevEUI (EUI64).
created_at google.protobuf.Timestamp Created at timestamp.
updated_at google.protobuf.Timestamp Last update timestamp.
last_seen_at google.protobuf.Timestamp Last seen at timestamp.
name string Name.
description string Description.
device_profile_id string Device-profile ID (UUID).
device_profile_name string Device-profile name.
device_status DeviceStatus Device status.

DeviceQueueItem

Field Type Label Description
id string ID (UUID). This is automatically generated on enqueue.
dev_eui string Device EUI (EUI64).
confirmed bool Confirmed.
f_port uint32 FPort (must be > 0).
data bytes Data. Or use the json_object field when a codec has been configured.
object google.protobuf.Struct Only use this when a codec has been configured that can encode this object to bytes.
is_pending bool Is pending. This is set by ChirpStack to true when the downlink is pending (e.g. it has been sent, but a confirmation is still pending).
f_cnt_down uint32 Downlink frame-counter. Do not set this for plain-text data payloads. It will be automatically set by ChirpStack when the payload has been sent as downlink.
is_encrypted bool Is encrypted. This must be set to true if the end-application has already encrypted the data payload. In this case, the f_cnt_down field must be set to the corresponding frame-counter which has been used during the encryption.

DeviceState

Field Type Label Description
name string Name.
value string Value.

DeviceStatus

Field Type Label Description
margin int32 The device margin status -32..32: The demodulation SNR ration in dB
external_power_source bool Device is connected to an external power source.
battery_level float Device battery level as a percentage. -1 when the battery level is not available.

EnqueueDeviceQueueItemRequest

Field Type Label Description
queue_item DeviceQueueItem

EnqueueDeviceQueueItemResponse

Field Type Label Description
id string ID (UUID).

FlushDevNoncesRequest

Field Type Label Description
dev_eui string Device EUI (EUI64).

FlushDeviceQueueRequest

Field Type Label Description
dev_eui string Device EUI (EUI64).

GetDeviceActivationRequest

Field Type Label Description
dev_eui string DevEUI (EUI64).

GetDeviceActivationResponse

Field Type Label Description
device_activation DeviceActivation Device activation object.

GetDeviceKeysRequest

Field Type Label Description
dev_eui string DevEUI (EUI64).

GetDeviceKeysResponse

Field Type Label Description
device_keys DeviceKeys Device-keys object.
created_at google.protobuf.Timestamp Created at timestamp.
updated_at google.protobuf.Timestamp Last update timestamp.

GetDeviceLinkMetricsRequest

Field Type Label Description
dev_eui string DevEUI (EUI64).
start google.protobuf.Timestamp Interval start timestamp.
end google.protobuf.Timestamp Interval end timestamp.
aggregation common.Aggregation Aggregation.

GetDeviceLinkMetricsResponse

Field Type Label Description
rx_packets common.Metric Packets received from the device.
gw_rssi common.Metric RSSI (as reported by the gateway(s)).
gw_snr common.Metric SNR (as reported by the gateway(s)).
rx_packets_per_freq common.Metric Packets received by frequency.
rx_packets_per_dr common.Metric Packets received by DR.
errors common.Metric Errors.

GetDeviceMetricsRequest

Field Type Label Description
dev_eui string DevEUI (EUI64).
start google.protobuf.Timestamp Interval start timestamp.
end google.protobuf.Timestamp Interval end timestamp.
aggregation common.Aggregation Aggregation.

GetDeviceMetricsResponse

Field Type Label Description
metrics GetDeviceMetricsResponse.MetricsEntry repeated
states GetDeviceMetricsResponse.StatesEntry repeated

GetDeviceMetricsResponse.MetricsEntry

Field Type Label Description
key string
value common.Metric

GetDeviceMetricsResponse.StatesEntry

Field Type Label Description
key string
value DeviceState

GetDeviceNextFCntDownRequest

Field Type Label Description
dev_eui string Device EUI (EUI64).

GetDeviceNextFCntDownResponse

Field Type Label Description
f_cnt_down uint32 FCntDown.

GetDeviceQueueItemsRequest

Field Type Label Description
dev_eui string Device EUI (EUI64).
count_only bool Return only the count, not the result-set.

GetDeviceQueueItemsResponse

Field Type Label Description
total_count uint32 Total number of queue items.
result DeviceQueueItem repeated Result-set.

GetDeviceRequest

Field Type Label Description
dev_eui string DevEUI (EUI64).

GetDeviceResponse

Field Type Label Description
device Device Device object.
created_at google.protobuf.Timestamp Created at timestamp.
updated_at google.protobuf.Timestamp Last update timestamp.
last_seen_at google.protobuf.Timestamp Last seen at timestamp.
device_status DeviceStatus Device status.
class_enabled common.DeviceClass Enabled device class.

GetRandomDevAddrRequest

Field Type Label Description
dev_eui string DevEUI (EUI64).

GetRandomDevAddrResponse

Field Type Label Description
dev_addr string DevAddr.

ListDevicesRequest

Field Type Label Description
limit uint32 Max number of devices to return in the result-set.
offset uint32 Offset in the result-set (for pagination).
search string If set, the given string will be used to search on name (optional).
application_id string Application ID (UUID) to filter devices on.
multicast_group_id string Multicst-group ID (UUID) to filter devices on.

ListDevicesResponse

Field Type Label Description
total_count uint32 Total number of devices.
result DeviceListItem repeated Result-set.

UpdateDeviceKeysRequest

Field Type Label Description
device_keys DeviceKeys Device-keys object.

UpdateDeviceRequest

Field Type Label Description
device Device Device object.

DeviceService

DeviceService is the service providing API methods for managing devices.

Method Name Request Type Response Type Description
Create CreateDeviceRequest .google.protobuf.Empty Create the given device.
Get GetDeviceRequest GetDeviceResponse Get returns the device for the given DevEUI.
Update UpdateDeviceRequest .google.protobuf.Empty Update the given device.
Delete DeleteDeviceRequest .google.protobuf.Empty Delete the device with the given DevEUI.
List ListDevicesRequest ListDevicesResponse Get the list of devices.
CreateKeys CreateDeviceKeysRequest .google.protobuf.Empty Create the given device-keys.
GetKeys GetDeviceKeysRequest GetDeviceKeysResponse Get the device-keys for the given DevEUI.
UpdateKeys UpdateDeviceKeysRequest .google.protobuf.Empty Update the given device-keys.
DeleteKeys DeleteDeviceKeysRequest .google.protobuf.Empty Delete the device-keys for the given DevEUI.
FlushDevNonces FlushDevNoncesRequest .google.protobuf.Empty FlushDevNonces flushes the OTAA device nonces.
Activate ActivateDeviceRequest .google.protobuf.Empty Activate (re)activates the device with the given parameters (for ABP or for importing OTAA activations).
Deactivate DeactivateDeviceRequest .google.protobuf.Empty Deactivate de-activates the device.
GetActivation GetDeviceActivationRequest GetDeviceActivationResponse GetActivation returns the current activation details of the device (OTAA or ABP).
GetRandomDevAddr GetRandomDevAddrRequest GetRandomDevAddrResponse GetRandomDevAddr returns a random DevAddr taking the NwkID prefix into account.
GetMetrics GetDeviceMetricsRequest GetDeviceMetricsResponse GetMetrics returns the device metrics. Note that this requires a device-profile with codec and measurements configured.
GetLinkMetrics GetDeviceLinkMetricsRequest GetDeviceLinkMetricsResponse GetLinkMetrics returns the device link metrics. This includes uplinks, downlinks, RSSI, SNR, etc...
Enqueue EnqueueDeviceQueueItemRequest EnqueueDeviceQueueItemResponse Enqueue adds the given item to the downlink queue.
FlushQueue FlushDeviceQueueRequest .google.protobuf.Empty FlushQueue flushes the downlink device-queue.
GetQueue GetDeviceQueueItemsRequest GetDeviceQueueItemsResponse GetQueue returns the downlink device-queue.
GetNextFCntDown GetDeviceNextFCntDownRequest GetDeviceNextFCntDownResponse GetNextFCntDown returns the next FCntDown to use for enqueing encrypted downlinks. The difference with the DeviceActivation f_cont_down is that this method takes potential existing queue-items into account.

Top

api/device_profile.proto

AdrAlgorithmListItem

Field Type Label Description
id string Algorithm ID.
name string Algorithm name.

CreateDeviceProfileRequest

Field Type Label Description
device_profile DeviceProfile Object to create.

CreateDeviceProfileResponse

Field Type Label Description
id string ID (UUID).

DeleteDeviceProfileRequest

Field Type Label Description
id string ID (UUID).

DeviceProfile

Field Type Label Description
id string Device-profile ID (UUID). Note: on create this will be automatically generated.
tenant_id string Tenant ID (UUID).
name string Name.
description string Description.
region common.Region Region.
mac_version common.MacVersion LoRaWAN mac-version.
reg_params_revision common.RegParamsRevision Regional parameters revision.
adr_algorithm_id string ADR algorithm ID.
payload_codec_runtime CodecRuntime Payload codec runtime.
payload_codec_script string Payload codec script.
flush_queue_on_activate bool Flush queue on device activation.
uplink_interval uint32 Uplink interval (seconds). This defines the expected uplink interval which the device uses for communication. If the uplink interval has expired and no uplink has been received, the device is considered inactive.
device_status_req_interval uint32 Device-status request interval (times / day). This defines the times per day that ChirpStack will request the device-status from the device.
supports_otaa bool Supports OTAA.
supports_class_b bool Supports Class B.
supports_class_c bool Supports Class-C.
class_b_timeout uint32 Class-B timeout (seconds). This is the maximum time ChirpStack will wait to receive an acknowledgement from the device (if requested).
class_b_ping_slot_nb_k uint32 Class-B ping-slots per beacon period. Valid options are: 0 - 7.

The actual number of ping-slots per beacon period equals to 2^k. | | class_b_ping_slot_dr | uint32 | | Class-B ping-slot DR. | | class_b_ping_slot_freq | uint32 | | Class-B ping-slot freq (Hz). | | class_c_timeout | uint32 | | Class-C timeout (seconds). This is the maximum time ChirpStack will wait to receive an acknowledgement from the device (if requested). | | abp_rx1_delay | uint32 | | RX1 delay (for ABP). | | abp_rx1_dr_offset | uint32 | | RX1 DR offset (for ABP). | | abp_rx2_dr | uint32 | | RX2 DR (for ABP). | | abp_rx2_freq | uint32 | | RX2 frequency (for ABP, Hz). | | tags | DeviceProfile.TagsEntry | repeated | Tags (user defined). These tags can be used to add additional information the the device-profile. These tags are exposed in all the integration events of devices using this device-profile. | | measurements | DeviceProfile.MeasurementsEntry | repeated | Measurements. If defined, ChirpStack will visualize these metrics in the web-interface. | | auto_detect_measurements | bool | | Auto-detect measurements. If set to true, measurements will be automatically added based on the keys of the decoded payload. In cases where the decoded payload contains random keys in the data, you want to set this to false. | | region_config_id | string | | Region configuration ID. If set, devices will only use the associated region. If let blank, then devices will use all regions matching the selected common-name. Note that multiple region configurations can exist for the same common-name, e.g. to provide an 8 channel and 16 channel configuration for the US915 band. | | is_relay | bool | | Device is a Relay device. Enable this in case the device is a Relay. A Relay device implements TS011 and is able to relay data from relay capable devices. See for more information the TS011 specification. | | is_relay_ed | bool | | Device is a Relay end-device. Enable this in case the device is an end-device that can operate under a Relay. Please refer to the TS011 specification for more information. | | relay_ed_relay_only | bool | | End-device only accept data through relay. Only accept data for this device through a relay. This setting is useful for testing as in case of a test-setup, the end-device is usually within range of the gateway. | | relay_enabled | bool | | Relay must be enabled. | | relay_cad_periodicity | CadPeriodicity | | Relay CAD periodicity. | | relay_default_channel_index | uint32 | | Relay default channel index. Valid values are 0 and 1, please refer to the RP002 specification for the meaning of these values. | | relay_second_channel_freq | uint32 | | Relay second channel frequency (Hz). | | relay_second_channel_dr | uint32 | | Relay second channel DR. | | relay_second_channel_ack_offset | SecondChAckOffset | | Relay second channel ACK offset. | | relay_ed_activation_mode | RelayModeActivation | | Relay end-device activation mode. | | relay_ed_smart_enable_level | uint32 | | Relay end-device smart-enable level. | | relay_ed_back_off | uint32 | | Relay end-device back-off (in case it does not receive WOR ACK frame). 0 = Always send a LoRaWAN uplink 1..63 = Send a LoRaWAN uplink after X WOR frames without a WOR ACK | | relay_ed_uplink_limit_bucket_size | uint32 | | Relay end-device uplink limit bucket size.

This field indicates the multiplier to determine the bucket size according to the following formula: BucketSize TOKEN = _reload_rate x _bucket_size

Valid values (0 - 3): 0 = 1 1 = 2 2 = 4 3 = 12 | | relay_ed_uplink_limit_reload_rate | uint32 | | Relay end-device uplink limit reload rate.

Valid values: * 0 - 62 = X tokens every hour * 63 = no limitation | | relay_join_req_limit_reload_rate | uint32 | | Relay join-request limit reload rate.

Valid values: * 0 - 126 = X tokens every hour * 127 = no limitation | | relay_notify_limit_reload_rate | uint32 | | Relay notify limit reload rate.

Valid values: * 0 - 126 = X tokens every hour * 127 = no limitation | | relay_global_uplink_limit_reload_rate | uint32 | | Relay global uplink limit reload rate.

Valid values: * 0 - 126 = X tokens every hour * 127 = no limitation | | relay_overall_limit_reload_rate | uint32 | | Relay overall limit reload rate.

Valid values: * 0 - 126 = X tokens every hour * 127 = no limitation | | relay_join_req_limit_bucket_size | uint32 | | Relay join-request limit bucket size.

This field indicates the multiplier to determine the bucket size according to the following formula: BucketSize TOKEN = _reload_rate x _bucket_size

Valid values (0 - 3): 0 = 1 1 = 2 2 = 4 3 = 12 | | relay_notify_limit_bucket_size | uint32 | | Relay notify limit bucket size.

This field indicates the multiplier to determine the bucket size according to the following formula: BucketSize TOKEN = _reload_rate x _bucket_size

Valid values (0 - 3): 0 = 1 1 = 2 2 = 4 3 = 12 | | relay_global_uplink_limit_bucket_size | uint32 | | Relay globak uplink limit bucket size.

This field indicates the multiplier to determine the bucket size according to the following formula: BucketSize TOKEN = _reload_rate x _bucket_size

Valid values (0 - 3): 0 = 1 1 = 2 2 = 4 3 = 12 | | relay_overall_limit_bucket_size | uint32 | | Relay overall limit bucket size.

This field indicates the multiplier to determine the bucket size according to the following formula: BucketSize TOKEN = _reload_rate x _bucket_size

Valid values (0 - 3): 0 = 1 1 = 2 2 = 4 3 = 12 | | allow_roaming | bool | | Allow roaming.

If set to true, it means that the device is allowed to use roaming. |

DeviceProfile.MeasurementsEntry

Field Type Label Description
key string
value Measurement

DeviceProfile.TagsEntry

Field Type Label Description
key string
value string

DeviceProfileListItem

Field Type Label Description
id string Device-profile ID (UUID).
created_at google.protobuf.Timestamp Created at timestamp.
updated_at google.protobuf.Timestamp Last update timestamp.
name string Name.
region common.Region Region.
mac_version common.MacVersion LoRaWAN mac-version.
reg_params_revision common.RegParamsRevision Regional parameters revision.
supports_otaa bool Supports OTAA.
supports_class_b bool Supports Class-B.
supports_class_c bool Supports Class-C.

GetDeviceProfileRequest

Field Type Label Description
id string ID (UUID).

GetDeviceProfileResponse

Field Type Label Description
device_profile DeviceProfile Device-profile object.
created_at google.protobuf.Timestamp Created at timestamp.
updated_at google.protobuf.Timestamp Last update timestamp.

ListDeviceProfileAdrAlgorithmsResponse

Field Type Label Description
total_count uint32 Total number of algorithms.
result AdrAlgorithmListItem repeated Result-set.

ListDeviceProfilesRequest

Field Type Label Description
limit uint32 Max number of device-profiles to return in the result-set.
offset uint32 Offset in the result-set (for pagination).
search string If set, the given string will be used to search on name.
tenant_id string Tenant ID to list the device-profiles for.

ListDeviceProfilesResponse

Field Type Label Description
total_count uint32 Total number of device-profiles.
result DeviceProfileListItem repeated Result-set.

Measurement

Field Type Label Description
name string Name (user defined).
kind MeasurementKind Kind.

UpdateDeviceProfileRequest

Field Type Label Description
device_profile DeviceProfile Device-profile object.

CadPeriodicity

Name Number Description
SEC_1 0 1 second.
MS_500 1 500 milliseconds
MS_250 2 250 milliseconds
MS_100 3 100 milliseconds
MS_50 4 50 milliseconds
MS_20 5 20 milliseconds

CodecRuntime

Name Number Description
NONE 0 None.
CAYENNE_LPP 1 Cayenne LPP.
JS 2 JavaScript.

MeasurementKind

Name Number Description
UNKNOWN 0 Unknown (in which case it is not tracked).
COUNTER 1 Incrementing counters that never decrease (these are not reset on each reading).
ABSOLUTE 2 Counters that do get reset upon reading.
GAUGE 3 E.g. a temperature value.
STRING 4 E.g. a firmware version, true / false value.

RelayModeActivation

Name Number Description
DISABLE_RELAY_MODE 0 Disable the relay mode.
ENABLE_RELAY_MODE 1 Enable the relay model.
DYNAMIC 2 Dynamic.
END_DEVICE_CONTROLLED 3 End-device controlled.

SecondChAckOffset

Name Number Description
KHZ_0 0 0 kHz.
KHZ_200 1 200 kHz.
KHZ_400 2 400 kHz.
KHZ_800 3 800 kHz.
KHZ_1600 4 1600 kHz.
KHZ_3200 5 3200 kHz.

DeviceProfileService

DeviceProfileService is the service providing API methods for managing device-profiles.

Method Name Request Type Response Type Description
Create CreateDeviceProfileRequest CreateDeviceProfileResponse Create the given device-profile.
Get GetDeviceProfileRequest GetDeviceProfileResponse Get the device-profile for the given ID.
Update UpdateDeviceProfileRequest .google.protobuf.Empty Update the given device-profile.
Delete DeleteDeviceProfileRequest .google.protobuf.Empty Delete the device-profile with the given ID.
List ListDeviceProfilesRequest ListDeviceProfilesResponse List the available device-profiles.
ListAdrAlgorithms .google.protobuf.Empty ListDeviceProfileAdrAlgorithmsResponse List available ADR algorithms.

Top

api/device_profile_template.proto

CreateDeviceProfileTemplateRequest

Field Type Label Description
device_profile_template DeviceProfileTemplate Object to create.

DeleteDeviceProfileTemplateRequest

Field Type Label Description
id string ID.

DeviceProfileTemplate

Field Type Label Description
id string Device-profile template ID.
name string Name.
description string Description.
vendor string Vendor.
firmware string Firmware.
region common.Region Region.
mac_version common.MacVersion LoRaWAN mac-version.
reg_params_revision common.RegParamsRevision Regional parameters revision.
adr_algorithm_id string ADR algorithm ID.
payload_codec_runtime CodecRuntime Payload codec runtime.
payload_codec_script string Payload codec script.
flush_queue_on_activate bool Flush queue on device activation.
uplink_interval uint32 Uplink interval (seconds). This defines the expected uplink interval which the device uses for communication. When the uplink interval has expired and no uplink has been received, the device is considered inactive.
device_status_req_interval uint32 Device-status request interval (times / day). This defines the times per day that ChirpStack will request the device-status from the device.
supports_otaa bool Supports OTAA.
supports_class_b bool Supports Class B.
supports_class_c bool Supports Class-C.
class_b_timeout uint32 Class-B timeout (seconds). This is the maximum time ChirpStack will wait to receive an acknowledgement from the device (if requested).
class_b_ping_slot_nb_k uint32 Class-B ping-slots per beacon period. Valid options are: 0 - 7.

The actual number of ping-slots per beacon period equals to 2^k. | | class_b_ping_slot_dr | uint32 | | Class-B ping-slot DR. | | class_b_ping_slot_freq | uint32 | | Class-B ping-slot freq (Hz). | | class_c_timeout | uint32 | | Class-C timeout (seconds). This is the maximum time ChirpStack will wait to receive an acknowledgement from the device (if requested). | | abp_rx1_delay | uint32 | | RX1 delay (for ABP). | | abp_rx1_dr_offset | uint32 | | RX1 DR offset (for ABP). | | abp_rx2_dr | uint32 | | RX2 DR (for ABP). | | abp_rx2_freq | uint32 | | RX2 frequency (for ABP, Hz). | | tags | DeviceProfileTemplate.TagsEntry | repeated | User defined tags. | | measurements | DeviceProfileTemplate.MeasurementsEntry | repeated | Measurements. If defined, ChirpStack will visualize these metrics in the web-interface. | | auto_detect_measurements | bool | | Auto-detect measurements. If set to true, measurements will be automatically added based on the keys of the decoded payload. In cases where the decoded payload contains random keys in the data, you want to set this to false. |

DeviceProfileTemplate.MeasurementsEntry

Field Type Label Description
key string
value Measurement

DeviceProfileTemplate.TagsEntry

Field Type Label Description
key string
value string

DeviceProfileTemplateListItem

Field Type Label Description
id string Device-profile template ID.
created_at google.protobuf.Timestamp Created at timestamp.
updated_at google.protobuf.Timestamp Last update timestamp.
name string Name.
vendor string Vendor.
firmware string Firmware.
region common.Region Region.
mac_version common.MacVersion LoRaWAN mac-version.
reg_params_revision common.RegParamsRevision Regional parameters revision.
supports_otaa bool Supports OTAA.
supports_class_b bool Supports Class-B.
supports_class_c bool Supports Class-C.

GetDeviceProfileTemplateRequest

Field Type Label Description
id string ID.

GetDeviceProfileTemplateResponse

Field Type Label Description
device_profile_template DeviceProfileTemplate Device-profile template object.
created_at google.protobuf.Timestamp Created at timestamp.
updated_at google.protobuf.Timestamp Last update timestamp.

ListDeviceProfileTemplatesRequest

Field Type Label Description
limit uint32 Max number of device-profile templates to return in the result-set.
offset uint32 Offset in the result-set (for pagination).

ListDeviceProfileTemplatesResponse

Field Type Label Description
total_count uint32 Total number of device-profile templates.
result DeviceProfileTemplateListItem repeated Result-set.

UpdateDeviceProfileTemplateRequest

Field Type Label Description
device_profile_template DeviceProfileTemplate Object to update.

DeviceProfileTemplateService

DeviceProfileTemplateService is the service providing API methods for managing device-profile templates.

Method Name Request Type Response Type Description
Create CreateDeviceProfileTemplateRequest .google.protobuf.Empty Create the given device-profile template.
Get GetDeviceProfileTemplateRequest GetDeviceProfileTemplateResponse Get the device-profile template for the given ID.
Update UpdateDeviceProfileTemplateRequest .google.protobuf.Empty Update the given device-profile template.
Delete DeleteDeviceProfileTemplateRequest .google.protobuf.Empty Delete the device-profile template with the given ID.
List ListDeviceProfileTemplatesRequest ListDeviceProfileTemplatesResponse List the available device-profile templates.

Top

api/gateway.proto

CreateGatewayRequest

Field Type Label Description
gateway Gateway Gateway object.

DeleteGatewayRequest

Field Type Label Description
gateway_id string Gateway ID (EUI64).

Gateway

Field Type Label Description
gateway_id string Gateway ID (EUI64).
name string Name.
description string Description.
location common.Location Gateway location.
tenant_id string Tenant ID (UUID).
tags Gateway.TagsEntry repeated Tags.
metadata Gateway.MetadataEntry repeated Metadata (provided by the gateway).
stats_interval uint32 Stats interval (seconds). This defines the expected interval in which the gateway sends its statistics.

Gateway.MetadataEntry

Field Type Label Description
key string
value string

Gateway.TagsEntry

Field Type Label Description
key string
value string

GatewayListItem

Field Type Label Description
tenant_id string Tenant ID.
gateway_id string Gateway ID (EUI64).
name string Name.
description string Description.
location common.Location Location.
properties GatewayListItem.PropertiesEntry repeated Gateway properties.
created_at google.protobuf.Timestamp Created at timestamp.
updated_at google.protobuf.Timestamp Last update timestamp.
last_seen_at google.protobuf.Timestamp Last seen at timestamp.
state GatewayState Gateway state. Please note that the state of the gateway is driven by the stats packages that are sent by the gateway.

GatewayListItem.PropertiesEntry

Field Type Label Description
key string
value string

GenerateGatewayClientCertificateRequest

Field Type Label Description
gateway_id string Gateway ID (EUI64).

GenerateGatewayClientCertificateResponse

Field Type Label Description
tls_cert string TLS certificate.
tls_key string TLS key.
ca_cert string CA certificate.
expires_at google.protobuf.Timestamp Expires at defines the expiration date of the certificate.

GetGatewayMetricsRequest

Field Type Label Description
gateway_id string Gateway ID (EUI64).
start google.protobuf.Timestamp Interval start timestamp.
end google.protobuf.Timestamp Interval end timestamp.
aggregation common.Aggregation Aggregation.

GetGatewayMetricsResponse

Field Type Label Description
rx_packets common.Metric RX packets.
tx_packets common.Metric TX packets.
tx_packets_per_freq common.Metric TX packets / frequency.
rx_packets_per_freq common.Metric RX packets / frequency.
tx_packets_per_dr common.Metric TX packets / DR.
rx_packets_per_dr common.Metric RX packets / DR.
tx_packets_per_status common.Metric TX packets per status.

GetGatewayRequest

Field Type Label Description
gateway_id string Gateway ID (EUI64).

GetGatewayResponse

Field Type Label Description
gateway Gateway Gateway object.
created_at google.protobuf.Timestamp Created at timestamp.
updated_at google.protobuf.Timestamp Last update timestamp.
last_seen_at google.protobuf.Timestamp Last seen at timestamp.

ListGatewaysRequest

Field Type Label Description
limit uint32 Max number of gateways to return in the result-set.
offset uint32 Offset in the result-set (for pagination).
search string If set, the given string will be used to search on name (optional).
tenant_id string Tenant ID (UUID) to filter gateways on. To list all gateways as a global admin user, this field can be left blank.
multicast_group_id string Multicast-group ID (UUID) to filter gateways on.

ListGatewaysResponse

Field Type Label Description
total_count uint32 Total number of gateways.
result GatewayListItem repeated Result-set.

UpdateGatewayRequest

Field Type Label Description
gateway Gateway Gateway object.

GatewayState

Name Number Description
NEVER_SEEN 0 The gateway has never sent any stats.
ONLINE 1 Online.
OFFLINE 2 Offline.

GatewayService

GatewayService is the service providing API methods for managing gateways.

Method Name Request Type Response Type Description
Create CreateGatewayRequest .google.protobuf.Empty Create creates the given gateway.
Get GetGatewayRequest GetGatewayResponse Get returns the gateway for the given Gateway ID.
Update UpdateGatewayRequest .google.protobuf.Empty Update updates the given gateway.
Delete DeleteGatewayRequest .google.protobuf.Empty Delete deletes the gateway matching the given Gateway ID.
List ListGatewaysRequest ListGatewaysResponse Get the list of gateways.
GenerateClientCertificate GenerateGatewayClientCertificateRequest GenerateGatewayClientCertificateResponse Generate client-certificate for the gateway.
GetMetrics GetGatewayMetricsRequest GetGatewayMetricsResponse GetMetrics returns the gateway metrics.

Top

api/multicast_group.proto

AddDeviceToMulticastGroupRequest

Field Type Label Description
multicast_group_id string Multicast group ID.
dev_eui string Device EUI (HEX encoded).

AddGatewayToMulticastGroupRequest

Field Type Label Description
multicast_group_id string Multicast group ID.
gateway_id string Gateway ID (HEX encoded).

CreateMulticastGroupRequest

Field Type Label Description
multicast_group MulticastGroup Multicast group to create.

CreateMulticastGroupResponse

Field Type Label Description
id string ID of created multicast group (UUID).

DeleteMulticastGroupRequest

Field Type Label Description
id string Multicast group iD.

EnqueueMulticastGroupQueueItemRequest

Field Type Label Description
queue_item MulticastGroupQueueItem Multicast queue-item to enqueue.

EnqueueMulticastGroupQueueItemResponse

Field Type Label Description
f_cnt uint32 Frame-counter of the enqueued payload.

FlushMulticastGroupQueueRequest

Field Type Label Description
multicast_group_id string Multicast group ID.

GetMulticastGroupRequest

Field Type Label Description
id string Multicast group ID.

GetMulticastGroupResponse

Field Type Label Description
multicast_group MulticastGroup Multicast group object.
created_at google.protobuf.Timestamp Created at timestamp.
updated_at google.protobuf.Timestamp Last update timestamp.

ListMulticastGroupQueueRequest

Field Type Label Description
multicast_group_id string Multicast group ID.

ListMulticastGroupQueueResponse

Field Type Label Description
items MulticastGroupQueueItem repeated

ListMulticastGroupsRequest

Field Type Label Description
limit uint32 Max number of multicast groups to return in the result-set.
offset uint32 Offset in the result-set (for pagination).
search string If set, the given string will be used to search on name.
application_id string Application ID to list the multicast groups for.

ListMulticastGroupsResponse

Field Type Label Description
total_count uint32 Total number of multicast groups.
result MulticastGroupListItem repeated Result-test.

MulticastGroup

Field Type Label Description
id string ID (UUID). This will be generated automatically on create.
name string Name.
application_id string Application ID. After creation, this can not be updated.
region common.Region Region.
mc_addr string Multicast address (HEX encoded DevAddr).
mc_nwk_s_key string Multicast network session key (HEX encoded AES128 key).
mc_app_s_key string Multicast application session key (HEX encoded AES128 key).
f_cnt uint32 Frame-counter.
group_type MulticastGroupType Multicast group type.
dr uint32 Data-rate.
frequency uint32 Frequency (Hz).
class_b_ping_slot_period uint32 Ping-slot period (only for Class-B).
class_c_scheduling_type MulticastGroupSchedulingType Scheduling type (only for Class-C).

MulticastGroupListItem

Field Type Label Description
id string ID.
created_at google.protobuf.Timestamp Created at timestamp.
updated_at google.protobuf.Timestamp Last update timestamp.
name string Name.
region common.Region Region.
group_type MulticastGroupType Multicast group type.

MulticastGroupQueueItem

Field Type Label Description
multicast_group_id string Multicast group ID.
f_cnt uint32 Downlink frame-counter. This will be automatically set on enqueue.
f_port uint32 FPort (must be > 0).
data bytes Payload.

RemoveDeviceFromMulticastGroupRequest

Field Type Label Description
multicast_group_id string Multicast group ID.
dev_eui string Device EUI (HEX encoded).

RemoveGatewayFromMulticastGroupRequest

Field Type Label Description
multicast_group_id string Multicast group ID.
gateway_id string Gateway ID (HEX encoded).

UpdateMulticastGroupRequest

Field Type Label Description
multicast_group MulticastGroup Multicast group object to update.

MulticastGroupSchedulingType

Name Number Description
DELAY 0 Delay. If multicast downlinks must be sent through multiple gateways, then these will be sent one by one with a delay between each gateway.
GPS_TIME 1 Time. If multicast downlinks must be sent through multiple gateways, then these will be sent simultaneously using GPS time synchronization. Note that this does require GPS time-synchronized LoRa gateways.

MulticastGroupType

Name Number Description
CLASS_C 0 Class C.
CLASS_B 1 Class-B.

MulticastGroupService

MulticastGroupService is the service managing multicast-groups.

Method Name Request Type Response Type Description
Create CreateMulticastGroupRequest CreateMulticastGroupResponse Create the given multicast group.
Get GetMulticastGroupRequest GetMulticastGroupResponse Get returns the multicast group for the given ID.
Update UpdateMulticastGroupRequest .google.protobuf.Empty Update the given multicast group.
Delete DeleteMulticastGroupRequest .google.protobuf.Empty Delete the multicast-group with the given ID.
List ListMulticastGroupsRequest ListMulticastGroupsResponse List the available multicast groups.
AddDevice AddDeviceToMulticastGroupRequest .google.protobuf.Empty Add a device to the multicast group.
RemoveDevice RemoveDeviceFromMulticastGroupRequest .google.protobuf.Empty Remove a device from the multicast group.
AddGateway AddGatewayToMulticastGroupRequest .google.protobuf.Empty Add a gateway to the multicast group.
RemoveGateway RemoveGatewayFromMulticastGroupRequest .google.protobuf.Empty Remove a gateway from the multicast group.
Enqueue EnqueueMulticastGroupQueueItemRequest EnqueueMulticastGroupQueueItemResponse Add the given item to the multicast group queue.
FlushQueue FlushMulticastGroupQueueRequest .google.protobuf.Empty Flush the queue for the given multicast group.
ListQueue ListMulticastGroupQueueRequest ListMulticastGroupQueueResponse List the items in the multicast group queue.

Top

api/relay.proto

AddRelayDeviceRequest

Field Type Label Description
relay_dev_eui string Relay DevEUI (EUI64).
device_dev_eui string Device DevEUI (EUI64).

ListRelayDevicesRequest

Field Type Label Description
limit uint32 Max number of multicast groups to return in the result-set.
offset uint32 Offset in the result-set (for pagination).
relay_dev_eui string Relay DevEUI (EUI64).

ListRelayDevicesResponse

Field Type Label Description
total_count uint32 Total number of devices.
result RelayDeviceListItem repeated Result-set.

ListRelaysRequest

Field Type Label Description
limit uint32 Max number of devices to return in the result-set.
offset uint32 Offset in the result-set (for pagination).
application_id string Application ID (UUID).

ListRelaysResponse

Field Type Label Description
total_count uint32 Total number of relays.
result RelayListItem repeated Result-set.

RelayDeviceListItem

Field Type Label Description
dev_eui string DevEUI (EUI64).
created_at google.protobuf.Timestamp Created at timestamp.
name string Device name.

RelayListItem

Field Type Label Description
dev_eui string DevEUI (EUI64).
name string Name.

RemoveRelayDeviceRequest

Field Type Label Description
relay_dev_eui string Relay DevEUI (EUI64).
device_dev_eui string Device DevEUI (EUI64).

RelayService

RelayService is the service providing API methos for managing relays.

Method Name Request Type Response Type Description
List ListRelaysRequest ListRelaysResponse List lists the relays for the given application id.
AddDevice AddRelayDeviceRequest .google.protobuf.Empty AddDevice adds the given device to the relay.
RemoveDevice RemoveRelayDeviceRequest .google.protobuf.Empty RemoveDevice removes the given device from the relay.
ListDevices ListRelayDevicesRequest ListRelayDevicesResponse ListDevices lists the devices for the given relay.

Top

api/tenant.proto

AddTenantUserRequest

Field Type Label Description
tenant_user TenantUser Tenant user object.

CreateTenantRequest

Field Type Label Description
tenant Tenant Tenant object to create.

CreateTenantResponse

Field Type Label Description
id string Tenant ID.

DeleteTenantRequest

Field Type Label Description
id string Tenant ID.

DeleteTenantUserRequest

Field Type Label Description
tenant_id string Tenant ID (UUID).
user_id string User ID (UUID).

GetTenantRequest

Field Type Label Description
id string Tenant ID.

GetTenantResponse

Field Type Label Description
tenant Tenant Tenant object.
created_at google.protobuf.Timestamp Created at timestamp.
updated_at google.protobuf.Timestamp Last update timestamp.

GetTenantUserRequest

Field Type Label Description
tenant_id string Tenant ID (UUID).
user_id string User ID (UUID).

GetTenantUserResponse

Field Type Label Description
tenant_user TenantUser Tenant user object.
created_at google.protobuf.Timestamp Created at timestamp.
updated_at google.protobuf.Timestamp Last update timestamp.

ListTenantUsersRequest

Field Type Label Description
tenant_id string Tenant ID (UUID).
limit uint32 Max number of tenants to return in the result-set.
offset uint32 Offset in the result-set (for pagination).

ListTenantUsersResponse

Field Type Label Description
total_count uint32 Total number of tenants.
result TenantUserListItem repeated Result-set.

ListTenantsRequest

Field Type Label Description
limit uint32 Max number of tenants to return in the result-set.
offset uint32 Offset in the result-set (for pagination).
search string If set, the given string will be used to search on name.
user_id string If set, filters the result set to the tenants of the user. Only global API keys are able to filter by this field.

ListTenantsResponse

Field Type Label Description
total_count uint32 Total number of tenants.
result TenantListItem repeated Result-set.

Tenant

Field Type Label Description
id string Tenant ID (UUID). Note: this value will be automatically generated on create.
name string Tenant name,
description string Tenant description.
can_have_gateways bool Can the tenant create and "own" Gateways?
max_gateway_count uint32 Max. gateway count for tenant. When set to 0, the tenant can have unlimited gateways.
max_device_count uint32 Max. device count for tenant. When set to 0, the tenant can have unlimited devices.
private_gateways_up bool Private gateways (uplink). If enabled, then uplink messages will not be shared with other tenants.
private_gateways_down bool Private gateways (downlink). If enabled, then other tenants will not be able to schedule downlink messages through the gateways of this tenant. For example, in case you do want to share uplinks with other tenants (private_gateways_up=false), but you want to prevent other tenants from using gateway airtime.
tags Tenant.TagsEntry repeated Tags (user defined). These tags can be used to add additional information to the tenant. These tags are NOT exposed in the integration events.

Tenant.TagsEntry

Field Type Label Description
key string
value string

TenantListItem

Field Type Label Description
id string Tenant ID (UUID).
created_at google.protobuf.Timestamp Created at timestamp.
updated_at google.protobuf.Timestamp Last update timestamp.
name string Tenant name.
can_have_gateways bool Can the tenant create and "own" Gateways?
private_gateways_up bool Private gateways (uplink).
private_gateways_down bool Private gateways (downlink).
max_gateway_count uint32 Max gateway count. 0 = unlimited.
max_device_count uint32 Max device count. 0 = unlimited.

TenantUser

Field Type Label Description
tenant_id string Tenant ID (UUID).
user_id string User ID (UUID).
is_admin bool User is admin within the context of the tenant. There is no need to set the is_device_admin and is_gateway_admin flags.
is_device_admin bool User is able to modify device related resources (applications, device-profiles, devices, multicast-groups).
is_gateway_admin bool User is able to modify gateways.
email string Email (only used on get and when adding a user to a tenant).

TenantUserListItem

Field Type Label Description
tenant_id string Tenant ID (UUID).
user_id string User ID (UUID).
created_at google.protobuf.Timestamp Created at timestamp.
updated_at google.protobuf.Timestamp Last update timestamp.
email string Email.
is_admin bool User is admin within the context of the tenant. There is no need to set the is_device_admin and is_gateway_admin flags.
is_device_admin bool User is able to modify device related resources (applications, device-profiles, devices, multicast-groups).
is_gateway_admin bool User is able to modify gateways.

UpdateTenantRequest

Field Type Label Description
tenant Tenant Tenant object.

UpdateTenantUserRequest

Field Type Label Description
tenant_user TenantUser Tenant user object.

TenantService

TenantService is the service providing API methods for managing tenants.

Method Name Request Type Response Type Description
Create CreateTenantRequest CreateTenantResponse Create a new tenant.
Get GetTenantRequest GetTenantResponse Get the tenant for the given ID.
Update UpdateTenantRequest .google.protobuf.Empty Update the given tenant.
Delete DeleteTenantRequest .google.protobuf.Empty Delete the tenant with the given ID.
List ListTenantsRequest ListTenantsResponse Get the list of tenants.
AddUser AddTenantUserRequest .google.protobuf.Empty Add an user to the tenant. Note: the user must already exist.
GetUser GetTenantUserRequest GetTenantUserResponse Get the the tenant user for the given tenant and user IDs.
UpdateUser UpdateTenantUserRequest .google.protobuf.Empty Update the given tenant user.
DeleteUser DeleteTenantUserRequest .google.protobuf.Empty Delete the given tenant user.
ListUsers ListTenantUsersRequest ListTenantUsersResponse Get the list of tenant users.

Top

api/user.proto

CreateUserRequest

Field Type Label Description
user User User object to create.
password string Password to set for the user.
tenants UserTenant repeated Add the user to the following tenants.

CreateUserResponse

Field Type Label Description
id string User ID.

DeleteUserRequest

Field Type Label Description
id string User ID.

GetUserRequest

Field Type Label Description
id string User ID.

GetUserResponse

Field Type Label Description
user User User object.
created_at google.protobuf.Timestamp Created at timestamp.
updated_at google.protobuf.Timestamp Last update timestamp.

ListUsersRequest

Field Type Label Description
limit uint32 Max number of tenants to return in the result-set.
offset uint32 Offset in the result-set (for pagination).

ListUsersResponse

Field Type Label Description
total_count uint32 Total number of users.
result UserListItem repeated Result-set.

UpdateUserPasswordRequest

Field Type Label Description
user_id string User ID.
password string Password to set.

UpdateUserRequest

Field Type Label Description
user User User object.

User

Field Type Label Description
id string User ID (UUID). Will be set automatically on create.
is_admin bool Set to true to make the user a global administrator.
is_active bool Set to false to disable the user.
email string E-mail of the user.
note string Optional note to store with the user.

UserListItem

Field Type Label Description
id string User ID (UUID).
created_at google.protobuf.Timestamp Created at timestamp.
updated_at google.protobuf.Timestamp Last update timestamp.
email string Email of the user.
is_admin bool Set to true to make the user a global administrator.
is_active bool Set to false to disable the user.

UserTenant

Field Type Label Description
tenant_id string Tenant ID.
is_admin bool User is admin within the context of the tenant. There is no need to set the is_device_admin and is_gateway_admin flags.
is_device_admin bool User is able to modify device related resources (applications, device-profiles, devices, multicast-groups).
is_gateway_admin bool User is able to modify gateways.

UserService

UserService is the service providing API methods for managing users.

Method Name Request Type Response Type Description
Create CreateUserRequest CreateUserResponse Create a new user.
Get GetUserRequest GetUserResponse Get the user for the given ID.
Update UpdateUserRequest .google.protobuf.Empty Update the given user.
Delete DeleteUserRequest .google.protobuf.Empty Delete the user with the given ID.
List ListUsersRequest ListUsersResponse Get the list of users.
UpdatePassword UpdateUserPasswordRequest .google.protobuf.Empty Update the password for the given user.

Scalar Value Types

.proto Type Notes C++ Java Python Go C# PHP Ruby
double double double float float64 double float Float
float float float float float32 float float Float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers if your field is likely to have negative values, use sint32 instead. int32 int int int32 int integer Bignum or Fixnum (as required)
int64 Uses variable-length encoding. Inefficient for encoding negative numbers if your field is likely to have negative values, use sint64 instead. int64 long int/long int64 long integer/string Bignum
uint32 Uses variable-length encoding. uint32 int int/long uint32 uint integer Bignum or Fixnum (as required)
uint64 Uses variable-length encoding. uint64 long int/long uint64 ulong integer/string Bignum or Fixnum (as required)
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int int int32 int integer Bignum or Fixnum (as required)
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long int/long int64 long integer/string Bignum
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int uint32 uint integer Bignum or Fixnum (as required)
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long uint64 ulong integer/string Bignum
sfixed32 Always four bytes. int32 int int int32 int integer Bignum or Fixnum (as required)
sfixed64 Always eight bytes. int64 long int/long int64 long integer/string Bignum
bool bool boolean boolean bool bool boolean TrueClass/FalseClass
string A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode string string string String (UTF-8)
bytes May contain any arbitrary sequence of bytes. string ByteString str []byte ByteString string String (ASCII-8BIT)