Re-generate API code.

This commit is contained in:
Orne Brocaar
2023-06-14 13:11:46 +01:00
parent ba7b262323
commit 087a27f904
30 changed files with 1842 additions and 1443 deletions

View File

@ -16,520 +16,531 @@ import "google/protobuf/empty.proto";
// DeviceService is the service providing API methods for managing devices.
service DeviceService {
// Create the given device.
rpc Create(CreateDeviceRequest) returns (google.protobuf.Empty) {
option(google.api.http) = {
post: "/api/devices"
body: "*"
};
}
// Create the given device.
rpc Create(CreateDeviceRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
post : "/api/devices"
body : "*"
};
}
// Get returns the device for the given DevEUI.
rpc Get(GetDeviceRequest) returns (GetDeviceResponse) {
option(google.api.http) = {
get: "/api/devices/{dev_eui}"
};
}
// Get returns the device for the given DevEUI.
rpc Get(GetDeviceRequest) returns (GetDeviceResponse) {
option (google.api.http) = {
get : "/api/devices/{dev_eui}"
};
}
// Update the given device.
rpc Update(UpdateDeviceRequest) returns (google.protobuf.Empty) {
option(google.api.http) = {
put: "/api/devices/{device.dev_eui}"
body: "*"
};
}
// Update the given device.
rpc Update(UpdateDeviceRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
put : "/api/devices/{device.dev_eui}"
body : "*"
};
}
// Delete the device with the given DevEUI.
rpc Delete(DeleteDeviceRequest) returns (google.protobuf.Empty) {
option(google.api.http) = {
delete: "/api/devices/{dev_eui}"
};
}
// Delete the device with the given DevEUI.
rpc Delete(DeleteDeviceRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete : "/api/devices/{dev_eui}"
};
}
// Get the list of devices.
rpc List(ListDevicesRequest) returns (ListDevicesResponse) {
option(google.api.http) = {
get: "/api/devices"
};
}
// Get the list of devices.
rpc List(ListDevicesRequest) returns (ListDevicesResponse) {
option (google.api.http) = {
get : "/api/devices"
};
}
// Create the given device-keys.
rpc CreateKeys(CreateDeviceKeysRequest) returns (google.protobuf.Empty) {
option(google.api.http) = {
post: "/api/devices/{device_keys.dev_eui}/keys"
body: "*"
};
}
// Create the given device-keys.
rpc CreateKeys(CreateDeviceKeysRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
post : "/api/devices/{device_keys.dev_eui}/keys"
body : "*"
};
}
// Get the device-keys for the given DevEUI.
rpc GetKeys(GetDeviceKeysRequest) returns (GetDeviceKeysResponse) {
option(google.api.http) = {
get: "/api/devices/{dev_eui}/keys"
};
}
// Get the device-keys for the given DevEUI.
rpc GetKeys(GetDeviceKeysRequest) returns (GetDeviceKeysResponse) {
option (google.api.http) = {
get : "/api/devices/{dev_eui}/keys"
};
}
// Update the given device-keys.
rpc UpdateKeys(UpdateDeviceKeysRequest) returns (google.protobuf.Empty) {
option(google.api.http) = {
put: "/api/devices/{device_keys.dev_eui}/keys"
body: "*"
};
}
// Update the given device-keys.
rpc UpdateKeys(UpdateDeviceKeysRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
put : "/api/devices/{device_keys.dev_eui}/keys"
body : "*"
};
}
// Delete the device-keys for the given DevEUI.
rpc DeleteKeys(DeleteDeviceKeysRequest) returns (google.protobuf.Empty) {
option(google.api.http) = {
delete: "/api/devices/{dev_eui}/keys"
};
}
// Delete the device-keys for the given DevEUI.
rpc DeleteKeys(DeleteDeviceKeysRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete : "/api/devices/{dev_eui}/keys"
};
}
// FlushDevNonces flushes the OTAA device nonces.
rpc FlushDevNonces(FlushDevNoncesRequest) returns (google.protobuf.Empty) {
option(google.api.http) = {
delete: "/api/devices/{dev_eui}/dev-nonces"
};
}
// FlushDevNonces flushes the OTAA device nonces.
rpc FlushDevNonces(FlushDevNoncesRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete : "/api/devices/{dev_eui}/dev-nonces"
};
}
// Activate (re)activates the device with the given parameters (for ABP or for importing OTAA activations).
rpc Activate(ActivateDeviceRequest) returns (google.protobuf.Empty) {
option(google.api.http) = {
post: "/api/devices/{device_activation.dev_eui}/activate"
body: "*"
};
}
// Activate (re)activates the device with the given parameters (for ABP or for
// importing OTAA activations).
rpc Activate(ActivateDeviceRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
post : "/api/devices/{device_activation.dev_eui}/activate"
body : "*"
};
}
// Deactivate de-activates the device.
rpc Deactivate(DeactivateDeviceRequest) returns (google.protobuf.Empty) {
option(google.api.http) = {
delete: "/api/devices/{dev_eui}/activation"
};
}
// Deactivate de-activates the device.
rpc Deactivate(DeactivateDeviceRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete : "/api/devices/{dev_eui}/activation"
};
}
// GetActivation returns the current activation details of the device (OTAA or ABP).
rpc GetActivation(GetDeviceActivationRequest) returns (GetDeviceActivationResponse) {
option(google.api.http) = {
get: "/api/devices/{dev_eui}/activation"
};
}
// GetActivation returns the current activation details of the device (OTAA or
// ABP).
rpc GetActivation(GetDeviceActivationRequest)
returns (GetDeviceActivationResponse) {
option (google.api.http) = {
get : "/api/devices/{dev_eui}/activation"
};
}
// GetRandomDevAddr returns a random DevAddr taking the NwkID prefix into account.
rpc GetRandomDevAddr(GetRandomDevAddrRequest) returns (GetRandomDevAddrResponse) {
option(google.api.http) = {
post: "/api/devices/{dev_eui}/get-random-dev-addr"
};
}
// GetRandomDevAddr returns a random DevAddr taking the NwkID prefix into
// account.
rpc GetRandomDevAddr(GetRandomDevAddrRequest)
returns (GetRandomDevAddrResponse) {
option (google.api.http) = {
post : "/api/devices/{dev_eui}/get-random-dev-addr"
};
}
// GetMetrics returns the device metrics.
// Note that this requires a device-profile with codec and measurements configured.
rpc GetMetrics(GetDeviceMetricsRequest) returns (GetDeviceMetricsResponse) {
option(google.api.http) = {
get: "/api/devices/{dev_eui}/metrics"
};
}
// GetMetrics returns the device metrics.
// Note that this requires a device-profile with codec and measurements
// configured.
rpc GetMetrics(GetDeviceMetricsRequest) returns (GetDeviceMetricsResponse) {
option (google.api.http) = {
get : "/api/devices/{dev_eui}/metrics"
};
}
// GetLinkMetrics returns the device link metrics.
// This includes uplinks, downlinks, RSSI, SNR, etc...
rpc GetLinkMetrics(GetDeviceLinkMetricsRequest) returns (GetDeviceLinkMetricsResponse) {
option(google.api.http) = {
get: "/api/devices/{dev_eui}/link-metrics"
};
}
// GetLinkMetrics returns the device link metrics.
// This includes uplinks, downlinks, RSSI, SNR, etc...
rpc GetLinkMetrics(GetDeviceLinkMetricsRequest)
returns (GetDeviceLinkMetricsResponse) {
option (google.api.http) = {
get : "/api/devices/{dev_eui}/link-metrics"
};
}
// Enqueue adds the given item to the downlink queue.
rpc Enqueue(EnqueueDeviceQueueItemRequest) returns (EnqueueDeviceQueueItemResponse) {
option(google.api.http) = {
post: "/api/devices/{queue_item.dev_eui}/queue"
body: "*"
};
}
// Enqueue adds the given item to the downlink queue.
rpc Enqueue(EnqueueDeviceQueueItemRequest)
returns (EnqueueDeviceQueueItemResponse) {
option (google.api.http) = {
post : "/api/devices/{queue_item.dev_eui}/queue"
body : "*"
};
}
// FlushQueue flushes the downlink device-queue.
rpc FlushQueue(FlushDeviceQueueRequest) returns (google.protobuf.Empty) {
option(google.api.http) = {
delete: "/api/devices/{dev_eui}/queue"
};
}
// FlushQueue flushes the downlink device-queue.
rpc FlushQueue(FlushDeviceQueueRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete : "/api/devices/{dev_eui}/queue"
};
}
// GetQueue returns the downlink device-queue.
rpc GetQueue(GetDeviceQueueItemsRequest) returns (GetDeviceQueueItemsResponse) {
option(google.api.http) = {
get: "/api/devices/{dev_eui}/queue"
};
}
// GetQueue returns the downlink device-queue.
rpc GetQueue(GetDeviceQueueItemsRequest)
returns (GetDeviceQueueItemsResponse) {
option (google.api.http) = {
get : "/api/devices/{dev_eui}/queue"
};
}
}
message Device {
// DevEUI (EUI64).
string dev_eui = 1;
// DevEUI (EUI64).
string dev_eui = 1;
// Name.
string name = 2;
// Name.
string name = 2;
// Description.
string description = 3;
// Description.
string description = 3;
// Application ID (UUID).
string application_id = 4;
// Device-profile ID (UUID).
string device_profile_id = 5;
// Application ID (UUID).
string application_id = 4;
// Skip frame-counter checks (this is insecure, but could be helpful for debugging).
bool skip_fcnt_check = 6;
// Device-profile ID (UUID).
string device_profile_id = 5;
// Device is disabled.
bool is_disabled = 7;
// Skip frame-counter checks (this is insecure, but could be helpful for
// debugging).
bool skip_fcnt_check = 6;
// 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.
map<string, string> variables = 8;
// Device is disabled.
bool is_disabled = 7;
// Tags (user defined).
// These tags are exposed in the event payloads or to integration. Tags are
// intended for aggregation and filtering.
map<string, string> tags = 9;
// 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.
map<string, string> variables = 8;
// 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.
string join_eui = 10;
// Tags (user defined).
// These tags are exposed in the event payloads or to integration. Tags are
// intended for aggregation and filtering.
map<string, string> tags = 9;
// 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.
string join_eui = 10;
}
message DeviceStatus {
// The device margin status
// -32..32: The demodulation SNR ration in dB
int32 margin = 1;
// The device margin status
// -32..32: The demodulation SNR ration in dB
int32 margin = 1;
// Device is connected to an external power source.
bool external_power_source = 2;
// Device is connected to an external power source.
bool external_power_source = 2;
// Device battery level as a percentage.
// -1 when the battery level is not available.
float battery_level = 3;
// Device battery level as a percentage.
// -1 when the battery level is not available.
float battery_level = 3;
}
message DeviceListItem {
// DevEUI (EUI64).
string dev_eui = 1;
// DevEUI (EUI64).
string dev_eui = 1;
// Created at timestamp.
google.protobuf.Timestamp created_at = 2;
// Created at timestamp.
google.protobuf.Timestamp created_at = 2;
// Last update timestamp.
google.protobuf.Timestamp updated_at = 3;
// Last update timestamp.
google.protobuf.Timestamp updated_at = 3;
// Last seen at timestamp.
google.protobuf.Timestamp last_seen_at = 4;
// Last seen at timestamp.
google.protobuf.Timestamp last_seen_at = 4;
// Name.
string name = 5;
// Name.
string name = 5;
// Description.
string description = 6;
// Description.
string description = 6;
// Device-profile ID (UUID).
string device_profile_id = 7;
// Device-profile ID (UUID).
string device_profile_id = 7;
// Device-profile name.
string device_profile_name = 8;
// Device-profile name.
string device_profile_name = 8;
// Device status.
DeviceStatus device_status = 9;
// Device status.
DeviceStatus device_status = 9;
}
message DeviceKeys {
// DevEUI (EUI64).
string dev_eui = 1;
// DevEUI (EUI64).
string dev_eui = 1;
// Network root key (128 bit).
// Note: For LoRaWAN 1.0.x, use this field for the LoRaWAN 1.0.x 'AppKey`!
string nwk_key = 2;
// Network root key (128 bit).
// Note: For LoRaWAN 1.0.x, use this field for the LoRaWAN 1.0.x 'AppKey`!
string nwk_key = 2;
// Application root key (128 bit).
// Note: This field only needs to be set for LoRaWAN 1.1.x devices!
string app_key = 3;
// Application root key (128 bit).
// Note: This field only needs to be set for LoRaWAN 1.1.x devices!
string app_key = 3;
}
message CreateDeviceRequest {
// Device object.
Device device = 1;
// Device object.
Device device = 1;
}
message GetDeviceRequest {
// DevEUI (EUI64).
string dev_eui = 1;
// DevEUI (EUI64).
string dev_eui = 1;
}
message GetDeviceResponse {
// Device object.
Device device = 1;
// Device object.
Device device = 1;
// Created at timestamp.
google.protobuf.Timestamp created_at = 2;
// Created at timestamp.
google.protobuf.Timestamp created_at = 2;
// Last update timestamp.
google.protobuf.Timestamp updated_at = 3;
// Last update timestamp.
google.protobuf.Timestamp updated_at = 3;
// Last seen at timestamp.
google.protobuf.Timestamp last_seen_at = 4;
// Last seen at timestamp.
google.protobuf.Timestamp last_seen_at = 4;
// Device status.
DeviceStatus device_status = 5;
// Device status.
DeviceStatus device_status = 5;
// Enabled device class.
common.DeviceClass class_enabled = 6;
}
message UpdateDeviceRequest {
// Device object.
Device device = 1;
// Device object.
Device device = 1;
}
message DeleteDeviceRequest {
// DevEUI (EUI64).
string dev_eui = 1;
// DevEUI (EUI64).
string dev_eui = 1;
}
message ListDevicesRequest {
// Max number of devices to return in the result-set.
uint32 limit = 1;
// Max number of devices to return in the result-set.
uint32 limit = 1;
// Offset in the result-set (for pagination).
uint32 offset = 2;
// Offset in the result-set (for pagination).
uint32 offset = 2;
// If set, the given string will be used to search on name (optional).
string search = 3;
// If set, the given string will be used to search on name (optional).
string search = 3;
// Application ID (UUID) to filter devices on.
string application_id = 4;
// Application ID (UUID) to filter devices on.
string application_id = 4;
// Multicst-group ID (UUID) to filter devices on.
string multicast_group_id = 5;
// Multicst-group ID (UUID) to filter devices on.
string multicast_group_id = 5;
}
message ListDevicesResponse {
// Total number of devices.
uint32 total_count = 1;
// Total number of devices.
uint32 total_count = 1;
// Result-set.
repeated DeviceListItem result = 2;
// Result-set.
repeated DeviceListItem result = 2;
}
message CreateDeviceKeysRequest {
// Device-keys object.
DeviceKeys device_keys = 1;
// Device-keys object.
DeviceKeys device_keys = 1;
}
message GetDeviceKeysRequest {
// DevEUI (EUI64).
string dev_eui = 1;
// DevEUI (EUI64).
string dev_eui = 1;
}
message GetDeviceKeysResponse {
// Device-keys object.
DeviceKeys device_keys = 1;
// Device-keys object.
DeviceKeys device_keys = 1;
// Created at timestamp.
google.protobuf.Timestamp created_at = 2;
// Created at timestamp.
google.protobuf.Timestamp created_at = 2;
// Last update timestamp.
google.protobuf.Timestamp updated_at = 3;
// Last update timestamp.
google.protobuf.Timestamp updated_at = 3;
}
message UpdateDeviceKeysRequest {
// Device-keys object.
DeviceKeys device_keys = 1;
// Device-keys object.
DeviceKeys device_keys = 1;
}
message DeleteDeviceKeysRequest {
// DevEUI (EUI64).
string dev_eui = 1;
// DevEUI (EUI64).
string dev_eui = 1;
}
message DeviceActivation {
// Device EUI (EUI64).
string dev_eui = 1;
// Device EUI (EUI64).
string dev_eui = 1;
// Device address (HEX encoded).
string dev_addr = 2;
// Device address (HEX encoded).
string dev_addr = 2;
// Application session key (HEX encoded).
string app_s_key = 3;
// Application session key (HEX encoded).
string app_s_key = 3;
// Network session encryption key (HEX encoded).
string nwk_s_enc_key = 4;
// Network session encryption key (HEX encoded).
string nwk_s_enc_key = 4;
// Serving network session integrity key (HEX encoded).
string s_nwk_s_int_key = 8;
// Serving network session integrity key (HEX encoded).
string s_nwk_s_int_key = 8;
// Forwarding network session integrity key (HEX encoded).
string f_nwk_s_int_key = 9;
// Forwarding network session integrity key (HEX encoded).
string f_nwk_s_int_key = 9;
// Uplink frame-counter.
uint32 f_cnt_up = 5;
// Uplink frame-counter.
uint32 f_cnt_up = 5;
// Downlink network frame-counter.
uint32 n_f_cnt_down = 6;
// Downlink network frame-counter.
uint32 n_f_cnt_down = 6;
// Downlink application frame-counter.
uint32 a_f_cnt_down = 10;
// Downlink application frame-counter.
uint32 a_f_cnt_down = 10;
}
message ActivateDeviceRequest {
// Device activation object.
DeviceActivation device_activation = 1;
// Device activation object.
DeviceActivation device_activation = 1;
}
message DeactivateDeviceRequest {
// DevEUI (EUI64).
string dev_eui = 1;
// DevEUI (EUI64).
string dev_eui = 1;
}
message GetDeviceActivationRequest {
// DevEUI (EUI64).
string dev_eui = 1;
// DevEUI (EUI64).
string dev_eui = 1;
}
message GetDeviceActivationResponse {
// Device activation object.
DeviceActivation device_activation = 1;
// Device activation object.
DeviceActivation device_activation = 1;
}
message GetRandomDevAddrRequest {
// DevEUI (EUI64).
string dev_eui = 1;
// DevEUI (EUI64).
string dev_eui = 1;
}
message GetRandomDevAddrResponse {
// DevAddr.
string dev_addr = 1;
// DevAddr.
string dev_addr = 1;
}
message GetDeviceMetricsRequest {
// DevEUI (EUI64).
string dev_eui = 1;
// DevEUI (EUI64).
string dev_eui = 1;
// Interval start timestamp.
google.protobuf.Timestamp start = 2;
// Interval start timestamp.
google.protobuf.Timestamp start = 2;
// Interval end timestamp.
google.protobuf.Timestamp end = 3;
// Interval end timestamp.
google.protobuf.Timestamp end = 3;
// Aggregation.
common.Aggregation aggregation = 4;
// Aggregation.
common.Aggregation aggregation = 4;
}
message GetDeviceMetricsResponse {
map<string, common.Metric> metrics = 1;
map<string, common.Metric> metrics = 1;
map<string, DeviceState> states = 2;
map<string, DeviceState> states = 2;
}
message DeviceState {
// Name.
string name = 2;
// Name.
string name = 2;
// Value.
string value = 3;
// Value.
string value = 3;
}
message GetDeviceLinkMetricsRequest {
// DevEUI (EUI64).
string dev_eui = 1;
// DevEUI (EUI64).
string dev_eui = 1;
// Interval start timestamp.
google.protobuf.Timestamp start = 2;
// Interval start timestamp.
google.protobuf.Timestamp start = 2;
// Interval end timestamp.
google.protobuf.Timestamp end = 3;
// Interval end timestamp.
google.protobuf.Timestamp end = 3;
// Aggregation.
common.Aggregation aggregation = 4;
// Aggregation.
common.Aggregation aggregation = 4;
}
message GetDeviceLinkMetricsResponse {
// Packets received from the device.
common.Metric rx_packets = 1;
// Packets received from the device.
common.Metric rx_packets = 1;
// RSSI (as reported by the gateway(s)).
common.Metric gw_rssi = 2;
// RSSI (as reported by the gateway(s)).
common.Metric gw_rssi = 2;
// SNR (as reported by the gateway(s)).
common.Metric gw_snr = 3;
// SNR (as reported by the gateway(s)).
common.Metric gw_snr = 3;
// Packets received by frequency.
common.Metric rx_packets_per_freq = 4;
// Packets received by frequency.
common.Metric rx_packets_per_freq = 4;
// Packets received by DR.
common.Metric rx_packets_per_dr = 5;
// Packets received by DR.
common.Metric rx_packets_per_dr = 5;
// Errors.
common.Metric errors = 6;
// Errors.
common.Metric errors = 6;
}
message DeviceQueueItem {
// ID (UUID).
// This is automatically generated on enqueue.
string id = 1;
// ID (UUID).
// This is automatically generated on enqueue.
string id = 1;
// Device EUI (EUI64).
string dev_eui = 2;
// Device EUI (EUI64).
string dev_eui = 2;
// Confirmed.
bool confirmed = 3;
// Confirmed.
bool confirmed = 3;
// FPort (must be > 0).
uint32 f_port = 4;
// FPort (must be > 0).
uint32 f_port = 4;
// Data.
// Or use the json_object field when a codec has been configured.
bytes data = 5;
// Data.
// Or use the json_object field when a codec has been configured.
bytes data = 5;
// Only use this when a codec has been configured that can encode this
// object to bytes.
google.protobuf.Struct object = 6;
// Only use this when a codec has been configured that can encode this
// object to bytes.
google.protobuf.Struct object = 6;
// Is pending.
// This is set to true when the downlink is pending.
bool is_pending = 7;
// Is pending.
// This is set to true when the downlink is pending.
bool is_pending = 7;
// Downlink frame-counter.
// This is set when the payload has been sent as downlink.
uint32 f_cnt_down = 8;
// Downlink frame-counter.
// This is set when the payload has been sent as downlink.
uint32 f_cnt_down = 8;
}
message EnqueueDeviceQueueItemRequest {
DeviceQueueItem queue_item = 1;
}
message EnqueueDeviceQueueItemRequest { DeviceQueueItem queue_item = 1; }
message EnqueueDeviceQueueItemResponse {
// ID (UUID).
string id = 1;
// ID (UUID).
string id = 1;
}
message FlushDeviceQueueRequest {
// Device EUI (EUI64).
string dev_eui = 1;
// Device EUI (EUI64).
string dev_eui = 1;
}
message GetDeviceQueueItemsRequest {
// Device EUI (EUI64).
string dev_eui = 1;
// Device EUI (EUI64).
string dev_eui = 1;
// Return only the count, not the result-set.
bool count_only = 2;
// Return only the count, not the result-set.
bool count_only = 2;
}
message GetDeviceQueueItemsResponse {
// Total number of queue items.
uint32 total_count = 1;
// Total number of queue items.
uint32 total_count = 1;
// Result-set.
repeated DeviceQueueItem result = 2;
// Result-set.
repeated DeviceQueueItem result = 2;
}
message FlushDevNoncesRequest {
// Device EUI (EUI64).
string dev_eui = 1;
// Device EUI (EUI64).
string dev_eui = 1;
}

View File

@ -11,193 +11,205 @@ option csharp_namespace = "Chirpstack.Common";
import "google/protobuf/timestamp.proto";
enum Modulation {
// LoRa
LORA = 0;
// LoRa
LORA = 0;
// FSK
FSK = 1;
// FSK
FSK = 1;
// LR-FHSS
LR_FHSS = 2;
// LR-FHSS
LR_FHSS = 2;
}
enum Region {
// EU868
EU868 = 0;
// EU868
EU868 = 0;
// US915
US915 = 2;
// US915
US915 = 2;
// CN779
CN779 = 3;
// CN779
CN779 = 3;
// EU433
EU433 = 4;
// EU433
EU433 = 4;
// AU915
AU915 = 5;
// AU915
AU915 = 5;
// CN470
CN470 = 6;
// CN470
CN470 = 6;
// AS923
AS923 = 7;
// AS923
AS923 = 7;
// AS923 with -1.80 MHz frequency offset
AS923_2 = 12;
// AS923 with -1.80 MHz frequency offset
AS923_2 = 12;
// AS923 with -6.60 MHz frequency offset
AS923_3 = 13;
// AS923 with -6.60 MHz frequency offset
AS923_3 = 13;
// (AS923 with -5.90 MHz frequency offset).
AS923_4 = 14;
// (AS923 with -5.90 MHz frequency offset).
AS923_4 = 14;
// KR920
KR920 = 8;
// KR920
KR920 = 8;
// IN865
IN865 = 9;
// IN865
IN865 = 9;
// RU864
RU864 = 10;
// RU864
RU864 = 10;
// ISM2400 (LoRaWAN 2.4 GHz)
ISM2400 = 11;
// ISM2400 (LoRaWAN 2.4 GHz)
ISM2400 = 11;
}
enum MType {
// JoinRequest.
JOIN_REQUEST = 0;
// JoinRequest.
JOIN_REQUEST = 0;
// JoinAccept.
JOIN_ACCEPT = 1;
// UnconfirmedDataUp.
UNCONFIRMED_DATA_UP = 2;
// JoinAccept.
JOIN_ACCEPT = 1;
// UnconfirmedDataDown.
UNCONFIRMED_DATA_DOWN = 3;
// UnconfirmedDataUp.
UNCONFIRMED_DATA_UP = 2;
// ConfirmedDataUp.
CONFIRMED_DATA_UP = 4;
// ConfirmedDataDown.
CONFIRMED_DATA_DOWN = 5;
// UnconfirmedDataDown.
UNCONFIRMED_DATA_DOWN = 3;
// RejoinRequest.
REJOIN_REQUEST = 6;
// ConfirmedDataUp.
CONFIRMED_DATA_UP = 4;
// Proprietary.
PROPRIETARY = 7;
// ConfirmedDataDown.
CONFIRMED_DATA_DOWN = 5;
// RejoinRequest.
REJOIN_REQUEST = 6;
// Proprietary.
PROPRIETARY = 7;
}
enum MacVersion {
LORAWAN_1_0_0 = 0;
LORAWAN_1_0_1 = 1;
LORAWAN_1_0_2 = 2;
LORAWAN_1_0_3 = 3;
LORAWAN_1_0_4 = 4;
LORAWAN_1_1_0 = 5;
LORAWAN_1_0_0 = 0;
LORAWAN_1_0_1 = 1;
LORAWAN_1_0_2 = 2;
LORAWAN_1_0_3 = 3;
LORAWAN_1_0_4 = 4;
LORAWAN_1_1_0 = 5;
}
enum RegParamsRevision {
A = 0;
B = 1;
RP002_1_0_0 = 2;
RP002_1_0_1 = 3;
RP002_1_0_2 = 4;
RP002_1_0_3 = 5;
A = 0;
B = 1;
RP002_1_0_0 = 2;
RP002_1_0_1 = 3;
RP002_1_0_2 = 4;
RP002_1_0_3 = 5;
}
enum LocationSource {
// Unknown.
UNKNOWN = 0;
// Unknown.
UNKNOWN = 0;
// GPS.
GPS = 1;
// GPS.
GPS = 1;
// Manually configured.
CONFIG = 2;
// Manually configured.
CONFIG = 2;
// Geo resolver (TDOA).
GEO_RESOLVER_TDOA = 3;
// Geo resolver (TDOA).
GEO_RESOLVER_TDOA = 3;
// Geo resolver (RSSI).
GEO_RESOLVER_RSSI = 4;
// Geo resolver (RSSI).
GEO_RESOLVER_RSSI = 4;
// Geo resolver (GNSS).
GEO_RESOLVER_GNSS = 5;
// Geo resolver (GNSS).
GEO_RESOLVER_GNSS = 5;
// Geo resolver (WIFI).
GEO_RESOLVER_WIFI = 6;
// Geo resolver (WIFI).
GEO_RESOLVER_WIFI = 6;
}
enum Aggregation {
// Hour.
HOUR = 0;
// Hour.
HOUR = 0;
// Day.
DAY = 1;
// Day.
DAY = 1;
// Month.
MONTH = 2;
// Month.
MONTH = 2;
}
enum MetricKind {
// Incrementing counters that never decrease (these are not reset on each reading).
COUNTER = 0;
// Incrementing counters that never decrease (these are not reset on each
// reading).
COUNTER = 0;
// Counters that do get reset upon reading.
ABSOLUTE = 1;
// Counters that do get reset upon reading.
ABSOLUTE = 1;
// E.g. a temperature value.
GAUGE = 2;
// E.g. a temperature value.
GAUGE = 2;
}
message Location {
// Latitude.
double latitude = 1;
// Latitude.
double latitude = 1;
// Longitude.
double longitude = 2;
// Longitude.
double longitude = 2;
// Altitude.
double altitude = 3;
// Altitude.
double altitude = 3;
// Location source.
LocationSource source = 4;
// Location source.
LocationSource source = 4;
// Accuracy.
float accuracy = 5;
// Accuracy.
float accuracy = 5;
}
message KeyEnvelope {
// KEK label.
string kek_label = 1;
// KEK label.
string kek_label = 1;
// AES key (when the kek_label is set, this value must first be decrypted).
bytes aes_key = 2;
// AES key (when the kek_label is set, this value must first be decrypted).
bytes aes_key = 2;
}
message Metric {
// Name.
string name = 1;
// Name.
string name = 1;
// Timestamps.
repeated google.protobuf.Timestamp timestamps = 2;
// Timestamps.
repeated google.protobuf.Timestamp timestamps = 2;
// Datasets.
repeated MetricDataset datasets = 3;
// Datasets.
repeated MetricDataset datasets = 3;
// Kind.
MetricKind kind = 4;
// Kind.
MetricKind kind = 4;
}
message MetricDataset {
// Label.
string label = 1;
// Label.
string label = 1;
// Data.
// Each value index corresponds with the same timestamp index of the Metric.
repeated float data = 2;
// Data.
// Each value index corresponds with the same timestamp index of the Metric.
repeated float data = 2;
}
enum DeviceClass {
// Class-A.
CLASS_A = 0;
// Class-B.
CLASS_B = 1;
// Class-C.
CLASS_C = 2;
}

View File

@ -83,6 +83,9 @@ message DeviceInfo {
// Device EUI.
string dev_eui = 8;
// Device class.
common.DeviceClass device_class_enabled = 10;
// Device-profile and device tags.
map<string, string> tags = 9;
}