mirror of
https://github.com/chirpstack/chirpstack.git
synced 2024-12-21 06:03:11 +00:00
Update Python SDK.
This commit is contained in:
parent
626af4fadc
commit
038614b44d
3
.gitignore
vendored
3
.gitignore
vendored
@ -25,6 +25,9 @@
|
||||
|
||||
# API
|
||||
/api/js/node_modules
|
||||
/api/python/src/*.egg-info/
|
||||
/api/python/src/build/
|
||||
/api/python/src/dist/
|
||||
|
||||
# Bitbake recipes
|
||||
*.bb
|
||||
|
2
api/docker-compose.yml
vendored
2
api/docker-compose.yml
vendored
@ -32,7 +32,7 @@ services:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile-python
|
||||
command: bash -c "cd js && make all"
|
||||
command: bash -c "cd python && make all"
|
||||
volumes:
|
||||
- ./:/chirpstack/api
|
||||
chirpstack-api-md:
|
||||
|
@ -2,144 +2,367 @@ syntax = "proto3";
|
||||
|
||||
package api;
|
||||
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4";
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "ApplicationProto";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
|
||||
// ApplicationService is the service providing API methods for managing applications.
|
||||
service ApplicationService {
|
||||
// Create creates the given application.
|
||||
rpc Create(CreateApplicationRequest) returns (CreateApplicationResponse) {}
|
||||
rpc Create(CreateApplicationRequest) returns (CreateApplicationResponse) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/applications"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Get the application for the given ID.
|
||||
rpc Get(GetApplicationRequest) returns (GetApplicationResponse) {}
|
||||
rpc Get(GetApplicationRequest) returns (GetApplicationResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/applications/{id}"
|
||||
};
|
||||
}
|
||||
|
||||
// Update updates the given application.
|
||||
rpc Update(UpdateApplicationRequest) returns (google.protobuf.Empty) {}
|
||||
rpc Update(UpdateApplicationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
put: "/api/applications/{application.id}"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete the application for the given ID.
|
||||
rpc Delete(DeleteApplicationRequest) returns (google.protobuf.Empty) {}
|
||||
rpc Delete(DeleteApplicationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/applications/{id}"
|
||||
};
|
||||
}
|
||||
|
||||
// Get the list of applications.
|
||||
rpc List(ListApplicationsRequest) returns (ListApplicationsResponse) {}
|
||||
rpc List(ListApplicationsRequest) returns (ListApplicationsResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/applications"
|
||||
};
|
||||
}
|
||||
|
||||
// List all configured integrations.
|
||||
rpc ListIntegrations(ListIntegrationsRequest) returns (ListIntegrationsResponse) {}
|
||||
rpc ListIntegrations(ListIntegrationsRequest) returns (ListIntegrationsResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/applications/{application_id}/integrations"
|
||||
};
|
||||
}
|
||||
|
||||
// Create HTTP integration.
|
||||
rpc CreateHttpIntegration(CreateHttpIntegrationRequest) returns (google.protobuf.Empty) {}
|
||||
rpc CreateHttpIntegration(CreateHttpIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/applications/{integration.application_id}/integrations/http"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Get the configured HTTP integration.
|
||||
rpc GetHttpIntegration(GetHttpIntegrationRequest) returns (GetHttpIntegrationResponse) {}
|
||||
rpc GetHttpIntegration(GetHttpIntegrationRequest) returns (GetHttpIntegrationResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/applications/{application_id}/integrations/http"
|
||||
};
|
||||
}
|
||||
|
||||
// Update the HTTP integration.
|
||||
rpc UpdateHttpIntegration(UpdateHttpIntegrationRequest) returns (google.protobuf.Empty) {}
|
||||
rpc UpdateHttpIntegration(UpdateHttpIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
put: "/api/applications/{integration.application_id}/integrations/http"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete the HTTP integration.
|
||||
rpc DeleteHttpIntegration(DeleteHttpIntegrationRequest) returns (google.protobuf.Empty) {}
|
||||
rpc DeleteHttpIntegration(DeleteHttpIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/applications/{application_id}/integrations/http"
|
||||
};
|
||||
}
|
||||
|
||||
// Create InfluxDb integration.
|
||||
rpc CreateInfluxDbIntegration(CreateInfluxDbIntegrationRequest) returns (google.protobuf.Empty) {}
|
||||
rpc CreateInfluxDbIntegration(CreateInfluxDbIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/applications/{integration.application_id}/integrations/influxdb"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Get InfluxDb integration.
|
||||
rpc GetInfluxDbIntegration(GetInfluxDbIntegrationRequest) returns (GetInfluxDbIntegrationResponse) {}
|
||||
rpc GetInfluxDbIntegration(GetInfluxDbIntegrationRequest) returns (GetInfluxDbIntegrationResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/applications/{application_id}/integrations/influxdb"
|
||||
};
|
||||
}
|
||||
|
||||
// Update InfluxDb integration.
|
||||
rpc UpdateInfluxDbIntegration(UpdateInfluxDbIntegrationRequest) returns (google.protobuf.Empty) {}
|
||||
rpc UpdateInfluxDbIntegration(UpdateInfluxDbIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
put: "/api/applications/{integration.application_id}/integrations/influxdb"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete InfluxDb integration.
|
||||
rpc DeleteInfluxDbIntegration(DeleteInfluxDbIntegrationRequest) returns (google.protobuf.Empty) {}
|
||||
rpc DeleteInfluxDbIntegration(DeleteInfluxDbIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/applications/{application_id}/integrations/influxdb"
|
||||
};
|
||||
}
|
||||
|
||||
// Create ThingsBoard integration.
|
||||
rpc CreateThingsBoardIntegration(CreateThingsBoardIntegrationRequest) returns (google.protobuf.Empty) {}
|
||||
rpc CreateThingsBoardIntegration(CreateThingsBoardIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/applications/{integration.application_id}/integrations/thingsboard"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Get ThingsBoard integration.
|
||||
rpc GetThingsBoardIntegration(GetThingsBoardIntegrationRequest) returns (GetThingsBoardIntegrationResponse) {}
|
||||
rpc GetThingsBoardIntegration(GetThingsBoardIntegrationRequest) returns (GetThingsBoardIntegrationResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/applications/{application_id}/integrations/thingsboard"
|
||||
};
|
||||
}
|
||||
|
||||
// Update ThingsBoard integration.
|
||||
rpc UpdateThingsBoardIntegration(UpdateThingsBoardIntegrationRequest) returns (google.protobuf.Empty) {}
|
||||
rpc UpdateThingsBoardIntegration(UpdateThingsBoardIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
put: "/api/applications/{integration.application_id}/integrations/thingsboard"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete ThingsBoard integration.
|
||||
rpc DeleteThingsBoardIntegration(DeleteThingsBoardIntegrationRequest) returns (google.protobuf.Empty) {}
|
||||
rpc DeleteThingsBoardIntegration(DeleteThingsBoardIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/applications/{application_id}/integrations/thingsboard"
|
||||
};
|
||||
}
|
||||
|
||||
// Create myDevices integration.
|
||||
rpc CreateMyDevicesIntegration(CreateMyDevicesIntegrationRequest) returns (google.protobuf.Empty) {}
|
||||
rpc CreateMyDevicesIntegration(CreateMyDevicesIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/applications/{integration.application_id}/integrations/mydevices"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Get myDevices integration.
|
||||
rpc GetMyDevicesIntegration(GetMyDevicesIntegrationRequest) returns (GetMyDevicesIntegrationResponse) {}
|
||||
rpc GetMyDevicesIntegration(GetMyDevicesIntegrationRequest) returns (GetMyDevicesIntegrationResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/applications/{application_id}/integrations/mydevices"
|
||||
};
|
||||
}
|
||||
|
||||
// Update myDevices integration.
|
||||
rpc UpdateMyDevicesIntegration(UpdateMyDevicesIntegrationRequest) returns (google.protobuf.Empty) {}
|
||||
rpc UpdateMyDevicesIntegration(UpdateMyDevicesIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
put: "/api/applications/{integration.application_id}/integrations/mydevices"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete myDevices integration.
|
||||
rpc DeleteMyDevicesIntegration(DeleteMyDevicesIntegrationRequest) returns (google.protobuf.Empty) {}
|
||||
rpc DeleteMyDevicesIntegration(DeleteMyDevicesIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/applications/{application_id}/integrations/mydevices"
|
||||
};
|
||||
}
|
||||
|
||||
// Create LoRaCloud integration.
|
||||
rpc CreateLoraCloudIntegration(CreateLoraCloudIntegrationRequest) returns (google.protobuf.Empty) {}
|
||||
rpc CreateLoraCloudIntegration(CreateLoraCloudIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/applications/{integration.application_id}/integrations/loracloud"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Get LoRaCloud integration.
|
||||
rpc GetLoraCloudIntegration(GetLoraCloudIntegrationRequest) returns (GetLoraCloudIntegrationResponse) {}
|
||||
rpc GetLoraCloudIntegration(GetLoraCloudIntegrationRequest) returns (GetLoraCloudIntegrationResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/applications/{application_id}/integrations/loracloud"
|
||||
};
|
||||
}
|
||||
|
||||
// Update LoRaCloud integration.
|
||||
rpc UpdateLoraCloudIntegration(UpdateLoraCloudIntegrationRequest) returns (google.protobuf.Empty) {}
|
||||
rpc UpdateLoraCloudIntegration(UpdateLoraCloudIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
put: "/api/applications/{integration.application_id}/integrations/loracloud"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete LoRaCloud integration.
|
||||
rpc DeleteLoraCloudIntegration(DeleteLoraCloudIntegrationRequest) returns (google.protobuf.Empty) {}
|
||||
rpc DeleteLoraCloudIntegration(DeleteLoraCloudIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/applications/{application_id}/integrations/loracloud"
|
||||
};
|
||||
}
|
||||
|
||||
// Create GCP Pub/Sub integration.
|
||||
rpc CreateGcpPubSubIntegration(CreateGcpPubSubIntegrationRequest) returns (google.protobuf.Empty) {}
|
||||
rpc CreateGcpPubSubIntegration(CreateGcpPubSubIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/applications/{integration.application_id}/integrations/gcp-pub-sub"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Get GCP Pub/Sub integration.
|
||||
rpc GetGcpPubSubIntegration(GetGcpPubSubIntegrationRequest) returns (GetGcpPubSubIntegrationResponse) {}
|
||||
rpc GetGcpPubSubIntegration(GetGcpPubSubIntegrationRequest) returns (GetGcpPubSubIntegrationResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/applications/{application_id}/integrations/gcp-pub-sub"
|
||||
};
|
||||
}
|
||||
|
||||
// Update GCP Pub/Sub integration.
|
||||
rpc UpdateGcpPubSubIntegration(UpdateGcpPubSubIntegrationRequest) returns (google.protobuf.Empty) {}
|
||||
rpc UpdateGcpPubSubIntegration(UpdateGcpPubSubIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
put: "/api/applications/{integration.application_id}/integrations/gcp-pub-sub"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete GCP Pub/Sub integration.
|
||||
rpc DeleteGcpPubSubIntegration(DeleteGcpPubSubIntegrationRequest) returns (google.protobuf.Empty) {}
|
||||
rpc DeleteGcpPubSubIntegration(DeleteGcpPubSubIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/applications/{application_id}/integrations/gcp-pub-sub"
|
||||
};
|
||||
}
|
||||
|
||||
// Create AWS SNS integration.
|
||||
rpc CreateAwsSnsIntegration(CreateAwsSnsIntegrationRequest) returns (google.protobuf.Empty) {}
|
||||
rpc CreateAwsSnsIntegration(CreateAwsSnsIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/applications/{integration.application_id}/integrations/aws-sns"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Get AWS SNS integration.
|
||||
rpc GetAwsSnsIntegration(GetAwsSnsIntegrationRequest) returns (GetAwsSnsIntegrationResponse) {}
|
||||
rpc GetAwsSnsIntegration(GetAwsSnsIntegrationRequest) returns (GetAwsSnsIntegrationResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/applications/{application_id}/integrations/aws-sns"
|
||||
};
|
||||
}
|
||||
|
||||
// Update AWS SNS integration.
|
||||
rpc UpdateAwsSnsIntegration(UpdateAwsSnsIntegrationRequest) returns (google.protobuf.Empty) {}
|
||||
rpc UpdateAwsSnsIntegration(UpdateAwsSnsIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
put: "/api/applications/{integration.application_id}/integrations/aws-sns"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete AWS SNS integration.
|
||||
rpc DeleteAwsSnsIntegration(DeleteAwsSnsIntegrationRequest) returns (google.protobuf.Empty) {}
|
||||
rpc DeleteAwsSnsIntegration(DeleteAwsSnsIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/applications/{application_id}/integrations/aws-sns"
|
||||
};
|
||||
}
|
||||
|
||||
// Create Azure Service-Bus integration.
|
||||
rpc CreateAzureServiceBusIntegration(CreateAzureServiceBusIntegrationRequest) returns (google.protobuf.Empty) {}
|
||||
rpc CreateAzureServiceBusIntegration(CreateAzureServiceBusIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/applications/{integration.application_id}/integrations/azure-service-bus"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Get Azure Service-Bus integration.
|
||||
rpc GetAzureServiceBusIntegration(GetAzureServiceBusIntegrationRequest) returns (GetAzureServiceBusIntegrationResponse) {}
|
||||
rpc GetAzureServiceBusIntegration(GetAzureServiceBusIntegrationRequest) returns (GetAzureServiceBusIntegrationResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/applications/{application_id}/integrations/azure-service-bus"
|
||||
};
|
||||
}
|
||||
|
||||
// Update Azure Service-Bus integration.
|
||||
rpc UpdateAzureServiceBusIntegration(UpdateAzureServiceBusIntegrationRequest) returns (google.protobuf.Empty) {}
|
||||
rpc UpdateAzureServiceBusIntegration(UpdateAzureServiceBusIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
put: "/api/applications/{integration.application_id}/integrations/azure-service-bus"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete Azure Service-Bus integration.
|
||||
rpc DeleteAzureServiceBusIntegration(DeleteAzureServiceBusIntegrationRequest) returns (google.protobuf.Empty) {}
|
||||
rpc DeleteAzureServiceBusIntegration(DeleteAzureServiceBusIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/applications/{application_id}/integrations/azure-service-bus"
|
||||
};
|
||||
}
|
||||
|
||||
// Create Pilot Things integration.
|
||||
rpc CreatePilotThingsIntegration(CreatePilotThingsIntegrationRequest) returns (google.protobuf.Empty) {}
|
||||
rpc CreatePilotThingsIntegration(CreatePilotThingsIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/applications/{integration.application_id}/integrations/pilot-things"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Get Pilot Things integration.
|
||||
rpc GetPilotThingsIntegration(GetPilotThingsIntegrationRequest) returns (GetPilotThingsIntegrationResponse) {}
|
||||
rpc GetPilotThingsIntegration(GetPilotThingsIntegrationRequest) returns (GetPilotThingsIntegrationResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/applications/{application_id}/integrations/pilot-things"
|
||||
};
|
||||
}
|
||||
|
||||
// Update Pilot Things integration.
|
||||
rpc UpdatePilotThingsIntegration(UpdatePilotThingsIntegrationRequest) returns (google.protobuf.Empty) {}
|
||||
rpc UpdatePilotThingsIntegration(UpdatePilotThingsIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
put: "/api/applications/{integration.application_id}/integrations/pilot-things"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete Pilot Things integration.
|
||||
rpc DeletePilotThingsIntegration(DeletePilotThingsIntegrationRequest) returns (google.protobuf.Empty) {}
|
||||
rpc DeletePilotThingsIntegration(DeletePilotThingsIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/applications/{application_id}/integrations/pilot-things"
|
||||
};
|
||||
}
|
||||
|
||||
// Create IFTTT integration.
|
||||
rpc CreateIftttIntegration(CreateIftttIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/applications/{integration.application_id}/integrations/ifttt"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Get IFTTT integration.
|
||||
rpc GetIftttIntegration(GetIftttIntegrationRequest) returns (GetIftttIntegrationResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/applications/{application_id}/integrations/ifttt"
|
||||
};
|
||||
}
|
||||
|
||||
// Update IFTTT integration.
|
||||
rpc UpdateIftttIntegration(UpdateIftttIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
put: "/api/applications/{integration.application_id}/integrations/ifttt"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete IFTTT integration.
|
||||
rpc DeleteIftttIntegration(DeleteIftttIntegrationRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/applications/{application_id}/integrations/ifttt"
|
||||
};
|
||||
}
|
||||
|
||||
// Generates application ID specific client-certificate.
|
||||
rpc GenerateMqttIntegrationClientCertificate(GenerateMqttIntegrationClientCertificateRequest) returns (GenerateMqttIntegrationClientCertificateResponse) {}
|
||||
rpc GenerateMqttIntegrationClientCertificate(GenerateMqttIntegrationClientCertificateRequest) returns (GenerateMqttIntegrationClientCertificateResponse) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/applications/{application_id}/integrations/mqtt/certificate"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
enum Encoding {
|
||||
@ -158,6 +381,7 @@ enum IntegrationKind {
|
||||
AZURE_SERVICE_BUS = 7;
|
||||
PILOT_THINGS = 8;
|
||||
MQTT_GLOBAL = 9;
|
||||
IFTTT = 10;
|
||||
}
|
||||
|
||||
message Application {
|
||||
@ -216,6 +440,11 @@ message GetApplicationResponse {
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 3;
|
||||
|
||||
// Measurement keys.
|
||||
// This contains the measurement keys from all the device-profiles that
|
||||
// are used by the devices under this application.
|
||||
repeated string measurement_keys = 4;
|
||||
}
|
||||
|
||||
message UpdateApplicationRequest {
|
||||
@ -718,6 +947,53 @@ message DeletePilotThingsIntegrationRequest {
|
||||
string application_id = 1;
|
||||
}
|
||||
|
||||
message IftttIntegration {
|
||||
// Application ID (UUID).
|
||||
string application_id = 1;
|
||||
|
||||
// Key.
|
||||
// This key can be obtained from the IFTTT Webhooks documentation page.
|
||||
string key = 2;
|
||||
|
||||
// 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"]
|
||||
//
|
||||
// Note: The first value is always used for the DevEUI.
|
||||
repeated string uplink_values = 3;
|
||||
}
|
||||
|
||||
message CreateIftttIntegrationRequest {
|
||||
// Integration object.
|
||||
IftttIntegration integration = 1;
|
||||
}
|
||||
|
||||
message GetIftttIntegrationRequest {
|
||||
// Application ID (UUID).
|
||||
string application_id = 1;
|
||||
}
|
||||
|
||||
message GetIftttIntegrationResponse {
|
||||
// Integration object.
|
||||
IftttIntegration integration = 1;
|
||||
}
|
||||
|
||||
message UpdateIftttIntegrationRequest {
|
||||
// Integration object to update.
|
||||
IftttIntegration integration = 1;
|
||||
}
|
||||
|
||||
message DeleteIftttIntegrationRequest {
|
||||
// Application ID (UUID).
|
||||
string application_id = 1;
|
||||
}
|
||||
|
||||
message GenerateMqttIntegrationClientCertificateRequest {
|
||||
// Application ID (UUID).
|
||||
string application_id = 1;
|
||||
|
185
api/python/proto/chirpstack-api/api/device.proto
vendored
185
api/python/proto/chirpstack-api/api/device.proto
vendored
@ -2,11 +2,13 @@ syntax = "proto3";
|
||||
|
||||
package api;
|
||||
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4";
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "DeviceProto";
|
||||
|
||||
import "chirpstack-api/common/common.proto";
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/struct.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
@ -14,58 +16,145 @@ 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) {}
|
||||
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) {}
|
||||
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) {}
|
||||
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) {}
|
||||
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) {}
|
||||
rpc List(ListDevicesRequest) returns (ListDevicesResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/devices"
|
||||
};
|
||||
}
|
||||
|
||||
// Create the given device-keys.
|
||||
rpc CreateKeys(CreateDeviceKeysRequest) returns (google.protobuf.Empty) {}
|
||||
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) {}
|
||||
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) {}
|
||||
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) {}
|
||||
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) {}
|
||||
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) {}
|
||||
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) {}
|
||||
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) {}
|
||||
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) {}
|
||||
rpc GetRandomDevAddr(GetRandomDevAddrRequest) returns (GetRandomDevAddrResponse) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/devices/{dev_eui}/get-random-dev-addr"
|
||||
};
|
||||
}
|
||||
|
||||
// GetStats returns the device stats.
|
||||
rpc GetStats(GetDeviceStatsRequest) returns (GetDeviceStatsResponse) {}
|
||||
// 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"
|
||||
};
|
||||
}
|
||||
|
||||
// Enqueue adds the given item to the downlink queue.
|
||||
rpc Enqueue(EnqueueDeviceQueueItemRequest) returns (EnqueueDeviceQueueItemResponse) {}
|
||||
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) {}
|
||||
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) {}
|
||||
rpc GetQueue(GetDeviceQueueItemsRequest) returns (GetDeviceQueueItemsResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/devices/{dev_eui}/queue"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
message Device {
|
||||
@ -309,7 +398,7 @@ message GetRandomDevAddrResponse {
|
||||
string dev_addr = 1;
|
||||
}
|
||||
|
||||
message GetDeviceStatsRequest {
|
||||
message GetDeviceMetricsRequest {
|
||||
// DevEUI (EUI64).
|
||||
string dev_eui = 1;
|
||||
|
||||
@ -318,33 +407,57 @@ message GetDeviceStatsRequest {
|
||||
|
||||
// Interval end timestamp.
|
||||
google.protobuf.Timestamp end = 3;
|
||||
|
||||
// Aggregation.
|
||||
common.Aggregation aggregation = 4;
|
||||
}
|
||||
|
||||
message GetDeviceStatsResponse {
|
||||
repeated DeviceStats result = 1;
|
||||
message GetDeviceMetricsResponse {
|
||||
map<string, common.Metric> metrics = 1;
|
||||
|
||||
map<string, DeviceState> states = 2;
|
||||
}
|
||||
|
||||
message DeviceStats {
|
||||
// Timestamp of the (aggregated) measurement.
|
||||
google.protobuf.Timestamp time = 1;
|
||||
message DeviceState {
|
||||
// Name.
|
||||
string name = 2;
|
||||
|
||||
// Value.
|
||||
string value = 3;
|
||||
}
|
||||
|
||||
message GetDeviceLinkMetricsRequest {
|
||||
// DevEUI (EUI64).
|
||||
string dev_eui = 1;
|
||||
|
||||
// Interval start timestamp.
|
||||
google.protobuf.Timestamp start = 2;
|
||||
|
||||
// Interval end timestamp.
|
||||
google.protobuf.Timestamp end = 3;
|
||||
|
||||
// Aggregation.
|
||||
common.Aggregation aggregation = 4;
|
||||
}
|
||||
|
||||
message GetDeviceLinkMetricsResponse {
|
||||
// Packets received from the device.
|
||||
uint32 rx_packets = 2;
|
||||
common.Metric rx_packets = 1;
|
||||
|
||||
// Average RSSI (as reported by the gateway(s)).
|
||||
float gw_rssi = 3;
|
||||
// RSSI (as reported by the gateway(s)).
|
||||
common.Metric gw_rssi = 2;
|
||||
|
||||
// Average SNR (as reported by the gateway(s)).
|
||||
float gw_snr = 4;
|
||||
// SNR (as reported by the gateway(s)).
|
||||
common.Metric gw_snr = 3;
|
||||
|
||||
// Packets received by frequency.
|
||||
map<uint32, uint32> rx_packets_per_frequency = 5;
|
||||
common.Metric rx_packets_per_freq = 4;
|
||||
|
||||
// Packets received by DR.
|
||||
map<uint32, uint32> rx_packets_per_dr = 6;
|
||||
common.Metric rx_packets_per_dr = 5;
|
||||
|
||||
// Error count.
|
||||
map<string, uint32> errors = 7;
|
||||
// Errors.
|
||||
common.Metric errors = 6;
|
||||
}
|
||||
|
||||
message DeviceQueueItem {
|
||||
@ -379,7 +492,7 @@ message DeviceQueueItem {
|
||||
}
|
||||
|
||||
message EnqueueDeviceQueueItemRequest {
|
||||
DeviceQueueItem item = 1;
|
||||
DeviceQueueItem queue_item = 1;
|
||||
}
|
||||
|
||||
message EnqueueDeviceQueueItemResponse {
|
||||
|
@ -2,11 +2,12 @@ syntax = "proto3";
|
||||
|
||||
package api;
|
||||
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4";
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "DeviceProfileProto";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
import "chirpstack-api/common/common.proto";
|
||||
@ -22,25 +23,68 @@ enum CodecRuntime {
|
||||
JS = 2;
|
||||
}
|
||||
|
||||
enum MeasurementKind {
|
||||
// Unknown (in which case it is not tracked).
|
||||
UNKNOWN = 0;
|
||||
|
||||
// Incrementing counters that never decrease (these are not reset on each reading).
|
||||
COUNTER = 1;
|
||||
|
||||
// Counters that do get reset upon reading.
|
||||
ABSOLUTE = 2;
|
||||
|
||||
// E.g. a temperature value.
|
||||
GAUGE = 3;
|
||||
|
||||
// E.g. a firmware version, true / false value.
|
||||
STRING = 4;
|
||||
}
|
||||
|
||||
// DeviceProfileService is the service providing API methods for managing device-profiles.
|
||||
service DeviceProfileService {
|
||||
// Create the given device-profile.
|
||||
rpc Create(CreateDeviceProfileRequest) returns (CreateDeviceProfileResponse) {}
|
||||
rpc Create(CreateDeviceProfileRequest) returns (CreateDeviceProfileResponse) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/device-profiles"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Get the device-profile for the given ID.
|
||||
rpc Get(GetDeviceProfileRequest) returns (GetDeviceProfileResponse) {}
|
||||
rpc Get(GetDeviceProfileRequest) returns (GetDeviceProfileResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/device-profiles/{id}"
|
||||
};
|
||||
}
|
||||
|
||||
// Update the given device-profile.
|
||||
rpc Update(UpdateDeviceProfileRequest) returns (google.protobuf.Empty) {}
|
||||
rpc Update(UpdateDeviceProfileRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
put: "/api/device-profiles/{device_profile.id}"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete the device-profile with the given ID.
|
||||
rpc Delete(DeleteDeviceProfileRequest) returns (google.protobuf.Empty) {}
|
||||
rpc Delete(DeleteDeviceProfileRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/device-profiles/{id}"
|
||||
};
|
||||
}
|
||||
|
||||
// List the available device-profiles.
|
||||
rpc List(ListDeviceProfilesRequest) returns (ListDeviceProfilesResponse) {}
|
||||
rpc List(ListDeviceProfilesRequest) returns (ListDeviceProfilesResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/device-profiles"
|
||||
};
|
||||
}
|
||||
|
||||
// List available ADR algorithms.
|
||||
rpc ListAdrAlgorithms(google.protobuf.Empty) returns (ListDeviceProfileAdrAlgorithmsResponse) {}
|
||||
rpc ListAdrAlgorithms(google.protobuf.Empty) returns (ListDeviceProfileAdrAlgorithmsResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/device-profiles/adr-algorithms"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
message DeviceProfile {
|
||||
@ -54,6 +98,9 @@ message DeviceProfile {
|
||||
// Name.
|
||||
string name = 3;
|
||||
|
||||
// Description.
|
||||
string description = 26;
|
||||
|
||||
// Region.
|
||||
common.Region region = 4;
|
||||
|
||||
@ -69,11 +116,11 @@ message DeviceProfile {
|
||||
// Payload codec runtime.
|
||||
CodecRuntime payload_codec_runtime = 8;
|
||||
|
||||
// Payload codec encoder config.
|
||||
string payload_encoder_config = 9;
|
||||
// Payload codec script.
|
||||
string payload_codec_script = 9;
|
||||
|
||||
// Payload codec decoder config.
|
||||
string payload_decoder_config = 10;
|
||||
// Flush queue on device activation.
|
||||
bool flush_queue_on_activate = 10;
|
||||
|
||||
// Uplink interval (seconds).
|
||||
// This defines the expected uplink interval which the device uses for
|
||||
@ -126,6 +173,18 @@ message DeviceProfile {
|
||||
|
||||
// User defined tags.
|
||||
map<string, string> tags = 25;
|
||||
|
||||
// Measurements.
|
||||
// If defined, ChirpStack will visualize these metrics in the web-interface.
|
||||
map<string, Measurement> measurements = 27;
|
||||
}
|
||||
|
||||
message Measurement {
|
||||
// Name (user defined).
|
||||
string name = 2;
|
||||
|
||||
// Kind.
|
||||
MeasurementKind kind = 3;
|
||||
}
|
||||
|
||||
message DeviceProfileListItem {
|
||||
|
234
api/python/proto/chirpstack-api/api/device_profile_template.proto
vendored
Normal file
234
api/python/proto/chirpstack-api/api/device_profile_template.proto
vendored
Normal file
@ -0,0 +1,234 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package api;
|
||||
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "DeviceProfileTemplateProto";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
import "chirpstack-api/common/common.proto";
|
||||
import "chirpstack-api/api/device_profile.proto";
|
||||
|
||||
// DeviceProfileTemplateService is the service providing API methods for managing device-profile templates.
|
||||
service DeviceProfileTemplateService {
|
||||
// Create the given device-profile template.
|
||||
rpc Create(CreateDeviceProfileTemplateRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/device-profile-templates"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Get the device-profile template for the given ID.
|
||||
rpc Get(GetDeviceProfileTemplateRequest) returns (GetDeviceProfileTemplateResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/device-profile-templates/{id}"
|
||||
};
|
||||
}
|
||||
|
||||
// Update the given device-profile template.
|
||||
rpc Update(UpdateDeviceProfileTemplateRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
put: "/api/device-profile-templates/{device_profile_template.id}"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete the device-profile template with the given ID.
|
||||
rpc Delete(DeleteDeviceProfileTemplateRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/device-profile-templates/{id}"
|
||||
};
|
||||
}
|
||||
|
||||
// List the available device-profile templates.
|
||||
rpc List(ListDeviceProfileTemplatesRequest) returns (ListDeviceProfileTemplatesResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/device-profile-templates"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
message DeviceProfileTemplate {
|
||||
// Device-profile template ID.
|
||||
string id = 1;
|
||||
|
||||
// Name.
|
||||
string name = 2;
|
||||
|
||||
// Description.
|
||||
string description = 3;
|
||||
|
||||
// Vendor.
|
||||
string vendor = 4;
|
||||
|
||||
// Firmware.
|
||||
string firmware = 5;
|
||||
|
||||
// Region.
|
||||
common.Region region = 6;
|
||||
|
||||
// LoRaWAN mac-version.
|
||||
common.MacVersion mac_version = 7;
|
||||
|
||||
// Regional parameters revision.
|
||||
common.RegParamsRevision reg_params_revision = 8;
|
||||
|
||||
// ADR algorithm ID.
|
||||
string adr_algorithm_id = 9;
|
||||
|
||||
// Payload codec runtime.
|
||||
CodecRuntime payload_codec_runtime = 10;
|
||||
|
||||
// Payload codec script.
|
||||
string payload_codec_script = 11;
|
||||
|
||||
// Flush queue on device activation.
|
||||
bool flush_queue_on_activate = 12;
|
||||
|
||||
// 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.
|
||||
uint32 uplink_interval = 13;
|
||||
|
||||
// Device-status request interval (times / day).
|
||||
// This defines the times per day that ChirpStack will request the device-status
|
||||
// from the device.
|
||||
uint32 device_status_req_interval = 14;
|
||||
|
||||
// Supports OTAA.
|
||||
bool supports_otaa = 15;
|
||||
|
||||
// Supports Class B.
|
||||
bool supports_class_b = 16;
|
||||
|
||||
// Supports Class-C.
|
||||
bool supports_class_c = 17;
|
||||
|
||||
// Class-B timeout (seconds).
|
||||
// This is the maximum time ChirpStack will wait to receive an acknowledgement from the device (if requested).
|
||||
uint32 class_b_timeout = 18;
|
||||
|
||||
// Class-B ping-slot periodicity.
|
||||
uint32 class_b_ping_slot_period = 19;
|
||||
|
||||
// Class-B ping-slot DR.
|
||||
uint32 class_b_ping_slot_dr = 20;
|
||||
|
||||
// Class-B ping-slot freq (Hz).
|
||||
uint32 class_b_ping_slot_freq = 21;
|
||||
|
||||
// Class-C timeout (seconds).
|
||||
// This is the maximum time ChirpStack will wait to receive an acknowledgement from the device (if requested).
|
||||
uint32 class_c_timeout = 22;
|
||||
|
||||
// RX1 delay (for ABP).
|
||||
uint32 abp_rx1_delay = 23;
|
||||
|
||||
// RX1 DR offset (for ABP).
|
||||
uint32 abp_rx1_dr_offset = 24;
|
||||
|
||||
// RX2 DR (for ABP).
|
||||
uint32 abp_rx2_dr = 25;
|
||||
|
||||
// RX2 frequency (for ABP, Hz).
|
||||
uint32 abp_rx2_freq = 26;
|
||||
|
||||
// User defined tags.
|
||||
map<string, string> tags = 27;
|
||||
|
||||
// Measurements.
|
||||
// If defined, ChirpStack will visualize these metrics in the web-interface.
|
||||
map<string, Measurement> measurements = 28;
|
||||
}
|
||||
|
||||
message DeviceProfileTemplateListItem {
|
||||
// Device-profile template ID.
|
||||
string id = 1;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 2;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 3;
|
||||
|
||||
// Name.
|
||||
string name = 4;
|
||||
|
||||
// Vendor.
|
||||
string vendor = 5;
|
||||
|
||||
// Firmware.
|
||||
string firmware = 6;
|
||||
|
||||
// Region.
|
||||
common.Region region = 7;
|
||||
|
||||
// LoRaWAN mac-version.
|
||||
common.MacVersion mac_version = 8;
|
||||
|
||||
// Regional parameters revision.
|
||||
common.RegParamsRevision reg_params_revision = 9;
|
||||
|
||||
// Supports OTAA.
|
||||
bool supports_otaa = 10;
|
||||
|
||||
// Supports Class-B.
|
||||
bool supports_class_b = 11;
|
||||
|
||||
// Supports Class-C.
|
||||
bool supports_class_c = 12;
|
||||
|
||||
}
|
||||
|
||||
message CreateDeviceProfileTemplateRequest {
|
||||
// Object to create.
|
||||
DeviceProfileTemplate device_profile_template = 1;
|
||||
}
|
||||
|
||||
message GetDeviceProfileTemplateRequest {
|
||||
// ID.
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message GetDeviceProfileTemplateResponse {
|
||||
// Device-profile template object.
|
||||
DeviceProfileTemplate device_profile_template = 1;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 2;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 3;
|
||||
}
|
||||
|
||||
message UpdateDeviceProfileTemplateRequest {
|
||||
// Object to update.
|
||||
DeviceProfileTemplate device_profile_template = 1;
|
||||
}
|
||||
|
||||
message DeleteDeviceProfileTemplateRequest {
|
||||
// ID.
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message ListDeviceProfileTemplatesRequest {
|
||||
// Max number of device-profile templates to return in the result-set.
|
||||
uint32 limit = 1;
|
||||
|
||||
// Offset in the result-set (for pagination).
|
||||
uint32 offset = 2;
|
||||
}
|
||||
|
||||
message ListDeviceProfileTemplatesResponse {
|
||||
// Total number of device-profile templates.
|
||||
uint32 total_count = 1;
|
||||
|
||||
// Result-set.
|
||||
repeated DeviceProfileTemplateListItem result = 2;
|
||||
}
|
@ -2,7 +2,7 @@ syntax = "proto3";
|
||||
|
||||
package api;
|
||||
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4";
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "FrameLogProto";
|
||||
@ -16,10 +16,10 @@ message UplinkFrameLog {
|
||||
bytes phy_payload = 1;
|
||||
|
||||
// TX meta-data.
|
||||
gw.UplinkTXInfo tx_info = 2;
|
||||
gw.UplinkTxInfo tx_info = 2;
|
||||
|
||||
// RX meta-data.
|
||||
repeated gw.UplinkRXInfo rx_info = 3;
|
||||
repeated gw.UplinkRxInfo rx_info = 3;
|
||||
|
||||
// Message type.
|
||||
common.MType m_type = 4;
|
||||
@ -42,10 +42,10 @@ message DownlinkFrameLog {
|
||||
bytes phy_payload = 2;
|
||||
|
||||
// TX meta-data.
|
||||
gw.DownlinkTXInfo tx_info = 3;
|
||||
gw.DownlinkTxInfo tx_info = 3;
|
||||
|
||||
// Downlink ID (UUID).
|
||||
string downlink_id = 4;
|
||||
// Downlink ID.
|
||||
uint32 downlink_id = 4;
|
||||
|
||||
// Gateway ID (EUI64).
|
||||
string gateway_id = 5;
|
||||
|
115
api/python/proto/chirpstack-api/api/gateway.proto
vendored
115
api/python/proto/chirpstack-api/api/gateway.proto
vendored
@ -2,37 +2,68 @@ syntax = "proto3";
|
||||
|
||||
package api;
|
||||
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4";
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "GatewayProto";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
import "chirpstack-api/common/common.proto";
|
||||
|
||||
// GatewayService is the service providing API methods for managing gateways.
|
||||
service GatewayService {
|
||||
// Create creates the given gateway.
|
||||
rpc Create(CreateGatewayRequest) returns (google.protobuf.Empty) {}
|
||||
// Create creates the given gateway.
|
||||
rpc Create(CreateGatewayRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/gateways"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Get returns the gateway for the given Gateway ID.
|
||||
rpc Get(GetGatewayRequest) returns (GetGatewayResponse) {}
|
||||
// Get returns the gateway for the given Gateway ID.
|
||||
rpc Get(GetGatewayRequest) returns (GetGatewayResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/gateways/{gateway_id}"
|
||||
};
|
||||
}
|
||||
|
||||
// Update updates the given gateway.
|
||||
rpc Update(UpdateGatewayRequest) returns (google.protobuf.Empty) {}
|
||||
// Update updates the given gateway.
|
||||
rpc Update(UpdateGatewayRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
put: "/api/gateways/{gateway.gateway_id}"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete deletes the gateway matching the given Gateway ID.
|
||||
rpc Delete(DeleteGatewayRequest) returns (google.protobuf.Empty) {}
|
||||
// Delete deletes the gateway matching the given Gateway ID.
|
||||
rpc Delete(DeleteGatewayRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/gateways/{gateway_id}"
|
||||
};
|
||||
}
|
||||
|
||||
// Get the list of gateways.
|
||||
rpc List(ListGatewaysRequest) returns (ListGatewaysResponse) {}
|
||||
// Get the list of gateways.
|
||||
rpc List(ListGatewaysRequest) returns (ListGatewaysResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/gateways"
|
||||
};
|
||||
}
|
||||
|
||||
// Generate client-certificate for the gateway.
|
||||
rpc GenerateClientCertificate(GenerateGatewayClientCertificateRequest) returns (GenerateGatewayClientCertificateResponse) {}
|
||||
// Generate client-certificate for the gateway.
|
||||
rpc GenerateClientCertificate(GenerateGatewayClientCertificateRequest) returns (GenerateGatewayClientCertificateResponse) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/gateways/{gateway_id}/generate-certificate"
|
||||
};
|
||||
}
|
||||
|
||||
// GetStats returns the gateway stats.
|
||||
rpc GetStats(GetGatewayStatsRequest) returns (GetGatewayStatsResponse) {}
|
||||
// GetMetrics returns the gateway metrics.
|
||||
rpc GetMetrics(GetGatewayMetricsRequest) returns (GetGatewayMetricsResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/gateways/{gateway_id}/metrics"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
message Gateway {
|
||||
@ -163,7 +194,7 @@ message GenerateGatewayClientCertificateResponse {
|
||||
google.protobuf.Timestamp expires_at = 4;
|
||||
}
|
||||
|
||||
message GetGatewayStatsRequest {
|
||||
message GetGatewayMetricsRequest {
|
||||
// Gateway ID (EUI64).
|
||||
string gateway_id = 1;
|
||||
|
||||
@ -172,34 +203,30 @@ message GetGatewayStatsRequest {
|
||||
|
||||
// Interval end timestamp.
|
||||
google.protobuf.Timestamp end = 3;
|
||||
|
||||
// Aggregation.
|
||||
common.Aggregation aggregation = 4;
|
||||
}
|
||||
|
||||
message GetGatewayStatsResponse {
|
||||
repeated GatewayStats result = 1;
|
||||
}
|
||||
|
||||
message GatewayStats {
|
||||
// Timestamp of the (aggregated) measurement.
|
||||
google.protobuf.Timestamp time = 1;
|
||||
|
||||
// Packets received.
|
||||
uint32 rx_packets = 2;
|
||||
|
||||
// Packets emitted.
|
||||
uint32 tx_packets = 3;
|
||||
|
||||
// Tx packets per frequency.
|
||||
map<uint32, uint32> tx_packets_per_frequency = 4;
|
||||
|
||||
// Rx packets per frequency.
|
||||
map<uint32, uint32> rx_packets_per_frequency = 5;
|
||||
|
||||
// Tx packets per DR.
|
||||
map<uint32, uint32> tx_packets_per_dr = 6;
|
||||
|
||||
// Rx packets per DR.
|
||||
map<uint32, uint32> rx_packets_per_dr = 7;
|
||||
|
||||
// Tx packets per status.
|
||||
map<string, uint32> tx_packets_per_status = 8;
|
||||
message GetGatewayMetricsResponse {
|
||||
// RX packets.
|
||||
common.Metric rx_packets = 1;
|
||||
|
||||
// TX packets.
|
||||
common.Metric tx_packets = 2;
|
||||
|
||||
// TX packets / frequency.
|
||||
common.Metric tx_packets_per_freq = 3;
|
||||
|
||||
// RX packets / frequency.
|
||||
common.Metric rx_packets_per_freq = 4;
|
||||
|
||||
// TX packets / DR.
|
||||
common.Metric tx_packets_per_dr = 5;
|
||||
|
||||
// RX packets / DR.
|
||||
common.Metric rx_packets_per_dr = 6;
|
||||
|
||||
// TX packets per status.
|
||||
common.Metric tx_packets_per_status = 7;
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ syntax = "proto3";
|
||||
|
||||
package api;
|
||||
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4";
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "InternalProto";
|
||||
|
@ -2,7 +2,7 @@ syntax = "proto3";
|
||||
|
||||
package api;
|
||||
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4";
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "MulticastGroupProto";
|
||||
@ -16,34 +16,78 @@ import "chirpstack-api/common/common.proto";
|
||||
// MulticastGroupService is the service managing multicast-groups.
|
||||
service MulticastGroupService {
|
||||
// Create the given multicast group.
|
||||
rpc Create(CreateMulticastGroupRequest) returns (CreateMulticastGroupResponse) {}
|
||||
rpc Create(CreateMulticastGroupRequest) returns (CreateMulticastGroupResponse) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/multicast-groups"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Get returns the multicast group for the given ID.
|
||||
rpc Get(GetMulticastGroupRequest) returns (GetMulticastGroupResponse) {}
|
||||
rpc Get(GetMulticastGroupRequest) returns (GetMulticastGroupResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/multicast-groups/{id}"
|
||||
};
|
||||
}
|
||||
|
||||
// Update the given multicast group.
|
||||
rpc Update(UpdateMulticastGroupRequest) returns (google.protobuf.Empty) {}
|
||||
rpc Update(UpdateMulticastGroupRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
put: "/api/multicast-groups/{multicast_group.id}"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete the multicast-group with the given ID.
|
||||
rpc Delete(DeleteMulticastGroupRequest) returns (google.protobuf.Empty) {}
|
||||
rpc Delete(DeleteMulticastGroupRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/multicast-groups/{id}"
|
||||
};
|
||||
}
|
||||
|
||||
// List the available multicast groups.
|
||||
rpc List(ListMulticastGroupsRequest) returns (ListMulticastGroupsResponse) {}
|
||||
rpc List(ListMulticastGroupsRequest) returns (ListMulticastGroupsResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/multicast-groups"
|
||||
};
|
||||
}
|
||||
|
||||
// Add a device to the multicast group.
|
||||
rpc AddDevice(AddDeviceToMulticastGroupRequest) returns (google.protobuf.Empty) {}
|
||||
rpc AddDevice(AddDeviceToMulticastGroupRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/multicast-groups/{multicast_group_id}/devices"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Remove a device from the multicast group.
|
||||
rpc RemoveDevice(RemoveDeviceFromMulticastGroupRequest) returns (google.protobuf.Empty) {}
|
||||
rpc RemoveDevice(RemoveDeviceFromMulticastGroupRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/multicast-groups/{multicast_group_id}/devices/{dev_eui}"
|
||||
};
|
||||
}
|
||||
|
||||
// Add the given item to the multcast group queue.
|
||||
rpc Enqueue(EnqueueMulticastGroupQueueItemRequest) returns (EnqueueMulticastGroupQueueItemResponse) {}
|
||||
rpc Enqueue(EnqueueMulticastGroupQueueItemRequest) returns (EnqueueMulticastGroupQueueItemResponse) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/multcast-groups/{queue_item.multicast_group_id}/queue"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Flush the queue for the given multicast group.
|
||||
rpc FlushQueue(FlushMulticastGroupQueueRequest) returns (google.protobuf.Empty) {}
|
||||
rpc FlushQueue(FlushMulticastGroupQueueRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/multicast-groups/{multicast_group_id}/queue"
|
||||
};
|
||||
}
|
||||
|
||||
// List the items in the multicast group queue.
|
||||
rpc ListQueue(ListMulticastGroupQueueRequest) returns (ListMulticastGroupQueueResponse) {}
|
||||
rpc ListQueue(ListMulticastGroupQueueRequest) returns (ListMulticastGroupQueueResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/multicast-groups/{multicast_group_id}/queue"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
enum MulticastGroupType {
|
||||
@ -205,7 +249,7 @@ message MulticastGroupQueueItem {
|
||||
|
||||
message EnqueueMulticastGroupQueueItemRequest {
|
||||
// Multicast queue-item to enqueue.
|
||||
MulticastGroupQueueItem multicast_group_queue_item = 1;
|
||||
MulticastGroupQueueItem queue_item = 1;
|
||||
}
|
||||
|
||||
message EnqueueMulticastGroupQueueItemResponse {
|
||||
|
67
api/python/proto/chirpstack-api/api/tenant.proto
vendored
67
api/python/proto/chirpstack-api/api/tenant.proto
vendored
@ -2,46 +2,91 @@ syntax = "proto3";
|
||||
|
||||
package api;
|
||||
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4";
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "InternalProto";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
|
||||
// TenantService is the service providing API methods for managing tenants.
|
||||
service TenantService {
|
||||
// Create a new tenant.
|
||||
rpc Create(CreateTenantRequest) returns (CreateTenantResponse) {}
|
||||
rpc Create(CreateTenantRequest) returns (CreateTenantResponse) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/tenants"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Get the tenant for the given ID.
|
||||
rpc Get(GetTenantRequest) returns (GetTenantResponse) {}
|
||||
rpc Get(GetTenantRequest) returns (GetTenantResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/tenants/{id}"
|
||||
};
|
||||
}
|
||||
|
||||
// Update the given tenant.
|
||||
rpc Update(UpdateTenantRequest) returns (google.protobuf.Empty) {}
|
||||
rpc Update(UpdateTenantRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
put: "/api/tenants/{tenant.id}"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete the tenant with the given ID.
|
||||
rpc Delete(DeleteTenantRequest) returns (google.protobuf.Empty) {}
|
||||
rpc Delete(DeleteTenantRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/tenants/{id}"
|
||||
};
|
||||
}
|
||||
|
||||
// Get the list of tenants.
|
||||
rpc List(ListTenantsRequest) returns (ListTenantsResponse) {}
|
||||
rpc List(ListTenantsRequest) returns (ListTenantsResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/tenants"
|
||||
};
|
||||
}
|
||||
|
||||
// Add an user to the tenant.
|
||||
// Note: the user must already exist.
|
||||
rpc AddUser(AddTenantUserRequest) returns (google.protobuf.Empty) {}
|
||||
rpc AddUser(AddTenantUserRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/tenants/{tenant_user.tenant_id}/users"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Get the the tenant user for the given tenant and user IDs.
|
||||
rpc GetUser(GetTenantUserRequest) returns (GetTenantUserResponse) {}
|
||||
rpc GetUser(GetTenantUserRequest) returns (GetTenantUserResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/tenants/{tenant_id}/users/{user_id}"
|
||||
};
|
||||
}
|
||||
|
||||
// Update the given tenant user.
|
||||
rpc UpdateUser(UpdateTenantUserRequest) returns (google.protobuf.Empty) {}
|
||||
rpc UpdateUser(UpdateTenantUserRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
put: "/api/tenants/{tenant_user.tenant_id}/users/{tenant_user.user_id}"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete the given tenant user.
|
||||
rpc DeleteUser(DeleteTenantUserRequest) returns (google.protobuf.Empty) {}
|
||||
rpc DeleteUser(DeleteTenantUserRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/tenants/{tenant_id}/users/{user_id}"
|
||||
};
|
||||
}
|
||||
|
||||
// Get the list of tenant users.
|
||||
rpc ListUsers(ListTenantUsersRequest) returns (ListTenantUsersResponse) {}
|
||||
rpc ListUsers(ListTenantUsersRequest) returns (ListTenantUsersResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/tenants/{tenant_id}/users"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
message Tenant {
|
||||
|
42
api/python/proto/chirpstack-api/api/user.proto
vendored
42
api/python/proto/chirpstack-api/api/user.proto
vendored
@ -2,11 +2,12 @@ syntax = "proto3";
|
||||
|
||||
package api;
|
||||
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4";
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "UserProto";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
|
||||
@ -14,22 +15,49 @@ import "google/protobuf/empty.proto";
|
||||
// UserService is the service providing API methods for managing users.
|
||||
service UserService {
|
||||
// Create a new user.
|
||||
rpc Create(CreateUserRequest) returns (CreateUserResponse) {}
|
||||
rpc Create(CreateUserRequest) returns (CreateUserResponse) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/users"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Get the user for the given ID.
|
||||
rpc Get(GetUserRequest) returns (GetUserResponse) {}
|
||||
rpc Get(GetUserRequest) returns (GetUserResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/users/{id}"
|
||||
};
|
||||
}
|
||||
|
||||
// Update the given user.
|
||||
rpc Update(UpdateUserRequest) returns (google.protobuf.Empty) {}
|
||||
rpc Update(UpdateUserRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
put: "/api/users/{user.id}"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete the user with the given ID.
|
||||
rpc Delete(DeleteUserRequest) returns (google.protobuf.Empty) {}
|
||||
rpc Delete(DeleteUserRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/users/{id}"
|
||||
};
|
||||
}
|
||||
|
||||
// Get the list of users.
|
||||
rpc List(ListUsersRequest) returns (ListUsersResponse) {}
|
||||
rpc List(ListUsersRequest) returns (ListUsersResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/users"
|
||||
};
|
||||
}
|
||||
|
||||
// Update the password for the given user.
|
||||
rpc UpdatePassword(UpdateUserPasswordRequest) returns (google.protobuf.Empty) {}
|
||||
rpc UpdatePassword(UpdateUserPasswordRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/users/{user_id}/password"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
message User {
|
||||
|
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "CommonProto";
|
||||
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
||||
enum Modulation {
|
||||
// LoRa
|
||||
LORA = 0;
|
||||
@ -129,6 +131,17 @@ enum LocationSource {
|
||||
GEO_RESOLVER_WIFI = 6;
|
||||
}
|
||||
|
||||
enum Aggregation {
|
||||
// Hour.
|
||||
HOUR = 0;
|
||||
|
||||
// Day.
|
||||
DAY = 1;
|
||||
|
||||
// Month.
|
||||
MONTH = 2;
|
||||
}
|
||||
|
||||
message Location {
|
||||
// Latitude.
|
||||
double latitude = 1;
|
||||
@ -153,3 +166,23 @@ message KeyEnvelope {
|
||||
// AES key (when the kek_label is set, this value must first be decrypted).
|
||||
bytes aes_key = 2;
|
||||
}
|
||||
|
||||
message Metric {
|
||||
// Name.
|
||||
string name = 1;
|
||||
|
||||
// Timestamps.
|
||||
repeated google.protobuf.Timestamp timestamps = 2;
|
||||
|
||||
// Datasets.
|
||||
repeated MetricDataset datasets = 3;
|
||||
}
|
||||
|
||||
message MetricDataset {
|
||||
// Label.
|
||||
string label = 1;
|
||||
|
||||
// Data.
|
||||
// Each value index corresponds with the same timestamp index of the Metric.
|
||||
repeated float data = 2;
|
||||
}
|
||||
|
248
api/python/proto/chirpstack-api/gw/gw.proto
vendored
248
api/python/proto/chirpstack-api/gw/gw.proto
vendored
@ -2,7 +2,7 @@ syntax = "proto3";
|
||||
|
||||
package gw;
|
||||
|
||||
option go_package = "github.com/chirpstack/chirpstack-api/go/v4/gw";
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/gw";
|
||||
option java_package = "io.chirpstack.api.gw";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "GatewayProto";
|
||||
@ -10,8 +10,17 @@ option java_outer_classname = "GatewayProto";
|
||||
import "chirpstack-api/common/common.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/duration.proto";
|
||||
import "google/protobuf/struct.proto";
|
||||
|
||||
|
||||
enum CodeRate {
|
||||
CR_UNDEFINED = 0;
|
||||
CR_4_5 = 1;
|
||||
CR_4_6 = 2;
|
||||
CR_4_7 = 3;
|
||||
CR_4_8 = 4;
|
||||
}
|
||||
|
||||
enum DownlinkTiming {
|
||||
// Send the downlink immediately.
|
||||
IMMEDIATELY = 0;
|
||||
@ -23,7 +32,6 @@ enum DownlinkTiming {
|
||||
GPS_EPOCH = 2;
|
||||
}
|
||||
|
||||
|
||||
enum FineTimestampType {
|
||||
// No fine-timestamp available.
|
||||
NONE = 0;
|
||||
@ -84,17 +92,17 @@ enum TxAckStatus {
|
||||
message Modulation {
|
||||
oneof parameters {
|
||||
// LoRa modulation information.
|
||||
LoRaModulationInfo lora = 3 [json_name = "loRa"];
|
||||
LoraModulationInfo lora = 3;
|
||||
|
||||
// FSK modulation information.
|
||||
FSKModulationInfo fsk = 4;
|
||||
FskModulationInfo fsk = 4;
|
||||
|
||||
// LR-FHSS modulation information.
|
||||
LRFHSSModulationInfo lr_fhss = 5 [json_name = "lrFHSS"];
|
||||
LrFhssModulationInfo lr_fhss = 5;
|
||||
}
|
||||
}
|
||||
|
||||
message UplinkTXInfo {
|
||||
message UplinkTxInfoLegacy {
|
||||
// Frequency (Hz).
|
||||
uint32 frequency = 1;
|
||||
|
||||
@ -103,17 +111,25 @@ message UplinkTXInfo {
|
||||
|
||||
oneof modulation_info {
|
||||
// LoRa modulation information.
|
||||
LoRaModulationInfo lora_modulation_info = 3 [json_name = "loRaModulationInfo"];
|
||||
LoraModulationInfo lora_modulation_info = 3;
|
||||
|
||||
// FSK modulation information.
|
||||
FSKModulationInfo fsk_modulation_info = 4;
|
||||
FskModulationInfo fsk_modulation_info = 4;
|
||||
|
||||
// LR-FHSS modulation information.
|
||||
LRFHSSModulationInfo lr_fhss_modulation_info = 5 [json_name = "lrFHSSModulationInfo"];
|
||||
LrFhssModulationInfo lr_fhss_modulation_info = 5;
|
||||
}
|
||||
}
|
||||
|
||||
message LoRaModulationInfo {
|
||||
message UplinkTxInfo {
|
||||
// Frequency (Hz).
|
||||
uint32 frequency = 1;
|
||||
|
||||
// Modulation.
|
||||
Modulation modulation = 2;
|
||||
}
|
||||
|
||||
message LoraModulationInfo {
|
||||
// Bandwidth.
|
||||
uint32 bandwidth = 1;
|
||||
|
||||
@ -121,13 +137,16 @@ message LoRaModulationInfo {
|
||||
uint32 spreading_factor = 2;
|
||||
|
||||
// Code-rate.
|
||||
string code_rate = 3;
|
||||
string code_rate_legacy = 3;
|
||||
|
||||
// Code-rate.
|
||||
CodeRate code_rate = 5;
|
||||
|
||||
// Polarization inversion.
|
||||
bool polarization_inversion = 4;
|
||||
}
|
||||
|
||||
message FSKModulationInfo {
|
||||
message FskModulationInfo {
|
||||
// Frequency deviation.
|
||||
uint32 frequency_deviation = 1;
|
||||
|
||||
@ -135,7 +154,7 @@ message FSKModulationInfo {
|
||||
uint32 datarate = 2;
|
||||
}
|
||||
|
||||
message LRFHSSModulationInfo {
|
||||
message LrFhssModulationInfo {
|
||||
// Operating channel width (OCW) in Hz.
|
||||
uint32 operating_channel_width = 1;
|
||||
|
||||
@ -151,10 +170,10 @@ message EncryptedFineTimestamp {
|
||||
uint32 aes_key_index = 1;
|
||||
|
||||
// Encrypted 'main' fine-timestamp (ns precision part of the timestamp).
|
||||
bytes encrypted_ns = 2 [json_name = "encryptedNS"];
|
||||
bytes encrypted_ns = 2;
|
||||
|
||||
// FPGA ID.
|
||||
bytes fpga_id = 3 [json_name = "fpgaID"];
|
||||
bytes fpga_id = 3;
|
||||
}
|
||||
|
||||
message PlainFineTimestamp {
|
||||
@ -164,7 +183,7 @@ message PlainFineTimestamp {
|
||||
|
||||
message GatewayStats {
|
||||
// Gateway ID.
|
||||
bytes gateway_id = 1 [json_name = "gatewayID"];
|
||||
bytes gateway_id = 1;
|
||||
|
||||
// Gateway IP.
|
||||
string ip = 9;
|
||||
@ -183,7 +202,7 @@ message GatewayStats {
|
||||
uint32 rx_packets_received = 5;
|
||||
|
||||
// Number of radio packets received with valid PHY CRC.
|
||||
uint32 rx_packets_received_ok = 6 [json_name = "rxPacketsReceivedOK"];
|
||||
uint32 rx_packets_received_ok = 6;
|
||||
|
||||
// Number of downlink packets received for transmission.
|
||||
uint32 tx_packets_received = 7;
|
||||
@ -196,7 +215,7 @@ message GatewayStats {
|
||||
|
||||
// Stats ID (UUID).
|
||||
// Unique identifier for the gateway stats.
|
||||
bytes stats_id = 11 [json_name = "statsID"];
|
||||
bytes stats_id = 11;
|
||||
|
||||
// Tx packets per frequency.
|
||||
map<uint32, uint32> tx_packets_per_frequency = 12;
|
||||
@ -222,21 +241,21 @@ message PerModulationCount {
|
||||
uint32 count = 2;
|
||||
}
|
||||
|
||||
message UplinkRXInfo {
|
||||
message UplinkRxInfoLegacy {
|
||||
// Gateway ID.
|
||||
bytes gateway_id = 1 [json_name = "gatewayID"];
|
||||
bytes gateway_id = 1;
|
||||
|
||||
// RX time (only set when the gateway has a GPS module).
|
||||
google.protobuf.Timestamp time = 2;
|
||||
|
||||
// RX time since GPS epoch (only set when the gateway has a GPS module).
|
||||
google.protobuf.Duration time_since_gps_epoch = 3 [json_name = "timeSinceGPSEpoch"];
|
||||
google.protobuf.Duration time_since_gps_epoch = 3;
|
||||
|
||||
// RSSI.
|
||||
int32 rssi = 5;
|
||||
|
||||
// LoRa SNR.
|
||||
double lora_snr = 6 [json_name = "loRaSNR"];
|
||||
double lora_snr = 6;
|
||||
|
||||
// Channel.
|
||||
uint32 channel = 7;
|
||||
@ -270,19 +289,60 @@ message UplinkRXInfo {
|
||||
|
||||
// Uplink ID (UUID bytes).
|
||||
// Unique and random ID which can be used to correlate the uplink across multiple logs.
|
||||
bytes uplink_id = 16 [json_name = "uplinkID"];
|
||||
bytes uplink_id = 16;
|
||||
|
||||
// CRC status.
|
||||
CRCStatus crc_status = 17 [json_name = "crcStatus"];
|
||||
CRCStatus crc_status = 17;
|
||||
|
||||
// Optional meta-data map.
|
||||
map<string, string> metadata = 18;
|
||||
}
|
||||
|
||||
message DownlinkTXInfo {
|
||||
message UplinkRxInfo {
|
||||
// Gateway ID.
|
||||
string gateway_id = 1;
|
||||
|
||||
// Uplink ID.
|
||||
uint32 uplink_id = 2;
|
||||
|
||||
// RX time (only set when the gateway has a GPS module).
|
||||
google.protobuf.Timestamp time = 3;
|
||||
|
||||
// RX time since GPS epoch (only set when the gateway has a GPS module).
|
||||
google.protobuf.Duration time_since_gps_epoch = 4;
|
||||
|
||||
// Fine-timestamp.
|
||||
// This timestamp can be used for TDOA based geolocation.
|
||||
google.protobuf.Duration fine_time_since_gps_epoch = 5;
|
||||
|
||||
// RSSI.
|
||||
int32 rssi = 6;
|
||||
|
||||
// SNR.
|
||||
// Note: only available for LoRa modulation.
|
||||
float snr = 7;
|
||||
|
||||
// Board.
|
||||
uint32 board = 8;
|
||||
|
||||
// Antenna.
|
||||
uint32 antenna = 9;
|
||||
|
||||
// Location.
|
||||
common.Location location = 10;
|
||||
|
||||
// Gateway specific context.
|
||||
// This value must be returned to the gateway on (Class-A) downlink.
|
||||
bytes context = 11;
|
||||
|
||||
// Properties.
|
||||
google.protobuf.Struct metadata = 12;
|
||||
}
|
||||
|
||||
message DownlinkTxInfoLegacy {
|
||||
// Gateway ID.
|
||||
// Deprecated: replaced by gateway_id in DownlinkFrame.
|
||||
bytes gateway_id = 1 [json_name = "gatewayID"];
|
||||
bytes gateway_id = 1;
|
||||
|
||||
// TX frequency (in Hz).
|
||||
uint32 frequency = 5;
|
||||
@ -295,10 +355,10 @@ message DownlinkTXInfo {
|
||||
|
||||
oneof modulation_info {
|
||||
// LoRa modulation information.
|
||||
LoRaModulationInfo lora_modulation_info = 8 [json_name = "loRaModulationInfo"];
|
||||
LoraModulationInfo lora_modulation_info = 8;
|
||||
|
||||
// FSK modulation information.
|
||||
FSKModulationInfo fsk_modulation_info = 9;
|
||||
FskModulationInfo fsk_modulation_info = 9;
|
||||
}
|
||||
|
||||
// The board identifier for emitting the frame.
|
||||
@ -326,6 +386,43 @@ message DownlinkTXInfo {
|
||||
bytes context = 16;
|
||||
}
|
||||
|
||||
message DownlinkTxInfo {
|
||||
// TX frequency (in Hz).
|
||||
uint32 frequency = 1;
|
||||
|
||||
// TX power (in dBm).
|
||||
int32 power = 2;
|
||||
|
||||
// Modulation.
|
||||
Modulation modulation = 3;
|
||||
|
||||
// The board identifier for emitting the frame.
|
||||
uint32 board = 4;
|
||||
|
||||
// The antenna identifier for emitting the frame.
|
||||
uint32 antenna = 5;
|
||||
|
||||
// Timing.
|
||||
Timing timing = 6;
|
||||
|
||||
// Gateway specific context.
|
||||
// In case of a Class-A downlink, this contains a copy of the uplink context.
|
||||
bytes context = 7;
|
||||
}
|
||||
|
||||
message Timing {
|
||||
oneof parameters {
|
||||
// Immediately timing information.
|
||||
ImmediatelyTimingInfo immediately = 1;
|
||||
|
||||
// Context based delay timing information.
|
||||
DelayTimingInfo delay = 2;
|
||||
|
||||
// GPS Epoch timing information.
|
||||
GPSEpochTimingInfo gps_epoch = 3;
|
||||
}
|
||||
}
|
||||
|
||||
message ImmediatelyTimingInfo {
|
||||
// Not implemented yet.
|
||||
}
|
||||
@ -339,18 +436,24 @@ message DelayTimingInfo {
|
||||
|
||||
message GPSEpochTimingInfo {
|
||||
// Duration since GPS Epoch.
|
||||
google.protobuf.Duration time_since_gps_epoch = 1 [json_name = "timeSinceGPSEpoch"];
|
||||
google.protobuf.Duration time_since_gps_epoch = 1;
|
||||
}
|
||||
|
||||
message UplinkFrame {
|
||||
// PHYPayload.
|
||||
bytes phy_payload = 1;
|
||||
|
||||
// TX meta-data.
|
||||
UplinkTXInfo tx_info = 2;
|
||||
// TX meta-data (deprecated).
|
||||
UplinkTxInfoLegacy tx_info_legacy = 2;
|
||||
|
||||
// RX meta-data.
|
||||
UplinkRXInfo rx_info = 3;
|
||||
// RX meta-data (deprecated).
|
||||
UplinkRxInfoLegacy rx_info_legacy = 3;
|
||||
|
||||
// Tx meta-data.
|
||||
UplinkTxInfo tx_info = 4;
|
||||
|
||||
// Rx meta-data.
|
||||
UplinkRxInfo rx_info = 5;
|
||||
}
|
||||
|
||||
message UplinkFrameSet {
|
||||
@ -358,27 +461,19 @@ message UplinkFrameSet {
|
||||
bytes phy_payload = 1;
|
||||
|
||||
// TX meta-data.
|
||||
UplinkTXInfo tx_info = 2;
|
||||
UplinkTxInfo tx_info = 2;
|
||||
|
||||
// RX meta-data set.
|
||||
repeated UplinkRXInfo rx_info = 3;
|
||||
repeated UplinkRxInfo rx_info = 3;
|
||||
}
|
||||
|
||||
message DownlinkFrame {
|
||||
// PHYPayload.
|
||||
// Deprecated: replaced by items.
|
||||
bytes phy_payload = 1;
|
||||
|
||||
// TX meta-data.
|
||||
// Deprecated: replaced by items.
|
||||
DownlinkTXInfo tx_info = 2;
|
||||
|
||||
// Token (uint16 value).
|
||||
// Deprecated: replaced by downlink_id.
|
||||
uint32 token = 3;
|
||||
// Downlink ID.
|
||||
uint32 downlink_id = 3;
|
||||
|
||||
// Downlink ID (UUID).
|
||||
bytes downlink_id = 4 [json_name = "downlinkID"];
|
||||
// Deprecated: use downlink_id.
|
||||
bytes downlink_id_legacy = 4;
|
||||
|
||||
// Downlink frame items.
|
||||
// This makes it possible to send multiple downlink opportunities to the
|
||||
@ -388,47 +483,52 @@ message DownlinkFrame {
|
||||
repeated DownlinkFrameItem items = 5;
|
||||
|
||||
// Gateway ID.
|
||||
bytes gateway_id = 6 [json_name = "gatewayID"];
|
||||
// Deprecated: use gateway_id
|
||||
bytes gateway_id_legacy = 6;
|
||||
|
||||
// Gateway ID.
|
||||
string gateway_id = 7;
|
||||
}
|
||||
|
||||
message DownlinkFrameItem {
|
||||
// PHYPayload.
|
||||
bytes phy_payload = 1;
|
||||
|
||||
// TX meta-data.
|
||||
DownlinkTXInfo tx_info = 2;
|
||||
// TX meta-data (deprecated).
|
||||
DownlinkTxInfoLegacy tx_info_legacy = 2;
|
||||
|
||||
// Tx meta-data.
|
||||
DownlinkTxInfo tx_info = 3;
|
||||
}
|
||||
|
||||
message DownlinkTXAck {
|
||||
message DownlinkTxAck {
|
||||
// Gateway ID (deprecated).
|
||||
bytes gateway_id_legacy = 1;
|
||||
|
||||
// Gateway ID.
|
||||
bytes gateway_id = 1 [json_name = "gatewayID"];
|
||||
string gateway_id = 6;
|
||||
|
||||
// Token (uint16 value).
|
||||
// Deprecated: replaced by downlink_id.
|
||||
uint32 token = 2;
|
||||
// Downlink ID.
|
||||
uint32 downlink_id = 2;
|
||||
|
||||
// Error.
|
||||
// Deprecated: replaced by items.
|
||||
string error = 3;
|
||||
|
||||
// Downlink ID (UUID).
|
||||
bytes downlink_id = 4 [json_name = "downlinkID"];
|
||||
// Downlink ID (deprecated).
|
||||
bytes downlink_id_legacy = 4;
|
||||
|
||||
// Downlink frame items.
|
||||
// This list has the same length as the request and indicates which
|
||||
// downlink frame has been emitted of the requested list (or why it failed).
|
||||
// Note that at most one item has a positive acknowledgement.
|
||||
repeated DownlinkTXAckItem items = 5;
|
||||
repeated DownlinkTxAckItem items = 5;
|
||||
}
|
||||
|
||||
message DownlinkTXAckItem {
|
||||
message DownlinkTxAckItem {
|
||||
// The Ack status of this item.
|
||||
TxAckStatus status = 1;
|
||||
}
|
||||
|
||||
message GatewayConfiguration {
|
||||
// Gateway ID.
|
||||
bytes gateway_id = 1 [json_name = "gatewayID"];
|
||||
bytes gateway_id = 1;
|
||||
|
||||
// Configuration version.
|
||||
string version = 2;
|
||||
@ -449,7 +549,7 @@ message ChannelConfiguration {
|
||||
|
||||
oneof modulation_config {
|
||||
// LoRa modulation config.
|
||||
LoRaModulationConfig lora_modulation_config = 3 [json_name = "loRaModulationConfig"];
|
||||
LoRaModulationConfig lora_modulation_config = 3;
|
||||
|
||||
// FSK modulation config.
|
||||
FSKModulationConfig fsk_modulation_config = 4;
|
||||
@ -480,7 +580,7 @@ message FSKModulationConfig {
|
||||
|
||||
message GatewayCommandExecRequest {
|
||||
// Gateway ID.
|
||||
bytes gateway_id = 1 [json_name = "gatewayID"];
|
||||
bytes gateway_id = 1;
|
||||
|
||||
// Command to execute.
|
||||
// This command must be pre-configured in the LoRa Gateway Bridge configuration.
|
||||
@ -489,7 +589,7 @@ message GatewayCommandExecRequest {
|
||||
// Execution request ID (UUID).
|
||||
// The same token will be returned when the execution of the command has
|
||||
// completed.
|
||||
bytes ExecId = 3 [json_name = "execID"];
|
||||
bytes ExecId = 3;
|
||||
|
||||
// Standard input.
|
||||
bytes stdin = 4;
|
||||
@ -500,10 +600,10 @@ message GatewayCommandExecRequest {
|
||||
|
||||
message GatewayCommandExecResponse {
|
||||
// Gateway ID.
|
||||
bytes gateway_id = 1 [json_name = "gatewayID"];
|
||||
bytes gateway_id = 1;
|
||||
|
||||
// Execution request ID (UUID).
|
||||
bytes exec_id = 2 [json_name = "execID"];
|
||||
bytes exec_id = 2;
|
||||
|
||||
// Standard output.
|
||||
bytes stdout = 3;
|
||||
@ -520,10 +620,10 @@ message GatewayCommandExecResponse {
|
||||
// integrated with the ChirpStack Gateway Bridge.
|
||||
message RawPacketForwarderEvent {
|
||||
// Gateway ID.
|
||||
bytes gateway_id = 1 [json_name = "gatewayID"];
|
||||
bytes gateway_id = 1;
|
||||
|
||||
// Raw ID (UUID).
|
||||
bytes raw_id = 2 [json_name = "rawID"];
|
||||
bytes raw_id = 2;
|
||||
|
||||
// Payload contains the raw payload.
|
||||
bytes payload = 3;
|
||||
@ -534,10 +634,10 @@ message RawPacketForwarderEvent {
|
||||
// integrated with the ChirpStack Gateway Bridge.
|
||||
message RawPacketForwarderCommand {
|
||||
// Gateway ID.
|
||||
bytes gateway_id = 1 [json_name = "gatewayID"];
|
||||
bytes gateway_id = 1;
|
||||
|
||||
// Raw ID (UUID).
|
||||
bytes raw_id = 2 [json_name = "rawID"];
|
||||
bytes raw_id = 2;
|
||||
|
||||
// Payload contains the raw payload.
|
||||
bytes payload = 3;
|
||||
@ -546,7 +646,7 @@ message RawPacketForwarderCommand {
|
||||
// ConnState contains the connection state of a gateway.
|
||||
message ConnState {
|
||||
// Gateway ID.
|
||||
bytes gateway_id = 1 [json_name = "gatewayID"];
|
||||
bytes gateway_id = 1;
|
||||
|
||||
enum State {
|
||||
OFFLINE = 0;
|
||||
|
202
api/python/proto/chirpstack-api/gw/gw_new.proto
vendored
202
api/python/proto/chirpstack-api/gw/gw_new.proto
vendored
@ -1,202 +0,0 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package gw;
|
||||
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/gw";
|
||||
option java_package = "io.chirpstack.api.gw";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "GatewayProto";
|
||||
|
||||
import "chirpstack-api/common/common.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/duration.proto";
|
||||
import "google/protobuf/struct.proto";
|
||||
|
||||
|
||||
enum CodeRate {
|
||||
CR_UNDEFINED = 0;
|
||||
CR_4_5 = 1;
|
||||
CR_4_6 = 2;
|
||||
CR_4_7 = 3;
|
||||
CR_4_8 = 4;
|
||||
}
|
||||
|
||||
message UplinkFrame {
|
||||
// PHYPayload.
|
||||
bytes phy_payload = 1;
|
||||
|
||||
// TX meta-data.
|
||||
UplinkTxParams tx_params = 2;
|
||||
|
||||
// RX meta-data.
|
||||
UplinkRxParams rx_params = 3;
|
||||
}
|
||||
|
||||
message DownlinkFrame {
|
||||
// Gateway ID.
|
||||
string gateway_id = 1;
|
||||
|
||||
// Downlink ID.
|
||||
uint32 downlink_id = 2;
|
||||
|
||||
// Downlink frame items.
|
||||
// This makes it possible to send multiple downlink opportunities to the
|
||||
// gateway at once (e.g. RX1 and RX2 in LoRaWAN). The first item has the
|
||||
// highest priority, the last the lowest. The gateway will emit at most
|
||||
// one item.
|
||||
repeated DownlinkFrameItem items = 3;
|
||||
}
|
||||
|
||||
message UplinkTxParams {
|
||||
// Frequency (Hz).
|
||||
uint32 frequency = 1;
|
||||
|
||||
// Modulation.
|
||||
Modulation modulation = 2;
|
||||
}
|
||||
|
||||
message Modulation {
|
||||
oneof parameters {
|
||||
// LoRa.
|
||||
LoraModulationParams lora = 1;
|
||||
|
||||
// FSK.
|
||||
FskModulationParams fsk = 2;
|
||||
|
||||
// LR-FHSS.
|
||||
LrFhssModulationParams lr_fhss = 3;
|
||||
}
|
||||
}
|
||||
|
||||
message LoraModulationParams {
|
||||
// Bandwidth (Hz).
|
||||
uint32 bandwidth = 1;
|
||||
|
||||
// Spreading-factor.
|
||||
uint32 spreading_factor = 2;
|
||||
|
||||
// Polarization inversion.
|
||||
bool polarization_inversion = 3;
|
||||
|
||||
// Code-rate.
|
||||
CodeRate code_rate = 4;
|
||||
}
|
||||
|
||||
message FskModulationParams {
|
||||
// Frequency deviation.
|
||||
uint32 frequency_deviation = 1;
|
||||
|
||||
// FSK datarate (bits / sec).
|
||||
uint32 datarate = 2;
|
||||
}
|
||||
|
||||
message LrFhssModulationParams {
|
||||
// Operating channel width (OCW) in Hz.
|
||||
uint32 operating_channel_width = 1;
|
||||
|
||||
// Code-rate.
|
||||
CodeRate code_rate = 2;
|
||||
|
||||
// Hopping grid number of steps.
|
||||
uint32 grid_steps = 3;
|
||||
}
|
||||
|
||||
message UplinkRxParams {
|
||||
// Gateway ID (EUI).
|
||||
string gateway_id = 1;
|
||||
|
||||
// Uplink ID (UUID).
|
||||
uint32 uplink_id = 2;
|
||||
|
||||
// Rx time.
|
||||
google.protobuf.Timestamp time = 3;
|
||||
|
||||
// RX time since GPS epoch (only set when the gateway has a GPS module).
|
||||
google.protobuf.Duration time_since_gps_epoch = 4;
|
||||
|
||||
// Fine-timestamp.
|
||||
// This timestamp can be used for TDOA based geolocation.
|
||||
google.protobuf.Duration fine_time_since_gps_epoch = 5;
|
||||
|
||||
// RSSI.
|
||||
int32 rssi = 6;
|
||||
|
||||
// SNR.
|
||||
// Note: only available for LoRa modulation.
|
||||
float snr = 7;
|
||||
|
||||
// Board.
|
||||
uint32 board = 8;
|
||||
|
||||
// Antenna.
|
||||
uint32 antenna = 9;
|
||||
|
||||
// Location.
|
||||
common.Location location = 10;
|
||||
|
||||
// Gateway specific context.
|
||||
// This value must be returned to the gateway on (Class-A) downlink.
|
||||
bytes context = 11;
|
||||
|
||||
// Properties.
|
||||
google.protobuf.Struct properties = 12;
|
||||
}
|
||||
|
||||
message DownlinkFrameItem {
|
||||
// PHYPayload.
|
||||
bytes phy_payload = 1;
|
||||
|
||||
// Tx parameters.
|
||||
DownlinkTxParams tx_params = 2;
|
||||
}
|
||||
|
||||
message DownlinkTxParams {
|
||||
// Tx frequency (Hz).
|
||||
uint32 frequency = 1;
|
||||
|
||||
// Tx power (dBm).
|
||||
int32 power = 2;
|
||||
|
||||
// Modulation.
|
||||
Modulation modulation = 3;
|
||||
|
||||
// The board identifier for emitting the frame.
|
||||
uint32 board = 4;
|
||||
|
||||
// The antenna identifier for emitting the frame.
|
||||
uint32 antenna = 5;
|
||||
|
||||
// Downlink timing.
|
||||
DownlinkTiming timing = 6;
|
||||
|
||||
// Gateway specific context.
|
||||
// In case of a Class-A downlink, this must contain a copy of the uplink context.
|
||||
bytes context = 7;
|
||||
}
|
||||
|
||||
message DownlinkTiming {
|
||||
oneof parameters {
|
||||
// Immediately timing information.
|
||||
DownlinkTimingImmediately immediately = 1;
|
||||
|
||||
// Delay timing information.
|
||||
DownlinkTimingDelay delay = 2;
|
||||
|
||||
// GPS epoch timing information.
|
||||
DownlinkTimingGpsEpoch gps_epoch = 3;
|
||||
}
|
||||
}
|
||||
|
||||
message DownlinkTimingImmediately {
|
||||
// No fields implemented yet.
|
||||
}
|
||||
|
||||
message DownlinkTimingDelay {
|
||||
// Delay relative to provided context.
|
||||
google.protobuf.Duration delay = 1;
|
||||
}
|
||||
|
||||
message DownlinkTimingGpsEpoch {
|
||||
// Duration since GPS epoch.
|
||||
google.protobuf.Duration time_since_gps_epoch = 1;
|
||||
}
|
@ -104,7 +104,7 @@ message UplinkEvent {
|
||||
uint32 dr = 6;
|
||||
|
||||
// Frame counter.
|
||||
uint32 f_cnt_up = 7;
|
||||
uint32 f_cnt = 7;
|
||||
|
||||
// Frame port.
|
||||
uint32 f_port = 8;
|
||||
@ -119,10 +119,10 @@ message UplinkEvent {
|
||||
google.protobuf.Struct object = 11;
|
||||
|
||||
// Receiving gateway RX info.
|
||||
repeated gw.UplinkRXInfo rx_info = 12;
|
||||
repeated gw.UplinkRxInfo rx_info = 12;
|
||||
|
||||
// TX info.
|
||||
gw.UplinkTXInfo tx_info = 13;
|
||||
gw.UplinkTxInfo tx_info = 13;
|
||||
}
|
||||
|
||||
// JoinEvent is the message sent when a device joined the network.
|
||||
@ -167,8 +167,8 @@ message AckEvent {
|
||||
// for transmission. As a downlink can be scheduled in the future, this event
|
||||
// does not confirm that the message has already been transmitted.
|
||||
message TxAckEvent {
|
||||
// Downlink ID (UUID).
|
||||
string downlink_id = 1;
|
||||
// Downlink ID.
|
||||
uint32 downlink_id = 1;
|
||||
|
||||
// Timestamp.
|
||||
google.protobuf.Timestamp time = 2;
|
||||
@ -186,31 +186,28 @@ message TxAckEvent {
|
||||
string gateway_id = 6;
|
||||
|
||||
// TX info.
|
||||
gw.DownlinkTXInfo tx_info = 7;
|
||||
gw.DownlinkTxInfo tx_info = 7;
|
||||
}
|
||||
|
||||
// LogEvent is the message sent when a device-related log was sent.
|
||||
message LogEvent {
|
||||
// Deduplication ID (UUID).
|
||||
string deduplication_id = 1;
|
||||
|
||||
// Timestamp.
|
||||
google.protobuf.Timestamp time = 2;
|
||||
google.protobuf.Timestamp time = 1;
|
||||
|
||||
// Device info.
|
||||
DeviceInfo device_info = 3;
|
||||
DeviceInfo device_info = 2;
|
||||
|
||||
// Log level.
|
||||
LogLevel level = 4;
|
||||
LogLevel level = 3;
|
||||
|
||||
// Log code.
|
||||
LogCode code = 5;
|
||||
LogCode code = 4;
|
||||
|
||||
// Description message.
|
||||
string description = 6;
|
||||
string description = 5;
|
||||
|
||||
// Context map.
|
||||
map<string, string> context = 7;
|
||||
map<string, string> context = 6;
|
||||
}
|
||||
|
||||
// StatusEvent is the message sent when a device-status mac-command was sent
|
||||
@ -276,3 +273,28 @@ message IntegrationEvent {
|
||||
// Struct containing the event object.
|
||||
google.protobuf.Struct object = 6;
|
||||
}
|
||||
|
||||
// DownlinkCommand is the command to enqueue a downlink payload for the given
|
||||
// device.
|
||||
message DownlinkCommand {
|
||||
// ID (UUID).
|
||||
// If left blank, a random UUID will be generated.
|
||||
string id = 1;
|
||||
|
||||
// Device EUI (EUI64).
|
||||
string dev_eui = 2;
|
||||
|
||||
// Confirmed.
|
||||
bool confirmed = 3;
|
||||
|
||||
// FPort (must be > 0).
|
||||
uint32 f_port = 4;
|
||||
|
||||
// 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;
|
||||
}
|
||||
|
@ -199,8 +199,8 @@ message DeviceGatewayRxInfoItem {
|
||||
}
|
||||
|
||||
message DownlinkFrame {
|
||||
// Downlink ID (UUID).
|
||||
bytes downlink_id = 1;
|
||||
// Downlink ID.
|
||||
uint32 downlink_id = 1;
|
||||
|
||||
// DevEUI.
|
||||
bytes dev_eui = 2;
|
||||
@ -231,5 +231,36 @@ message LoraCloudGeolocBuffer {
|
||||
|
||||
message LoraCloudGeolocBufferUplink {
|
||||
// RxInfo set for a single uplink.
|
||||
repeated gw.UplinkRXInfo rx_info = 1;
|
||||
repeated gw.UplinkRxInfo rx_info = 1;
|
||||
}
|
||||
|
||||
message PassiveRoamingDeviceSession {
|
||||
// Session ID (UUID).
|
||||
// Unfortunately we can not use the DevEUI as unique identifier
|
||||
// as the PRStartAns DevEUI field is optional.
|
||||
bytes session_id = 1;
|
||||
|
||||
// NetID of the hNS.
|
||||
bytes net_id = 2;
|
||||
|
||||
// DevAddr of the device.
|
||||
bytes dev_addr = 3;
|
||||
|
||||
// DevEUI of the device (optional).
|
||||
bytes dev_eui = 4;
|
||||
|
||||
// LoRaWAN 1.1.
|
||||
bool lorawan_1_1 = 5;
|
||||
|
||||
// LoRaWAN 1.0 NwkSKey / LoRaWAN 1.1 FNwkSIntKey.
|
||||
bytes f_nwk_s_int_key = 6;
|
||||
|
||||
// Lifetime.
|
||||
google.protobuf.Timestamp lifetime = 7;
|
||||
|
||||
// Uplink frame-counter.
|
||||
uint32 f_cnt_up = 8;
|
||||
|
||||
// Validate MIC.
|
||||
bool validate_mic = 9;
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ syntax = "proto3";
|
||||
|
||||
package meta;
|
||||
|
||||
option go_package = "github.com/chirpstack/chirpstack-api/go/v4/meta";
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/meta";
|
||||
option java_package = "io.chirpstack.api.meta";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "MetaProto";
|
||||
@ -16,10 +16,10 @@ message UplinkMeta {
|
||||
string dev_eui = 1;
|
||||
|
||||
// TX meta-data.
|
||||
gw.UplinkTXInfo tx_info = 2;
|
||||
gw.UplinkTxInfo tx_info = 2;
|
||||
|
||||
// RX meta-data.
|
||||
repeated gw.UplinkRXInfo rx_info = 3;
|
||||
repeated gw.UplinkRxInfo rx_info = 3;
|
||||
|
||||
// PHYPayload byte count.
|
||||
uint32 phy_payload_byte_count = 4;
|
||||
@ -42,7 +42,7 @@ message DownlinkMeta {
|
||||
string multicast_group_id = 2;
|
||||
|
||||
// TX meta-data.
|
||||
gw.DownlinkTXInfo tx_info = 3;
|
||||
gw.DownlinkTxInfo tx_info = 3;
|
||||
|
||||
// PHYPayload byte count.
|
||||
uint32 phy_payload_byte_count = 4;
|
||||
|
0
api/python/src/chirpstack_api/__init__.py
vendored
Normal file
0
api/python/src/chirpstack_api/__init__.py
vendored
Normal file
20
api/python/src/chirpstack_api/api/__init__.py
vendored
Normal file
20
api/python/src/chirpstack_api/api/__init__.py
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
from .application_pb2 import *
|
||||
from .application_pb2_grpc import *
|
||||
from .device_pb2 import *
|
||||
from .device_pb2_grpc import *
|
||||
from .device_profile_pb2 import *
|
||||
from .device_profile_pb2_grpc import *
|
||||
from .device_profile_template_pb2 import *
|
||||
from .device_profile_template_pb2_grpc import *
|
||||
from .frame_log_pb2 import *
|
||||
from .frame_log_pb2_grpc import *
|
||||
from .gateway_pb2 import *
|
||||
from .gateway_pb2_grpc import *
|
||||
from .internal_pb2 import *
|
||||
from .internal_pb2_grpc import *
|
||||
from .multicast_group_pb2 import *
|
||||
from .multicast_group_pb2_grpc import *
|
||||
from .tenant_pb2 import *
|
||||
from .tenant_pb2_grpc import *
|
||||
from .user_pb2 import *
|
||||
from .user_pb2_grpc import *
|
464
api/python/src/chirpstack_api/api/application_pb2.py
vendored
464
api/python/src/chirpstack_api/api/application_pb2.py
vendored
File diff suppressed because one or more lines are too long
@ -226,6 +226,26 @@ class ApplicationServiceStub(object):
|
||||
request_serializer=chirpstack__api_dot_api_dot_application__pb2.DeletePilotThingsIntegrationRequest.SerializeToString,
|
||||
response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
|
||||
)
|
||||
self.CreateIftttIntegration = channel.unary_unary(
|
||||
'/api.ApplicationService/CreateIftttIntegration',
|
||||
request_serializer=chirpstack__api_dot_api_dot_application__pb2.CreateIftttIntegrationRequest.SerializeToString,
|
||||
response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
|
||||
)
|
||||
self.GetIftttIntegration = channel.unary_unary(
|
||||
'/api.ApplicationService/GetIftttIntegration',
|
||||
request_serializer=chirpstack__api_dot_api_dot_application__pb2.GetIftttIntegrationRequest.SerializeToString,
|
||||
response_deserializer=chirpstack__api_dot_api_dot_application__pb2.GetIftttIntegrationResponse.FromString,
|
||||
)
|
||||
self.UpdateIftttIntegration = channel.unary_unary(
|
||||
'/api.ApplicationService/UpdateIftttIntegration',
|
||||
request_serializer=chirpstack__api_dot_api_dot_application__pb2.UpdateIftttIntegrationRequest.SerializeToString,
|
||||
response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
|
||||
)
|
||||
self.DeleteIftttIntegration = channel.unary_unary(
|
||||
'/api.ApplicationService/DeleteIftttIntegration',
|
||||
request_serializer=chirpstack__api_dot_api_dot_application__pb2.DeleteIftttIntegrationRequest.SerializeToString,
|
||||
response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
|
||||
)
|
||||
self.GenerateMqttIntegrationClientCertificate = channel.unary_unary(
|
||||
'/api.ApplicationService/GenerateMqttIntegrationClientCertificate',
|
||||
request_serializer=chirpstack__api_dot_api_dot_application__pb2.GenerateMqttIntegrationClientCertificateRequest.SerializeToString,
|
||||
@ -531,6 +551,34 @@ class ApplicationServiceServicer(object):
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def CreateIftttIntegration(self, request, context):
|
||||
"""Create IFTTT integration.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def GetIftttIntegration(self, request, context):
|
||||
"""Get IFTTT integration.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def UpdateIftttIntegration(self, request, context):
|
||||
"""Update IFTTT integration.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def DeleteIftttIntegration(self, request, context):
|
||||
"""Delete IFTTT integration.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def GenerateMqttIntegrationClientCertificate(self, request, context):
|
||||
"""Generates application ID specific client-certificate.
|
||||
"""
|
||||
@ -751,6 +799,26 @@ def add_ApplicationServiceServicer_to_server(servicer, server):
|
||||
request_deserializer=chirpstack__api_dot_api_dot_application__pb2.DeletePilotThingsIntegrationRequest.FromString,
|
||||
response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
|
||||
),
|
||||
'CreateIftttIntegration': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.CreateIftttIntegration,
|
||||
request_deserializer=chirpstack__api_dot_api_dot_application__pb2.CreateIftttIntegrationRequest.FromString,
|
||||
response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
|
||||
),
|
||||
'GetIftttIntegration': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.GetIftttIntegration,
|
||||
request_deserializer=chirpstack__api_dot_api_dot_application__pb2.GetIftttIntegrationRequest.FromString,
|
||||
response_serializer=chirpstack__api_dot_api_dot_application__pb2.GetIftttIntegrationResponse.SerializeToString,
|
||||
),
|
||||
'UpdateIftttIntegration': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.UpdateIftttIntegration,
|
||||
request_deserializer=chirpstack__api_dot_api_dot_application__pb2.UpdateIftttIntegrationRequest.FromString,
|
||||
response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
|
||||
),
|
||||
'DeleteIftttIntegration': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.DeleteIftttIntegration,
|
||||
request_deserializer=chirpstack__api_dot_api_dot_application__pb2.DeleteIftttIntegrationRequest.FromString,
|
||||
response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
|
||||
),
|
||||
'GenerateMqttIntegrationClientCertificate': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.GenerateMqttIntegrationClientCertificate,
|
||||
request_deserializer=chirpstack__api_dot_api_dot_application__pb2.GenerateMqttIntegrationClientCertificateRequest.FromString,
|
||||
@ -1481,6 +1549,74 @@ class ApplicationService(object):
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def CreateIftttIntegration(request,
|
||||
target,
|
||||
options=(),
|
||||
channel_credentials=None,
|
||||
call_credentials=None,
|
||||
insecure=False,
|
||||
compression=None,
|
||||
wait_for_ready=None,
|
||||
timeout=None,
|
||||
metadata=None):
|
||||
return grpc.experimental.unary_unary(request, target, '/api.ApplicationService/CreateIftttIntegration',
|
||||
chirpstack__api_dot_api_dot_application__pb2.CreateIftttIntegrationRequest.SerializeToString,
|
||||
google_dot_protobuf_dot_empty__pb2.Empty.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def GetIftttIntegration(request,
|
||||
target,
|
||||
options=(),
|
||||
channel_credentials=None,
|
||||
call_credentials=None,
|
||||
insecure=False,
|
||||
compression=None,
|
||||
wait_for_ready=None,
|
||||
timeout=None,
|
||||
metadata=None):
|
||||
return grpc.experimental.unary_unary(request, target, '/api.ApplicationService/GetIftttIntegration',
|
||||
chirpstack__api_dot_api_dot_application__pb2.GetIftttIntegrationRequest.SerializeToString,
|
||||
chirpstack__api_dot_api_dot_application__pb2.GetIftttIntegrationResponse.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def UpdateIftttIntegration(request,
|
||||
target,
|
||||
options=(),
|
||||
channel_credentials=None,
|
||||
call_credentials=None,
|
||||
insecure=False,
|
||||
compression=None,
|
||||
wait_for_ready=None,
|
||||
timeout=None,
|
||||
metadata=None):
|
||||
return grpc.experimental.unary_unary(request, target, '/api.ApplicationService/UpdateIftttIntegration',
|
||||
chirpstack__api_dot_api_dot_application__pb2.UpdateIftttIntegrationRequest.SerializeToString,
|
||||
google_dot_protobuf_dot_empty__pb2.Empty.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def DeleteIftttIntegration(request,
|
||||
target,
|
||||
options=(),
|
||||
channel_credentials=None,
|
||||
call_credentials=None,
|
||||
insecure=False,
|
||||
compression=None,
|
||||
wait_for_ready=None,
|
||||
timeout=None,
|
||||
metadata=None):
|
||||
return grpc.experimental.unary_unary(request, target, '/api.ApplicationService/DeleteIftttIntegration',
|
||||
chirpstack__api_dot_api_dot_application__pb2.DeleteIftttIntegrationRequest.SerializeToString,
|
||||
google_dot_protobuf_dot_empty__pb2.Empty.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def GenerateMqttIntegrationClientCertificate(request,
|
||||
target,
|
||||
|
293
api/python/src/chirpstack_api/api/device_pb2.py
vendored
293
api/python/src/chirpstack_api/api/device_pb2.py
vendored
File diff suppressed because one or more lines are too long
@ -86,10 +86,15 @@ class DeviceServiceStub(object):
|
||||
request_serializer=chirpstack__api_dot_api_dot_device__pb2.GetRandomDevAddrRequest.SerializeToString,
|
||||
response_deserializer=chirpstack__api_dot_api_dot_device__pb2.GetRandomDevAddrResponse.FromString,
|
||||
)
|
||||
self.GetStats = channel.unary_unary(
|
||||
'/api.DeviceService/GetStats',
|
||||
request_serializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceStatsRequest.SerializeToString,
|
||||
response_deserializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceStatsResponse.FromString,
|
||||
self.GetMetrics = channel.unary_unary(
|
||||
'/api.DeviceService/GetMetrics',
|
||||
request_serializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceMetricsRequest.SerializeToString,
|
||||
response_deserializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceMetricsResponse.FromString,
|
||||
)
|
||||
self.GetLinkMetrics = channel.unary_unary(
|
||||
'/api.DeviceService/GetLinkMetrics',
|
||||
request_serializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceLinkMetricsRequest.SerializeToString,
|
||||
response_deserializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceLinkMetricsResponse.FromString,
|
||||
)
|
||||
self.Enqueue = channel.unary_unary(
|
||||
'/api.DeviceService/Enqueue',
|
||||
@ -210,8 +215,17 @@ class DeviceServiceServicer(object):
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def GetStats(self, request, context):
|
||||
"""GetStats returns the device stats.
|
||||
def GetMetrics(self, request, context):
|
||||
"""GetMetrics returns the device metrics.
|
||||
Note that this requires a device-profile with codec and measurements configured.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def GetLinkMetrics(self, request, context):
|
||||
"""GetLinkMetrics returns the device link metrics.
|
||||
This includes uplinks, downlinks, RSSI, SNR, etc...
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
@ -311,10 +325,15 @@ def add_DeviceServiceServicer_to_server(servicer, server):
|
||||
request_deserializer=chirpstack__api_dot_api_dot_device__pb2.GetRandomDevAddrRequest.FromString,
|
||||
response_serializer=chirpstack__api_dot_api_dot_device__pb2.GetRandomDevAddrResponse.SerializeToString,
|
||||
),
|
||||
'GetStats': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.GetStats,
|
||||
request_deserializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceStatsRequest.FromString,
|
||||
response_serializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceStatsResponse.SerializeToString,
|
||||
'GetMetrics': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.GetMetrics,
|
||||
request_deserializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceMetricsRequest.FromString,
|
||||
response_serializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceMetricsResponse.SerializeToString,
|
||||
),
|
||||
'GetLinkMetrics': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.GetLinkMetrics,
|
||||
request_deserializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceLinkMetricsRequest.FromString,
|
||||
response_serializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceLinkMetricsResponse.SerializeToString,
|
||||
),
|
||||
'Enqueue': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.Enqueue,
|
||||
@ -581,7 +600,7 @@ class DeviceService(object):
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def GetStats(request,
|
||||
def GetMetrics(request,
|
||||
target,
|
||||
options=(),
|
||||
channel_credentials=None,
|
||||
@ -591,9 +610,26 @@ class DeviceService(object):
|
||||
wait_for_ready=None,
|
||||
timeout=None,
|
||||
metadata=None):
|
||||
return grpc.experimental.unary_unary(request, target, '/api.DeviceService/GetStats',
|
||||
chirpstack__api_dot_api_dot_device__pb2.GetDeviceStatsRequest.SerializeToString,
|
||||
chirpstack__api_dot_api_dot_device__pb2.GetDeviceStatsResponse.FromString,
|
||||
return grpc.experimental.unary_unary(request, target, '/api.DeviceService/GetMetrics',
|
||||
chirpstack__api_dot_api_dot_device__pb2.GetDeviceMetricsRequest.SerializeToString,
|
||||
chirpstack__api_dot_api_dot_device__pb2.GetDeviceMetricsResponse.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def GetLinkMetrics(request,
|
||||
target,
|
||||
options=(),
|
||||
channel_credentials=None,
|
||||
call_credentials=None,
|
||||
insecure=False,
|
||||
compression=None,
|
||||
wait_for_ready=None,
|
||||
timeout=None,
|
||||
metadata=None):
|
||||
return grpc.experimental.unary_unary(request, target, '/api.DeviceService/GetLinkMetrics',
|
||||
chirpstack__api_dot_api_dot_device__pb2.GetDeviceLinkMetricsRequest.SerializeToString,
|
||||
chirpstack__api_dot_api_dot_device__pb2.GetDeviceLinkMetricsResponse.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
159
api/python/src/chirpstack_api/api/device_profile_template_pb2.py
vendored
Normal file
159
api/python/src/chirpstack_api/api/device_profile_template_pb2.py
vendored
Normal file
@ -0,0 +1,159 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: chirpstack-api/api/device_profile_template.proto
|
||||
"""Generated protocol buffer code."""
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import descriptor_pool as _descriptor_pool
|
||||
from google.protobuf import message as _message
|
||||
from google.protobuf import reflection as _reflection
|
||||
from google.protobuf import symbol_database as _symbol_database
|
||||
# @@protoc_insertion_point(imports)
|
||||
|
||||
_sym_db = _symbol_database.Default()
|
||||
|
||||
|
||||
from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
|
||||
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
|
||||
from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
|
||||
from chirpstack_api.common import common_pb2 as chirpstack__api_dot_common_dot_common__pb2
|
||||
from chirpstack_api.api import device_profile_pb2 as chirpstack__api_dot_api_dot_device__profile__pb2
|
||||
|
||||
|
||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n0chirpstack-api/api/device_profile_template.proto\x12\x03\x61pi\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\"chirpstack-api/common/common.proto\x1a\'chirpstack-api/api/device_profile.proto\"\xd6\x07\n\x15\x44\x65viceProfileTemplate\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x0e\n\x06vendor\x18\x04 \x01(\t\x12\x10\n\x08\x66irmware\x18\x05 \x01(\t\x12\x1e\n\x06region\x18\x06 \x01(\x0e\x32\x0e.common.Region\x12\'\n\x0bmac_version\x18\x07 \x01(\x0e\x32\x12.common.MacVersion\x12\x36\n\x13reg_params_revision\x18\x08 \x01(\x0e\x32\x19.common.RegParamsRevision\x12\x18\n\x10\x61\x64r_algorithm_id\x18\t \x01(\t\x12\x30\n\x15payload_codec_runtime\x18\n \x01(\x0e\x32\x11.api.CodecRuntime\x12\x1c\n\x14payload_codec_script\x18\x0b \x01(\t\x12\x1f\n\x17\x66lush_queue_on_activate\x18\x0c \x01(\x08\x12\x17\n\x0fuplink_interval\x18\r \x01(\r\x12\"\n\x1a\x64\x65vice_status_req_interval\x18\x0e \x01(\r\x12\x15\n\rsupports_otaa\x18\x0f \x01(\x08\x12\x18\n\x10supports_class_b\x18\x10 \x01(\x08\x12\x18\n\x10supports_class_c\x18\x11 \x01(\x08\x12\x17\n\x0f\x63lass_b_timeout\x18\x12 \x01(\r\x12 \n\x18\x63lass_b_ping_slot_period\x18\x13 \x01(\r\x12\x1c\n\x14\x63lass_b_ping_slot_dr\x18\x14 \x01(\r\x12\x1e\n\x16\x63lass_b_ping_slot_freq\x18\x15 \x01(\r\x12\x17\n\x0f\x63lass_c_timeout\x18\x16 \x01(\r\x12\x15\n\rabp_rx1_delay\x18\x17 \x01(\r\x12\x19\n\x11\x61\x62p_rx1_dr_offset\x18\x18 \x01(\r\x12\x12\n\nabp_rx2_dr\x18\x19 \x01(\r\x12\x14\n\x0c\x61\x62p_rx2_freq\x18\x1a \x01(\r\x12\x32\n\x04tags\x18\x1b \x03(\x0b\x32$.api.DeviceProfileTemplate.TagsEntry\x12\x42\n\x0cmeasurements\x18\x1c \x03(\x0b\x32,.api.DeviceProfileTemplate.MeasurementsEntry\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x45\n\x11MeasurementsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1f\n\x05value\x18\x02 \x01(\x0b\x32\x10.api.Measurement:\x02\x38\x01\"\x87\x03\n\x1d\x44\x65viceProfileTemplateListItem\x12\n\n\x02id\x18\x01 \x01(\t\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x0e\n\x06vendor\x18\x05 \x01(\t\x12\x10\n\x08\x66irmware\x18\x06 \x01(\t\x12\x1e\n\x06region\x18\x07 \x01(\x0e\x32\x0e.common.Region\x12\'\n\x0bmac_version\x18\x08 \x01(\x0e\x32\x12.common.MacVersion\x12\x36\n\x13reg_params_revision\x18\t \x01(\x0e\x32\x19.common.RegParamsRevision\x12\x15\n\rsupports_otaa\x18\n \x01(\x08\x12\x18\n\x10supports_class_b\x18\x0b \x01(\x08\x12\x18\n\x10supports_class_c\x18\x0c \x01(\x08\"a\n\"CreateDeviceProfileTemplateRequest\x12;\n\x17\x64\x65vice_profile_template\x18\x01 \x01(\x0b\x32\x1a.api.DeviceProfileTemplate\"-\n\x1fGetDeviceProfileTemplateRequest\x12\n\n\x02id\x18\x01 \x01(\t\"\xbf\x01\n GetDeviceProfileTemplateResponse\x12;\n\x17\x64\x65vice_profile_template\x18\x01 \x01(\x0b\x32\x1a.api.DeviceProfileTemplate\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"a\n\"UpdateDeviceProfileTemplateRequest\x12;\n\x17\x64\x65vice_profile_template\x18\x01 \x01(\x0b\x32\x1a.api.DeviceProfileTemplate\"0\n\"DeleteDeviceProfileTemplateRequest\x12\n\n\x02id\x18\x01 \x01(\t\"B\n!ListDeviceProfileTemplatesRequest\x12\r\n\x05limit\x18\x01 \x01(\r\x12\x0e\n\x06offset\x18\x02 \x01(\r\"m\n\"ListDeviceProfileTemplatesResponse\x12\x13\n\x0btotal_count\x18\x01 \x01(\r\x12\x32\n\x06result\x18\x02 \x03(\x0b\x32\".api.DeviceProfileTemplateListItem2\x9d\x05\n\x1c\x44\x65viceProfileTemplateService\x12s\n\x06\x43reate\x12\'.api.CreateDeviceProfileTemplateRequest\x1a\x16.google.protobuf.Empty\"(\x82\xd3\xe4\x93\x02\"\"\x1d/api/device-profile-templates:\x01*\x12~\n\x03Get\x12$.api.GetDeviceProfileTemplateRequest\x1a%.api.GetDeviceProfileTemplateResponse\"*\x82\xd3\xe4\x93\x02$\x12\"/api/device-profile-templates/{id}\x12\x90\x01\n\x06Update\x12\'.api.UpdateDeviceProfileTemplateRequest\x1a\x16.google.protobuf.Empty\"E\x82\xd3\xe4\x93\x02?\x1a:/api/device-profile-templates/{device_profile_template.id}:\x01*\x12u\n\x06\x44\x65lete\x12\'.api.DeleteDeviceProfileTemplateRequest\x1a\x16.google.protobuf.Empty\"*\x82\xd3\xe4\x93\x02$*\"/api/device-profile-templates/{id}\x12~\n\x04List\x12&.api.ListDeviceProfileTemplatesRequest\x1a\'.api.ListDeviceProfileTemplatesResponse\"%\x82\xd3\xe4\x93\x02\x1f\x12\x1d/api/device-profile-templatesBa\n\x11io.chirpstack.apiB\x1a\x44\x65viceProfileTemplateProtoP\x01Z.github.com/chirpstack/chirpstack/api/go/v4/apib\x06proto3')
|
||||
|
||||
|
||||
|
||||
_DEVICEPROFILETEMPLATE = DESCRIPTOR.message_types_by_name['DeviceProfileTemplate']
|
||||
_DEVICEPROFILETEMPLATE_TAGSENTRY = _DEVICEPROFILETEMPLATE.nested_types_by_name['TagsEntry']
|
||||
_DEVICEPROFILETEMPLATE_MEASUREMENTSENTRY = _DEVICEPROFILETEMPLATE.nested_types_by_name['MeasurementsEntry']
|
||||
_DEVICEPROFILETEMPLATELISTITEM = DESCRIPTOR.message_types_by_name['DeviceProfileTemplateListItem']
|
||||
_CREATEDEVICEPROFILETEMPLATEREQUEST = DESCRIPTOR.message_types_by_name['CreateDeviceProfileTemplateRequest']
|
||||
_GETDEVICEPROFILETEMPLATEREQUEST = DESCRIPTOR.message_types_by_name['GetDeviceProfileTemplateRequest']
|
||||
_GETDEVICEPROFILETEMPLATERESPONSE = DESCRIPTOR.message_types_by_name['GetDeviceProfileTemplateResponse']
|
||||
_UPDATEDEVICEPROFILETEMPLATEREQUEST = DESCRIPTOR.message_types_by_name['UpdateDeviceProfileTemplateRequest']
|
||||
_DELETEDEVICEPROFILETEMPLATEREQUEST = DESCRIPTOR.message_types_by_name['DeleteDeviceProfileTemplateRequest']
|
||||
_LISTDEVICEPROFILETEMPLATESREQUEST = DESCRIPTOR.message_types_by_name['ListDeviceProfileTemplatesRequest']
|
||||
_LISTDEVICEPROFILETEMPLATESRESPONSE = DESCRIPTOR.message_types_by_name['ListDeviceProfileTemplatesResponse']
|
||||
DeviceProfileTemplate = _reflection.GeneratedProtocolMessageType('DeviceProfileTemplate', (_message.Message,), {
|
||||
|
||||
'TagsEntry' : _reflection.GeneratedProtocolMessageType('TagsEntry', (_message.Message,), {
|
||||
'DESCRIPTOR' : _DEVICEPROFILETEMPLATE_TAGSENTRY,
|
||||
'__module__' : 'chirpstack_api.api.device_profile_template_pb2'
|
||||
# @@protoc_insertion_point(class_scope:api.DeviceProfileTemplate.TagsEntry)
|
||||
})
|
||||
,
|
||||
|
||||
'MeasurementsEntry' : _reflection.GeneratedProtocolMessageType('MeasurementsEntry', (_message.Message,), {
|
||||
'DESCRIPTOR' : _DEVICEPROFILETEMPLATE_MEASUREMENTSENTRY,
|
||||
'__module__' : 'chirpstack_api.api.device_profile_template_pb2'
|
||||
# @@protoc_insertion_point(class_scope:api.DeviceProfileTemplate.MeasurementsEntry)
|
||||
})
|
||||
,
|
||||
'DESCRIPTOR' : _DEVICEPROFILETEMPLATE,
|
||||
'__module__' : 'chirpstack_api.api.device_profile_template_pb2'
|
||||
# @@protoc_insertion_point(class_scope:api.DeviceProfileTemplate)
|
||||
})
|
||||
_sym_db.RegisterMessage(DeviceProfileTemplate)
|
||||
_sym_db.RegisterMessage(DeviceProfileTemplate.TagsEntry)
|
||||
_sym_db.RegisterMessage(DeviceProfileTemplate.MeasurementsEntry)
|
||||
|
||||
DeviceProfileTemplateListItem = _reflection.GeneratedProtocolMessageType('DeviceProfileTemplateListItem', (_message.Message,), {
|
||||
'DESCRIPTOR' : _DEVICEPROFILETEMPLATELISTITEM,
|
||||
'__module__' : 'chirpstack_api.api.device_profile_template_pb2'
|
||||
# @@protoc_insertion_point(class_scope:api.DeviceProfileTemplateListItem)
|
||||
})
|
||||
_sym_db.RegisterMessage(DeviceProfileTemplateListItem)
|
||||
|
||||
CreateDeviceProfileTemplateRequest = _reflection.GeneratedProtocolMessageType('CreateDeviceProfileTemplateRequest', (_message.Message,), {
|
||||
'DESCRIPTOR' : _CREATEDEVICEPROFILETEMPLATEREQUEST,
|
||||
'__module__' : 'chirpstack_api.api.device_profile_template_pb2'
|
||||
# @@protoc_insertion_point(class_scope:api.CreateDeviceProfileTemplateRequest)
|
||||
})
|
||||
_sym_db.RegisterMessage(CreateDeviceProfileTemplateRequest)
|
||||
|
||||
GetDeviceProfileTemplateRequest = _reflection.GeneratedProtocolMessageType('GetDeviceProfileTemplateRequest', (_message.Message,), {
|
||||
'DESCRIPTOR' : _GETDEVICEPROFILETEMPLATEREQUEST,
|
||||
'__module__' : 'chirpstack_api.api.device_profile_template_pb2'
|
||||
# @@protoc_insertion_point(class_scope:api.GetDeviceProfileTemplateRequest)
|
||||
})
|
||||
_sym_db.RegisterMessage(GetDeviceProfileTemplateRequest)
|
||||
|
||||
GetDeviceProfileTemplateResponse = _reflection.GeneratedProtocolMessageType('GetDeviceProfileTemplateResponse', (_message.Message,), {
|
||||
'DESCRIPTOR' : _GETDEVICEPROFILETEMPLATERESPONSE,
|
||||
'__module__' : 'chirpstack_api.api.device_profile_template_pb2'
|
||||
# @@protoc_insertion_point(class_scope:api.GetDeviceProfileTemplateResponse)
|
||||
})
|
||||
_sym_db.RegisterMessage(GetDeviceProfileTemplateResponse)
|
||||
|
||||
UpdateDeviceProfileTemplateRequest = _reflection.GeneratedProtocolMessageType('UpdateDeviceProfileTemplateRequest', (_message.Message,), {
|
||||
'DESCRIPTOR' : _UPDATEDEVICEPROFILETEMPLATEREQUEST,
|
||||
'__module__' : 'chirpstack_api.api.device_profile_template_pb2'
|
||||
# @@protoc_insertion_point(class_scope:api.UpdateDeviceProfileTemplateRequest)
|
||||
})
|
||||
_sym_db.RegisterMessage(UpdateDeviceProfileTemplateRequest)
|
||||
|
||||
DeleteDeviceProfileTemplateRequest = _reflection.GeneratedProtocolMessageType('DeleteDeviceProfileTemplateRequest', (_message.Message,), {
|
||||
'DESCRIPTOR' : _DELETEDEVICEPROFILETEMPLATEREQUEST,
|
||||
'__module__' : 'chirpstack_api.api.device_profile_template_pb2'
|
||||
# @@protoc_insertion_point(class_scope:api.DeleteDeviceProfileTemplateRequest)
|
||||
})
|
||||
_sym_db.RegisterMessage(DeleteDeviceProfileTemplateRequest)
|
||||
|
||||
ListDeviceProfileTemplatesRequest = _reflection.GeneratedProtocolMessageType('ListDeviceProfileTemplatesRequest', (_message.Message,), {
|
||||
'DESCRIPTOR' : _LISTDEVICEPROFILETEMPLATESREQUEST,
|
||||
'__module__' : 'chirpstack_api.api.device_profile_template_pb2'
|
||||
# @@protoc_insertion_point(class_scope:api.ListDeviceProfileTemplatesRequest)
|
||||
})
|
||||
_sym_db.RegisterMessage(ListDeviceProfileTemplatesRequest)
|
||||
|
||||
ListDeviceProfileTemplatesResponse = _reflection.GeneratedProtocolMessageType('ListDeviceProfileTemplatesResponse', (_message.Message,), {
|
||||
'DESCRIPTOR' : _LISTDEVICEPROFILETEMPLATESRESPONSE,
|
||||
'__module__' : 'chirpstack_api.api.device_profile_template_pb2'
|
||||
# @@protoc_insertion_point(class_scope:api.ListDeviceProfileTemplatesResponse)
|
||||
})
|
||||
_sym_db.RegisterMessage(ListDeviceProfileTemplatesResponse)
|
||||
|
||||
_DEVICEPROFILETEMPLATESERVICE = DESCRIPTOR.services_by_name['DeviceProfileTemplateService']
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
|
||||
DESCRIPTOR._options = None
|
||||
DESCRIPTOR._serialized_options = b'\n\021io.chirpstack.apiB\032DeviceProfileTemplateProtoP\001Z.github.com/chirpstack/chirpstack/api/go/v4/api'
|
||||
_DEVICEPROFILETEMPLATE_TAGSENTRY._options = None
|
||||
_DEVICEPROFILETEMPLATE_TAGSENTRY._serialized_options = b'8\001'
|
||||
_DEVICEPROFILETEMPLATE_MEASUREMENTSENTRY._options = None
|
||||
_DEVICEPROFILETEMPLATE_MEASUREMENTSENTRY._serialized_options = b'8\001'
|
||||
_DEVICEPROFILETEMPLATESERVICE.methods_by_name['Create']._options = None
|
||||
_DEVICEPROFILETEMPLATESERVICE.methods_by_name['Create']._serialized_options = b'\202\323\344\223\002\"\"\035/api/device-profile-templates:\001*'
|
||||
_DEVICEPROFILETEMPLATESERVICE.methods_by_name['Get']._options = None
|
||||
_DEVICEPROFILETEMPLATESERVICE.methods_by_name['Get']._serialized_options = b'\202\323\344\223\002$\022\"/api/device-profile-templates/{id}'
|
||||
_DEVICEPROFILETEMPLATESERVICE.methods_by_name['Update']._options = None
|
||||
_DEVICEPROFILETEMPLATESERVICE.methods_by_name['Update']._serialized_options = b'\202\323\344\223\002?\032:/api/device-profile-templates/{device_profile_template.id}:\001*'
|
||||
_DEVICEPROFILETEMPLATESERVICE.methods_by_name['Delete']._options = None
|
||||
_DEVICEPROFILETEMPLATESERVICE.methods_by_name['Delete']._serialized_options = b'\202\323\344\223\002$*\"/api/device-profile-templates/{id}'
|
||||
_DEVICEPROFILETEMPLATESERVICE.methods_by_name['List']._options = None
|
||||
_DEVICEPROFILETEMPLATESERVICE.methods_by_name['List']._serialized_options = b'\202\323\344\223\002\037\022\035/api/device-profile-templates'
|
||||
_DEVICEPROFILETEMPLATE._serialized_start=227
|
||||
_DEVICEPROFILETEMPLATE._serialized_end=1209
|
||||
_DEVICEPROFILETEMPLATE_TAGSENTRY._serialized_start=1095
|
||||
_DEVICEPROFILETEMPLATE_TAGSENTRY._serialized_end=1138
|
||||
_DEVICEPROFILETEMPLATE_MEASUREMENTSENTRY._serialized_start=1140
|
||||
_DEVICEPROFILETEMPLATE_MEASUREMENTSENTRY._serialized_end=1209
|
||||
_DEVICEPROFILETEMPLATELISTITEM._serialized_start=1212
|
||||
_DEVICEPROFILETEMPLATELISTITEM._serialized_end=1603
|
||||
_CREATEDEVICEPROFILETEMPLATEREQUEST._serialized_start=1605
|
||||
_CREATEDEVICEPROFILETEMPLATEREQUEST._serialized_end=1702
|
||||
_GETDEVICEPROFILETEMPLATEREQUEST._serialized_start=1704
|
||||
_GETDEVICEPROFILETEMPLATEREQUEST._serialized_end=1749
|
||||
_GETDEVICEPROFILETEMPLATERESPONSE._serialized_start=1752
|
||||
_GETDEVICEPROFILETEMPLATERESPONSE._serialized_end=1943
|
||||
_UPDATEDEVICEPROFILETEMPLATEREQUEST._serialized_start=1945
|
||||
_UPDATEDEVICEPROFILETEMPLATEREQUEST._serialized_end=2042
|
||||
_DELETEDEVICEPROFILETEMPLATEREQUEST._serialized_start=2044
|
||||
_DELETEDEVICEPROFILETEMPLATEREQUEST._serialized_end=2092
|
||||
_LISTDEVICEPROFILETEMPLATESREQUEST._serialized_start=2094
|
||||
_LISTDEVICEPROFILETEMPLATESREQUEST._serialized_end=2160
|
||||
_LISTDEVICEPROFILETEMPLATESRESPONSE._serialized_start=2162
|
||||
_LISTDEVICEPROFILETEMPLATESRESPONSE._serialized_end=2271
|
||||
_DEVICEPROFILETEMPLATESERVICE._serialized_start=2274
|
||||
_DEVICEPROFILETEMPLATESERVICE._serialized_end=2943
|
||||
# @@protoc_insertion_point(module_scope)
|
207
api/python/src/chirpstack_api/api/device_profile_template_pb2_grpc.py
vendored
Normal file
207
api/python/src/chirpstack_api/api/device_profile_template_pb2_grpc.py
vendored
Normal file
@ -0,0 +1,207 @@
|
||||
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
||||
"""Client and server classes corresponding to protobuf-defined services."""
|
||||
import grpc
|
||||
|
||||
from chirpstack_api.api import device_profile_template_pb2 as chirpstack__api_dot_api_dot_device__profile__template__pb2
|
||||
from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
|
||||
|
||||
|
||||
class DeviceProfileTemplateServiceStub(object):
|
||||
"""DeviceProfileTemplateService is the service providing API methods for managing device-profile templates.
|
||||
"""
|
||||
|
||||
def __init__(self, channel):
|
||||
"""Constructor.
|
||||
|
||||
Args:
|
||||
channel: A grpc.Channel.
|
||||
"""
|
||||
self.Create = channel.unary_unary(
|
||||
'/api.DeviceProfileTemplateService/Create',
|
||||
request_serializer=chirpstack__api_dot_api_dot_device__profile__template__pb2.CreateDeviceProfileTemplateRequest.SerializeToString,
|
||||
response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
|
||||
)
|
||||
self.Get = channel.unary_unary(
|
||||
'/api.DeviceProfileTemplateService/Get',
|
||||
request_serializer=chirpstack__api_dot_api_dot_device__profile__template__pb2.GetDeviceProfileTemplateRequest.SerializeToString,
|
||||
response_deserializer=chirpstack__api_dot_api_dot_device__profile__template__pb2.GetDeviceProfileTemplateResponse.FromString,
|
||||
)
|
||||
self.Update = channel.unary_unary(
|
||||
'/api.DeviceProfileTemplateService/Update',
|
||||
request_serializer=chirpstack__api_dot_api_dot_device__profile__template__pb2.UpdateDeviceProfileTemplateRequest.SerializeToString,
|
||||
response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
|
||||
)
|
||||
self.Delete = channel.unary_unary(
|
||||
'/api.DeviceProfileTemplateService/Delete',
|
||||
request_serializer=chirpstack__api_dot_api_dot_device__profile__template__pb2.DeleteDeviceProfileTemplateRequest.SerializeToString,
|
||||
response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
|
||||
)
|
||||
self.List = channel.unary_unary(
|
||||
'/api.DeviceProfileTemplateService/List',
|
||||
request_serializer=chirpstack__api_dot_api_dot_device__profile__template__pb2.ListDeviceProfileTemplatesRequest.SerializeToString,
|
||||
response_deserializer=chirpstack__api_dot_api_dot_device__profile__template__pb2.ListDeviceProfileTemplatesResponse.FromString,
|
||||
)
|
||||
|
||||
|
||||
class DeviceProfileTemplateServiceServicer(object):
|
||||
"""DeviceProfileTemplateService is the service providing API methods for managing device-profile templates.
|
||||
"""
|
||||
|
||||
def Create(self, request, context):
|
||||
"""Create the given device-profile template.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def Get(self, request, context):
|
||||
"""Get the device-profile template for the given ID.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def Update(self, request, context):
|
||||
"""Update the given device-profile template.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def Delete(self, request, context):
|
||||
"""Delete the device-profile template with the given ID.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def List(self, request, context):
|
||||
"""List the available device-profile templates.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
|
||||
def add_DeviceProfileTemplateServiceServicer_to_server(servicer, server):
|
||||
rpc_method_handlers = {
|
||||
'Create': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.Create,
|
||||
request_deserializer=chirpstack__api_dot_api_dot_device__profile__template__pb2.CreateDeviceProfileTemplateRequest.FromString,
|
||||
response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
|
||||
),
|
||||
'Get': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.Get,
|
||||
request_deserializer=chirpstack__api_dot_api_dot_device__profile__template__pb2.GetDeviceProfileTemplateRequest.FromString,
|
||||
response_serializer=chirpstack__api_dot_api_dot_device__profile__template__pb2.GetDeviceProfileTemplateResponse.SerializeToString,
|
||||
),
|
||||
'Update': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.Update,
|
||||
request_deserializer=chirpstack__api_dot_api_dot_device__profile__template__pb2.UpdateDeviceProfileTemplateRequest.FromString,
|
||||
response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
|
||||
),
|
||||
'Delete': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.Delete,
|
||||
request_deserializer=chirpstack__api_dot_api_dot_device__profile__template__pb2.DeleteDeviceProfileTemplateRequest.FromString,
|
||||
response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
|
||||
),
|
||||
'List': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.List,
|
||||
request_deserializer=chirpstack__api_dot_api_dot_device__profile__template__pb2.ListDeviceProfileTemplatesRequest.FromString,
|
||||
response_serializer=chirpstack__api_dot_api_dot_device__profile__template__pb2.ListDeviceProfileTemplatesResponse.SerializeToString,
|
||||
),
|
||||
}
|
||||
generic_handler = grpc.method_handlers_generic_handler(
|
||||
'api.DeviceProfileTemplateService', rpc_method_handlers)
|
||||
server.add_generic_rpc_handlers((generic_handler,))
|
||||
|
||||
|
||||
# This class is part of an EXPERIMENTAL API.
|
||||
class DeviceProfileTemplateService(object):
|
||||
"""DeviceProfileTemplateService is the service providing API methods for managing device-profile templates.
|
||||
"""
|
||||
|
||||
@staticmethod
|
||||
def Create(request,
|
||||
target,
|
||||
options=(),
|
||||
channel_credentials=None,
|
||||
call_credentials=None,
|
||||
insecure=False,
|
||||
compression=None,
|
||||
wait_for_ready=None,
|
||||
timeout=None,
|
||||
metadata=None):
|
||||
return grpc.experimental.unary_unary(request, target, '/api.DeviceProfileTemplateService/Create',
|
||||
chirpstack__api_dot_api_dot_device__profile__template__pb2.CreateDeviceProfileTemplateRequest.SerializeToString,
|
||||
google_dot_protobuf_dot_empty__pb2.Empty.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def Get(request,
|
||||
target,
|
||||
options=(),
|
||||
channel_credentials=None,
|
||||
call_credentials=None,
|
||||
insecure=False,
|
||||
compression=None,
|
||||
wait_for_ready=None,
|
||||
timeout=None,
|
||||
metadata=None):
|
||||
return grpc.experimental.unary_unary(request, target, '/api.DeviceProfileTemplateService/Get',
|
||||
chirpstack__api_dot_api_dot_device__profile__template__pb2.GetDeviceProfileTemplateRequest.SerializeToString,
|
||||
chirpstack__api_dot_api_dot_device__profile__template__pb2.GetDeviceProfileTemplateResponse.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def Update(request,
|
||||
target,
|
||||
options=(),
|
||||
channel_credentials=None,
|
||||
call_credentials=None,
|
||||
insecure=False,
|
||||
compression=None,
|
||||
wait_for_ready=None,
|
||||
timeout=None,
|
||||
metadata=None):
|
||||
return grpc.experimental.unary_unary(request, target, '/api.DeviceProfileTemplateService/Update',
|
||||
chirpstack__api_dot_api_dot_device__profile__template__pb2.UpdateDeviceProfileTemplateRequest.SerializeToString,
|
||||
google_dot_protobuf_dot_empty__pb2.Empty.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def Delete(request,
|
||||
target,
|
||||
options=(),
|
||||
channel_credentials=None,
|
||||
call_credentials=None,
|
||||
insecure=False,
|
||||
compression=None,
|
||||
wait_for_ready=None,
|
||||
timeout=None,
|
||||
metadata=None):
|
||||
return grpc.experimental.unary_unary(request, target, '/api.DeviceProfileTemplateService/Delete',
|
||||
chirpstack__api_dot_api_dot_device__profile__template__pb2.DeleteDeviceProfileTemplateRequest.SerializeToString,
|
||||
google_dot_protobuf_dot_empty__pb2.Empty.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def List(request,
|
||||
target,
|
||||
options=(),
|
||||
channel_credentials=None,
|
||||
call_credentials=None,
|
||||
insecure=False,
|
||||
compression=None,
|
||||
wait_for_ready=None,
|
||||
timeout=None,
|
||||
metadata=None):
|
||||
return grpc.experimental.unary_unary(request, target, '/api.DeviceProfileTemplateService/List',
|
||||
chirpstack__api_dot_api_dot_device__profile__template__pb2.ListDeviceProfileTemplatesRequest.SerializeToString,
|
||||
chirpstack__api_dot_api_dot_device__profile__template__pb2.ListDeviceProfileTemplatesResponse.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
@ -17,7 +17,7 @@ from chirpstack_api.common import common_pb2 as chirpstack__api_dot_common_dot_c
|
||||
from chirpstack_api.gw import gw_pb2 as chirpstack__api_dot_gw_dot_gw__pb2
|
||||
|
||||
|
||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"chirpstack-api/api/frame_log.proto\x12\x03\x61pi\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\"chirpstack-api/common/common.proto\x1a\x1a\x63hirpstack-api/gw/gw.proto\"\xd7\x01\n\x0eUplinkFrameLog\x12\x13\n\x0bphy_payload\x18\x01 \x01(\x0c\x12!\n\x07tx_info\x18\x02 \x01(\x0b\x32\x10.gw.UplinkTXInfo\x12!\n\x07rx_info\x18\x03 \x03(\x0b\x32\x10.gw.UplinkRXInfo\x12\x1d\n\x06m_type\x18\x04 \x01(\x0e\x32\r.common.MType\x12\x10\n\x08\x64\x65v_addr\x18\x05 \x01(\t\x12\x0f\n\x07\x64\x65v_eui\x18\x06 \x01(\t\x12(\n\x04time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xe1\x01\n\x10\x44ownlinkFrameLog\x12(\n\x04time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x13\n\x0bphy_payload\x18\x02 \x01(\x0c\x12#\n\x07tx_info\x18\x03 \x01(\x0b\x32\x12.gw.DownlinkTXInfo\x12\x13\n\x0b\x64ownlink_id\x18\x04 \x01(\t\x12\x12\n\ngateway_id\x18\x05 \x01(\t\x12\x1d\n\x06m_type\x18\x06 \x01(\x0e\x32\r.common.MType\x12\x10\n\x08\x64\x65v_addr\x18\x07 \x01(\t\x12\x0f\n\x07\x64\x65v_eui\x18\x08 \x01(\tBP\n\x11io.chirpstack.apiB\rFrameLogProtoP\x01Z*github.com/chirpstack/chirpstack/api/go/v4b\x06proto3')
|
||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"chirpstack-api/api/frame_log.proto\x12\x03\x61pi\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\"chirpstack-api/common/common.proto\x1a\x1a\x63hirpstack-api/gw/gw.proto\"\xd7\x01\n\x0eUplinkFrameLog\x12\x13\n\x0bphy_payload\x18\x01 \x01(\x0c\x12!\n\x07tx_info\x18\x02 \x01(\x0b\x32\x10.gw.UplinkTxInfo\x12!\n\x07rx_info\x18\x03 \x03(\x0b\x32\x10.gw.UplinkRxInfo\x12\x1d\n\x06m_type\x18\x04 \x01(\x0e\x32\r.common.MType\x12\x10\n\x08\x64\x65v_addr\x18\x05 \x01(\t\x12\x0f\n\x07\x64\x65v_eui\x18\x06 \x01(\t\x12(\n\x04time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xe1\x01\n\x10\x44ownlinkFrameLog\x12(\n\x04time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x13\n\x0bphy_payload\x18\x02 \x01(\x0c\x12#\n\x07tx_info\x18\x03 \x01(\x0b\x32\x12.gw.DownlinkTxInfo\x12\x13\n\x0b\x64ownlink_id\x18\x04 \x01(\r\x12\x12\n\ngateway_id\x18\x05 \x01(\t\x12\x1d\n\x06m_type\x18\x06 \x01(\x0e\x32\r.common.MType\x12\x10\n\x08\x64\x65v_addr\x18\x07 \x01(\t\x12\x0f\n\x07\x64\x65v_eui\x18\x08 \x01(\tBT\n\x11io.chirpstack.apiB\rFrameLogProtoP\x01Z.github.com/chirpstack/chirpstack/api/go/v4/apib\x06proto3')
|
||||
|
||||
|
||||
|
||||
@ -40,7 +40,7 @@ _sym_db.RegisterMessage(DownlinkFrameLog)
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
|
||||
DESCRIPTOR._options = None
|
||||
DESCRIPTOR._serialized_options = b'\n\021io.chirpstack.apiB\rFrameLogProtoP\001Z*github.com/chirpstack/chirpstack/api/go/v4'
|
||||
DESCRIPTOR._serialized_options = b'\n\021io.chirpstack.apiB\rFrameLogProtoP\001Z.github.com/chirpstack/chirpstack/api/go/v4/api'
|
||||
_UPLINKFRAMELOG._serialized_start=141
|
||||
_UPLINKFRAMELOG._serialized_end=356
|
||||
_DOWNLINKFRAMELOG._serialized_start=359
|
||||
|
182
api/python/src/chirpstack_api/api/gateway_pb2.py
vendored
182
api/python/src/chirpstack_api/api/gateway_pb2.py
vendored
File diff suppressed because one or more lines are too long
@ -46,10 +46,10 @@ class GatewayServiceStub(object):
|
||||
request_serializer=chirpstack__api_dot_api_dot_gateway__pb2.GenerateGatewayClientCertificateRequest.SerializeToString,
|
||||
response_deserializer=chirpstack__api_dot_api_dot_gateway__pb2.GenerateGatewayClientCertificateResponse.FromString,
|
||||
)
|
||||
self.GetStats = channel.unary_unary(
|
||||
'/api.GatewayService/GetStats',
|
||||
request_serializer=chirpstack__api_dot_api_dot_gateway__pb2.GetGatewayStatsRequest.SerializeToString,
|
||||
response_deserializer=chirpstack__api_dot_api_dot_gateway__pb2.GetGatewayStatsResponse.FromString,
|
||||
self.GetMetrics = channel.unary_unary(
|
||||
'/api.GatewayService/GetMetrics',
|
||||
request_serializer=chirpstack__api_dot_api_dot_gateway__pb2.GetGatewayMetricsRequest.SerializeToString,
|
||||
response_deserializer=chirpstack__api_dot_api_dot_gateway__pb2.GetGatewayMetricsResponse.FromString,
|
||||
)
|
||||
|
||||
|
||||
@ -99,8 +99,8 @@ class GatewayServiceServicer(object):
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def GetStats(self, request, context):
|
||||
"""GetStats returns the gateway stats.
|
||||
def GetMetrics(self, request, context):
|
||||
"""GetMetrics returns the gateway metrics.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
@ -139,10 +139,10 @@ def add_GatewayServiceServicer_to_server(servicer, server):
|
||||
request_deserializer=chirpstack__api_dot_api_dot_gateway__pb2.GenerateGatewayClientCertificateRequest.FromString,
|
||||
response_serializer=chirpstack__api_dot_api_dot_gateway__pb2.GenerateGatewayClientCertificateResponse.SerializeToString,
|
||||
),
|
||||
'GetStats': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.GetStats,
|
||||
request_deserializer=chirpstack__api_dot_api_dot_gateway__pb2.GetGatewayStatsRequest.FromString,
|
||||
response_serializer=chirpstack__api_dot_api_dot_gateway__pb2.GetGatewayStatsResponse.SerializeToString,
|
||||
'GetMetrics': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.GetMetrics,
|
||||
request_deserializer=chirpstack__api_dot_api_dot_gateway__pb2.GetGatewayMetricsRequest.FromString,
|
||||
response_serializer=chirpstack__api_dot_api_dot_gateway__pb2.GetGatewayMetricsResponse.SerializeToString,
|
||||
),
|
||||
}
|
||||
generic_handler = grpc.method_handlers_generic_handler(
|
||||
@ -258,7 +258,7 @@ class GatewayService(object):
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def GetStats(request,
|
||||
def GetMetrics(request,
|
||||
target,
|
||||
options=(),
|
||||
channel_credentials=None,
|
||||
@ -268,8 +268,8 @@ class GatewayService(object):
|
||||
wait_for_ready=None,
|
||||
timeout=None,
|
||||
metadata=None):
|
||||
return grpc.experimental.unary_unary(request, target, '/api.GatewayService/GetStats',
|
||||
chirpstack__api_dot_api_dot_gateway__pb2.GetGatewayStatsRequest.SerializeToString,
|
||||
chirpstack__api_dot_api_dot_gateway__pb2.GetGatewayStatsResponse.FromString,
|
||||
return grpc.experimental.unary_unary(request, target, '/api.GatewayService/GetMetrics',
|
||||
chirpstack__api_dot_api_dot_gateway__pb2.GetGatewayMetricsRequest.SerializeToString,
|
||||
chirpstack__api_dot_api_dot_gateway__pb2.GetGatewayMetricsResponse.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
105
api/python/src/chirpstack_api/api/tenant_pb2.py
vendored
105
api/python/src/chirpstack_api/api/tenant_pb2.py
vendored
File diff suppressed because one or more lines are too long
69
api/python/src/chirpstack_api/api/user_pb2.py
vendored
69
api/python/src/chirpstack_api/api/user_pb2.py
vendored
@ -12,11 +12,12 @@ from google.protobuf import symbol_database as _symbol_database
|
||||
_sym_db = _symbol_database.Default()
|
||||
|
||||
|
||||
from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
|
||||
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
|
||||
from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
|
||||
|
||||
|
||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x63hirpstack-api/api/user.proto\x12\x03\x61pi\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1bgoogle/protobuf/empty.proto\"T\n\x04User\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08is_admin\x18\x04 \x01(\x08\x12\x11\n\tis_active\x18\x05 \x01(\x08\x12\r\n\x05\x65mail\x18\x06 \x01(\t\x12\x0c\n\x04note\x18\x07 \x01(\t\"\xae\x01\n\x0cUserListItem\x12\n\n\x02id\x18\x01 \x01(\t\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\r\n\x05\x65mail\x18\x04 \x01(\t\x12\x10\n\x08is_admin\x18\x05 \x01(\x08\x12\x11\n\tis_active\x18\x06 \x01(\x08\"d\n\nUserTenant\x12\x11\n\ttenant_id\x18\x01 \x01(\t\x12\x10\n\x08is_admin\x18\x02 \x01(\x08\x12\x17\n\x0fis_device_admin\x18\x03 \x01(\x08\x12\x18\n\x10is_gateway_admin\x18\x04 \x01(\x08\"`\n\x11\x43reateUserRequest\x12\x17\n\x04user\x18\x01 \x01(\x0b\x32\t.api.User\x12\x10\n\x08password\x18\x02 \x01(\t\x12 \n\x07tenants\x18\x03 \x03(\x0b\x32\x0f.api.UserTenant\" \n\x12\x43reateUserResponse\x12\n\n\x02id\x18\x01 \x01(\t\"\x1c\n\x0eGetUserRequest\x12\n\n\x02id\x18\x01 \x01(\t\"\x8a\x01\n\x0fGetUserResponse\x12\x17\n\x04user\x18\x01 \x01(\x0b\x32\t.api.User\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\",\n\x11UpdateUserRequest\x12\x17\n\x04user\x18\x01 \x01(\x0b\x32\t.api.User\"\x1f\n\x11\x44\x65leteUserRequest\x12\n\n\x02id\x18\x01 \x01(\t\"1\n\x10ListUsersRequest\x12\r\n\x05limit\x18\x01 \x01(\r\x12\x0e\n\x06offset\x18\x02 \x01(\r\"K\n\x11ListUsersResponse\x12\x13\n\x0btotal_count\x18\x01 \x01(\r\x12!\n\x06result\x18\x02 \x03(\x0b\x32\x11.api.UserListItem\">\n\x19UpdateUserPasswordRequest\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12\x10\n\x08password\x18\x02 \x01(\t2\xfb\x02\n\x0bUserService\x12;\n\x06\x43reate\x12\x16.api.CreateUserRequest\x1a\x17.api.CreateUserResponse\"\x00\x12\x32\n\x03Get\x12\x13.api.GetUserRequest\x1a\x14.api.GetUserResponse\"\x00\x12:\n\x06Update\x12\x16.api.UpdateUserRequest\x1a\x16.google.protobuf.Empty\"\x00\x12:\n\x06\x44\x65lete\x12\x16.api.DeleteUserRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x37\n\x04List\x12\x15.api.ListUsersRequest\x1a\x16.api.ListUsersResponse\"\x00\x12J\n\x0eUpdatePassword\x12\x1e.api.UpdateUserPasswordRequest\x1a\x16.google.protobuf.Empty\"\x00\x42L\n\x11io.chirpstack.apiB\tUserProtoP\x01Z*github.com/chirpstack/chirpstack/api/go/v4b\x06proto3')
|
||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x63hirpstack-api/api/user.proto\x12\x03\x61pi\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1bgoogle/protobuf/empty.proto\"T\n\x04User\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08is_admin\x18\x04 \x01(\x08\x12\x11\n\tis_active\x18\x05 \x01(\x08\x12\r\n\x05\x65mail\x18\x06 \x01(\t\x12\x0c\n\x04note\x18\x07 \x01(\t\"\xae\x01\n\x0cUserListItem\x12\n\n\x02id\x18\x01 \x01(\t\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\r\n\x05\x65mail\x18\x04 \x01(\t\x12\x10\n\x08is_admin\x18\x05 \x01(\x08\x12\x11\n\tis_active\x18\x06 \x01(\x08\"d\n\nUserTenant\x12\x11\n\ttenant_id\x18\x01 \x01(\t\x12\x10\n\x08is_admin\x18\x02 \x01(\x08\x12\x17\n\x0fis_device_admin\x18\x03 \x01(\x08\x12\x18\n\x10is_gateway_admin\x18\x04 \x01(\x08\"`\n\x11\x43reateUserRequest\x12\x17\n\x04user\x18\x01 \x01(\x0b\x32\t.api.User\x12\x10\n\x08password\x18\x02 \x01(\t\x12 \n\x07tenants\x18\x03 \x03(\x0b\x32\x0f.api.UserTenant\" \n\x12\x43reateUserResponse\x12\n\n\x02id\x18\x01 \x01(\t\"\x1c\n\x0eGetUserRequest\x12\n\n\x02id\x18\x01 \x01(\t\"\x8a\x01\n\x0fGetUserResponse\x12\x17\n\x04user\x18\x01 \x01(\x0b\x32\t.api.User\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\",\n\x11UpdateUserRequest\x12\x17\n\x04user\x18\x01 \x01(\x0b\x32\t.api.User\"\x1f\n\x11\x44\x65leteUserRequest\x12\n\n\x02id\x18\x01 \x01(\t\"1\n\x10ListUsersRequest\x12\r\n\x05limit\x18\x01 \x01(\r\x12\x0e\n\x06offset\x18\x02 \x01(\r\"K\n\x11ListUsersResponse\x12\x13\n\x0btotal_count\x18\x01 \x01(\r\x12!\n\x06result\x18\x02 \x03(\x0b\x32\x11.api.UserListItem\">\n\x19UpdateUserPasswordRequest\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12\x10\n\x08password\x18\x02 \x01(\t2\x97\x04\n\x0bUserService\x12P\n\x06\x43reate\x12\x16.api.CreateUserRequest\x1a\x17.api.CreateUserResponse\"\x15\x82\xd3\xe4\x93\x02\x0f\"\n/api/users:\x01*\x12I\n\x03Get\x12\x13.api.GetUserRequest\x1a\x14.api.GetUserResponse\"\x17\x82\xd3\xe4\x93\x02\x11\x12\x0f/api/users/{id}\x12Y\n\x06Update\x12\x16.api.UpdateUserRequest\x1a\x16.google.protobuf.Empty\"\x1f\x82\xd3\xe4\x93\x02\x19\x1a\x14/api/users/{user.id}:\x01*\x12Q\n\x06\x44\x65lete\x12\x16.api.DeleteUserRequest\x1a\x16.google.protobuf.Empty\"\x17\x82\xd3\xe4\x93\x02\x11*\x0f/api/users/{id}\x12I\n\x04List\x12\x15.api.ListUsersRequest\x1a\x16.api.ListUsersResponse\"\x12\x82\xd3\xe4\x93\x02\x0c\x12\n/api/users\x12r\n\x0eUpdatePassword\x12\x1e.api.UpdateUserPasswordRequest\x1a\x16.google.protobuf.Empty\"(\x82\xd3\xe4\x93\x02\"\"\x1d/api/users/{user_id}/password:\x01*BP\n\x11io.chirpstack.apiB\tUserProtoP\x01Z.github.com/chirpstack/chirpstack/api/go/v4/apib\x06proto3')
|
||||
|
||||
|
||||
|
||||
@ -120,31 +121,43 @@ _USERSERVICE = DESCRIPTOR.services_by_name['UserService']
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
|
||||
DESCRIPTOR._options = None
|
||||
DESCRIPTOR._serialized_options = b'\n\021io.chirpstack.apiB\tUserProtoP\001Z*github.com/chirpstack/chirpstack/api/go/v4'
|
||||
_USER._serialized_start=100
|
||||
_USER._serialized_end=184
|
||||
_USERLISTITEM._serialized_start=187
|
||||
_USERLISTITEM._serialized_end=361
|
||||
_USERTENANT._serialized_start=363
|
||||
_USERTENANT._serialized_end=463
|
||||
_CREATEUSERREQUEST._serialized_start=465
|
||||
_CREATEUSERREQUEST._serialized_end=561
|
||||
_CREATEUSERRESPONSE._serialized_start=563
|
||||
_CREATEUSERRESPONSE._serialized_end=595
|
||||
_GETUSERREQUEST._serialized_start=597
|
||||
_GETUSERREQUEST._serialized_end=625
|
||||
_GETUSERRESPONSE._serialized_start=628
|
||||
_GETUSERRESPONSE._serialized_end=766
|
||||
_UPDATEUSERREQUEST._serialized_start=768
|
||||
_UPDATEUSERREQUEST._serialized_end=812
|
||||
_DELETEUSERREQUEST._serialized_start=814
|
||||
_DELETEUSERREQUEST._serialized_end=845
|
||||
_LISTUSERSREQUEST._serialized_start=847
|
||||
_LISTUSERSREQUEST._serialized_end=896
|
||||
_LISTUSERSRESPONSE._serialized_start=898
|
||||
_LISTUSERSRESPONSE._serialized_end=973
|
||||
_UPDATEUSERPASSWORDREQUEST._serialized_start=975
|
||||
_UPDATEUSERPASSWORDREQUEST._serialized_end=1037
|
||||
_USERSERVICE._serialized_start=1040
|
||||
_USERSERVICE._serialized_end=1419
|
||||
DESCRIPTOR._serialized_options = b'\n\021io.chirpstack.apiB\tUserProtoP\001Z.github.com/chirpstack/chirpstack/api/go/v4/api'
|
||||
_USERSERVICE.methods_by_name['Create']._options = None
|
||||
_USERSERVICE.methods_by_name['Create']._serialized_options = b'\202\323\344\223\002\017\"\n/api/users:\001*'
|
||||
_USERSERVICE.methods_by_name['Get']._options = None
|
||||
_USERSERVICE.methods_by_name['Get']._serialized_options = b'\202\323\344\223\002\021\022\017/api/users/{id}'
|
||||
_USERSERVICE.methods_by_name['Update']._options = None
|
||||
_USERSERVICE.methods_by_name['Update']._serialized_options = b'\202\323\344\223\002\031\032\024/api/users/{user.id}:\001*'
|
||||
_USERSERVICE.methods_by_name['Delete']._options = None
|
||||
_USERSERVICE.methods_by_name['Delete']._serialized_options = b'\202\323\344\223\002\021*\017/api/users/{id}'
|
||||
_USERSERVICE.methods_by_name['List']._options = None
|
||||
_USERSERVICE.methods_by_name['List']._serialized_options = b'\202\323\344\223\002\014\022\n/api/users'
|
||||
_USERSERVICE.methods_by_name['UpdatePassword']._options = None
|
||||
_USERSERVICE.methods_by_name['UpdatePassword']._serialized_options = b'\202\323\344\223\002\"\"\035/api/users/{user_id}/password:\001*'
|
||||
_USER._serialized_start=130
|
||||
_USER._serialized_end=214
|
||||
_USERLISTITEM._serialized_start=217
|
||||
_USERLISTITEM._serialized_end=391
|
||||
_USERTENANT._serialized_start=393
|
||||
_USERTENANT._serialized_end=493
|
||||
_CREATEUSERREQUEST._serialized_start=495
|
||||
_CREATEUSERREQUEST._serialized_end=591
|
||||
_CREATEUSERRESPONSE._serialized_start=593
|
||||
_CREATEUSERRESPONSE._serialized_end=625
|
||||
_GETUSERREQUEST._serialized_start=627
|
||||
_GETUSERREQUEST._serialized_end=655
|
||||
_GETUSERRESPONSE._serialized_start=658
|
||||
_GETUSERRESPONSE._serialized_end=796
|
||||
_UPDATEUSERREQUEST._serialized_start=798
|
||||
_UPDATEUSERREQUEST._serialized_end=842
|
||||
_DELETEUSERREQUEST._serialized_start=844
|
||||
_DELETEUSERREQUEST._serialized_end=875
|
||||
_LISTUSERSREQUEST._serialized_start=877
|
||||
_LISTUSERSREQUEST._serialized_end=926
|
||||
_LISTUSERSRESPONSE._serialized_start=928
|
||||
_LISTUSERSRESPONSE._serialized_end=1003
|
||||
_UPDATEUSERPASSWORDREQUEST._serialized_start=1005
|
||||
_UPDATEUSERPASSWORDREQUEST._serialized_end=1067
|
||||
_USERSERVICE._serialized_start=1070
|
||||
_USERSERVICE._serialized_end=1605
|
||||
# @@protoc_insertion_point(module_scope)
|
||||
|
1
api/python/src/chirpstack_api/common/__init__.py
vendored
Normal file
1
api/python/src/chirpstack_api/common/__init__.py
vendored
Normal file
@ -0,0 +1 @@
|
||||
from .common_pb2 import *
|
@ -13,9 +13,10 @@ from google.protobuf import symbol_database as _symbol_database
|
||||
_sym_db = _symbol_database.Default()
|
||||
|
||||
|
||||
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
|
||||
|
||||
|
||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"chirpstack-api/common/common.proto\x12\x06\x63ommon\"{\n\x08Location\x12\x10\n\x08latitude\x18\x01 \x01(\x01\x12\x11\n\tlongitude\x18\x02 \x01(\x01\x12\x10\n\x08\x61ltitude\x18\x03 \x01(\x01\x12&\n\x06source\x18\x04 \x01(\x0e\x32\x16.common.LocationSource\x12\x10\n\x08\x61\x63\x63uracy\x18\x05 \x01(\x02\"1\n\x0bKeyEnvelope\x12\x11\n\tkek_label\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x65s_key\x18\x02 \x01(\x0c*,\n\nModulation\x12\x08\n\x04LORA\x10\x00\x12\x07\n\x03\x46SK\x10\x01\x12\x0b\n\x07LR_FHSS\x10\x02*\xaa\x01\n\x06Region\x12\t\n\x05\x45U868\x10\x00\x12\t\n\x05US915\x10\x02\x12\t\n\x05\x43N779\x10\x03\x12\t\n\x05\x45U433\x10\x04\x12\t\n\x05\x41U915\x10\x05\x12\t\n\x05\x43N470\x10\x06\x12\t\n\x05\x41S923\x10\x07\x12\x0b\n\x07\x41S923_2\x10\x0c\x12\x0b\n\x07\x41S923_3\x10\r\x12\x0b\n\x07\x41S923_4\x10\x0e\x12\t\n\x05KR920\x10\x08\x12\t\n\x05IN865\x10\t\x12\t\n\x05RU864\x10\n\x12\x0b\n\x07ISM2400\x10\x0b*\xb3\x01\n\x05MType\x12\x10\n\x0cJOIN_REQUEST\x10\x00\x12\x0f\n\x0bJOIN_ACCEPT\x10\x01\x12\x17\n\x13UNCONFIRMED_DATA_UP\x10\x02\x12\x19\n\x15UNCONFIRMED_DATA_DOWN\x10\x03\x12\x15\n\x11\x43ONFIRMED_DATA_UP\x10\x04\x12\x17\n\x13\x43ONFIRMED_DATA_DOWN\x10\x05\x12\x12\n\x0eREJOIN_REQUEST\x10\x06\x12\x0f\n\x0bPROPRIETARY\x10\x07*~\n\nMacVersion\x12\x11\n\rLORAWAN_1_0_0\x10\x00\x12\x11\n\rLORAWAN_1_0_1\x10\x01\x12\x11\n\rLORAWAN_1_0_2\x10\x02\x12\x11\n\rLORAWAN_1_0_3\x10\x03\x12\x11\n\rLORAWAN_1_0_4\x10\x04\x12\x11\n\rLORAWAN_1_1_0\x10\x05*e\n\x11RegParamsRevision\x12\x05\n\x01\x41\x10\x00\x12\x05\n\x01\x42\x10\x01\x12\x0f\n\x0bRP002_1_0_0\x10\x02\x12\x0f\n\x0bRP002_1_0_1\x10\x03\x12\x0f\n\x0bRP002_1_0_2\x10\x04\x12\x0f\n\x0bRP002_1_0_3\x10\x05*\x8e\x01\n\x0eLocationSource\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x07\n\x03GPS\x10\x01\x12\n\n\x06\x43ONFIG\x10\x02\x12\x15\n\x11GEO_RESOLVER_TDOA\x10\x03\x12\x15\n\x11GEO_RESOLVER_RSSI\x10\x04\x12\x15\n\x11GEO_RESOLVER_GNSS\x10\x05\x12\x15\n\x11GEO_RESOLVER_WIFI\x10\x06\x42U\n\x11io.chirpstack.apiB\x0b\x43ommonProtoP\x01Z1github.com/chirpstack/chirpstack/api/go/v4/commonb\x06proto3')
|
||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"chirpstack-api/common/common.proto\x12\x06\x63ommon\x1a\x1fgoogle/protobuf/timestamp.proto\"{\n\x08Location\x12\x10\n\x08latitude\x18\x01 \x01(\x01\x12\x11\n\tlongitude\x18\x02 \x01(\x01\x12\x10\n\x08\x61ltitude\x18\x03 \x01(\x01\x12&\n\x06source\x18\x04 \x01(\x0e\x32\x16.common.LocationSource\x12\x10\n\x08\x61\x63\x63uracy\x18\x05 \x01(\x02\"1\n\x0bKeyEnvelope\x12\x11\n\tkek_label\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x65s_key\x18\x02 \x01(\x0c\"o\n\x06Metric\x12\x0c\n\x04name\x18\x01 \x01(\t\x12.\n\ntimestamps\x18\x02 \x03(\x0b\x32\x1a.google.protobuf.Timestamp\x12\'\n\x08\x64\x61tasets\x18\x03 \x03(\x0b\x32\x15.common.MetricDataset\",\n\rMetricDataset\x12\r\n\x05label\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x03(\x02*,\n\nModulation\x12\x08\n\x04LORA\x10\x00\x12\x07\n\x03\x46SK\x10\x01\x12\x0b\n\x07LR_FHSS\x10\x02*\xaa\x01\n\x06Region\x12\t\n\x05\x45U868\x10\x00\x12\t\n\x05US915\x10\x02\x12\t\n\x05\x43N779\x10\x03\x12\t\n\x05\x45U433\x10\x04\x12\t\n\x05\x41U915\x10\x05\x12\t\n\x05\x43N470\x10\x06\x12\t\n\x05\x41S923\x10\x07\x12\x0b\n\x07\x41S923_2\x10\x0c\x12\x0b\n\x07\x41S923_3\x10\r\x12\x0b\n\x07\x41S923_4\x10\x0e\x12\t\n\x05KR920\x10\x08\x12\t\n\x05IN865\x10\t\x12\t\n\x05RU864\x10\n\x12\x0b\n\x07ISM2400\x10\x0b*\xb3\x01\n\x05MType\x12\x10\n\x0cJOIN_REQUEST\x10\x00\x12\x0f\n\x0bJOIN_ACCEPT\x10\x01\x12\x17\n\x13UNCONFIRMED_DATA_UP\x10\x02\x12\x19\n\x15UNCONFIRMED_DATA_DOWN\x10\x03\x12\x15\n\x11\x43ONFIRMED_DATA_UP\x10\x04\x12\x17\n\x13\x43ONFIRMED_DATA_DOWN\x10\x05\x12\x12\n\x0eREJOIN_REQUEST\x10\x06\x12\x0f\n\x0bPROPRIETARY\x10\x07*~\n\nMacVersion\x12\x11\n\rLORAWAN_1_0_0\x10\x00\x12\x11\n\rLORAWAN_1_0_1\x10\x01\x12\x11\n\rLORAWAN_1_0_2\x10\x02\x12\x11\n\rLORAWAN_1_0_3\x10\x03\x12\x11\n\rLORAWAN_1_0_4\x10\x04\x12\x11\n\rLORAWAN_1_1_0\x10\x05*e\n\x11RegParamsRevision\x12\x05\n\x01\x41\x10\x00\x12\x05\n\x01\x42\x10\x01\x12\x0f\n\x0bRP002_1_0_0\x10\x02\x12\x0f\n\x0bRP002_1_0_1\x10\x03\x12\x0f\n\x0bRP002_1_0_2\x10\x04\x12\x0f\n\x0bRP002_1_0_3\x10\x05*\x8e\x01\n\x0eLocationSource\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x07\n\x03GPS\x10\x01\x12\n\n\x06\x43ONFIG\x10\x02\x12\x15\n\x11GEO_RESOLVER_TDOA\x10\x03\x12\x15\n\x11GEO_RESOLVER_RSSI\x10\x04\x12\x15\n\x11GEO_RESOLVER_GNSS\x10\x05\x12\x15\n\x11GEO_RESOLVER_WIFI\x10\x06*+\n\x0b\x41ggregation\x12\x08\n\x04HOUR\x10\x00\x12\x07\n\x03\x44\x41Y\x10\x01\x12\t\n\x05MONTH\x10\x02\x42U\n\x11io.chirpstack.apiB\x0b\x43ommonProtoP\x01Z1github.com/chirpstack/chirpstack/api/go/v4/commonb\x06proto3')
|
||||
|
||||
_MODULATION = DESCRIPTOR.enum_types_by_name['Modulation']
|
||||
Modulation = enum_type_wrapper.EnumTypeWrapper(_MODULATION)
|
||||
@ -29,6 +30,8 @@ _REGPARAMSREVISION = DESCRIPTOR.enum_types_by_name['RegParamsRevision']
|
||||
RegParamsRevision = enum_type_wrapper.EnumTypeWrapper(_REGPARAMSREVISION)
|
||||
_LOCATIONSOURCE = DESCRIPTOR.enum_types_by_name['LocationSource']
|
||||
LocationSource = enum_type_wrapper.EnumTypeWrapper(_LOCATIONSOURCE)
|
||||
_AGGREGATION = DESCRIPTOR.enum_types_by_name['Aggregation']
|
||||
Aggregation = enum_type_wrapper.EnumTypeWrapper(_AGGREGATION)
|
||||
LORA = 0
|
||||
FSK = 1
|
||||
LR_FHSS = 2
|
||||
@ -73,10 +76,15 @@ GEO_RESOLVER_TDOA = 3
|
||||
GEO_RESOLVER_RSSI = 4
|
||||
GEO_RESOLVER_GNSS = 5
|
||||
GEO_RESOLVER_WIFI = 6
|
||||
HOUR = 0
|
||||
DAY = 1
|
||||
MONTH = 2
|
||||
|
||||
|
||||
_LOCATION = DESCRIPTOR.message_types_by_name['Location']
|
||||
_KEYENVELOPE = DESCRIPTOR.message_types_by_name['KeyEnvelope']
|
||||
_METRIC = DESCRIPTOR.message_types_by_name['Metric']
|
||||
_METRICDATASET = DESCRIPTOR.message_types_by_name['MetricDataset']
|
||||
Location = _reflection.GeneratedProtocolMessageType('Location', (_message.Message,), {
|
||||
'DESCRIPTOR' : _LOCATION,
|
||||
'__module__' : 'chirpstack_api.common.common_pb2'
|
||||
@ -91,24 +99,44 @@ KeyEnvelope = _reflection.GeneratedProtocolMessageType('KeyEnvelope', (_message.
|
||||
})
|
||||
_sym_db.RegisterMessage(KeyEnvelope)
|
||||
|
||||
Metric = _reflection.GeneratedProtocolMessageType('Metric', (_message.Message,), {
|
||||
'DESCRIPTOR' : _METRIC,
|
||||
'__module__' : 'chirpstack_api.common.common_pb2'
|
||||
# @@protoc_insertion_point(class_scope:common.Metric)
|
||||
})
|
||||
_sym_db.RegisterMessage(Metric)
|
||||
|
||||
MetricDataset = _reflection.GeneratedProtocolMessageType('MetricDataset', (_message.Message,), {
|
||||
'DESCRIPTOR' : _METRICDATASET,
|
||||
'__module__' : 'chirpstack_api.common.common_pb2'
|
||||
# @@protoc_insertion_point(class_scope:common.MetricDataset)
|
||||
})
|
||||
_sym_db.RegisterMessage(MetricDataset)
|
||||
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
|
||||
DESCRIPTOR._options = None
|
||||
DESCRIPTOR._serialized_options = b'\n\021io.chirpstack.apiB\013CommonProtoP\001Z1github.com/chirpstack/chirpstack/api/go/v4/common'
|
||||
_MODULATION._serialized_start=222
|
||||
_MODULATION._serialized_end=266
|
||||
_REGION._serialized_start=269
|
||||
_REGION._serialized_end=439
|
||||
_MTYPE._serialized_start=442
|
||||
_MTYPE._serialized_end=621
|
||||
_MACVERSION._serialized_start=623
|
||||
_MACVERSION._serialized_end=749
|
||||
_REGPARAMSREVISION._serialized_start=751
|
||||
_REGPARAMSREVISION._serialized_end=852
|
||||
_LOCATIONSOURCE._serialized_start=855
|
||||
_LOCATIONSOURCE._serialized_end=997
|
||||
_LOCATION._serialized_start=46
|
||||
_LOCATION._serialized_end=169
|
||||
_KEYENVELOPE._serialized_start=171
|
||||
_KEYENVELOPE._serialized_end=220
|
||||
_MODULATION._serialized_start=414
|
||||
_MODULATION._serialized_end=458
|
||||
_REGION._serialized_start=461
|
||||
_REGION._serialized_end=631
|
||||
_MTYPE._serialized_start=634
|
||||
_MTYPE._serialized_end=813
|
||||
_MACVERSION._serialized_start=815
|
||||
_MACVERSION._serialized_end=941
|
||||
_REGPARAMSREVISION._serialized_start=943
|
||||
_REGPARAMSREVISION._serialized_end=1044
|
||||
_LOCATIONSOURCE._serialized_start=1047
|
||||
_LOCATIONSOURCE._serialized_end=1189
|
||||
_AGGREGATION._serialized_start=1191
|
||||
_AGGREGATION._serialized_end=1234
|
||||
_LOCATION._serialized_start=79
|
||||
_LOCATION._serialized_end=202
|
||||
_KEYENVELOPE._serialized_start=204
|
||||
_KEYENVELOPE._serialized_end=253
|
||||
_METRIC._serialized_start=255
|
||||
_METRIC._serialized_end=366
|
||||
_METRICDATASET._serialized_start=368
|
||||
_METRICDATASET._serialized_end=412
|
||||
# @@protoc_insertion_point(module_scope)
|
||||
|
1
api/python/src/chirpstack_api/gw/__init__.py
vendored
Normal file
1
api/python/src/chirpstack_api/gw/__init__.py
vendored
Normal file
@ -0,0 +1 @@
|
||||
from .gw_pb2 import *
|
290
api/python/src/chirpstack_api/gw/gw_pb2.py
vendored
290
api/python/src/chirpstack_api/gw/gw_pb2.py
vendored
File diff suppressed because one or more lines are too long
1
api/python/src/chirpstack_api/integration/__init__.py
vendored
Normal file
1
api/python/src/chirpstack_api/integration/__init__.py
vendored
Normal file
@ -0,0 +1 @@
|
||||
from .integration_pb2 import *
|
File diff suppressed because one or more lines are too long
1
api/python/src/chirpstack_api/meta/__init__.py
vendored
Normal file
1
api/python/src/chirpstack_api/meta/__init__.py
vendored
Normal file
@ -0,0 +1 @@
|
||||
from .meta_pb2 import *
|
@ -16,7 +16,7 @@ from chirpstack_api.common import common_pb2 as chirpstack__api_dot_common_dot_c
|
||||
from chirpstack_api.gw import gw_pb2 as chirpstack__api_dot_gw_dot_gw__pb2
|
||||
|
||||
|
||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1e\x63hirpstack-api/meta/meta.proto\x12\x04meta\x1a\"chirpstack-api/common/common.proto\x1a\x1a\x63hirpstack-api/gw/gw.proto\"\xf0\x01\n\nUplinkMeta\x12\x0f\n\x07\x64\x65v_eui\x18\x01 \x01(\t\x12!\n\x07tx_info\x18\x02 \x01(\x0b\x32\x10.gw.UplinkTXInfo\x12!\n\x07rx_info\x18\x03 \x03(\x0b\x32\x10.gw.UplinkRXInfo\x12\x1e\n\x16phy_payload_byte_count\x18\x04 \x01(\r\x12\x1e\n\x16mac_command_byte_count\x18\x05 \x01(\r\x12&\n\x1e\x61pplication_payload_byte_count\x18\x06 \x01(\r\x12#\n\x0cmessage_type\x18\x07 \x01(\x0e\x32\r.common.MType\"\x81\x02\n\x0c\x44ownlinkMeta\x12\x0f\n\x07\x64\x65v_eui\x18\x01 \x01(\t\x12\x1a\n\x12multicast_group_id\x18\x02 \x01(\t\x12#\n\x07tx_info\x18\x03 \x01(\x0b\x32\x12.gw.DownlinkTXInfo\x12\x1e\n\x16phy_payload_byte_count\x18\x04 \x01(\r\x12\x1e\n\x16mac_command_byte_count\x18\x05 \x01(\r\x12&\n\x1e\x61pplication_payload_byte_count\x18\x06 \x01(\r\x12#\n\x0cmessage_type\x18\x07 \x01(\x0e\x32\r.common.MType\x12\x12\n\ngateway_id\x18\x08 \x01(\tBV\n\x16io.chirpstack.api.metaB\tMetaProtoP\x01Z/github.com/chirpstack/chirpstack-api/go/v4/metab\x06proto3')
|
||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1e\x63hirpstack-api/meta/meta.proto\x12\x04meta\x1a\"chirpstack-api/common/common.proto\x1a\x1a\x63hirpstack-api/gw/gw.proto\"\xf0\x01\n\nUplinkMeta\x12\x0f\n\x07\x64\x65v_eui\x18\x01 \x01(\t\x12!\n\x07tx_info\x18\x02 \x01(\x0b\x32\x10.gw.UplinkTxInfo\x12!\n\x07rx_info\x18\x03 \x03(\x0b\x32\x10.gw.UplinkRxInfo\x12\x1e\n\x16phy_payload_byte_count\x18\x04 \x01(\r\x12\x1e\n\x16mac_command_byte_count\x18\x05 \x01(\r\x12&\n\x1e\x61pplication_payload_byte_count\x18\x06 \x01(\r\x12#\n\x0cmessage_type\x18\x07 \x01(\x0e\x32\r.common.MType\"\x81\x02\n\x0c\x44ownlinkMeta\x12\x0f\n\x07\x64\x65v_eui\x18\x01 \x01(\t\x12\x1a\n\x12multicast_group_id\x18\x02 \x01(\t\x12#\n\x07tx_info\x18\x03 \x01(\x0b\x32\x12.gw.DownlinkTxInfo\x12\x1e\n\x16phy_payload_byte_count\x18\x04 \x01(\r\x12\x1e\n\x16mac_command_byte_count\x18\x05 \x01(\r\x12&\n\x1e\x61pplication_payload_byte_count\x18\x06 \x01(\r\x12#\n\x0cmessage_type\x18\x07 \x01(\x0e\x32\r.common.MType\x12\x12\n\ngateway_id\x18\x08 \x01(\tBV\n\x16io.chirpstack.api.metaB\tMetaProtoP\x01Z/github.com/chirpstack/chirpstack/api/go/v4/metab\x06proto3')
|
||||
|
||||
|
||||
|
||||
@ -39,7 +39,7 @@ _sym_db.RegisterMessage(DownlinkMeta)
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
|
||||
DESCRIPTOR._options = None
|
||||
DESCRIPTOR._serialized_options = b'\n\026io.chirpstack.api.metaB\tMetaProtoP\001Z/github.com/chirpstack/chirpstack-api/go/v4/meta'
|
||||
DESCRIPTOR._serialized_options = b'\n\026io.chirpstack.api.metaB\tMetaProtoP\001Z/github.com/chirpstack/chirpstack/api/go/v4/meta'
|
||||
_UPLINKMETA._serialized_start=105
|
||||
_UPLINKMETA._serialized_end=345
|
||||
_DOWNLINKMETA._serialized_start=348
|
||||
|
Loading…
Reference in New Issue
Block a user