From 2e1c907df085876f7050c80f67c15d5911b97c01 Mon Sep 17 00:00:00 2001 From: Orne Brocaar Date: Sun, 5 Jun 2022 08:23:45 +0100 Subject: [PATCH] Add generate api docs in Markdown. --- api/Dockerfile-md | 9 + api/Makefile | 3 + api/docker-compose.yml | 7 + api/md/Makefile | 18 + api/md/api/api.md | 3866 ++++++++++++++++++++++++++++++++++++++++ api/md/api/internal.md | 544 ++++++ api/rust/Cargo.lock | 2 +- 7 files changed, 4448 insertions(+), 1 deletion(-) create mode 100644 api/Dockerfile-md create mode 100644 api/md/Makefile create mode 100644 api/md/api/api.md create mode 100644 api/md/api/internal.md diff --git a/api/Dockerfile-md b/api/Dockerfile-md new file mode 100644 index 00000000..fda344c9 --- /dev/null +++ b/api/Dockerfile-md @@ -0,0 +1,9 @@ +FROM golang:1.18-alpine + +ENV PROJECT_PATH=/chirpstack/api +RUN apk add --no-cache make git bash protobuf protobuf-dev + +RUN git clone https://github.com/googleapis/googleapis.git /googleapis + +RUN mkdir -p $PROJECT_PATH +WORKDIR $PROJECT_PATH diff --git a/api/Makefile b/api/Makefile index 831fd217..3dd0e38d 100644 --- a/api/Makefile +++ b/api/Makefile @@ -17,3 +17,6 @@ js: python: docker-compose run --rm chirpstack-api-python + +md: + docker-compose run --rm chirpstack-api-md diff --git a/api/docker-compose.yml b/api/docker-compose.yml index 2639ddec..13fc3492 100644 --- a/api/docker-compose.yml +++ b/api/docker-compose.yml @@ -35,3 +35,10 @@ services: command: bash -c "cd js && make all" volumes: - ./:/chirpstack/api + chirpstack-api-md: + build: + context: . + dockerfile: Dockerfile-md + command: bash -c "cd md && make all" + volumes: + - ./:/chirpstack/api diff --git a/api/md/Makefile b/api/md/Makefile new file mode 100644 index 00000000..2a84b639 --- /dev/null +++ b/api/md/Makefile @@ -0,0 +1,18 @@ +.PHONY: requirements api + +all: requirements + +requirements: + go install github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc@v1.5.1 + +api: + protoc -I=/googleapis -I=../proto --doc_out=./api --doc_opt=markdown,api.md \ + api/application.proto \ + api/device.proto \ + api/device_profile.proto \ + api/frame_log.proto \ + api/gateway.proto \ + api/multicast_group.proto \ + api/tenant.proto \ + api/user.proto + diff --git a/api/md/api/api.md b/api/md/api/api.md new file mode 100644 index 00000000..0ff052e6 --- /dev/null +++ b/api/md/api/api.md @@ -0,0 +1,3866 @@ +# Protocol Documentation + + +## Table of Contents + +- [api/application.proto](#api_application-proto) + - [Application](#api-Application) + - [ApplicationListItem](#api-ApplicationListItem) + - [AwsSnsIntegration](#api-AwsSnsIntegration) + - [AzureServiceBusIntegration](#api-AzureServiceBusIntegration) + - [CreateApplicationRequest](#api-CreateApplicationRequest) + - [CreateApplicationResponse](#api-CreateApplicationResponse) + - [CreateAwsSnsIntegrationRequest](#api-CreateAwsSnsIntegrationRequest) + - [CreateAzureServiceBusIntegrationRequest](#api-CreateAzureServiceBusIntegrationRequest) + - [CreateGcpPubSubIntegrationRequest](#api-CreateGcpPubSubIntegrationRequest) + - [CreateHttpIntegrationRequest](#api-CreateHttpIntegrationRequest) + - [CreateInfluxDbIntegrationRequest](#api-CreateInfluxDbIntegrationRequest) + - [CreateLoraCloudIntegrationRequest](#api-CreateLoraCloudIntegrationRequest) + - [CreateMyDevicesIntegrationRequest](#api-CreateMyDevicesIntegrationRequest) + - [CreatePilotThingsIntegrationRequest](#api-CreatePilotThingsIntegrationRequest) + - [CreateThingsBoardIntegrationRequest](#api-CreateThingsBoardIntegrationRequest) + - [DeleteApplicationRequest](#api-DeleteApplicationRequest) + - [DeleteAwsSnsIntegrationRequest](#api-DeleteAwsSnsIntegrationRequest) + - [DeleteAzureServiceBusIntegrationRequest](#api-DeleteAzureServiceBusIntegrationRequest) + - [DeleteGcpPubSubIntegrationRequest](#api-DeleteGcpPubSubIntegrationRequest) + - [DeleteHttpIntegrationRequest](#api-DeleteHttpIntegrationRequest) + - [DeleteInfluxDbIntegrationRequest](#api-DeleteInfluxDbIntegrationRequest) + - [DeleteLoraCloudIntegrationRequest](#api-DeleteLoraCloudIntegrationRequest) + - [DeleteMyDevicesIntegrationRequest](#api-DeleteMyDevicesIntegrationRequest) + - [DeletePilotThingsIntegrationRequest](#api-DeletePilotThingsIntegrationRequest) + - [DeleteThingsBoardIntegrationRequest](#api-DeleteThingsBoardIntegrationRequest) + - [GcpPubSubIntegration](#api-GcpPubSubIntegration) + - [GenerateMqttIntegrationClientCertificateRequest](#api-GenerateMqttIntegrationClientCertificateRequest) + - [GenerateMqttIntegrationClientCertificateResponse](#api-GenerateMqttIntegrationClientCertificateResponse) + - [GetApplicationRequest](#api-GetApplicationRequest) + - [GetApplicationResponse](#api-GetApplicationResponse) + - [GetAwsSnsIntegrationRequest](#api-GetAwsSnsIntegrationRequest) + - [GetAwsSnsIntegrationResponse](#api-GetAwsSnsIntegrationResponse) + - [GetAzureServiceBusIntegrationRequest](#api-GetAzureServiceBusIntegrationRequest) + - [GetAzureServiceBusIntegrationResponse](#api-GetAzureServiceBusIntegrationResponse) + - [GetGcpPubSubIntegrationRequest](#api-GetGcpPubSubIntegrationRequest) + - [GetGcpPubSubIntegrationResponse](#api-GetGcpPubSubIntegrationResponse) + - [GetHttpIntegrationRequest](#api-GetHttpIntegrationRequest) + - [GetHttpIntegrationResponse](#api-GetHttpIntegrationResponse) + - [GetInfluxDbIntegrationRequest](#api-GetInfluxDbIntegrationRequest) + - [GetInfluxDbIntegrationResponse](#api-GetInfluxDbIntegrationResponse) + - [GetLoraCloudIntegrationRequest](#api-GetLoraCloudIntegrationRequest) + - [GetLoraCloudIntegrationResponse](#api-GetLoraCloudIntegrationResponse) + - [GetMyDevicesIntegrationRequest](#api-GetMyDevicesIntegrationRequest) + - [GetMyDevicesIntegrationResponse](#api-GetMyDevicesIntegrationResponse) + - [GetPilotThingsIntegrationRequest](#api-GetPilotThingsIntegrationRequest) + - [GetPilotThingsIntegrationResponse](#api-GetPilotThingsIntegrationResponse) + - [GetThingsBoardIntegrationRequest](#api-GetThingsBoardIntegrationRequest) + - [GetThingsBoardIntegrationResponse](#api-GetThingsBoardIntegrationResponse) + - [HttpIntegration](#api-HttpIntegration) + - [HttpIntegration.HeadersEntry](#api-HttpIntegration-HeadersEntry) + - [InfluxDbIntegration](#api-InfluxDbIntegration) + - [IntegrationListItem](#api-IntegrationListItem) + - [ListApplicationsRequest](#api-ListApplicationsRequest) + - [ListApplicationsResponse](#api-ListApplicationsResponse) + - [ListIntegrationsRequest](#api-ListIntegrationsRequest) + - [ListIntegrationsResponse](#api-ListIntegrationsResponse) + - [LoraCloudIntegration](#api-LoraCloudIntegration) + - [LoraCloudModemGeolocationServices](#api-LoraCloudModemGeolocationServices) + - [MyDevicesIntegration](#api-MyDevicesIntegration) + - [PilotThingsIntegration](#api-PilotThingsIntegration) + - [ThingsBoardIntegration](#api-ThingsBoardIntegration) + - [UpdateApplicationRequest](#api-UpdateApplicationRequest) + - [UpdateAwsSnsIntegrationRequest](#api-UpdateAwsSnsIntegrationRequest) + - [UpdateAzureServiceBusIntegrationRequest](#api-UpdateAzureServiceBusIntegrationRequest) + - [UpdateGcpPubSubIntegrationRequest](#api-UpdateGcpPubSubIntegrationRequest) + - [UpdateHttpIntegrationRequest](#api-UpdateHttpIntegrationRequest) + - [UpdateInfluxDbIntegrationRequest](#api-UpdateInfluxDbIntegrationRequest) + - [UpdateLoraCloudIntegrationRequest](#api-UpdateLoraCloudIntegrationRequest) + - [UpdateMyDevicesIntegrationRequest](#api-UpdateMyDevicesIntegrationRequest) + - [UpdatePilotThingsIntegrationRequest](#api-UpdatePilotThingsIntegrationRequest) + - [UpdateThingsBoardIntegrationRequest](#api-UpdateThingsBoardIntegrationRequest) + + - [Encoding](#api-Encoding) + - [InfluxDbPrecision](#api-InfluxDbPrecision) + - [InfluxDbVersion](#api-InfluxDbVersion) + - [IntegrationKind](#api-IntegrationKind) + + - [ApplicationService](#api-ApplicationService) + +- [api/device.proto](#api_device-proto) + - [ActivateDeviceRequest](#api-ActivateDeviceRequest) + - [CreateDeviceKeysRequest](#api-CreateDeviceKeysRequest) + - [CreateDeviceRequest](#api-CreateDeviceRequest) + - [DeactivateDeviceRequest](#api-DeactivateDeviceRequest) + - [DeleteDeviceKeysRequest](#api-DeleteDeviceKeysRequest) + - [DeleteDeviceRequest](#api-DeleteDeviceRequest) + - [Device](#api-Device) + - [Device.TagsEntry](#api-Device-TagsEntry) + - [Device.VariablesEntry](#api-Device-VariablesEntry) + - [DeviceActivation](#api-DeviceActivation) + - [DeviceKeys](#api-DeviceKeys) + - [DeviceListItem](#api-DeviceListItem) + - [DeviceQueueItem](#api-DeviceQueueItem) + - [DeviceStats](#api-DeviceStats) + - [DeviceStats.ErrorsEntry](#api-DeviceStats-ErrorsEntry) + - [DeviceStats.RxPacketsPerDrEntry](#api-DeviceStats-RxPacketsPerDrEntry) + - [DeviceStats.RxPacketsPerFrequencyEntry](#api-DeviceStats-RxPacketsPerFrequencyEntry) + - [DeviceStatus](#api-DeviceStatus) + - [EnqueueDeviceQueueItemRequest](#api-EnqueueDeviceQueueItemRequest) + - [EnqueueDeviceQueueItemResponse](#api-EnqueueDeviceQueueItemResponse) + - [FlushDevNoncesRequest](#api-FlushDevNoncesRequest) + - [FlushDeviceQueueRequest](#api-FlushDeviceQueueRequest) + - [GetDeviceActivationRequest](#api-GetDeviceActivationRequest) + - [GetDeviceActivationResponse](#api-GetDeviceActivationResponse) + - [GetDeviceKeysRequest](#api-GetDeviceKeysRequest) + - [GetDeviceKeysResponse](#api-GetDeviceKeysResponse) + - [GetDeviceQueueItemsRequest](#api-GetDeviceQueueItemsRequest) + - [GetDeviceQueueItemsResponse](#api-GetDeviceQueueItemsResponse) + - [GetDeviceRequest](#api-GetDeviceRequest) + - [GetDeviceResponse](#api-GetDeviceResponse) + - [GetDeviceStatsRequest](#api-GetDeviceStatsRequest) + - [GetDeviceStatsResponse](#api-GetDeviceStatsResponse) + - [GetRandomDevAddrRequest](#api-GetRandomDevAddrRequest) + - [GetRandomDevAddrResponse](#api-GetRandomDevAddrResponse) + - [ListDevicesRequest](#api-ListDevicesRequest) + - [ListDevicesResponse](#api-ListDevicesResponse) + - [UpdateDeviceKeysRequest](#api-UpdateDeviceKeysRequest) + - [UpdateDeviceRequest](#api-UpdateDeviceRequest) + + - [DeviceService](#api-DeviceService) + +- [api/device_profile.proto](#api_device_profile-proto) + - [AdrAlgorithmListItem](#api-AdrAlgorithmListItem) + - [CreateDeviceProfileRequest](#api-CreateDeviceProfileRequest) + - [CreateDeviceProfileResponse](#api-CreateDeviceProfileResponse) + - [DeleteDeviceProfileRequest](#api-DeleteDeviceProfileRequest) + - [DeviceProfile](#api-DeviceProfile) + - [DeviceProfile.TagsEntry](#api-DeviceProfile-TagsEntry) + - [DeviceProfileListItem](#api-DeviceProfileListItem) + - [GetDeviceProfileRequest](#api-GetDeviceProfileRequest) + - [GetDeviceProfileResponse](#api-GetDeviceProfileResponse) + - [ListDeviceProfileAdrAlgorithmsResponse](#api-ListDeviceProfileAdrAlgorithmsResponse) + - [ListDeviceProfilesRequest](#api-ListDeviceProfilesRequest) + - [ListDeviceProfilesResponse](#api-ListDeviceProfilesResponse) + - [UpdateDeviceProfileRequest](#api-UpdateDeviceProfileRequest) + + - [CodecRuntime](#api-CodecRuntime) + + - [DeviceProfileService](#api-DeviceProfileService) + +- [api/frame_log.proto](#api_frame_log-proto) + - [DownlinkFrameLog](#api-DownlinkFrameLog) + - [UplinkFrameLog](#api-UplinkFrameLog) + +- [api/gateway.proto](#api_gateway-proto) + - [CreateGatewayRequest](#api-CreateGatewayRequest) + - [DeleteGatewayRequest](#api-DeleteGatewayRequest) + - [Gateway](#api-Gateway) + - [Gateway.PropertiesEntry](#api-Gateway-PropertiesEntry) + - [Gateway.TagsEntry](#api-Gateway-TagsEntry) + - [GatewayListItem](#api-GatewayListItem) + - [GatewayListItem.PropertiesEntry](#api-GatewayListItem-PropertiesEntry) + - [GatewayStats](#api-GatewayStats) + - [GatewayStats.RxPacketsPerDrEntry](#api-GatewayStats-RxPacketsPerDrEntry) + - [GatewayStats.RxPacketsPerFrequencyEntry](#api-GatewayStats-RxPacketsPerFrequencyEntry) + - [GatewayStats.TxPacketsPerDrEntry](#api-GatewayStats-TxPacketsPerDrEntry) + - [GatewayStats.TxPacketsPerFrequencyEntry](#api-GatewayStats-TxPacketsPerFrequencyEntry) + - [GatewayStats.TxPacketsPerStatusEntry](#api-GatewayStats-TxPacketsPerStatusEntry) + - [GenerateGatewayClientCertificateRequest](#api-GenerateGatewayClientCertificateRequest) + - [GenerateGatewayClientCertificateResponse](#api-GenerateGatewayClientCertificateResponse) + - [GetGatewayRequest](#api-GetGatewayRequest) + - [GetGatewayResponse](#api-GetGatewayResponse) + - [GetGatewayStatsRequest](#api-GetGatewayStatsRequest) + - [GetGatewayStatsResponse](#api-GetGatewayStatsResponse) + - [ListGatewaysRequest](#api-ListGatewaysRequest) + - [ListGatewaysResponse](#api-ListGatewaysResponse) + - [UpdateGatewayRequest](#api-UpdateGatewayRequest) + + - [GatewayService](#api-GatewayService) + +- [api/multicast_group.proto](#api_multicast_group-proto) + - [AddDeviceToMulticastGroupRequest](#api-AddDeviceToMulticastGroupRequest) + - [CreateMulticastGroupRequest](#api-CreateMulticastGroupRequest) + - [CreateMulticastGroupResponse](#api-CreateMulticastGroupResponse) + - [DeleteMulticastGroupRequest](#api-DeleteMulticastGroupRequest) + - [EnqueueMulticastGroupQueueItemRequest](#api-EnqueueMulticastGroupQueueItemRequest) + - [EnqueueMulticastGroupQueueItemResponse](#api-EnqueueMulticastGroupQueueItemResponse) + - [FlushMulticastGroupQueueRequest](#api-FlushMulticastGroupQueueRequest) + - [GetMulticastGroupRequest](#api-GetMulticastGroupRequest) + - [GetMulticastGroupResponse](#api-GetMulticastGroupResponse) + - [ListMulticastGroupQueueRequest](#api-ListMulticastGroupQueueRequest) + - [ListMulticastGroupQueueResponse](#api-ListMulticastGroupQueueResponse) + - [ListMulticastGroupsRequest](#api-ListMulticastGroupsRequest) + - [ListMulticastGroupsResponse](#api-ListMulticastGroupsResponse) + - [MulticastGroup](#api-MulticastGroup) + - [MulticastGroupListItem](#api-MulticastGroupListItem) + - [MulticastGroupQueueItem](#api-MulticastGroupQueueItem) + - [RemoveDeviceFromMulticastGroupRequest](#api-RemoveDeviceFromMulticastGroupRequest) + - [UpdateMulticastGroupRequest](#api-UpdateMulticastGroupRequest) + + - [MulticastGroupType](#api-MulticastGroupType) + + - [MulticastGroupService](#api-MulticastGroupService) + +- [api/tenant.proto](#api_tenant-proto) + - [AddTenantUserRequest](#api-AddTenantUserRequest) + - [CreateTenantRequest](#api-CreateTenantRequest) + - [CreateTenantResponse](#api-CreateTenantResponse) + - [DeleteTenantRequest](#api-DeleteTenantRequest) + - [DeleteTenantUserRequest](#api-DeleteTenantUserRequest) + - [GetTenantRequest](#api-GetTenantRequest) + - [GetTenantResponse](#api-GetTenantResponse) + - [GetTenantUserRequest](#api-GetTenantUserRequest) + - [GetTenantUserResponse](#api-GetTenantUserResponse) + - [ListTenantUsersRequest](#api-ListTenantUsersRequest) + - [ListTenantUsersResponse](#api-ListTenantUsersResponse) + - [ListTenantsRequest](#api-ListTenantsRequest) + - [ListTenantsResponse](#api-ListTenantsResponse) + - [Tenant](#api-Tenant) + - [TenantListItem](#api-TenantListItem) + - [TenantUser](#api-TenantUser) + - [TenantUserListItem](#api-TenantUserListItem) + - [UpdateTenantRequest](#api-UpdateTenantRequest) + - [UpdateTenantUserRequest](#api-UpdateTenantUserRequest) + + - [TenantService](#api-TenantService) + +- [api/user.proto](#api_user-proto) + - [CreateUserRequest](#api-CreateUserRequest) + - [CreateUserResponse](#api-CreateUserResponse) + - [DeleteUserRequest](#api-DeleteUserRequest) + - [GetUserRequest](#api-GetUserRequest) + - [GetUserResponse](#api-GetUserResponse) + - [ListUsersRequest](#api-ListUsersRequest) + - [ListUsersResponse](#api-ListUsersResponse) + - [UpdateUserPasswordRequest](#api-UpdateUserPasswordRequest) + - [UpdateUserRequest](#api-UpdateUserRequest) + - [User](#api-User) + - [UserListItem](#api-UserListItem) + - [UserTenant](#api-UserTenant) + + - [UserService](#api-UserService) + +- [Scalar Value Types](#scalar-value-types) + + + + +

Top

+ +## api/application.proto + + + + + +### Application + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | Application ID (UUID). Note: on create this will be automatically generated. | +| name | [string](#string) | | Application name. | +| description | [string](#string) | | Application description. | +| tenant_id | [string](#string) | | Tenant ID (UUID). | + + + + + + + + +### ApplicationListItem + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | Application ID (UUID). | +| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Created at timestamp. | +| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Last update timestamp. | +| name | [string](#string) | | Application name. | +| description | [string](#string) | | Application description. | + + + + + + + + +### AwsSnsIntegration + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application_id | [string](#string) | | Application ID (UUID). | +| encoding | [Encoding](#api-Encoding) | | Encoding. | +| region | [string](#string) | | AWS region. | +| access_key_id | [string](#string) | | AWS Access Key ID. | +| secret_access_key | [string](#string) | | AWS Secret Access Key. | +| topic_arn | [string](#string) | | Topic ARN. | + + + + + + + + +### AzureServiceBusIntegration + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application_id | [string](#string) | | Application ID (UUID). | +| encoding | [Encoding](#api-Encoding) | | Encoding. | +| connection_string | [string](#string) | | Connection string. | +| publish_name | [string](#string) | | Publish name. This is the name of the topic or queue. | + + + + + + + + +### CreateApplicationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application | [Application](#api-Application) | | Application object to create. | + + + + + + + + +### CreateApplicationResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | Application ID (UUID). | + + + + + + + + +### CreateAwsSnsIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| integration | [AwsSnsIntegration](#api-AwsSnsIntegration) | | Integration object to create. | + + + + + + + + +### CreateAzureServiceBusIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| integration | [AzureServiceBusIntegration](#api-AzureServiceBusIntegration) | | Integration object to create. | + + + + + + + + +### CreateGcpPubSubIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| integration | [GcpPubSubIntegration](#api-GcpPubSubIntegration) | | Integration object to create. | + + + + + + + + +### CreateHttpIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| integration | [HttpIntegration](#api-HttpIntegration) | | Integration object to create. | + + + + + + + + +### CreateInfluxDbIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| integration | [InfluxDbIntegration](#api-InfluxDbIntegration) | | Integration object to create. | + + + + + + + + +### CreateLoraCloudIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| integration | [LoraCloudIntegration](#api-LoraCloudIntegration) | | Integration object to create. | + + + + + + + + +### CreateMyDevicesIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| integration | [MyDevicesIntegration](#api-MyDevicesIntegration) | | Integration object to create. | + + + + + + + + +### CreatePilotThingsIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| integration | [PilotThingsIntegration](#api-PilotThingsIntegration) | | Integration object to create. | + + + + + + + + +### CreateThingsBoardIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| integration | [ThingsBoardIntegration](#api-ThingsBoardIntegration) | | Integration object to create. | + + + + + + + + +### DeleteApplicationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | Application ID (UUID). | + + + + + + + + +### DeleteAwsSnsIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application_id | [string](#string) | | Application ID (UUID). | + + + + + + + + +### DeleteAzureServiceBusIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application_id | [string](#string) | | Application ID (UUID). | + + + + + + + + +### DeleteGcpPubSubIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application_id | [string](#string) | | Application ID (UUID). | + + + + + + + + +### DeleteHttpIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application_id | [string](#string) | | Application ID (UUIO). | + + + + + + + + +### DeleteInfluxDbIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application_id | [string](#string) | | Application ID (UUIO). | + + + + + + + + +### DeleteLoraCloudIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application_id | [string](#string) | | Application ID (UUID). | + + + + + + + + +### DeleteMyDevicesIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application_id | [string](#string) | | Application ID (UUIO). | + + + + + + + + +### DeletePilotThingsIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application_id | [string](#string) | | Application ID (UUID). | + + + + + + + + +### DeleteThingsBoardIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application_id | [string](#string) | | Application ID (UUIO). | + + + + + + + + +### GcpPubSubIntegration + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application_id | [string](#string) | | Application ID (UUID). | +| encoding | [Encoding](#api-Encoding) | | Encoding. | +| credentials_file | [string](#string) | | Credentials file. This IAM service-account credentials file (JSON) must have the following Pub/Sub roles: * Pub/Sub Publisher | +| project_id | [string](#string) | | Project ID. | +| topic_name | [string](#string) | | Topic name. This is the name of the Pub/Sub topic. | + + + + + + + + +### GenerateMqttIntegrationClientCertificateRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application_id | [string](#string) | | Application ID (UUID). | + + + + + + + + +### GenerateMqttIntegrationClientCertificateResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| tls_cert | [string](#string) | | TLS certificate. | +| tls_key | [string](#string) | | TLS key. | +| ca_cert | [string](#string) | | CA certificate. | +| expires_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Expires at defines the expiration date of the certificate. | + + + + + + + + +### GetApplicationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | Application ID (UUID). | + + + + + + + + +### GetApplicationResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application | [Application](#api-Application) | | Application object. | +| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Created at timestamp. | +| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Last update timestamp. | + + + + + + + + +### GetAwsSnsIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application_id | [string](#string) | | Application ID (UUID). | + + + + + + + + +### GetAwsSnsIntegrationResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| integration | [AwsSnsIntegration](#api-AwsSnsIntegration) | | Integration object. | + + + + + + + + +### GetAzureServiceBusIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application_id | [string](#string) | | Application ID (UUID). | + + + + + + + + +### GetAzureServiceBusIntegrationResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| integration | [AzureServiceBusIntegration](#api-AzureServiceBusIntegration) | | Integration object. | + + + + + + + + +### GetGcpPubSubIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application_id | [string](#string) | | Application ID (UUID). | + + + + + + + + +### GetGcpPubSubIntegrationResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| integration | [GcpPubSubIntegration](#api-GcpPubSubIntegration) | | Integration object. | + + + + + + + + +### GetHttpIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application_id | [string](#string) | | Application ID (UUIO). | + + + + + + + + +### GetHttpIntegrationResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| integration | [HttpIntegration](#api-HttpIntegration) | | Integration object. | + + + + + + + + +### GetInfluxDbIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application_id | [string](#string) | | Application ID (UUIO). | + + + + + + + + +### GetInfluxDbIntegrationResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| integration | [InfluxDbIntegration](#api-InfluxDbIntegration) | | Integration object. | + + + + + + + + +### GetLoraCloudIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application_id | [string](#string) | | Application ID (UUID). | + + + + + + + + +### GetLoraCloudIntegrationResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| integration | [LoraCloudIntegration](#api-LoraCloudIntegration) | | Integration object. | + + + + + + + + +### GetMyDevicesIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application_id | [string](#string) | | Application ID (UUIO). | + + + + + + + + +### GetMyDevicesIntegrationResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| integration | [MyDevicesIntegration](#api-MyDevicesIntegration) | | Integration object. | + + + + + + + + +### GetPilotThingsIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application_id | [string](#string) | | Application ID (UUID). | + + + + + + + + +### GetPilotThingsIntegrationResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| integration | [PilotThingsIntegration](#api-PilotThingsIntegration) | | Integration object. | + + + + + + + + +### GetThingsBoardIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application_id | [string](#string) | | Application ID (UUIO). | + + + + + + + + +### GetThingsBoardIntegrationResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| integration | [ThingsBoardIntegration](#api-ThingsBoardIntegration) | | Integration object. | + + + + + + + + +### HttpIntegration + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application_id | [string](#string) | | Application ID (UUIO). | +| headers | [HttpIntegration.HeadersEntry](#api-HttpIntegration-HeadersEntry) | repeated | HTTP headers to set when making requests. | +| encoding | [Encoding](#api-Encoding) | | Payload encoding. | +| event_endpoint_url | [string](#string) | | Event endpoint URL. The HTTP integration will POST all events to this enpoint. The request will contain a query parameters "event" containing the type of the event. | + + + + + + + + +### HttpIntegration.HeadersEntry + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| key | [string](#string) | | | +| value | [string](#string) | | | + + + + + + + + +### InfluxDbIntegration + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application_id | [string](#string) | | Application ID (UUIO). | +| endpoint | [string](#string) | | InfluxDb API write endpoint (e.g. http://localhost:8086/write). | +| db | [string](#string) | | InfluxDb database name. (InfluxDb v1) | +| username | [string](#string) | | InfluxDb username. (InfluxDb v1) | +| password | [string](#string) | | InfluxDb password. (InfluxDb v1) | +| retention_policy_name | [string](#string) | | InfluxDb retention policy name. (InfluxDb v1) | +| precision | [InfluxDbPrecision](#api-InfluxDbPrecision) | | InfluxDb timestamp precision (InfluxDb v1). | +| version | [InfluxDbVersion](#api-InfluxDbVersion) | | InfluxDb version. | +| token | [string](#string) | | Token. (InfluxDb v2) | +| organization | [string](#string) | | Organization. (InfluxDb v2) | +| bucket | [string](#string) | | Bucket. (InfluxDb v2) | + + + + + + + + +### IntegrationListItem + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| kind | [IntegrationKind](#api-IntegrationKind) | | Integration kind. | + + + + + + + + +### ListApplicationsRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| limit | [uint32](#uint32) | | Max number of applications to return in the result-set. | +| offset | [uint32](#uint32) | | Offset in the result-set (for pagination). | +| search | [string](#string) | | If set, the given string will be used to search on name (optional). | +| tenant_id | [string](#string) | | Tenant ID to list the applications for. | + + + + + + + + +### ListApplicationsResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| total_count | [uint32](#uint32) | | Total number of applications. | +| result | [ApplicationListItem](#api-ApplicationListItem) | repeated | Result-set. | + + + + + + + + +### ListIntegrationsRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application_id | [string](#string) | | Application ID (UUID). | + + + + + + + + +### ListIntegrationsResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| total_count | [uint32](#uint32) | | Total number of integrations available within the result-set. | +| result | [IntegrationListItem](#api-IntegrationListItem) | repeated | Integrations within result-set. | + + + + + + + + +### LoraCloudIntegration + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application_id | [string](#string) | | Application ID (UUID). | +| modem_geolocation_services | [LoraCloudModemGeolocationServices](#api-LoraCloudModemGeolocationServices) | | Modem & Geolocation Services configuration. | + + + + + + + + +### LoraCloudModemGeolocationServices + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| token | [string](#string) | | API token. | +| modem_enabled | [bool](#bool) | | Device implements Modem / Modem-E stack. | +| modem_port | [uint32](#uint32) | | Modem port (fPort). ChirpStack will only forward the FrmPayload to the MGS if the port is equal to the configured value. | +| gnss_port | [uint32](#uint32) | | GNSS port (fPort). ChirpStack will forward the FrmPayload to MGS as GNSS payload if the port is equal to the configured value. | +| gnss_use_rx_time | [bool](#bool) | | Use rx time for GNSS resolving. In case this is set to true, the MGS resolver will use the RX time of the network instead of the timestamp included in the LR1110 payload. | +| parse_tlv | [bool](#bool) | | Parse TLV records. If enabled, stream records (expected in TLV format) are scanned for GNSS data (0x06 or 0x07). If found, ChirpStack will make an additional geolocation call to the MGS API for resolving the location of the detected payload. | +| geolocation_buffer_ttl | [uint32](#uint32) | | Geolocation buffer TTL (in seconds). If > 0, uplink RX meta-data will be stored in a buffer so that the meta-data of multiple uplinks can be used for geolocation. | +| geolocation_min_buffer_size | [uint32](#uint32) | | Geolocation minimum buffer size. If > 0, geolocation will only be performed when the buffer has at least the given size. | +| geolocation_tdoa | [bool](#bool) | | TDOA based geolocation is enabled. | +| geolocation_rssi | [bool](#bool) | | RSSI based geolocation is enabled. | +| geolocation_gnss | [bool](#bool) | | GNSS based geolocation is enabled (LR1110). | +| geolocation_gnss_payload_field | [string](#string) | | GNSS payload field. This holds the name of the field in the decoded payload object which contains the GNSS payload bytes (as HEX string). | +| geolocation_gnss_use_rx_time | [bool](#bool) | | GNSS use RX time. In case this is set to true, the resolver will use the RX time of the network instead of the timestamp included in the LR1110 payload. | +| geolocation_wifi | [bool](#bool) | | Wifi based geolocation is enabled. | +| geolocation_wifi_payload_field | [string](#string) | | Wifi payload field. This holds the name of the field in the decoded payload object which contains an array of objects with the following fields: * macAddress - e.g. 01:23:45:67:89:ab * signalStrength - e.g. -51 (optional) | + + + + + + + + +### MyDevicesIntegration + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application_id | [string](#string) | | Application ID (UUIO). | +| endpoint | [string](#string) | | myDevices API endpoint. | + + + + + + + + +### PilotThingsIntegration + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application_id | [string](#string) | | Application ID (UUID). | +| server | [string](#string) | | Server URL. | +| token | [string](#string) | | Authentication token. | + + + + + + + + +### ThingsBoardIntegration + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application_id | [string](#string) | | Application ID (UUIO). | +| server | [string](#string) | | ThingsBoard server endpoint, e.g. https://example.com | + + + + + + + + +### UpdateApplicationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| application | [Application](#api-Application) | | Application object. | + + + + + + + + +### UpdateAwsSnsIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| integration | [AwsSnsIntegration](#api-AwsSnsIntegration) | | Integration object to update. | + + + + + + + + +### UpdateAzureServiceBusIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| integration | [AzureServiceBusIntegration](#api-AzureServiceBusIntegration) | | Integration object to create. | + + + + + + + + +### UpdateGcpPubSubIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| integration | [GcpPubSubIntegration](#api-GcpPubSubIntegration) | | Integration object to update. | + + + + + + + + +### UpdateHttpIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| integration | [HttpIntegration](#api-HttpIntegration) | | Integration object to update. | + + + + + + + + +### UpdateInfluxDbIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| integration | [InfluxDbIntegration](#api-InfluxDbIntegration) | | Integration object to update. | + + + + + + + + +### UpdateLoraCloudIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| integration | [LoraCloudIntegration](#api-LoraCloudIntegration) | | Integration object to update. | + + + + + + + + +### UpdateMyDevicesIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| integration | [MyDevicesIntegration](#api-MyDevicesIntegration) | | Integration object to update. | + + + + + + + + +### UpdatePilotThingsIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| integration | [PilotThingsIntegration](#api-PilotThingsIntegration) | | Integration object to update. | + + + + + + + + +### UpdateThingsBoardIntegrationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| integration | [ThingsBoardIntegration](#api-ThingsBoardIntegration) | | Integration object to update. | + + + + + + + + + + +### Encoding + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| JSON | 0 | | +| PROTOBUF | 1 | | + + + + + +### InfluxDbPrecision + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| NS | 0 | | +| U | 1 | | +| MS | 2 | | +| S | 3 | | +| M | 4 | | +| H | 5 | | + + + + + +### InfluxDbVersion + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| INFLUXDB_1 | 0 | | +| INFLUXDB_2 | 1 | | + + + + + +### IntegrationKind + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| HTTP | 0 | | +| INFLUX_DB | 1 | | +| THINGS_BOARD | 2 | | +| MY_DEVICES | 3 | | +| LORA_CLOUD | 4 | | +| GCP_PUB_SUB | 5 | | +| AWS_SNS | 6 | | +| AZURE_SERVICE_BUS | 7 | | +| PILOT_THINGS | 8 | | +| MQTT_GLOBAL | 9 | | + + + + + + + + + +### ApplicationService +ApplicationService is the service providing API methods for managing applications. + +| Method Name | Request Type | Response Type | Description | +| ----------- | ------------ | ------------- | ------------| +| Create | [CreateApplicationRequest](#api-CreateApplicationRequest) | [CreateApplicationResponse](#api-CreateApplicationResponse) | Create creates the given application. | +| Get | [GetApplicationRequest](#api-GetApplicationRequest) | [GetApplicationResponse](#api-GetApplicationResponse) | Get the application for the given ID. | +| Update | [UpdateApplicationRequest](#api-UpdateApplicationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Update updates the given application. | +| Delete | [DeleteApplicationRequest](#api-DeleteApplicationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Delete the application for the given ID. | +| List | [ListApplicationsRequest](#api-ListApplicationsRequest) | [ListApplicationsResponse](#api-ListApplicationsResponse) | Get the list of applications. | +| ListIntegrations | [ListIntegrationsRequest](#api-ListIntegrationsRequest) | [ListIntegrationsResponse](#api-ListIntegrationsResponse) | List all configured integrations. | +| CreateHttpIntegration | [CreateHttpIntegrationRequest](#api-CreateHttpIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Create HTTP integration. | +| GetHttpIntegration | [GetHttpIntegrationRequest](#api-GetHttpIntegrationRequest) | [GetHttpIntegrationResponse](#api-GetHttpIntegrationResponse) | Get the configured HTTP integration. | +| UpdateHttpIntegration | [UpdateHttpIntegrationRequest](#api-UpdateHttpIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Update the HTTP integration. | +| DeleteHttpIntegration | [DeleteHttpIntegrationRequest](#api-DeleteHttpIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Delete the HTTP integration. | +| CreateInfluxDbIntegration | [CreateInfluxDbIntegrationRequest](#api-CreateInfluxDbIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Create InfluxDb integration. | +| GetInfluxDbIntegration | [GetInfluxDbIntegrationRequest](#api-GetInfluxDbIntegrationRequest) | [GetInfluxDbIntegrationResponse](#api-GetInfluxDbIntegrationResponse) | Get InfluxDb integration. | +| UpdateInfluxDbIntegration | [UpdateInfluxDbIntegrationRequest](#api-UpdateInfluxDbIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Update InfluxDb integration. | +| DeleteInfluxDbIntegration | [DeleteInfluxDbIntegrationRequest](#api-DeleteInfluxDbIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Delete InfluxDb integration. | +| CreateThingsBoardIntegration | [CreateThingsBoardIntegrationRequest](#api-CreateThingsBoardIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Create ThingsBoard integration. | +| GetThingsBoardIntegration | [GetThingsBoardIntegrationRequest](#api-GetThingsBoardIntegrationRequest) | [GetThingsBoardIntegrationResponse](#api-GetThingsBoardIntegrationResponse) | Get ThingsBoard integration. | +| UpdateThingsBoardIntegration | [UpdateThingsBoardIntegrationRequest](#api-UpdateThingsBoardIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Update ThingsBoard integration. | +| DeleteThingsBoardIntegration | [DeleteThingsBoardIntegrationRequest](#api-DeleteThingsBoardIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Delete ThingsBoard integration. | +| CreateMyDevicesIntegration | [CreateMyDevicesIntegrationRequest](#api-CreateMyDevicesIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Create myDevices integration. | +| GetMyDevicesIntegration | [GetMyDevicesIntegrationRequest](#api-GetMyDevicesIntegrationRequest) | [GetMyDevicesIntegrationResponse](#api-GetMyDevicesIntegrationResponse) | Get myDevices integration. | +| UpdateMyDevicesIntegration | [UpdateMyDevicesIntegrationRequest](#api-UpdateMyDevicesIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Update myDevices integration. | +| DeleteMyDevicesIntegration | [DeleteMyDevicesIntegrationRequest](#api-DeleteMyDevicesIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Delete myDevices integration. | +| CreateLoraCloudIntegration | [CreateLoraCloudIntegrationRequest](#api-CreateLoraCloudIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Create LoRaCloud integration. | +| GetLoraCloudIntegration | [GetLoraCloudIntegrationRequest](#api-GetLoraCloudIntegrationRequest) | [GetLoraCloudIntegrationResponse](#api-GetLoraCloudIntegrationResponse) | Get LoRaCloud integration. | +| UpdateLoraCloudIntegration | [UpdateLoraCloudIntegrationRequest](#api-UpdateLoraCloudIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Update LoRaCloud integration. | +| DeleteLoraCloudIntegration | [DeleteLoraCloudIntegrationRequest](#api-DeleteLoraCloudIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Delete LoRaCloud integration. | +| CreateGcpPubSubIntegration | [CreateGcpPubSubIntegrationRequest](#api-CreateGcpPubSubIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Create GCP Pub/Sub integration. | +| GetGcpPubSubIntegration | [GetGcpPubSubIntegrationRequest](#api-GetGcpPubSubIntegrationRequest) | [GetGcpPubSubIntegrationResponse](#api-GetGcpPubSubIntegrationResponse) | Get GCP Pub/Sub integration. | +| UpdateGcpPubSubIntegration | [UpdateGcpPubSubIntegrationRequest](#api-UpdateGcpPubSubIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Update GCP Pub/Sub integration. | +| DeleteGcpPubSubIntegration | [DeleteGcpPubSubIntegrationRequest](#api-DeleteGcpPubSubIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Delete GCP Pub/Sub integration. | +| CreateAwsSnsIntegration | [CreateAwsSnsIntegrationRequest](#api-CreateAwsSnsIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Create AWS SNS integration. | +| GetAwsSnsIntegration | [GetAwsSnsIntegrationRequest](#api-GetAwsSnsIntegrationRequest) | [GetAwsSnsIntegrationResponse](#api-GetAwsSnsIntegrationResponse) | Get AWS SNS integration. | +| UpdateAwsSnsIntegration | [UpdateAwsSnsIntegrationRequest](#api-UpdateAwsSnsIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Update AWS SNS integration. | +| DeleteAwsSnsIntegration | [DeleteAwsSnsIntegrationRequest](#api-DeleteAwsSnsIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Delete AWS SNS integration. | +| CreateAzureServiceBusIntegration | [CreateAzureServiceBusIntegrationRequest](#api-CreateAzureServiceBusIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Create Azure Service-Bus integration. | +| GetAzureServiceBusIntegration | [GetAzureServiceBusIntegrationRequest](#api-GetAzureServiceBusIntegrationRequest) | [GetAzureServiceBusIntegrationResponse](#api-GetAzureServiceBusIntegrationResponse) | Get Azure Service-Bus integration. | +| UpdateAzureServiceBusIntegration | [UpdateAzureServiceBusIntegrationRequest](#api-UpdateAzureServiceBusIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Update Azure Service-Bus integration. | +| DeleteAzureServiceBusIntegration | [DeleteAzureServiceBusIntegrationRequest](#api-DeleteAzureServiceBusIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Delete Azure Service-Bus integration. | +| CreatePilotThingsIntegration | [CreatePilotThingsIntegrationRequest](#api-CreatePilotThingsIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Create Pilot Things integration. | +| GetPilotThingsIntegration | [GetPilotThingsIntegrationRequest](#api-GetPilotThingsIntegrationRequest) | [GetPilotThingsIntegrationResponse](#api-GetPilotThingsIntegrationResponse) | Get Pilot Things integration. | +| UpdatePilotThingsIntegration | [UpdatePilotThingsIntegrationRequest](#api-UpdatePilotThingsIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Update Pilot Things integration. | +| DeletePilotThingsIntegration | [DeletePilotThingsIntegrationRequest](#api-DeletePilotThingsIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Delete Pilot Things integration. | +| GenerateMqttIntegrationClientCertificate | [GenerateMqttIntegrationClientCertificateRequest](#api-GenerateMqttIntegrationClientCertificateRequest) | [GenerateMqttIntegrationClientCertificateResponse](#api-GenerateMqttIntegrationClientCertificateResponse) | Generates application ID specific client-certificate. | + + + + + + +

Top

+ +## api/device.proto + + + + + +### ActivateDeviceRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| device_activation | [DeviceActivation](#api-DeviceActivation) | | Device activation object. | + + + + + + + + +### CreateDeviceKeysRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| device_keys | [DeviceKeys](#api-DeviceKeys) | | Device-keys object. | + + + + + + + + +### CreateDeviceRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| device | [Device](#api-Device) | | Device object. | + + + + + + + + +### DeactivateDeviceRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| dev_eui | [string](#string) | | DevEUI (EUI64). | + + + + + + + + +### DeleteDeviceKeysRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| dev_eui | [string](#string) | | DevEUI (EUI64). | + + + + + + + + +### DeleteDeviceRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| dev_eui | [string](#string) | | DevEUI (EUI64). | + + + + + + + + +### Device + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| dev_eui | [string](#string) | | DevEUI (EUI64). | +| name | [string](#string) | | Name. | +| description | [string](#string) | | Description. | +| application_id | [string](#string) | | Application ID (UUID). | +| device_profile_id | [string](#string) | | Device-profile ID (UUID). | +| skip_fcnt_check | [bool](#bool) | | Skip frame-counter checks (this is insecure, but could be helpful for debugging). | +| is_disabled | [bool](#bool) | | Device is disabled. | +| variables | [Device.VariablesEntry](#api-Device-VariablesEntry) | repeated | Variables (user defined). These variables can be used together with integrations to store tokens / secrets that must be configured per device. These variables are not exposed in the event payloads. | +| tags | [Device.TagsEntry](#api-Device-TagsEntry) | repeated | Tags (user defined). These tags are exposed in the event payloads or to integration. Tags are intended for aggregation and filtering. | + + + + + + + + +### Device.TagsEntry + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| key | [string](#string) | | | +| value | [string](#string) | | | + + + + + + + + +### Device.VariablesEntry + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| key | [string](#string) | | | +| value | [string](#string) | | | + + + + + + + + +### DeviceActivation + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| dev_eui | [string](#string) | | Device EUI (EUI64). | +| dev_addr | [string](#string) | | Device address (HEX encoded). | +| app_s_key | [string](#string) | | Application session key (HEX encoded). | +| nwk_s_enc_key | [string](#string) | | Network session encryption key (HEX encoded). | +| s_nwk_s_int_key | [string](#string) | | Serving network session integrity key (HEX encoded). | +| f_nwk_s_int_key | [string](#string) | | Forwarding network session integrity key (HEX encoded). | +| f_cnt_up | [uint32](#uint32) | | Uplink frame-counter. | +| n_f_cnt_down | [uint32](#uint32) | | Downlink network frame-counter. | +| a_f_cnt_down | [uint32](#uint32) | | Downlink application frame-counter. | + + + + + + + + +### DeviceKeys + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| dev_eui | [string](#string) | | DevEUI (EUI64). | +| nwk_key | [string](#string) | | Network root key (128 bit). Note: For LoRaWAN 1.0.x, use this field for the LoRaWAN 1.0.x 'AppKey`! | +| app_key | [string](#string) | | Application root key (128 bit). Note: This field only needs to be set for LoRaWAN 1.1.x devices! | + + + + + + + + +### DeviceListItem + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| dev_eui | [string](#string) | | DevEUI (EUI64). | +| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Created at timestamp. | +| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Last update timestamp. | +| last_seen_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Last seen at timestamp. | +| name | [string](#string) | | Name. | +| description | [string](#string) | | Description. | +| device_profile_id | [string](#string) | | Device-profile ID (UUID). | +| device_profile_name | [string](#string) | | Device-profile name. | +| device_status | [DeviceStatus](#api-DeviceStatus) | | Device status. | + + + + + + + + +### DeviceQueueItem + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | ID (UUID). This is automatically generated on enqueue. | +| dev_eui | [string](#string) | | Device EUI (EUI64). | +| confirmed | [bool](#bool) | | Confirmed. | +| f_port | [uint32](#uint32) | | FPort (must be > 0). | +| data | [bytes](#bytes) | | Data. Or use the json_object field when a codec has been configured. | +| object | [google.protobuf.Struct](#google-protobuf-Struct) | | Only use this when a codec has been configured that can encode this object to bytes. | +| is_pending | [bool](#bool) | | Is pending. This is set to true when the downlink is pending. | +| f_cnt_down | [uint32](#uint32) | | Downlink frame-counter. This is set when the payload has been sent as downlink. | + + + + + + + + +### DeviceStats + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| time | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Timestamp of the (aggregated) measurement. | +| rx_packets | [uint32](#uint32) | | Packets received from the device. | +| gw_rssi | [float](#float) | | Average RSSI (as reported by the gateway(s)). | +| gw_snr | [float](#float) | | Average SNR (as reported by the gateway(s)). | +| rx_packets_per_frequency | [DeviceStats.RxPacketsPerFrequencyEntry](#api-DeviceStats-RxPacketsPerFrequencyEntry) | repeated | Packets received by frequency. | +| rx_packets_per_dr | [DeviceStats.RxPacketsPerDrEntry](#api-DeviceStats-RxPacketsPerDrEntry) | repeated | Packets received by DR. | +| errors | [DeviceStats.ErrorsEntry](#api-DeviceStats-ErrorsEntry) | repeated | Error count. | + + + + + + + + +### DeviceStats.ErrorsEntry + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| key | [string](#string) | | | +| value | [uint32](#uint32) | | | + + + + + + + + +### DeviceStats.RxPacketsPerDrEntry + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| key | [uint32](#uint32) | | | +| value | [uint32](#uint32) | | | + + + + + + + + +### DeviceStats.RxPacketsPerFrequencyEntry + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| key | [uint32](#uint32) | | | +| value | [uint32](#uint32) | | | + + + + + + + + +### DeviceStatus + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| margin | [int32](#int32) | | The device margin status -32..32: The demodulation SNR ration in dB | +| external_power_source | [bool](#bool) | | Device is connected to an external power source. | +| battery_level | [float](#float) | | Device battery level as a percentage. -1 when the battery level is not available. | + + + + + + + + +### EnqueueDeviceQueueItemRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| item | [DeviceQueueItem](#api-DeviceQueueItem) | | | + + + + + + + + +### EnqueueDeviceQueueItemResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | ID (UUID). | + + + + + + + + +### FlushDevNoncesRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| dev_eui | [string](#string) | | Device EUI (EUI64). | + + + + + + + + +### FlushDeviceQueueRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| dev_eui | [string](#string) | | Device EUI (EUI64). | + + + + + + + + +### GetDeviceActivationRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| dev_eui | [string](#string) | | DevEUI (EUI64). | + + + + + + + + +### GetDeviceActivationResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| device_activation | [DeviceActivation](#api-DeviceActivation) | | Device activation object. | + + + + + + + + +### GetDeviceKeysRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| dev_eui | [string](#string) | | DevEUI (EUI64). | + + + + + + + + +### GetDeviceKeysResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| device_keys | [DeviceKeys](#api-DeviceKeys) | | Device-keys object. | +| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Created at timestamp. | +| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Last update timestamp. | + + + + + + + + +### GetDeviceQueueItemsRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| dev_eui | [string](#string) | | Device EUI (EUI64). | +| count_only | [bool](#bool) | | Return only the count, not the result-set. | + + + + + + + + +### GetDeviceQueueItemsResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| total_count | [uint32](#uint32) | | Total number of queue items. | +| result | [DeviceQueueItem](#api-DeviceQueueItem) | repeated | Result-set. | + + + + + + + + +### GetDeviceRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| dev_eui | [string](#string) | | DevEUI (EUI64). | + + + + + + + + +### GetDeviceResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| device | [Device](#api-Device) | | Device object. | +| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Created at timestamp. | +| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Last update timestamp. | +| last_seen_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Last seen at timestamp. | +| device_status | [DeviceStatus](#api-DeviceStatus) | | Device status. | + + + + + + + + +### GetDeviceStatsRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| dev_eui | [string](#string) | | DevEUI (EUI64). | +| start | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Interval start timestamp. | +| end | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Interval end timestamp. | + + + + + + + + +### GetDeviceStatsResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| result | [DeviceStats](#api-DeviceStats) | repeated | | + + + + + + + + +### GetRandomDevAddrRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| dev_eui | [string](#string) | | DevEUI (EUI64). | + + + + + + + + +### GetRandomDevAddrResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| dev_addr | [string](#string) | | DevAddr. | + + + + + + + + +### ListDevicesRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| limit | [uint32](#uint32) | | Max number of devices to return in the result-set. | +| offset | [uint32](#uint32) | | Offset in the result-set (for pagination). | +| search | [string](#string) | | If set, the given string will be used to search on name (optional). | +| application_id | [string](#string) | | Application ID (UUID) to filter devices on. | +| multicast_group_id | [string](#string) | | Multicst-group ID (UUID) to filter devices on. | + + + + + + + + +### ListDevicesResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| total_count | [uint32](#uint32) | | Total number of devices. | +| result | [DeviceListItem](#api-DeviceListItem) | repeated | Result-set. | + + + + + + + + +### UpdateDeviceKeysRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| device_keys | [DeviceKeys](#api-DeviceKeys) | | Device-keys object. | + + + + + + + + +### UpdateDeviceRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| device | [Device](#api-Device) | | Device object. | + + + + + + + + + + + + + + +### DeviceService +DeviceService is the service providing API methods for managing devices. + +| Method Name | Request Type | Response Type | Description | +| ----------- | ------------ | ------------- | ------------| +| Create | [CreateDeviceRequest](#api-CreateDeviceRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Create the given device. | +| Get | [GetDeviceRequest](#api-GetDeviceRequest) | [GetDeviceResponse](#api-GetDeviceResponse) | Get returns the device for the given DevEUI. | +| Update | [UpdateDeviceRequest](#api-UpdateDeviceRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Update the given device. | +| Delete | [DeleteDeviceRequest](#api-DeleteDeviceRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Delete the device with the given DevEUI. | +| List | [ListDevicesRequest](#api-ListDevicesRequest) | [ListDevicesResponse](#api-ListDevicesResponse) | Get the list of devices. | +| CreateKeys | [CreateDeviceKeysRequest](#api-CreateDeviceKeysRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Create the given device-keys. | +| GetKeys | [GetDeviceKeysRequest](#api-GetDeviceKeysRequest) | [GetDeviceKeysResponse](#api-GetDeviceKeysResponse) | Get the device-keys for the given DevEUI. | +| UpdateKeys | [UpdateDeviceKeysRequest](#api-UpdateDeviceKeysRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Update the given device-keys. | +| DeleteKeys | [DeleteDeviceKeysRequest](#api-DeleteDeviceKeysRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Delete the device-keys for the given DevEUI. | +| FlushDevNonces | [FlushDevNoncesRequest](#api-FlushDevNoncesRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | FlushDevNonces flushes the OTAA device nonces. | +| Activate | [ActivateDeviceRequest](#api-ActivateDeviceRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Activate (re)activates the device with the given parameters (for ABP or for importing OTAA activations). | +| Deactivate | [DeactivateDeviceRequest](#api-DeactivateDeviceRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Deactivate de-activates the device. | +| GetActivation | [GetDeviceActivationRequest](#api-GetDeviceActivationRequest) | [GetDeviceActivationResponse](#api-GetDeviceActivationResponse) | GetActivation returns the current activation details of the device (OTAA or ABP). | +| GetRandomDevAddr | [GetRandomDevAddrRequest](#api-GetRandomDevAddrRequest) | [GetRandomDevAddrResponse](#api-GetRandomDevAddrResponse) | GetRandomDevAddr returns a random DevAddr taking the NwkID prefix into account. | +| GetStats | [GetDeviceStatsRequest](#api-GetDeviceStatsRequest) | [GetDeviceStatsResponse](#api-GetDeviceStatsResponse) | GetStats returns the device stats. | +| Enqueue | [EnqueueDeviceQueueItemRequest](#api-EnqueueDeviceQueueItemRequest) | [EnqueueDeviceQueueItemResponse](#api-EnqueueDeviceQueueItemResponse) | Enqueue adds the given item to the downlink queue. | +| FlushQueue | [FlushDeviceQueueRequest](#api-FlushDeviceQueueRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | FlushQueue flushes the downlink device-queue. | +| GetQueue | [GetDeviceQueueItemsRequest](#api-GetDeviceQueueItemsRequest) | [GetDeviceQueueItemsResponse](#api-GetDeviceQueueItemsResponse) | GetQueue returns the downlink device-queue. | + + + + + + +

Top

+ +## api/device_profile.proto + + + + + +### AdrAlgorithmListItem + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | Algorithm ID. | +| name | [string](#string) | | Algorithm name. | + + + + + + + + +### CreateDeviceProfileRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| device_profile | [DeviceProfile](#api-DeviceProfile) | | Object to create. | + + + + + + + + +### CreateDeviceProfileResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | ID (UUID). | + + + + + + + + +### DeleteDeviceProfileRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | ID (UUID). | + + + + + + + + +### DeviceProfile + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | Device-profile ID (UUID). Note: on create this will be automatically generated. | +| tenant_id | [string](#string) | | Tenant ID (UUID). | +| name | [string](#string) | | Name. | +| region | [common.Region](#common-Region) | | Region. | +| mac_version | [common.MacVersion](#common-MacVersion) | | LoRaWAN mac-version. | +| reg_params_revision | [common.RegParamsRevision](#common-RegParamsRevision) | | Regional parameters revision. | +| adr_algorithm_id | [string](#string) | | ADR algorithm ID. | +| payload_codec_runtime | [CodecRuntime](#api-CodecRuntime) | | Payload codec runtime. | +| payload_codec_script | [string](#string) | | Payload codec script. | +| flush_queue_on_activate | [bool](#bool) | | Flush queue on device activation. | +| uplink_interval | [uint32](#uint32) | | Uplink interval (seconds). This defines the expected uplink interval which the device uses for communication. When the uplink interval has expired and no uplink has been received, the device is considered inactive. | +| device_status_req_interval | [uint32](#uint32) | | Device-status request interval (times / day). This defines the times per day that ChirpStack will request the device-status from the device. | +| supports_otaa | [bool](#bool) | | Supports OTAA. | +| supports_class_b | [bool](#bool) | | Supports Class B. | +| supports_class_c | [bool](#bool) | | Supports Class-C. | +| class_b_timeout | [uint32](#uint32) | | Class-B timeout (seconds). This is the maximum time ChirpStack will wait to receive an acknowledgement from the device (if requested). | +| class_b_ping_slot_period | [uint32](#uint32) | | Class-B ping-slot periodicity. | +| class_b_ping_slot_dr | [uint32](#uint32) | | Class-B ping-slot DR. | +| class_b_ping_slot_freq | [uint32](#uint32) | | Class-B ping-slot freq (Hz). | +| class_c_timeout | [uint32](#uint32) | | Class-C timeout (seconds). This is the maximum time ChirpStack will wait to receive an acknowledgement from the device (if requested). | +| abp_rx1_delay | [uint32](#uint32) | | RX1 delay (for ABP). | +| abp_rx1_dr_offset | [uint32](#uint32) | | RX1 DR offset (for ABP). | +| abp_rx2_dr | [uint32](#uint32) | | RX2 DR (for ABP). | +| abp_rx2_freq | [uint32](#uint32) | | RX2 frequency (for ABP, Hz). | +| tags | [DeviceProfile.TagsEntry](#api-DeviceProfile-TagsEntry) | repeated | User defined tags. | + + + + + + + + +### DeviceProfile.TagsEntry + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| key | [string](#string) | | | +| value | [string](#string) | | | + + + + + + + + +### DeviceProfileListItem + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | Device-profile ID (UUID). | +| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Created at timestamp. | +| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Last update timestamp. | +| name | [string](#string) | | Name. | +| region | [common.Region](#common-Region) | | Region. | +| mac_version | [common.MacVersion](#common-MacVersion) | | LoRaWAN mac-version. | +| reg_params_revision | [common.RegParamsRevision](#common-RegParamsRevision) | | Regional parameters revision. | +| supports_otaa | [bool](#bool) | | Supports OTAA. | +| supports_class_b | [bool](#bool) | | Supports Class-B. | +| supports_class_c | [bool](#bool) | | Supports Class-C. | + + + + + + + + +### GetDeviceProfileRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | ID (UUID). | + + + + + + + + +### GetDeviceProfileResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| device_profile | [DeviceProfile](#api-DeviceProfile) | | Device-profile object. | +| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Created at timestamp. | +| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Last update timestamp. | + + + + + + + + +### ListDeviceProfileAdrAlgorithmsResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| total_count | [uint32](#uint32) | | Total number of algorithms. | +| result | [AdrAlgorithmListItem](#api-AdrAlgorithmListItem) | repeated | Result-set. | + + + + + + + + +### ListDeviceProfilesRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| limit | [uint32](#uint32) | | Max number of device-profiles to return in the result-set. | +| offset | [uint32](#uint32) | | Offset in the result-set (for pagination). | +| search | [string](#string) | | If set, the given string will be used to search on name. | +| tenant_id | [string](#string) | | Tenant ID to list the device-profiles for. | + + + + + + + + +### ListDeviceProfilesResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| total_count | [uint32](#uint32) | | Total number of device-profiles. | +| result | [DeviceProfileListItem](#api-DeviceProfileListItem) | repeated | Result-set. | + + + + + + + + +### UpdateDeviceProfileRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| device_profile | [DeviceProfile](#api-DeviceProfile) | | Device-profile object. | + + + + + + + + + + +### CodecRuntime + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| NONE | 0 | None. | +| CAYENNE_LPP | 1 | Cayenne LPP. | +| JS | 2 | JavaScript. | + + + + + + + + + +### DeviceProfileService +DeviceProfileService is the service providing API methods for managing device-profiles. + +| Method Name | Request Type | Response Type | Description | +| ----------- | ------------ | ------------- | ------------| +| Create | [CreateDeviceProfileRequest](#api-CreateDeviceProfileRequest) | [CreateDeviceProfileResponse](#api-CreateDeviceProfileResponse) | Create the given device-profile. | +| Get | [GetDeviceProfileRequest](#api-GetDeviceProfileRequest) | [GetDeviceProfileResponse](#api-GetDeviceProfileResponse) | Get the device-profile for the given ID. | +| Update | [UpdateDeviceProfileRequest](#api-UpdateDeviceProfileRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Update the given device-profile. | +| Delete | [DeleteDeviceProfileRequest](#api-DeleteDeviceProfileRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Delete the device-profile with the given ID. | +| List | [ListDeviceProfilesRequest](#api-ListDeviceProfilesRequest) | [ListDeviceProfilesResponse](#api-ListDeviceProfilesResponse) | List the available device-profiles. | +| ListAdrAlgorithms | [.google.protobuf.Empty](#google-protobuf-Empty) | [ListDeviceProfileAdrAlgorithmsResponse](#api-ListDeviceProfileAdrAlgorithmsResponse) | List available ADR algorithms. | + + + + + + +

Top

+ +## api/frame_log.proto + + + + + +### DownlinkFrameLog + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| time | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Time. | +| phy_payload | [bytes](#bytes) | | PHYPayload. | +| tx_info | [gw.DownlinkTxInfo](#gw-DownlinkTxInfo) | | TX meta-data. | +| downlink_id | [uint32](#uint32) | | Downlink ID. | +| gateway_id | [string](#string) | | Gateway ID (EUI64). | +| m_type | [common.MType](#common-MType) | | Message type. | +| dev_addr | [string](#string) | | Device address (optional). | +| dev_eui | [string](#string) | | Device EUI (optional). | + + + + + + + + +### UplinkFrameLog + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| phy_payload | [bytes](#bytes) | | PHYPayload. | +| tx_info | [gw.UplinkTxInfo](#gw-UplinkTxInfo) | | TX meta-data. | +| rx_info | [gw.UplinkRxInfo](#gw-UplinkRxInfo) | repeated | RX meta-data. | +| m_type | [common.MType](#common-MType) | | Message type. | +| dev_addr | [string](#string) | | Device address (optional). | +| dev_eui | [string](#string) | | Device EUI (optional). | +| time | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Time. | + + + + + + + + + + + + + + + + +

Top

+ +## api/gateway.proto + + + + + +### CreateGatewayRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| gateway | [Gateway](#api-Gateway) | | Gateway object. | + + + + + + + + +### DeleteGatewayRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| gateway_id | [string](#string) | | Gateway ID (EUI64). | + + + + + + + + +### Gateway + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| gateway_id | [string](#string) | | Gateway ID (EUI64). | +| name | [string](#string) | | Name. | +| description | [string](#string) | | Description. | +| location | [common.Location](#common-Location) | | Gateway location. | +| tenant_id | [string](#string) | | Tenant ID (UUID). | +| tags | [Gateway.TagsEntry](#api-Gateway-TagsEntry) | repeated | Tags. | +| properties | [Gateway.PropertiesEntry](#api-Gateway-PropertiesEntry) | repeated | Properties (provided by the gateway). | + + + + + + + + +### Gateway.PropertiesEntry + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| key | [string](#string) | | | +| value | [string](#string) | | | + + + + + + + + +### Gateway.TagsEntry + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| key | [string](#string) | | | +| value | [string](#string) | | | + + + + + + + + +### GatewayListItem + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| tenant_id | [string](#string) | | Tenant ID. | +| gateway_id | [string](#string) | | Gateway ID (EUI64). | +| name | [string](#string) | | Name. | +| description | [string](#string) | | Description. | +| location | [common.Location](#common-Location) | | Location. | +| properties | [GatewayListItem.PropertiesEntry](#api-GatewayListItem-PropertiesEntry) | repeated | Gateway properties. | +| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Created at timestamp. | +| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Last update timestamp. | +| last_seen_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Last seen at timestamp. | + + + + + + + + +### GatewayListItem.PropertiesEntry + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| key | [string](#string) | | | +| value | [string](#string) | | | + + + + + + + + +### GatewayStats + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| time | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Timestamp of the (aggregated) measurement. | +| rx_packets | [uint32](#uint32) | | Packets received. | +| tx_packets | [uint32](#uint32) | | Packets emitted. | +| tx_packets_per_frequency | [GatewayStats.TxPacketsPerFrequencyEntry](#api-GatewayStats-TxPacketsPerFrequencyEntry) | repeated | Tx packets per frequency. | +| rx_packets_per_frequency | [GatewayStats.RxPacketsPerFrequencyEntry](#api-GatewayStats-RxPacketsPerFrequencyEntry) | repeated | Rx packets per frequency. | +| tx_packets_per_dr | [GatewayStats.TxPacketsPerDrEntry](#api-GatewayStats-TxPacketsPerDrEntry) | repeated | Tx packets per DR. | +| rx_packets_per_dr | [GatewayStats.RxPacketsPerDrEntry](#api-GatewayStats-RxPacketsPerDrEntry) | repeated | Rx packets per DR. | +| tx_packets_per_status | [GatewayStats.TxPacketsPerStatusEntry](#api-GatewayStats-TxPacketsPerStatusEntry) | repeated | Tx packets per status. | + + + + + + + + +### GatewayStats.RxPacketsPerDrEntry + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| key | [uint32](#uint32) | | | +| value | [uint32](#uint32) | | | + + + + + + + + +### GatewayStats.RxPacketsPerFrequencyEntry + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| key | [uint32](#uint32) | | | +| value | [uint32](#uint32) | | | + + + + + + + + +### GatewayStats.TxPacketsPerDrEntry + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| key | [uint32](#uint32) | | | +| value | [uint32](#uint32) | | | + + + + + + + + +### GatewayStats.TxPacketsPerFrequencyEntry + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| key | [uint32](#uint32) | | | +| value | [uint32](#uint32) | | | + + + + + + + + +### GatewayStats.TxPacketsPerStatusEntry + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| key | [string](#string) | | | +| value | [uint32](#uint32) | | | + + + + + + + + +### GenerateGatewayClientCertificateRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| gateway_id | [string](#string) | | Gateway ID (EUI64). | + + + + + + + + +### GenerateGatewayClientCertificateResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| tls_cert | [string](#string) | | TLS certificate. | +| tls_key | [string](#string) | | TLS key. | +| ca_cert | [string](#string) | | CA certificate. | +| expires_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Expires at defines the expiration date of the certificate. | + + + + + + + + +### GetGatewayRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| gateway_id | [string](#string) | | Gateway ID (EUI64). | + + + + + + + + +### GetGatewayResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| gateway | [Gateway](#api-Gateway) | | Gateway object. | +| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Created at timestamp. | +| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Last update timestamp. | +| last_seen_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Last seen at timestamp. | + + + + + + + + +### GetGatewayStatsRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| gateway_id | [string](#string) | | Gateway ID (EUI64). | +| start | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Interval start timestamp. | +| end | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Interval end timestamp. | + + + + + + + + +### GetGatewayStatsResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| result | [GatewayStats](#api-GatewayStats) | repeated | | + + + + + + + + +### ListGatewaysRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| limit | [uint32](#uint32) | | Max number of gateways to return in the result-set. | +| offset | [uint32](#uint32) | | Offset in the result-set (for pagination). | +| search | [string](#string) | | If set, the given string will be used to search on name (optional). | +| tenant_id | [string](#string) | | Tenant ID (UUID) to filter gateways on. To list all gateways as a global admin user, this field can be left blank. | + + + + + + + + +### ListGatewaysResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| total_count | [uint32](#uint32) | | Total number of gateways. | +| result | [GatewayListItem](#api-GatewayListItem) | repeated | Result-set. | + + + + + + + + +### UpdateGatewayRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| gateway | [Gateway](#api-Gateway) | | Gateway object. | + + + + + + + + + + + + + + +### GatewayService +GatewayService is the service providing API methods for managing gateways. + +| Method Name | Request Type | Response Type | Description | +| ----------- | ------------ | ------------- | ------------| +| Create | [CreateGatewayRequest](#api-CreateGatewayRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Create creates the given gateway. | +| Get | [GetGatewayRequest](#api-GetGatewayRequest) | [GetGatewayResponse](#api-GetGatewayResponse) | Get returns the gateway for the given Gateway ID. | +| Update | [UpdateGatewayRequest](#api-UpdateGatewayRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Update updates the given gateway. | +| Delete | [DeleteGatewayRequest](#api-DeleteGatewayRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Delete deletes the gateway matching the given Gateway ID. | +| List | [ListGatewaysRequest](#api-ListGatewaysRequest) | [ListGatewaysResponse](#api-ListGatewaysResponse) | Get the list of gateways. | +| GenerateClientCertificate | [GenerateGatewayClientCertificateRequest](#api-GenerateGatewayClientCertificateRequest) | [GenerateGatewayClientCertificateResponse](#api-GenerateGatewayClientCertificateResponse) | Generate client-certificate for the gateway. | +| GetStats | [GetGatewayStatsRequest](#api-GetGatewayStatsRequest) | [GetGatewayStatsResponse](#api-GetGatewayStatsResponse) | GetStats returns the gateway stats. | + + + + + + +

Top

+ +## api/multicast_group.proto + + + + + +### AddDeviceToMulticastGroupRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| multicast_group_id | [string](#string) | | Multicast group ID. | +| dev_eui | [string](#string) | | Device EUI (HEX encoded). | + + + + + + + + +### CreateMulticastGroupRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| multicast_group | [MulticastGroup](#api-MulticastGroup) | | Multicast group to create. | + + + + + + + + +### CreateMulticastGroupResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | ID of created multicast group (UUID). | + + + + + + + + +### DeleteMulticastGroupRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | Multicast group iD. | + + + + + + + + +### EnqueueMulticastGroupQueueItemRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| multicast_group_queue_item | [MulticastGroupQueueItem](#api-MulticastGroupQueueItem) | | Multicast queue-item to enqueue. | + + + + + + + + +### EnqueueMulticastGroupQueueItemResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| f_cnt | [uint32](#uint32) | | Frame-counter of the enqueued payload. | + + + + + + + + +### FlushMulticastGroupQueueRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| multicast_group_id | [string](#string) | | Multicast group ID. | + + + + + + + + +### GetMulticastGroupRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | Multicast group ID. | + + + + + + + + +### GetMulticastGroupResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| multicast_group | [MulticastGroup](#api-MulticastGroup) | | Multicast group object. | +| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Created at timestamp. | +| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Last update timestamp. | + + + + + + + + +### ListMulticastGroupQueueRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| multicast_group_id | [string](#string) | | Multicast group ID. | + + + + + + + + +### ListMulticastGroupQueueResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| items | [MulticastGroupQueueItem](#api-MulticastGroupQueueItem) | repeated | | + + + + + + + + +### ListMulticastGroupsRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| limit | [uint32](#uint32) | | Max number of multicast groups to return in the result-set. | +| offset | [uint32](#uint32) | | Offset in the result-set (for pagination). | +| search | [string](#string) | | If set, the given string will be used to search on name. | +| application_id | [string](#string) | | Application ID to list the multicast groups for. | + + + + + + + + +### ListMulticastGroupsResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| total_count | [uint32](#uint32) | | Total number of multicast groups. | +| result | [MulticastGroupListItem](#api-MulticastGroupListItem) | repeated | Result-test. | + + + + + + + + +### MulticastGroup + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | ID (UUID). This will be generated automatically on create. | +| name | [string](#string) | | Name. | +| application_id | [string](#string) | | Application ID. After creation, this can not be updated. | +| region | [common.Region](#common-Region) | | Region. | +| mc_addr | [string](#string) | | Multicast address (HEX encoded DevAddr). | +| mc_nwk_s_key | [string](#string) | | Multicast network session key (HEX encoded AES128 key). | +| mc_app_s_key | [string](#string) | | Multicast application session key (HEX encoded AES128 key). | +| f_cnt | [uint32](#uint32) | | Frame-counter. | +| group_type | [MulticastGroupType](#api-MulticastGroupType) | | Multicast group type. | +| dr | [uint32](#uint32) | | Data-rate. | +| frequency | [uint32](#uint32) | | Frequency (Hz). | +| class_b_ping_slot_period | [uint32](#uint32) | | Ping-slot period (only for Class-B). | + + + + + + + + +### MulticastGroupListItem + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | ID. | +| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Created at timestamp. | +| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Last update timestamp. | +| name | [string](#string) | | Name. | +| region | [common.Region](#common-Region) | | Region. | +| group_type | [MulticastGroupType](#api-MulticastGroupType) | | Multicast group type. | + + + + + + + + +### MulticastGroupQueueItem + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| multicast_group_id | [string](#string) | | Multicast group ID. | +| f_cnt | [uint32](#uint32) | | Downlink frame-counter. This will be automatically set on enqueue. | +| f_port | [uint32](#uint32) | | FPort (must be > 0). | +| data | [bytes](#bytes) | | Payload. | + + + + + + + + +### RemoveDeviceFromMulticastGroupRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| multicast_group_id | [string](#string) | | Multicast group ID. | +| dev_eui | [string](#string) | | Device EUI (HEX encoded). | + + + + + + + + +### UpdateMulticastGroupRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| multicast_group | [MulticastGroup](#api-MulticastGroup) | | Multicast group object to update. | + + + + + + + + + + +### MulticastGroupType + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| CLASS_C | 0 | Class C. | +| CLASS_B | 1 | Class-B. | + + + + + + + + + +### MulticastGroupService +MulticastGroupService is the service managing multicast-groups. + +| Method Name | Request Type | Response Type | Description | +| ----------- | ------------ | ------------- | ------------| +| Create | [CreateMulticastGroupRequest](#api-CreateMulticastGroupRequest) | [CreateMulticastGroupResponse](#api-CreateMulticastGroupResponse) | Create the given multicast group. | +| Get | [GetMulticastGroupRequest](#api-GetMulticastGroupRequest) | [GetMulticastGroupResponse](#api-GetMulticastGroupResponse) | Get returns the multicast group for the given ID. | +| Update | [UpdateMulticastGroupRequest](#api-UpdateMulticastGroupRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Update the given multicast group. | +| Delete | [DeleteMulticastGroupRequest](#api-DeleteMulticastGroupRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Delete the multicast-group with the given ID. | +| List | [ListMulticastGroupsRequest](#api-ListMulticastGroupsRequest) | [ListMulticastGroupsResponse](#api-ListMulticastGroupsResponse) | List the available multicast groups. | +| AddDevice | [AddDeviceToMulticastGroupRequest](#api-AddDeviceToMulticastGroupRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Add a device to the multicast group. | +| RemoveDevice | [RemoveDeviceFromMulticastGroupRequest](#api-RemoveDeviceFromMulticastGroupRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Remove a device from the multicast group. | +| Enqueue | [EnqueueMulticastGroupQueueItemRequest](#api-EnqueueMulticastGroupQueueItemRequest) | [EnqueueMulticastGroupQueueItemResponse](#api-EnqueueMulticastGroupQueueItemResponse) | Add the given item to the multcast group queue. | +| FlushQueue | [FlushMulticastGroupQueueRequest](#api-FlushMulticastGroupQueueRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Flush the queue for the given multicast group. | +| ListQueue | [ListMulticastGroupQueueRequest](#api-ListMulticastGroupQueueRequest) | [ListMulticastGroupQueueResponse](#api-ListMulticastGroupQueueResponse) | List the items in the multicast group queue. | + + + + + + +

Top

+ +## api/tenant.proto + + + + + +### AddTenantUserRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| tenant_user | [TenantUser](#api-TenantUser) | | Tenant user object. | + + + + + + + + +### CreateTenantRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| tenant | [Tenant](#api-Tenant) | | Tenant object to create. | + + + + + + + + +### CreateTenantResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | Tenant ID. | + + + + + + + + +### DeleteTenantRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | Tenant ID. | + + + + + + + + +### DeleteTenantUserRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| tenant_id | [string](#string) | | Tenant ID (UUID). | +| user_id | [string](#string) | | User ID (UUID). | + + + + + + + + +### GetTenantRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | Tenant ID. | + + + + + + + + +### GetTenantResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| tenant | [Tenant](#api-Tenant) | | Tenant object. | +| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Created at timestamp. | +| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Last update timestamp. | + + + + + + + + +### GetTenantUserRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| tenant_id | [string](#string) | | Tenant ID (UUID). | +| user_id | [string](#string) | | User ID (UUID). | + + + + + + + + +### GetTenantUserResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| tenant_user | [TenantUser](#api-TenantUser) | | Tenant user object. | +| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Created at timestamp. | +| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Last update timestamp. | + + + + + + + + +### ListTenantUsersRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| tenant_id | [string](#string) | | Tenant ID (UUID). | +| limit | [uint32](#uint32) | | Max number of tenants to return in the result-set. | +| offset | [uint32](#uint32) | | Offset in the result-set (for pagination). | + + + + + + + + +### ListTenantUsersResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| total_count | [uint32](#uint32) | | Total number of tenants. | +| result | [TenantUserListItem](#api-TenantUserListItem) | repeated | Result-set. | + + + + + + + + +### ListTenantsRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| limit | [uint32](#uint32) | | Max number of tenants to return in the result-set. | +| offset | [uint32](#uint32) | | Offset in the result-set (for pagination). | +| search | [string](#string) | | If set, the given string will be used to search on name. | + + + + + + + + +### ListTenantsResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| total_count | [uint32](#uint32) | | Total number of tenants. | +| result | [TenantListItem](#api-TenantListItem) | repeated | Result-set. | + + + + + + + + +### Tenant + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | Tenant ID (UUID). Note: this value will be automatically generated on create. | +| name | [string](#string) | | Tenant name, | +| description | [string](#string) | | Tenant description. | +| can_have_gateways | [bool](#bool) | | Can the tenant create and "own" Gateways? | +| max_gateway_count | [uint32](#uint32) | | Max. gateway count for tenant. When set to 0, the tenant can have unlimited gateways. | +| max_device_count | [uint32](#uint32) | | Max. device count for tenant. When set to 0, the tenant can have unlimited devices. | +| private_gateways | [bool](#bool) | | Private gateways. Gateways under this tenant are private. | + + + + + + + + +### TenantListItem + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | Tenant ID (UUID). | +| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Created at timestamp. | +| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Last update timestamp. | +| name | [string](#string) | | Tenant name. | +| can_have_gateways | [bool](#bool) | | Can the tenant create and "own" Gateways? | +| private_gateways | [bool](#bool) | | Gateways are private to tenant. | +| max_gateway_count | [uint32](#uint32) | | Max gateway count. 0 = unlimited. | +| max_device_count | [uint32](#uint32) | | Max device count. 0 = unlimited. | + + + + + + + + +### TenantUser + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| tenant_id | [string](#string) | | Tenant ID (UUID). | +| user_id | [string](#string) | | User ID (UUID). | +| is_admin | [bool](#bool) | | User is admin within the context of the tenant. There is no need to set the is_device_admin and is_gateway_admin flags. | +| is_device_admin | [bool](#bool) | | User is able to modify device related resources (applications, device-profiles, devices, multicast-groups). | +| is_gateway_admin | [bool](#bool) | | User is able to modify gateways. | +| email | [string](#string) | | Email (only used on get and when adding a user to a tenant). | + + + + + + + + +### TenantUserListItem + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| tenant_id | [string](#string) | | Tenant ID (UUID). | +| user_id | [string](#string) | | User ID (UUID). | +| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Created at timestamp. | +| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Last update timestamp. | +| email | [string](#string) | | Email. | +| is_admin | [bool](#bool) | | User is admin within the context of the tenant. There is no need to set the is_device_admin and is_gateway_admin flags. | +| is_device_admin | [bool](#bool) | | User is able to modify device related resources (applications, device-profiles, devices, multicast-groups). | +| is_gateway_admin | [bool](#bool) | | User is able to modify gateways. | + + + + + + + + +### UpdateTenantRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| tenant | [Tenant](#api-Tenant) | | Tenant object. | + + + + + + + + +### UpdateTenantUserRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| tenant_user | [TenantUser](#api-TenantUser) | | Tenant user object. | + + + + + + + + + + + + + + +### TenantService +TenantService is the service providing API methods for managing tenants. + +| Method Name | Request Type | Response Type | Description | +| ----------- | ------------ | ------------- | ------------| +| Create | [CreateTenantRequest](#api-CreateTenantRequest) | [CreateTenantResponse](#api-CreateTenantResponse) | Create a new tenant. | +| Get | [GetTenantRequest](#api-GetTenantRequest) | [GetTenantResponse](#api-GetTenantResponse) | Get the tenant for the given ID. | +| Update | [UpdateTenantRequest](#api-UpdateTenantRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Update the given tenant. | +| Delete | [DeleteTenantRequest](#api-DeleteTenantRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Delete the tenant with the given ID. | +| List | [ListTenantsRequest](#api-ListTenantsRequest) | [ListTenantsResponse](#api-ListTenantsResponse) | Get the list of tenants. | +| AddUser | [AddTenantUserRequest](#api-AddTenantUserRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Add an user to the tenant. Note: the user must already exist. | +| GetUser | [GetTenantUserRequest](#api-GetTenantUserRequest) | [GetTenantUserResponse](#api-GetTenantUserResponse) | Get the the tenant user for the given tenant and user IDs. | +| UpdateUser | [UpdateTenantUserRequest](#api-UpdateTenantUserRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Update the given tenant user. | +| DeleteUser | [DeleteTenantUserRequest](#api-DeleteTenantUserRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Delete the given tenant user. | +| ListUsers | [ListTenantUsersRequest](#api-ListTenantUsersRequest) | [ListTenantUsersResponse](#api-ListTenantUsersResponse) | Get the list of tenant users. | + + + + + + +

Top

+ +## api/user.proto + + + + + +### CreateUserRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| user | [User](#api-User) | | User object to create. | +| password | [string](#string) | | Password to set for the user. | +| tenants | [UserTenant](#api-UserTenant) | repeated | Add the user to the following tenants. | + + + + + + + + +### CreateUserResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | User ID. | + + + + + + + + +### DeleteUserRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | User ID. | + + + + + + + + +### GetUserRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | User ID. | + + + + + + + + +### GetUserResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| user | [User](#api-User) | | User object. | +| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Created at timestamp. | +| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Last update timestamp. | + + + + + + + + +### ListUsersRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| limit | [uint32](#uint32) | | Max number of tenants to return in the result-set. | +| offset | [uint32](#uint32) | | Offset in the result-set (for pagination). | + + + + + + + + +### ListUsersResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| total_count | [uint32](#uint32) | | Total number of users. | +| result | [UserListItem](#api-UserListItem) | repeated | Result-set. | + + + + + + + + +### UpdateUserPasswordRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| user_id | [string](#string) | | User ID. | +| password | [string](#string) | | Password to set. | + + + + + + + + +### UpdateUserRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| user | [User](#api-User) | | User object. | + + + + + + + + +### User + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | User ID (UUID). Will be set automatically on create. | +| is_admin | [bool](#bool) | | Set to true to make the user a global administrator. | +| is_active | [bool](#bool) | | Set to false to disable the user. | +| email | [string](#string) | | E-mail of the user. | +| note | [string](#string) | | Optional note to store with the user. | + + + + + + + + +### UserListItem + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | User ID (UUID). | +| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Created at timestamp. | +| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Last update timestamp. | +| email | [string](#string) | | Email of the user. | +| is_admin | [bool](#bool) | | Set to true to make the user a global administrator. | +| is_active | [bool](#bool) | | Set to false to disable the user. | + + + + + + + + +### UserTenant + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| tenant_id | [string](#string) | | Tenant ID. | +| is_admin | [bool](#bool) | | User is admin within the context of the tenant. There is no need to set the is_device_admin and is_gateway_admin flags. | +| is_device_admin | [bool](#bool) | | User is able to modify device related resources (applications, device-profiles, devices, multicast-groups). | +| is_gateway_admin | [bool](#bool) | | User is able to modify gateways. | + + + + + + + + + + + + + + +### UserService +UserService is the service providing API methods for managing users. + +| Method Name | Request Type | Response Type | Description | +| ----------- | ------------ | ------------- | ------------| +| Create | [CreateUserRequest](#api-CreateUserRequest) | [CreateUserResponse](#api-CreateUserResponse) | Create a new user. | +| Get | [GetUserRequest](#api-GetUserRequest) | [GetUserResponse](#api-GetUserResponse) | Get the user for the given ID. | +| Update | [UpdateUserRequest](#api-UpdateUserRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Update the given user. | +| Delete | [DeleteUserRequest](#api-DeleteUserRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Delete the user with the given ID. | +| List | [ListUsersRequest](#api-ListUsersRequest) | [ListUsersResponse](#api-ListUsersResponse) | Get the list of users. | +| UpdatePassword | [UpdateUserPasswordRequest](#api-UpdateUserPasswordRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Update the password for the given user. | + + + + + +## Scalar Value Types + +| .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby | +| ----------- | ----- | --- | ---- | ------ | -- | -- | --- | ---- | +| double | | double | double | float | float64 | double | float | Float | +| float | | float | float | float | float32 | float | float | Float | +| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | +| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum | +| uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) | +| uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) | +| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | +| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum | +| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) | +| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum | +| sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | +| sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum | +| bool | | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass | +| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) | +| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) | + diff --git a/api/md/api/internal.md b/api/md/api/internal.md new file mode 100644 index 00000000..9580bebe --- /dev/null +++ b/api/md/api/internal.md @@ -0,0 +1,544 @@ +# Protocol Documentation + + +## Table of Contents + +- [api/internal.proto](#api_internal-proto) + - [ApiKey](#api-ApiKey) + - [CreateApiKeyRequest](#api-CreateApiKeyRequest) + - [CreateApiKeyResponse](#api-CreateApiKeyResponse) + - [DeleteApiKeyRequest](#api-DeleteApiKeyRequest) + - [GetDevicesSummaryRequest](#api-GetDevicesSummaryRequest) + - [GetDevicesSummaryResponse](#api-GetDevicesSummaryResponse) + - [GetDevicesSummaryResponse.DrCountEntry](#api-GetDevicesSummaryResponse-DrCountEntry) + - [GetGatewaysSummaryRequest](#api-GetGatewaysSummaryRequest) + - [GetGatewaysSummaryResponse](#api-GetGatewaysSummaryResponse) + - [GlobalSearchRequest](#api-GlobalSearchRequest) + - [GlobalSearchResponse](#api-GlobalSearchResponse) + - [GlobalSearchResult](#api-GlobalSearchResult) + - [ListApiKeysRequest](#api-ListApiKeysRequest) + - [ListApiKeysResponse](#api-ListApiKeysResponse) + - [LogItem](#api-LogItem) + - [LogItem.PropertiesEntry](#api-LogItem-PropertiesEntry) + - [LoginRequest](#api-LoginRequest) + - [LoginResponse](#api-LoginResponse) + - [OpenIdConnect](#api-OpenIdConnect) + - [OpenIdConnectLoginRequest](#api-OpenIdConnectLoginRequest) + - [OpenIdConnectLoginResponse](#api-OpenIdConnectLoginResponse) + - [ProfileResponse](#api-ProfileResponse) + - [SettingsResponse](#api-SettingsResponse) + - [StreamDeviceEventsRequest](#api-StreamDeviceEventsRequest) + - [StreamDeviceFramesRequest](#api-StreamDeviceFramesRequest) + - [StreamGatewayFramesRequest](#api-StreamGatewayFramesRequest) + - [UserTenantLink](#api-UserTenantLink) + + - [InternalService](#api-InternalService) + +- [Scalar Value Types](#scalar-value-types) + + + + +

Top

+ +## api/internal.proto + + + + + +### ApiKey + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | API key ID. This value will be automatically generated on create. | +| name | [string](#string) | | Name. | +| is_admin | [bool](#bool) | | Is global admin key. | +| tenant_id | [string](#string) | | Tenant ID. In case the API key is intended to manage resources under a single tenant. | + + + + + + + + +### CreateApiKeyRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| api_key | [ApiKey](#api-ApiKey) | | The API key to create. | + + + + + + + + +### CreateApiKeyResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | API key ID. | +| token | [string](#string) | | API token for authentication API requests. | + + + + + + + + +### DeleteApiKeyRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | API key ID. | + + + + + + + + +### GetDevicesSummaryRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| tenant_id | [string](#string) | | Tenant ID (UUID). | + + + + + + + + +### GetDevicesSummaryResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| active_count | [uint32](#uint32) | | Active count. | +| inactive_count | [uint32](#uint32) | | Inactive count. | +| dr_count | [GetDevicesSummaryResponse.DrCountEntry](#api-GetDevicesSummaryResponse-DrCountEntry) | repeated | per data-rate count. Devices that have never been seen are excluded. | +| never_seen_count | [uint32](#uint32) | | Never seen count. | + + + + + + + + +### GetDevicesSummaryResponse.DrCountEntry + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| key | [uint32](#uint32) | | | +| value | [uint32](#uint32) | | | + + + + + + + + +### GetGatewaysSummaryRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| tenant_id | [string](#string) | | Tenant ID (UUID). | + + + + + + + + +### GetGatewaysSummaryResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| active_count | [uint32](#uint32) | | Active count. | +| inactive_count | [uint32](#uint32) | | Inactive count. | +| never_seen_count | [uint32](#uint32) | | Never seen count. | + + + + + + + + +### GlobalSearchRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| search | [string](#string) | | Search query. | +| limit | [int64](#int64) | | Max number of results to return. | +| offset | [int64](#int64) | | Offset offset of the result-set (for pagination). | + + + + + + + + +### GlobalSearchResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| result | [GlobalSearchResult](#api-GlobalSearchResult) | repeated | | + + + + + + + + +### GlobalSearchResult + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| kind | [string](#string) | | Record kind. | +| score | [float](#float) | | Search score. | +| tenant_id | [string](#string) | | Organization id. | +| tenant_name | [string](#string) | | Organization name. | +| application_id | [string](#string) | | Application id. | +| application_name | [string](#string) | | Application name. | +| device_dev_eui | [string](#string) | | Device DevEUI (hex encoded). | +| device_name | [string](#string) | | Device name. | +| gateway_id | [string](#string) | | Gateway MAC (hex encoded). | +| gateway_name | [string](#string) | | Gateway name. | + + + + + + + + +### ListApiKeysRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| limit | [uint32](#uint32) | | Max number of items to return. | +| offset | [uint32](#uint32) | | Offset in the result-set (for pagination). | +| is_admin | [bool](#bool) | | Return only admin keys. | +| tenant_id | [string](#string) | | Filter on tenant ID. | + + + + + + + + +### ListApiKeysResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| total_count | [uint32](#uint32) | | Total number of API keys. | +| result | [ApiKey](#api-ApiKey) | repeated | | + + + + + + + + +### LogItem + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | ID. | +| time | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Timestamp. | +| description | [string](#string) | | Message. | +| body | [string](#string) | | Body. | +| properties | [LogItem.PropertiesEntry](#api-LogItem-PropertiesEntry) | repeated | Properties. | + + + + + + + + +### LogItem.PropertiesEntry + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| key | [string](#string) | | | +| value | [string](#string) | | | + + + + + + + + +### LoginRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| email | [string](#string) | | Email of the user. | +| password | [string](#string) | | Password of the user. | + + + + + + + + +### LoginResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| jwt | [string](#string) | | The JWT tag to be used to access chirpstack-application-server interfaces. | + + + + + + + + +### OpenIdConnect + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| enabled | [bool](#bool) | | Enable OpenId Connect authentication. | +| login_url | [string](#string) | | Login url. | +| login_label | [string](#string) | | Login label. | +| logout_url | [string](#string) | | Logout url. | + + + + + + + + +### OpenIdConnectLoginRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| code | [string](#string) | | OpenId Connect callback code. | +| state | [string](#string) | | OpenId Connect callback state. | + + + + + + + + +### OpenIdConnectLoginResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| token | [string](#string) | | Token to use for authentication. | + + + + + + + + +### ProfileResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| user | [User](#api-User) | | User object. | +| tenants | [UserTenantLink](#api-UserTenantLink) | repeated | Tenants to which the user is associated. | + + + + + + + + +### SettingsResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| openid_connect | [OpenIdConnect](#api-OpenIdConnect) | | OpenId Connect settings. | + + + + + + + + +### StreamDeviceEventsRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| dev_eui | [string](#string) | | Device EUI. | + + + + + + + + +### StreamDeviceFramesRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| dev_eui | [string](#string) | | Device EUI. | + + + + + + + + +### StreamGatewayFramesRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| gateway_id | [string](#string) | | Gateway ID (EUI64). | + + + + + + + + +### UserTenantLink +Defines a tenant to which the user is associated. + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Created at timestamp. | +| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Last update timestamp. | +| tenant_id | [string](#string) | | Tenant ID. | +| is_admin | [bool](#bool) | | User is admin within the context of this tenant. There is no need to set the is_device_admin and is_gateway_admin flags. | +| is_device_admin | [bool](#bool) | | User is able to modify device related resources (applications, device-profiles, devices, multicast-groups). | +| is_gateway_admin | [bool](#bool) | | User is able to modify gateways. | + + + + + + + + + + + + + + +### InternalService +InternalService is the service providing API endpoints for internal usage. + +| Method Name | Request Type | Response Type | Description | +| ----------- | ------------ | ------------- | ------------| +| Login | [LoginRequest](#api-LoginRequest) | [LoginResponse](#api-LoginResponse) | Log in a user | +| Profile | [.google.protobuf.Empty](#google-protobuf-Empty) | [ProfileResponse](#api-ProfileResponse) | Get the current user's profile | +| GlobalSearch | [GlobalSearchRequest](#api-GlobalSearchRequest) | [GlobalSearchResponse](#api-GlobalSearchResponse) | Perform a global search. | +| CreateApiKey | [CreateApiKeyRequest](#api-CreateApiKeyRequest) | [CreateApiKeyResponse](#api-CreateApiKeyResponse) | CreateApiKey creates the given API key. | +| DeleteApiKey | [DeleteApiKeyRequest](#api-DeleteApiKeyRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | DeleteApiKey deletes the API key. | +| ListApiKeys | [ListApiKeysRequest](#api-ListApiKeysRequest) | [ListApiKeysResponse](#api-ListApiKeysResponse) | ListApiKeys lists the available API keys. | +| Settings | [.google.protobuf.Empty](#google-protobuf-Empty) | [SettingsResponse](#api-SettingsResponse) | Get the global settings. | +| OpenIdConnectLogin | [OpenIdConnectLoginRequest](#api-OpenIdConnectLoginRequest) | [OpenIdConnectLoginResponse](#api-OpenIdConnectLoginResponse) | OpenId Connect login. | +| GetDevicesSummary | [GetDevicesSummaryRequest](#api-GetDevicesSummaryRequest) | [GetDevicesSummaryResponse](#api-GetDevicesSummaryResponse) | GetDevicesSummary returns an aggregated summary of the devices. | +| GetGatewaysSummary | [GetGatewaysSummaryRequest](#api-GetGatewaysSummaryRequest) | [GetGatewaysSummaryResponse](#api-GetGatewaysSummaryResponse) | GetGatewaysSummary returns an aggregated summary of the gateways. | +| StreamGatewayFrames | [StreamGatewayFramesRequest](#api-StreamGatewayFramesRequest) | [LogItem](#api-LogItem) stream | Stream frame for the given Gateway ID. | +| StreamDeviceFrames | [StreamDeviceFramesRequest](#api-StreamDeviceFramesRequest) | [LogItem](#api-LogItem) stream | Stream frames for the given Device EUI. | +| StreamDeviceEvents | [StreamDeviceEventsRequest](#api-StreamDeviceEventsRequest) | [LogItem](#api-LogItem) stream | Stream events for the given Device EUI. | + + + + + +## Scalar Value Types + +| .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby | +| ----------- | ----- | --- | ---- | ------ | -- | -- | --- | ---- | +| double | | double | double | float | float64 | double | float | Float | +| float | | float | float | float | float32 | float | float | Float | +| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | +| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum | +| uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) | +| uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) | +| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | +| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum | +| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) | +| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum | +| sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | +| sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum | +| bool | | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass | +| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) | +| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) | + diff --git a/api/rust/Cargo.lock b/api/rust/Cargo.lock index cfc72e60..a3b1f2ee 100644 --- a/api/rust/Cargo.lock +++ b/api/rust/Cargo.lock @@ -121,7 +121,7 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chirpstack_api" -version = "4.0.0-test.1" +version = "4.0.0-test.5" dependencies = [ "hex", "pbjson",