Compare commits

..

2 Commits

Author SHA1 Message Date
da00217a3a Merge branch 'master' into feat_sqlite_support 2024-08-26 12:49:45 +01:00
21f07fedb0 Implement support for SQLite database backend. (#418)
This feature makes it possible to select between PostgreSQL and SQLite as database backend using a compile feature-flag. It is not possible to enable both at the same time.

---------

Co-authored-by: Orne Brocaar <info@brocaar.com>
2024-08-06 16:23:43 +01:00
149 changed files with 7118 additions and 4252 deletions

View File

@ -28,7 +28,7 @@ jobs:
name: Install Nix
uses: cachix/install-nix-action@v27
with:
nix_path: nixpkgs=channel:nixos-24.11
nix_path: nixpkgs=channel:nixos-24.05
-
name: Cargo cache
uses: actions/cache@v4
@ -54,13 +54,6 @@ jobs:
needs: tests
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')
strategy:
matrix:
database:
- postgres
- sqlite
env:
DATABASE: ${{ matrix.database }}
steps:
-
name: Checkout
@ -69,7 +62,7 @@ jobs:
name: Install Nix
uses: cachix/install-nix-action@v27
with:
nix_path: nixpkgs=channel:nixos-24.11
nix_path: nixpkgs=channel:nixos-24.05
-
name: Cargo cache
uses: actions/cache@v4
@ -108,7 +101,7 @@ jobs:
uses: docker/metadata-action@v3
with:
images: |
chirpstack/${{ github.event.repository.name }}${{ matrix.database != 'postgres' && format('-{0}', matrix.database) || '' }}
chirpstack/${{ github.event.repository.name }}
tags: |
type=semver,pattern={{version}}
type=semver,pattern={{major}}

1684
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
# Copy binary stage
FROM --platform=$BUILDPLATFORM alpine:3.21.0 as binary
FROM --platform=$BUILDPLATFORM alpine:3.18.0 as binary
ARG TARGETPLATFORM
@ -20,11 +20,11 @@ RUN case "$TARGETPLATFORM" in \
esac;
# Final stage
FROM alpine:3.21.0
FROM alpine:3.18.0
RUN apk --no-cache add \
ca-certificates
COPY --from=binary /usr/bin/chirpstack /usr/bin/chirpstack
USER nobody:nogroup
ENTRYPOINT ["/usr/bin/chirpstack"]
ENTRYPOINT ["/usr/bin/chirpstack"]

View File

@ -53,6 +53,10 @@ devshell:
docker-devshell:
docker compose run --rm --service-ports --name chirpstack chirpstack
# Enters the devshell for ChirpStack UI development.
docker-devshell-ui:
docker compose run --rm --service-ports --name chirpstack-ui chirpstack-ui bash
# Runs the tests
test:
cd api && make rust

16
api/Dockerfile-c vendored
View File

@ -1,16 +0,0 @@
FROM alpine:latest
ENV PROJECT_PATH=/chirpstack/api
RUN apk add --no-cache make git bash protobuf protobuf-dev pkgconfig autoconf automake libtool gcc g++
# Install protobuf implementation for C
RUN git clone --depth=1 https://github.com/protobuf-c/protobuf-c.git /protobuf-c
RUN cd /protobuf-c && ./autogen.sh && ./configure && make && make install
# Proto dependencies stuff
RUN git clone --depth=1 https://github.com/protocolbuffers/protobuf.git /protobuf
RUN git clone --depth=1 https://github.com/googleapis/googleapis.git /googleapis
RUN mkdir -p PROJECT_PATH
WORKDIR $PROJECT_PATH

9
api/Makefile vendored
View File

@ -1,6 +1,6 @@
.PHONY: rust grpc-web go js python md java kotlin csharp php c
.PHONY: rust grpc-web go js python md java kotlin csharp php
all: rust grpc-web go js python md java kotlin csharp php c
all: rust grpc-web go js python md java kotlin csharp php
rust:
cd rust && make
@ -30,7 +30,4 @@ csharp:
docker compose run --rm chirpstack-csharp
php:
docker compose run --rm chirpstack-api-php
c:
docker compose run --rm chirpstack-api-c
docker compose run --rm chirpstack-api-php

2
api/c/.gitignore vendored
View File

@ -1,2 +0,0 @@
/src/
/proto/

34
api/c/Makefile vendored
View File

@ -1,34 +0,0 @@
.PHONY: all pre-build
PROTOC := protoc-c
PROTOC_ARGS := -I=proto -I=proto/chirpstack-api --c_out=./src
GOOGLE_PROTOBUF_REQUIREMENTS =
GOOGLE_PROTOBUF_REQUIREMENTS += timestamp.proto
GOOGLE_PROTOBUF_REQUIREMENTS += duration.proto
GOOGLE_PROTOBUF_REQUIREMENTS += struct.proto
GOOGLE_PROTOBUF_REQUIREMENTS += empty.proto
GOOGLE_PROTOBUF_REQUIREMENTS += descriptor.proto
GOOGLE_PROTOBUF_OUTPUT = $(patsubst %.proto, src/google/protobuf/%.pb-c.h, $(GOOGLE_PROTOBUF_REQUIREMENTS))
all: pre-build $(GOOGLE_PROTOBUF_OUTPUT) build
pre-build:
rm -rf proto src
mkdir -p proto/chirpstack-api
mkdir -p proto/google/protobuf
cp -r ../proto/* proto/chirpstack-api/
mv proto/chirpstack-api/google/api proto/google/api
mkdir -p src
sed -i \
-r 's/(\s+bytes std)(in|out|err)(\s+=.*)/\1_\2\3/' \
proto/chirpstack-api/gw/gw.proto
src/google/protobuf/%.pb-c.h: /protobuf/src/google/protobuf/%.proto
cp $< proto/google/protobuf/
build:
find proto \
-name '*.proto' \
-type f \
-exec $(PROTOC) $(PROTOC_ARGS) {} \;

View File

@ -49,10 +49,3 @@ services:
command: bash -c "cd php && make all"
volumes:
- ./:/chirpstack/api
chirpstack-api-c:
build:
context: .
dockerfile: Dockerfile-c
command: bash -c "cd c && make all"
volumes:
- ./:/chirpstack/api

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.3.0
// - protoc v5.28.3
// - protoc v4.24.4
// source: api/application.proto
package api

1287
api/go/api/device.pb.go vendored

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.3.0
// - protoc v5.28.3
// - protoc v4.24.4
// source: api/device.proto
package api

View File

@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.35.1
// protoc v5.28.3
// protoc-gen-go v1.34.1
// protoc v4.24.4
// source: api/device_profile.proto
package api
@ -556,9 +556,11 @@ type DeviceProfile struct {
func (x *DeviceProfile) Reset() {
*x = DeviceProfile{}
mi := &file_api_device_profile_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_device_profile_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeviceProfile) String() string {
@ -569,7 +571,7 @@ func (*DeviceProfile) ProtoMessage() {}
func (x *DeviceProfile) ProtoReflect() protoreflect.Message {
mi := &file_api_device_profile_proto_msgTypes[0]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -968,9 +970,11 @@ type Measurement struct {
func (x *Measurement) Reset() {
*x = Measurement{}
mi := &file_api_device_profile_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_device_profile_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Measurement) String() string {
@ -981,7 +985,7 @@ func (*Measurement) ProtoMessage() {}
func (x *Measurement) ProtoReflect() protoreflect.Message {
mi := &file_api_device_profile_proto_msgTypes[1]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1039,9 +1043,11 @@ type DeviceProfileListItem struct {
func (x *DeviceProfileListItem) Reset() {
*x = DeviceProfileListItem{}
mi := &file_api_device_profile_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_device_profile_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeviceProfileListItem) String() string {
@ -1052,7 +1058,7 @@ func (*DeviceProfileListItem) ProtoMessage() {}
func (x *DeviceProfileListItem) ProtoReflect() protoreflect.Message {
mi := &file_api_device_profile_proto_msgTypes[2]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1148,9 +1154,11 @@ type CreateDeviceProfileRequest struct {
func (x *CreateDeviceProfileRequest) Reset() {
*x = CreateDeviceProfileRequest{}
mi := &file_api_device_profile_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_device_profile_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CreateDeviceProfileRequest) String() string {
@ -1161,7 +1169,7 @@ func (*CreateDeviceProfileRequest) ProtoMessage() {}
func (x *CreateDeviceProfileRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_device_profile_proto_msgTypes[3]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1194,9 +1202,11 @@ type CreateDeviceProfileResponse struct {
func (x *CreateDeviceProfileResponse) Reset() {
*x = CreateDeviceProfileResponse{}
mi := &file_api_device_profile_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_device_profile_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CreateDeviceProfileResponse) String() string {
@ -1207,7 +1217,7 @@ func (*CreateDeviceProfileResponse) ProtoMessage() {}
func (x *CreateDeviceProfileResponse) ProtoReflect() protoreflect.Message {
mi := &file_api_device_profile_proto_msgTypes[4]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1240,9 +1250,11 @@ type GetDeviceProfileRequest struct {
func (x *GetDeviceProfileRequest) Reset() {
*x = GetDeviceProfileRequest{}
mi := &file_api_device_profile_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_device_profile_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetDeviceProfileRequest) String() string {
@ -1253,7 +1265,7 @@ func (*GetDeviceProfileRequest) ProtoMessage() {}
func (x *GetDeviceProfileRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_device_profile_proto_msgTypes[5]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1290,9 +1302,11 @@ type GetDeviceProfileResponse struct {
func (x *GetDeviceProfileResponse) Reset() {
*x = GetDeviceProfileResponse{}
mi := &file_api_device_profile_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_device_profile_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetDeviceProfileResponse) String() string {
@ -1303,7 +1317,7 @@ func (*GetDeviceProfileResponse) ProtoMessage() {}
func (x *GetDeviceProfileResponse) ProtoReflect() protoreflect.Message {
mi := &file_api_device_profile_proto_msgTypes[6]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1350,9 +1364,11 @@ type UpdateDeviceProfileRequest struct {
func (x *UpdateDeviceProfileRequest) Reset() {
*x = UpdateDeviceProfileRequest{}
mi := &file_api_device_profile_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_device_profile_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UpdateDeviceProfileRequest) String() string {
@ -1363,7 +1379,7 @@ func (*UpdateDeviceProfileRequest) ProtoMessage() {}
func (x *UpdateDeviceProfileRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_device_profile_proto_msgTypes[7]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1396,9 +1412,11 @@ type DeleteDeviceProfileRequest struct {
func (x *DeleteDeviceProfileRequest) Reset() {
*x = DeleteDeviceProfileRequest{}
mi := &file_api_device_profile_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_device_profile_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeleteDeviceProfileRequest) String() string {
@ -1409,7 +1427,7 @@ func (*DeleteDeviceProfileRequest) ProtoMessage() {}
func (x *DeleteDeviceProfileRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_device_profile_proto_msgTypes[8]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1448,9 +1466,11 @@ type ListDeviceProfilesRequest struct {
func (x *ListDeviceProfilesRequest) Reset() {
*x = ListDeviceProfilesRequest{}
mi := &file_api_device_profile_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_device_profile_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListDeviceProfilesRequest) String() string {
@ -1461,7 +1481,7 @@ func (*ListDeviceProfilesRequest) ProtoMessage() {}
func (x *ListDeviceProfilesRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_device_profile_proto_msgTypes[9]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1517,9 +1537,11 @@ type ListDeviceProfilesResponse struct {
func (x *ListDeviceProfilesResponse) Reset() {
*x = ListDeviceProfilesResponse{}
mi := &file_api_device_profile_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_device_profile_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListDeviceProfilesResponse) String() string {
@ -1530,7 +1552,7 @@ func (*ListDeviceProfilesResponse) ProtoMessage() {}
func (x *ListDeviceProfilesResponse) ProtoReflect() protoreflect.Message {
mi := &file_api_device_profile_proto_msgTypes[10]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1572,9 +1594,11 @@ type ListDeviceProfileAdrAlgorithmsResponse struct {
func (x *ListDeviceProfileAdrAlgorithmsResponse) Reset() {
*x = ListDeviceProfileAdrAlgorithmsResponse{}
mi := &file_api_device_profile_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_device_profile_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListDeviceProfileAdrAlgorithmsResponse) String() string {
@ -1585,7 +1609,7 @@ func (*ListDeviceProfileAdrAlgorithmsResponse) ProtoMessage() {}
func (x *ListDeviceProfileAdrAlgorithmsResponse) ProtoReflect() protoreflect.Message {
mi := &file_api_device_profile_proto_msgTypes[11]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1627,9 +1651,11 @@ type AdrAlgorithmListItem struct {
func (x *AdrAlgorithmListItem) Reset() {
*x = AdrAlgorithmListItem{}
mi := &file_api_device_profile_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_device_profile_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AdrAlgorithmListItem) String() string {
@ -1640,7 +1666,7 @@ func (*AdrAlgorithmListItem) ProtoMessage() {}
func (x *AdrAlgorithmListItem) ProtoReflect() protoreflect.Message {
mi := &file_api_device_profile_proto_msgTypes[12]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -2055,7 +2081,7 @@ func file_api_device_profile_proto_rawDescGZIP() []byte {
var file_api_device_profile_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
var file_api_device_profile_proto_msgTypes = make([]protoimpl.MessageInfo, 15)
var file_api_device_profile_proto_goTypes = []any{
var file_api_device_profile_proto_goTypes = []interface{}{
(CodecRuntime)(0), // 0: api.CodecRuntime
(MeasurementKind)(0), // 1: api.MeasurementKind
(CadPeriodicity)(0), // 2: api.CadPeriodicity
@ -2130,6 +2156,164 @@ func file_api_device_profile_proto_init() {
if File_api_device_profile_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_api_device_profile_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeviceProfile); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_device_profile_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Measurement); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_device_profile_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeviceProfileListItem); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_device_profile_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CreateDeviceProfileRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_device_profile_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CreateDeviceProfileResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_device_profile_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetDeviceProfileRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_device_profile_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetDeviceProfileResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_device_profile_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UpdateDeviceProfileRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_device_profile_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeleteDeviceProfileRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_device_profile_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListDeviceProfilesRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_device_profile_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListDeviceProfilesResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_device_profile_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListDeviceProfileAdrAlgorithmsResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_device_profile_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AdrAlgorithmListItem); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{

View File

@ -1,7 +1,7 @@
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.3.0
// - protoc v5.28.3
// - protoc v4.24.4
// source: api/device_profile.proto
package api

View File

@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.35.1
// protoc v5.28.3
// protoc-gen-go v1.34.1
// protoc v4.24.4
// source: api/device_profile_template.proto
package api
@ -105,9 +105,11 @@ type DeviceProfileTemplate struct {
func (x *DeviceProfileTemplate) Reset() {
*x = DeviceProfileTemplate{}
mi := &file_api_device_profile_template_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_device_profile_template_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeviceProfileTemplate) String() string {
@ -118,7 +120,7 @@ func (*DeviceProfileTemplate) ProtoMessage() {}
func (x *DeviceProfileTemplate) ProtoReflect() protoreflect.Message {
mi := &file_api_device_profile_template_proto_msgTypes[0]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -369,9 +371,11 @@ type DeviceProfileTemplateListItem struct {
func (x *DeviceProfileTemplateListItem) Reset() {
*x = DeviceProfileTemplateListItem{}
mi := &file_api_device_profile_template_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_device_profile_template_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeviceProfileTemplateListItem) String() string {
@ -382,7 +386,7 @@ func (*DeviceProfileTemplateListItem) ProtoMessage() {}
func (x *DeviceProfileTemplateListItem) ProtoReflect() protoreflect.Message {
mi := &file_api_device_profile_template_proto_msgTypes[1]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -492,9 +496,11 @@ type CreateDeviceProfileTemplateRequest struct {
func (x *CreateDeviceProfileTemplateRequest) Reset() {
*x = CreateDeviceProfileTemplateRequest{}
mi := &file_api_device_profile_template_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_device_profile_template_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CreateDeviceProfileTemplateRequest) String() string {
@ -505,7 +511,7 @@ func (*CreateDeviceProfileTemplateRequest) ProtoMessage() {}
func (x *CreateDeviceProfileTemplateRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_device_profile_template_proto_msgTypes[2]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -538,9 +544,11 @@ type GetDeviceProfileTemplateRequest struct {
func (x *GetDeviceProfileTemplateRequest) Reset() {
*x = GetDeviceProfileTemplateRequest{}
mi := &file_api_device_profile_template_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_device_profile_template_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetDeviceProfileTemplateRequest) String() string {
@ -551,7 +559,7 @@ func (*GetDeviceProfileTemplateRequest) ProtoMessage() {}
func (x *GetDeviceProfileTemplateRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_device_profile_template_proto_msgTypes[3]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -588,9 +596,11 @@ type GetDeviceProfileTemplateResponse struct {
func (x *GetDeviceProfileTemplateResponse) Reset() {
*x = GetDeviceProfileTemplateResponse{}
mi := &file_api_device_profile_template_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_device_profile_template_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetDeviceProfileTemplateResponse) String() string {
@ -601,7 +611,7 @@ func (*GetDeviceProfileTemplateResponse) ProtoMessage() {}
func (x *GetDeviceProfileTemplateResponse) ProtoReflect() protoreflect.Message {
mi := &file_api_device_profile_template_proto_msgTypes[4]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -648,9 +658,11 @@ type UpdateDeviceProfileTemplateRequest struct {
func (x *UpdateDeviceProfileTemplateRequest) Reset() {
*x = UpdateDeviceProfileTemplateRequest{}
mi := &file_api_device_profile_template_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_device_profile_template_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UpdateDeviceProfileTemplateRequest) String() string {
@ -661,7 +673,7 @@ func (*UpdateDeviceProfileTemplateRequest) ProtoMessage() {}
func (x *UpdateDeviceProfileTemplateRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_device_profile_template_proto_msgTypes[5]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -694,9 +706,11 @@ type DeleteDeviceProfileTemplateRequest struct {
func (x *DeleteDeviceProfileTemplateRequest) Reset() {
*x = DeleteDeviceProfileTemplateRequest{}
mi := &file_api_device_profile_template_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_device_profile_template_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeleteDeviceProfileTemplateRequest) String() string {
@ -707,7 +721,7 @@ func (*DeleteDeviceProfileTemplateRequest) ProtoMessage() {}
func (x *DeleteDeviceProfileTemplateRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_device_profile_template_proto_msgTypes[6]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -742,9 +756,11 @@ type ListDeviceProfileTemplatesRequest struct {
func (x *ListDeviceProfileTemplatesRequest) Reset() {
*x = ListDeviceProfileTemplatesRequest{}
mi := &file_api_device_profile_template_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_device_profile_template_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListDeviceProfileTemplatesRequest) String() string {
@ -755,7 +771,7 @@ func (*ListDeviceProfileTemplatesRequest) ProtoMessage() {}
func (x *ListDeviceProfileTemplatesRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_device_profile_template_proto_msgTypes[7]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -797,9 +813,11 @@ type ListDeviceProfileTemplatesResponse struct {
func (x *ListDeviceProfileTemplatesResponse) Reset() {
*x = ListDeviceProfileTemplatesResponse{}
mi := &file_api_device_profile_template_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_device_profile_template_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListDeviceProfileTemplatesResponse) String() string {
@ -810,7 +828,7 @@ func (*ListDeviceProfileTemplatesResponse) ProtoMessage() {}
func (x *ListDeviceProfileTemplatesResponse) ProtoReflect() protoreflect.Message {
mi := &file_api_device_profile_template_proto_msgTypes[8]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1096,7 +1114,7 @@ func file_api_device_profile_template_proto_rawDescGZIP() []byte {
}
var file_api_device_profile_template_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
var file_api_device_profile_template_proto_goTypes = []any{
var file_api_device_profile_template_proto_goTypes = []interface{}{
(*DeviceProfileTemplate)(nil), // 0: api.DeviceProfileTemplate
(*DeviceProfileTemplateListItem)(nil), // 1: api.DeviceProfileTemplateListItem
(*CreateDeviceProfileTemplateRequest)(nil), // 2: api.CreateDeviceProfileTemplateRequest
@ -1158,6 +1176,116 @@ func file_api_device_profile_template_proto_init() {
return
}
file_api_device_profile_proto_init()
if !protoimpl.UnsafeEnabled {
file_api_device_profile_template_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeviceProfileTemplate); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_device_profile_template_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeviceProfileTemplateListItem); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_device_profile_template_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CreateDeviceProfileTemplateRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_device_profile_template_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetDeviceProfileTemplateRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_device_profile_template_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetDeviceProfileTemplateResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_device_profile_template_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UpdateDeviceProfileTemplateRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_device_profile_template_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeleteDeviceProfileTemplateRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_device_profile_template_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListDeviceProfileTemplatesRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_device_profile_template_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListDeviceProfileTemplatesResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{

View File

@ -1,7 +1,7 @@
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.3.0
// - protoc v5.28.3
// - protoc v4.24.4
// source: api/device_profile_template.proto
package api

View File

@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.35.1
// protoc v5.28.3
// protoc-gen-go v1.34.1
// protoc v4.24.4
// source: api/gateway.proto
package api
@ -103,9 +103,11 @@ type Gateway struct {
func (x *Gateway) Reset() {
*x = Gateway{}
mi := &file_api_gateway_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_gateway_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Gateway) String() string {
@ -116,7 +118,7 @@ func (*Gateway) ProtoMessage() {}
func (x *Gateway) ProtoReflect() protoreflect.Message {
mi := &file_api_gateway_proto_msgTypes[0]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -218,9 +220,11 @@ type GatewayListItem struct {
func (x *GatewayListItem) Reset() {
*x = GatewayListItem{}
mi := &file_api_gateway_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_gateway_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GatewayListItem) String() string {
@ -231,7 +235,7 @@ func (*GatewayListItem) ProtoMessage() {}
func (x *GatewayListItem) ProtoReflect() protoreflect.Message {
mi := &file_api_gateway_proto_msgTypes[1]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -327,9 +331,11 @@ type CreateGatewayRequest struct {
func (x *CreateGatewayRequest) Reset() {
*x = CreateGatewayRequest{}
mi := &file_api_gateway_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_gateway_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CreateGatewayRequest) String() string {
@ -340,7 +346,7 @@ func (*CreateGatewayRequest) ProtoMessage() {}
func (x *CreateGatewayRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_gateway_proto_msgTypes[2]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -373,9 +379,11 @@ type GetGatewayRequest struct {
func (x *GetGatewayRequest) Reset() {
*x = GetGatewayRequest{}
mi := &file_api_gateway_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_gateway_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetGatewayRequest) String() string {
@ -386,7 +394,7 @@ func (*GetGatewayRequest) ProtoMessage() {}
func (x *GetGatewayRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_gateway_proto_msgTypes[3]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -425,9 +433,11 @@ type GetGatewayResponse struct {
func (x *GetGatewayResponse) Reset() {
*x = GetGatewayResponse{}
mi := &file_api_gateway_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_gateway_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetGatewayResponse) String() string {
@ -438,7 +448,7 @@ func (*GetGatewayResponse) ProtoMessage() {}
func (x *GetGatewayResponse) ProtoReflect() protoreflect.Message {
mi := &file_api_gateway_proto_msgTypes[4]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -492,9 +502,11 @@ type UpdateGatewayRequest struct {
func (x *UpdateGatewayRequest) Reset() {
*x = UpdateGatewayRequest{}
mi := &file_api_gateway_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_gateway_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UpdateGatewayRequest) String() string {
@ -505,7 +517,7 @@ func (*UpdateGatewayRequest) ProtoMessage() {}
func (x *UpdateGatewayRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_gateway_proto_msgTypes[5]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -538,9 +550,11 @@ type DeleteGatewayRequest struct {
func (x *DeleteGatewayRequest) Reset() {
*x = DeleteGatewayRequest{}
mi := &file_api_gateway_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_gateway_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeleteGatewayRequest) String() string {
@ -551,7 +565,7 @@ func (*DeleteGatewayRequest) ProtoMessage() {}
func (x *DeleteGatewayRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_gateway_proto_msgTypes[6]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -593,9 +607,11 @@ type ListGatewaysRequest struct {
func (x *ListGatewaysRequest) Reset() {
*x = ListGatewaysRequest{}
mi := &file_api_gateway_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_gateway_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListGatewaysRequest) String() string {
@ -606,7 +622,7 @@ func (*ListGatewaysRequest) ProtoMessage() {}
func (x *ListGatewaysRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_gateway_proto_msgTypes[7]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -669,9 +685,11 @@ type ListGatewaysResponse struct {
func (x *ListGatewaysResponse) Reset() {
*x = ListGatewaysResponse{}
mi := &file_api_gateway_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_gateway_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListGatewaysResponse) String() string {
@ -682,7 +700,7 @@ func (*ListGatewaysResponse) ProtoMessage() {}
func (x *ListGatewaysResponse) ProtoReflect() protoreflect.Message {
mi := &file_api_gateway_proto_msgTypes[8]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -722,9 +740,11 @@ type GenerateGatewayClientCertificateRequest struct {
func (x *GenerateGatewayClientCertificateRequest) Reset() {
*x = GenerateGatewayClientCertificateRequest{}
mi := &file_api_gateway_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_gateway_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GenerateGatewayClientCertificateRequest) String() string {
@ -735,7 +755,7 @@ func (*GenerateGatewayClientCertificateRequest) ProtoMessage() {}
func (x *GenerateGatewayClientCertificateRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_gateway_proto_msgTypes[9]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -774,9 +794,11 @@ type GenerateGatewayClientCertificateResponse struct {
func (x *GenerateGatewayClientCertificateResponse) Reset() {
*x = GenerateGatewayClientCertificateResponse{}
mi := &file_api_gateway_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_gateway_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GenerateGatewayClientCertificateResponse) String() string {
@ -787,7 +809,7 @@ func (*GenerateGatewayClientCertificateResponse) ProtoMessage() {}
func (x *GenerateGatewayClientCertificateResponse) ProtoReflect() protoreflect.Message {
mi := &file_api_gateway_proto_msgTypes[10]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -847,9 +869,11 @@ type GetGatewayMetricsRequest struct {
func (x *GetGatewayMetricsRequest) Reset() {
*x = GetGatewayMetricsRequest{}
mi := &file_api_gateway_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_gateway_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetGatewayMetricsRequest) String() string {
@ -860,7 +884,7 @@ func (*GetGatewayMetricsRequest) ProtoMessage() {}
func (x *GetGatewayMetricsRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_gateway_proto_msgTypes[11]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -926,9 +950,11 @@ type GetGatewayMetricsResponse struct {
func (x *GetGatewayMetricsResponse) Reset() {
*x = GetGatewayMetricsResponse{}
mi := &file_api_gateway_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_gateway_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetGatewayMetricsResponse) String() string {
@ -939,7 +965,7 @@ func (*GetGatewayMetricsResponse) ProtoMessage() {}
func (x *GetGatewayMetricsResponse) ProtoReflect() protoreflect.Message {
mi := &file_api_gateway_proto_msgTypes[12]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1018,9 +1044,11 @@ type GetGatewayDutyCycleMetricsRequest struct {
func (x *GetGatewayDutyCycleMetricsRequest) Reset() {
*x = GetGatewayDutyCycleMetricsRequest{}
mi := &file_api_gateway_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_gateway_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetGatewayDutyCycleMetricsRequest) String() string {
@ -1031,7 +1059,7 @@ func (*GetGatewayDutyCycleMetricsRequest) ProtoMessage() {}
func (x *GetGatewayDutyCycleMetricsRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_gateway_proto_msgTypes[13]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1080,9 +1108,11 @@ type GetGatewayDutyCycleMetricsResponse struct {
func (x *GetGatewayDutyCycleMetricsResponse) Reset() {
*x = GetGatewayDutyCycleMetricsResponse{}
mi := &file_api_gateway_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_gateway_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetGatewayDutyCycleMetricsResponse) String() string {
@ -1093,7 +1123,7 @@ func (*GetGatewayDutyCycleMetricsResponse) ProtoMessage() {}
func (x *GetGatewayDutyCycleMetricsResponse) ProtoReflect() protoreflect.Message {
mi := &file_api_gateway_proto_msgTypes[14]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1135,9 +1165,11 @@ type GetRelayGatewayRequest struct {
func (x *GetRelayGatewayRequest) Reset() {
*x = GetRelayGatewayRequest{}
mi := &file_api_gateway_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_gateway_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetRelayGatewayRequest) String() string {
@ -1148,7 +1180,7 @@ func (*GetRelayGatewayRequest) ProtoMessage() {}
func (x *GetRelayGatewayRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_gateway_proto_msgTypes[15]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1194,9 +1226,11 @@ type GetRelayGatewayResponse struct {
func (x *GetRelayGatewayResponse) Reset() {
*x = GetRelayGatewayResponse{}
mi := &file_api_gateway_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_gateway_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetRelayGatewayResponse) String() string {
@ -1207,7 +1241,7 @@ func (*GetRelayGatewayResponse) ProtoMessage() {}
func (x *GetRelayGatewayResponse) ProtoReflect() protoreflect.Message {
mi := &file_api_gateway_proto_msgTypes[16]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1266,9 +1300,11 @@ type ListRelayGatewaysRequest struct {
func (x *ListRelayGatewaysRequest) Reset() {
*x = ListRelayGatewaysRequest{}
mi := &file_api_gateway_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_gateway_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListRelayGatewaysRequest) String() string {
@ -1279,7 +1315,7 @@ func (*ListRelayGatewaysRequest) ProtoMessage() {}
func (x *ListRelayGatewaysRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_gateway_proto_msgTypes[17]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1328,9 +1364,11 @@ type ListRelayGatewaysResponse struct {
func (x *ListRelayGatewaysResponse) Reset() {
*x = ListRelayGatewaysResponse{}
mi := &file_api_gateway_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_gateway_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListRelayGatewaysResponse) String() string {
@ -1341,7 +1379,7 @@ func (*ListRelayGatewaysResponse) ProtoMessage() {}
func (x *ListRelayGatewaysResponse) ProtoReflect() protoreflect.Message {
mi := &file_api_gateway_proto_msgTypes[18]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1399,9 +1437,11 @@ type RelayGatewayListItem struct {
func (x *RelayGatewayListItem) Reset() {
*x = RelayGatewayListItem{}
mi := &file_api_gateway_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_gateway_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RelayGatewayListItem) String() string {
@ -1412,7 +1452,7 @@ func (*RelayGatewayListItem) ProtoMessage() {}
func (x *RelayGatewayListItem) ProtoReflect() protoreflect.Message {
mi := &file_api_gateway_proto_msgTypes[19]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1501,9 +1541,11 @@ type UpdateRelayGatewayRequest struct {
func (x *UpdateRelayGatewayRequest) Reset() {
*x = UpdateRelayGatewayRequest{}
mi := &file_api_gateway_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_gateway_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UpdateRelayGatewayRequest) String() string {
@ -1514,7 +1556,7 @@ func (*UpdateRelayGatewayRequest) ProtoMessage() {}
func (x *UpdateRelayGatewayRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_gateway_proto_msgTypes[20]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1549,9 +1591,11 @@ type DeleteRelayGatewayRequest struct {
func (x *DeleteRelayGatewayRequest) Reset() {
*x = DeleteRelayGatewayRequest{}
mi := &file_api_gateway_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_gateway_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeleteRelayGatewayRequest) String() string {
@ -1562,7 +1606,7 @@ func (*DeleteRelayGatewayRequest) ProtoMessage() {}
func (x *DeleteRelayGatewayRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_gateway_proto_msgTypes[21]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1614,9 +1658,11 @@ type RelayGateway struct {
func (x *RelayGateway) Reset() {
*x = RelayGateway{}
mi := &file_api_gateway_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_gateway_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RelayGateway) String() string {
@ -1627,7 +1673,7 @@ func (*RelayGateway) ProtoMessage() {}
func (x *RelayGateway) ProtoReflect() protoreflect.Message {
mi := &file_api_gateway_proto_msgTypes[22]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -2088,7 +2134,7 @@ func file_api_gateway_proto_rawDescGZIP() []byte {
var file_api_gateway_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_api_gateway_proto_msgTypes = make([]protoimpl.MessageInfo, 26)
var file_api_gateway_proto_goTypes = []any{
var file_api_gateway_proto_goTypes = []interface{}{
(GatewayState)(0), // 0: api.GatewayState
(*Gateway)(nil), // 1: api.Gateway
(*GatewayListItem)(nil), // 2: api.GatewayListItem
@ -2200,6 +2246,284 @@ func file_api_gateway_proto_init() {
if File_api_gateway_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_api_gateway_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Gateway); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_gateway_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GatewayListItem); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_gateway_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CreateGatewayRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_gateway_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetGatewayRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_gateway_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetGatewayResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_gateway_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UpdateGatewayRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_gateway_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeleteGatewayRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_gateway_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListGatewaysRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_gateway_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListGatewaysResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_gateway_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GenerateGatewayClientCertificateRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_gateway_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GenerateGatewayClientCertificateResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_gateway_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetGatewayMetricsRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_gateway_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetGatewayMetricsResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_gateway_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetGatewayDutyCycleMetricsRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_gateway_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetGatewayDutyCycleMetricsResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_gateway_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetRelayGatewayRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_gateway_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetRelayGatewayResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_gateway_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListRelayGatewaysRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_gateway_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListRelayGatewaysResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_gateway_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RelayGatewayListItem); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_gateway_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UpdateRelayGatewayRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_gateway_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeleteRelayGatewayRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_gateway_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RelayGateway); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{

View File

@ -1,7 +1,7 @@
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.3.0
// - protoc v5.28.3
// - protoc v4.24.4
// source: api/gateway.proto
package api

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.3.0
// - protoc v5.28.3
// - protoc v4.24.4
// source: api/internal.proto
package api

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.3.0
// - protoc v5.28.3
// - protoc v4.24.4
// source: api/multicast_group.proto
package api

184
api/go/api/relay.pb.go vendored
View File

@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.35.1
// protoc v5.28.3
// protoc-gen-go v1.34.1
// protoc v4.24.4
// source: api/relay.proto
package api
@ -36,9 +36,11 @@ type RelayListItem struct {
func (x *RelayListItem) Reset() {
*x = RelayListItem{}
mi := &file_api_relay_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_relay_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RelayListItem) String() string {
@ -49,7 +51,7 @@ func (*RelayListItem) ProtoMessage() {}
func (x *RelayListItem) ProtoReflect() protoreflect.Message {
mi := &file_api_relay_proto_msgTypes[0]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -93,9 +95,11 @@ type ListRelaysRequest struct {
func (x *ListRelaysRequest) Reset() {
*x = ListRelaysRequest{}
mi := &file_api_relay_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_relay_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListRelaysRequest) String() string {
@ -106,7 +110,7 @@ func (*ListRelaysRequest) ProtoMessage() {}
func (x *ListRelaysRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_relay_proto_msgTypes[1]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -155,9 +159,11 @@ type ListRelaysResponse struct {
func (x *ListRelaysResponse) Reset() {
*x = ListRelaysResponse{}
mi := &file_api_relay_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_relay_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListRelaysResponse) String() string {
@ -168,7 +174,7 @@ func (*ListRelaysResponse) ProtoMessage() {}
func (x *ListRelaysResponse) ProtoReflect() protoreflect.Message {
mi := &file_api_relay_proto_msgTypes[2]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -210,9 +216,11 @@ type AddRelayDeviceRequest struct {
func (x *AddRelayDeviceRequest) Reset() {
*x = AddRelayDeviceRequest{}
mi := &file_api_relay_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_relay_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AddRelayDeviceRequest) String() string {
@ -223,7 +231,7 @@ func (*AddRelayDeviceRequest) ProtoMessage() {}
func (x *AddRelayDeviceRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_relay_proto_msgTypes[3]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -265,9 +273,11 @@ type RemoveRelayDeviceRequest struct {
func (x *RemoveRelayDeviceRequest) Reset() {
*x = RemoveRelayDeviceRequest{}
mi := &file_api_relay_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_relay_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RemoveRelayDeviceRequest) String() string {
@ -278,7 +288,7 @@ func (*RemoveRelayDeviceRequest) ProtoMessage() {}
func (x *RemoveRelayDeviceRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_relay_proto_msgTypes[4]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -322,9 +332,11 @@ type ListRelayDevicesRequest struct {
func (x *ListRelayDevicesRequest) Reset() {
*x = ListRelayDevicesRequest{}
mi := &file_api_relay_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_relay_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListRelayDevicesRequest) String() string {
@ -335,7 +347,7 @@ func (*ListRelayDevicesRequest) ProtoMessage() {}
func (x *ListRelayDevicesRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_relay_proto_msgTypes[5]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -386,9 +398,11 @@ type RelayDeviceListItem struct {
func (x *RelayDeviceListItem) Reset() {
*x = RelayDeviceListItem{}
mi := &file_api_relay_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_relay_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RelayDeviceListItem) String() string {
@ -399,7 +413,7 @@ func (*RelayDeviceListItem) ProtoMessage() {}
func (x *RelayDeviceListItem) ProtoReflect() protoreflect.Message {
mi := &file_api_relay_proto_msgTypes[6]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -448,9 +462,11 @@ type ListRelayDevicesResponse struct {
func (x *ListRelayDevicesResponse) Reset() {
*x = ListRelayDevicesResponse{}
mi := &file_api_relay_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_relay_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListRelayDevicesResponse) String() string {
@ -461,7 +477,7 @@ func (*ListRelayDevicesResponse) ProtoMessage() {}
func (x *ListRelayDevicesResponse) ProtoReflect() protoreflect.Message {
mi := &file_api_relay_proto_msgTypes[7]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -605,7 +621,7 @@ func file_api_relay_proto_rawDescGZIP() []byte {
}
var file_api_relay_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
var file_api_relay_proto_goTypes = []any{
var file_api_relay_proto_goTypes = []interface{}{
(*RelayListItem)(nil), // 0: api.RelayListItem
(*ListRelaysRequest)(nil), // 1: api.ListRelaysRequest
(*ListRelaysResponse)(nil), // 2: api.ListRelaysResponse
@ -641,6 +657,104 @@ func file_api_relay_proto_init() {
if File_api_relay_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_api_relay_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RelayListItem); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_relay_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListRelaysRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_relay_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListRelaysResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_relay_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AddRelayDeviceRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_relay_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RemoveRelayDeviceRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_relay_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListRelayDevicesRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_relay_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RelayDeviceListItem); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_relay_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListRelayDevicesResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{

View File

@ -1,7 +1,7 @@
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.3.0
// - protoc v5.28.3
// - protoc v4.24.4
// source: api/relay.proto
package api

View File

@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.35.1
// protoc v5.28.3
// protoc-gen-go v1.34.1
// protoc v4.24.4
// source: api/tenant.proto
package api
@ -60,9 +60,11 @@ type Tenant struct {
func (x *Tenant) Reset() {
*x = Tenant{}
mi := &file_api_tenant_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_tenant_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Tenant) String() string {
@ -73,7 +75,7 @@ func (*Tenant) ProtoMessage() {}
func (x *Tenant) ProtoReflect() protoreflect.Message {
mi := &file_api_tenant_proto_msgTypes[0]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -180,9 +182,11 @@ type TenantListItem struct {
func (x *TenantListItem) Reset() {
*x = TenantListItem{}
mi := &file_api_tenant_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_tenant_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TenantListItem) String() string {
@ -193,7 +197,7 @@ func (*TenantListItem) ProtoMessage() {}
func (x *TenantListItem) ProtoReflect() protoreflect.Message {
mi := &file_api_tenant_proto_msgTypes[1]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -282,9 +286,11 @@ type CreateTenantRequest struct {
func (x *CreateTenantRequest) Reset() {
*x = CreateTenantRequest{}
mi := &file_api_tenant_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_tenant_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CreateTenantRequest) String() string {
@ -295,7 +301,7 @@ func (*CreateTenantRequest) ProtoMessage() {}
func (x *CreateTenantRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_tenant_proto_msgTypes[2]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -328,9 +334,11 @@ type CreateTenantResponse struct {
func (x *CreateTenantResponse) Reset() {
*x = CreateTenantResponse{}
mi := &file_api_tenant_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_tenant_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CreateTenantResponse) String() string {
@ -341,7 +349,7 @@ func (*CreateTenantResponse) ProtoMessage() {}
func (x *CreateTenantResponse) ProtoReflect() protoreflect.Message {
mi := &file_api_tenant_proto_msgTypes[3]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -374,9 +382,11 @@ type GetTenantRequest struct {
func (x *GetTenantRequest) Reset() {
*x = GetTenantRequest{}
mi := &file_api_tenant_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_tenant_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetTenantRequest) String() string {
@ -387,7 +397,7 @@ func (*GetTenantRequest) ProtoMessage() {}
func (x *GetTenantRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_tenant_proto_msgTypes[4]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -424,9 +434,11 @@ type GetTenantResponse struct {
func (x *GetTenantResponse) Reset() {
*x = GetTenantResponse{}
mi := &file_api_tenant_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_tenant_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetTenantResponse) String() string {
@ -437,7 +449,7 @@ func (*GetTenantResponse) ProtoMessage() {}
func (x *GetTenantResponse) ProtoReflect() protoreflect.Message {
mi := &file_api_tenant_proto_msgTypes[5]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -484,9 +496,11 @@ type UpdateTenantRequest struct {
func (x *UpdateTenantRequest) Reset() {
*x = UpdateTenantRequest{}
mi := &file_api_tenant_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_tenant_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UpdateTenantRequest) String() string {
@ -497,7 +511,7 @@ func (*UpdateTenantRequest) ProtoMessage() {}
func (x *UpdateTenantRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_tenant_proto_msgTypes[6]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -530,9 +544,11 @@ type DeleteTenantRequest struct {
func (x *DeleteTenantRequest) Reset() {
*x = DeleteTenantRequest{}
mi := &file_api_tenant_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_tenant_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeleteTenantRequest) String() string {
@ -543,7 +559,7 @@ func (*DeleteTenantRequest) ProtoMessage() {}
func (x *DeleteTenantRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_tenant_proto_msgTypes[7]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -583,9 +599,11 @@ type ListTenantsRequest struct {
func (x *ListTenantsRequest) Reset() {
*x = ListTenantsRequest{}
mi := &file_api_tenant_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_tenant_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListTenantsRequest) String() string {
@ -596,7 +614,7 @@ func (*ListTenantsRequest) ProtoMessage() {}
func (x *ListTenantsRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_tenant_proto_msgTypes[8]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -652,9 +670,11 @@ type ListTenantsResponse struct {
func (x *ListTenantsResponse) Reset() {
*x = ListTenantsResponse{}
mi := &file_api_tenant_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_tenant_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListTenantsResponse) String() string {
@ -665,7 +685,7 @@ func (*ListTenantsResponse) ProtoMessage() {}
func (x *ListTenantsResponse) ProtoReflect() protoreflect.Message {
mi := &file_api_tenant_proto_msgTypes[9]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -717,9 +737,11 @@ type TenantUser struct {
func (x *TenantUser) Reset() {
*x = TenantUser{}
mi := &file_api_tenant_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_tenant_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TenantUser) String() string {
@ -730,7 +752,7 @@ func (*TenantUser) ProtoMessage() {}
func (x *TenantUser) ProtoReflect() protoreflect.Message {
mi := &file_api_tenant_proto_msgTypes[10]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -814,9 +836,11 @@ type TenantUserListItem struct {
func (x *TenantUserListItem) Reset() {
*x = TenantUserListItem{}
mi := &file_api_tenant_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_tenant_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TenantUserListItem) String() string {
@ -827,7 +851,7 @@ func (*TenantUserListItem) ProtoMessage() {}
func (x *TenantUserListItem) ProtoReflect() protoreflect.Message {
mi := &file_api_tenant_proto_msgTypes[11]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -909,9 +933,11 @@ type AddTenantUserRequest struct {
func (x *AddTenantUserRequest) Reset() {
*x = AddTenantUserRequest{}
mi := &file_api_tenant_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_tenant_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AddTenantUserRequest) String() string {
@ -922,7 +948,7 @@ func (*AddTenantUserRequest) ProtoMessage() {}
func (x *AddTenantUserRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_tenant_proto_msgTypes[12]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -957,9 +983,11 @@ type GetTenantUserRequest struct {
func (x *GetTenantUserRequest) Reset() {
*x = GetTenantUserRequest{}
mi := &file_api_tenant_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_tenant_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetTenantUserRequest) String() string {
@ -970,7 +998,7 @@ func (*GetTenantUserRequest) ProtoMessage() {}
func (x *GetTenantUserRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_tenant_proto_msgTypes[13]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1014,9 +1042,11 @@ type GetTenantUserResponse struct {
func (x *GetTenantUserResponse) Reset() {
*x = GetTenantUserResponse{}
mi := &file_api_tenant_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_tenant_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetTenantUserResponse) String() string {
@ -1027,7 +1057,7 @@ func (*GetTenantUserResponse) ProtoMessage() {}
func (x *GetTenantUserResponse) ProtoReflect() protoreflect.Message {
mi := &file_api_tenant_proto_msgTypes[14]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1074,9 +1104,11 @@ type UpdateTenantUserRequest struct {
func (x *UpdateTenantUserRequest) Reset() {
*x = UpdateTenantUserRequest{}
mi := &file_api_tenant_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_tenant_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UpdateTenantUserRequest) String() string {
@ -1087,7 +1119,7 @@ func (*UpdateTenantUserRequest) ProtoMessage() {}
func (x *UpdateTenantUserRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_tenant_proto_msgTypes[15]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1122,9 +1154,11 @@ type DeleteTenantUserRequest struct {
func (x *DeleteTenantUserRequest) Reset() {
*x = DeleteTenantUserRequest{}
mi := &file_api_tenant_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_tenant_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeleteTenantUserRequest) String() string {
@ -1135,7 +1169,7 @@ func (*DeleteTenantUserRequest) ProtoMessage() {}
func (x *DeleteTenantUserRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_tenant_proto_msgTypes[16]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1179,9 +1213,11 @@ type ListTenantUsersRequest struct {
func (x *ListTenantUsersRequest) Reset() {
*x = ListTenantUsersRequest{}
mi := &file_api_tenant_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_tenant_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListTenantUsersRequest) String() string {
@ -1192,7 +1228,7 @@ func (*ListTenantUsersRequest) ProtoMessage() {}
func (x *ListTenantUsersRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_tenant_proto_msgTypes[17]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1241,9 +1277,11 @@ type ListTenantUsersResponse struct {
func (x *ListTenantUsersResponse) Reset() {
*x = ListTenantUsersResponse{}
mi := &file_api_tenant_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_tenant_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListTenantUsersResponse) String() string {
@ -1254,7 +1292,7 @@ func (*ListTenantUsersResponse) ProtoMessage() {}
func (x *ListTenantUsersResponse) ProtoReflect() protoreflect.Message {
mi := &file_api_tenant_proto_msgTypes[18]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1552,7 +1590,7 @@ func file_api_tenant_proto_rawDescGZIP() []byte {
}
var file_api_tenant_proto_msgTypes = make([]protoimpl.MessageInfo, 20)
var file_api_tenant_proto_goTypes = []any{
var file_api_tenant_proto_goTypes = []interface{}{
(*Tenant)(nil), // 0: api.Tenant
(*TenantListItem)(nil), // 1: api.TenantListItem
(*CreateTenantRequest)(nil), // 2: api.CreateTenantRequest
@ -1626,6 +1664,236 @@ func file_api_tenant_proto_init() {
if File_api_tenant_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_api_tenant_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Tenant); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_tenant_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TenantListItem); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_tenant_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CreateTenantRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_tenant_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CreateTenantResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_tenant_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetTenantRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_tenant_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetTenantResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_tenant_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UpdateTenantRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_tenant_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeleteTenantRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_tenant_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListTenantsRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_tenant_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListTenantsResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_tenant_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TenantUser); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_tenant_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TenantUserListItem); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_tenant_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AddTenantUserRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_tenant_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetTenantUserRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_tenant_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetTenantUserResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_tenant_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UpdateTenantUserRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_tenant_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeleteTenantUserRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_tenant_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListTenantUsersRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_tenant_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListTenantUsersResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{

View File

@ -1,7 +1,7 @@
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.3.0
// - protoc v5.28.3
// - protoc v4.24.4
// source: api/tenant.proto
package api

272
api/go/api/user.pb.go vendored
View File

@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.35.1
// protoc v5.28.3
// protoc-gen-go v1.34.1
// protoc v4.24.4
// source: api/user.proto
package api
@ -43,9 +43,11 @@ type User struct {
func (x *User) Reset() {
*x = User{}
mi := &file_api_user_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_user_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *User) String() string {
@ -56,7 +58,7 @@ func (*User) ProtoMessage() {}
func (x *User) ProtoReflect() protoreflect.Message {
mi := &file_api_user_proto_msgTypes[0]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -127,9 +129,11 @@ type UserListItem struct {
func (x *UserListItem) Reset() {
*x = UserListItem{}
mi := &file_api_user_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_user_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UserListItem) String() string {
@ -140,7 +144,7 @@ func (*UserListItem) ProtoMessage() {}
func (x *UserListItem) ProtoReflect() protoreflect.Message {
mi := &file_api_user_proto_msgTypes[1]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -216,9 +220,11 @@ type UserTenant struct {
func (x *UserTenant) Reset() {
*x = UserTenant{}
mi := &file_api_user_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_user_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UserTenant) String() string {
@ -229,7 +235,7 @@ func (*UserTenant) ProtoMessage() {}
func (x *UserTenant) ProtoReflect() protoreflect.Message {
mi := &file_api_user_proto_msgTypes[2]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -287,9 +293,11 @@ type CreateUserRequest struct {
func (x *CreateUserRequest) Reset() {
*x = CreateUserRequest{}
mi := &file_api_user_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_user_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CreateUserRequest) String() string {
@ -300,7 +308,7 @@ func (*CreateUserRequest) ProtoMessage() {}
func (x *CreateUserRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_user_proto_msgTypes[3]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -347,9 +355,11 @@ type CreateUserResponse struct {
func (x *CreateUserResponse) Reset() {
*x = CreateUserResponse{}
mi := &file_api_user_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_user_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CreateUserResponse) String() string {
@ -360,7 +370,7 @@ func (*CreateUserResponse) ProtoMessage() {}
func (x *CreateUserResponse) ProtoReflect() protoreflect.Message {
mi := &file_api_user_proto_msgTypes[4]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -393,9 +403,11 @@ type GetUserRequest struct {
func (x *GetUserRequest) Reset() {
*x = GetUserRequest{}
mi := &file_api_user_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_user_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetUserRequest) String() string {
@ -406,7 +418,7 @@ func (*GetUserRequest) ProtoMessage() {}
func (x *GetUserRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_user_proto_msgTypes[5]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -443,9 +455,11 @@ type GetUserResponse struct {
func (x *GetUserResponse) Reset() {
*x = GetUserResponse{}
mi := &file_api_user_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_user_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetUserResponse) String() string {
@ -456,7 +470,7 @@ func (*GetUserResponse) ProtoMessage() {}
func (x *GetUserResponse) ProtoReflect() protoreflect.Message {
mi := &file_api_user_proto_msgTypes[6]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -503,9 +517,11 @@ type UpdateUserRequest struct {
func (x *UpdateUserRequest) Reset() {
*x = UpdateUserRequest{}
mi := &file_api_user_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_user_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UpdateUserRequest) String() string {
@ -516,7 +532,7 @@ func (*UpdateUserRequest) ProtoMessage() {}
func (x *UpdateUserRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_user_proto_msgTypes[7]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -549,9 +565,11 @@ type DeleteUserRequest struct {
func (x *DeleteUserRequest) Reset() {
*x = DeleteUserRequest{}
mi := &file_api_user_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_user_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeleteUserRequest) String() string {
@ -562,7 +580,7 @@ func (*DeleteUserRequest) ProtoMessage() {}
func (x *DeleteUserRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_user_proto_msgTypes[8]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -597,9 +615,11 @@ type ListUsersRequest struct {
func (x *ListUsersRequest) Reset() {
*x = ListUsersRequest{}
mi := &file_api_user_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_user_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListUsersRequest) String() string {
@ -610,7 +630,7 @@ func (*ListUsersRequest) ProtoMessage() {}
func (x *ListUsersRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_user_proto_msgTypes[9]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -652,9 +672,11 @@ type ListUsersResponse struct {
func (x *ListUsersResponse) Reset() {
*x = ListUsersResponse{}
mi := &file_api_user_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_user_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListUsersResponse) String() string {
@ -665,7 +687,7 @@ func (*ListUsersResponse) ProtoMessage() {}
func (x *ListUsersResponse) ProtoReflect() protoreflect.Message {
mi := &file_api_user_proto_msgTypes[10]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -707,9 +729,11 @@ type UpdateUserPasswordRequest struct {
func (x *UpdateUserPasswordRequest) Reset() {
*x = UpdateUserPasswordRequest{}
mi := &file_api_user_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_api_user_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UpdateUserPasswordRequest) String() string {
@ -720,7 +744,7 @@ func (*UpdateUserPasswordRequest) ProtoMessage() {}
func (x *UpdateUserPasswordRequest) ProtoReflect() protoreflect.Message {
mi := &file_api_user_proto_msgTypes[11]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -893,7 +917,7 @@ func file_api_user_proto_rawDescGZIP() []byte {
}
var file_api_user_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
var file_api_user_proto_goTypes = []any{
var file_api_user_proto_goTypes = []interface{}{
(*User)(nil), // 0: api.User
(*UserListItem)(nil), // 1: api.UserListItem
(*UserTenant)(nil), // 2: api.UserTenant
@ -943,6 +967,152 @@ func file_api_user_proto_init() {
if File_api_user_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_api_user_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*User); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_user_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserListItem); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_user_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserTenant); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_user_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CreateUserRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_user_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CreateUserResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_user_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetUserRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_user_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetUserResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_user_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UpdateUserRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_user_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeleteUserRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_user_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListUsersRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_user_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListUsersResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_user_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UpdateUserPasswordRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{

View File

@ -1,7 +1,7 @@
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.3.0
// - protoc v5.28.3
// - protoc v4.24.4
// source: api/user.proto
package api

View File

@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.35.1
// protoc v5.28.3
// protoc-gen-go v1.34.1
// protoc v4.24.4
// source: common/common.proto
package common
@ -656,9 +656,11 @@ type Location struct {
func (x *Location) Reset() {
*x = Location{}
mi := &file_common_common_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_common_common_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Location) String() string {
@ -669,7 +671,7 @@ func (*Location) ProtoMessage() {}
func (x *Location) ProtoReflect() protoreflect.Message {
mi := &file_common_common_proto_msgTypes[0]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -732,9 +734,11 @@ type KeyEnvelope struct {
func (x *KeyEnvelope) Reset() {
*x = KeyEnvelope{}
mi := &file_common_common_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_common_common_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *KeyEnvelope) String() string {
@ -745,7 +749,7 @@ func (*KeyEnvelope) ProtoMessage() {}
func (x *KeyEnvelope) ProtoReflect() protoreflect.Message {
mi := &file_common_common_proto_msgTypes[1]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -791,9 +795,11 @@ type Metric struct {
func (x *Metric) Reset() {
*x = Metric{}
mi := &file_common_common_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_common_common_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Metric) String() string {
@ -804,7 +810,7 @@ func (*Metric) ProtoMessage() {}
func (x *Metric) ProtoReflect() protoreflect.Message {
mi := &file_common_common_proto_msgTypes[2]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -861,9 +867,11 @@ type MetricDataset struct {
func (x *MetricDataset) Reset() {
*x = MetricDataset{}
mi := &file_common_common_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_common_common_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MetricDataset) String() string {
@ -874,7 +882,7 @@ func (*MetricDataset) ProtoMessage() {}
func (x *MetricDataset) ProtoReflect() protoreflect.Message {
mi := &file_common_common_proto_msgTypes[3]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -917,9 +925,11 @@ type JoinServerContext struct {
func (x *JoinServerContext) Reset() {
*x = JoinServerContext{}
mi := &file_common_common_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_common_common_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *JoinServerContext) String() string {
@ -930,7 +940,7 @@ func (*JoinServerContext) ProtoMessage() {}
func (x *JoinServerContext) ProtoReflect() protoreflect.Message {
mi := &file_common_common_proto_msgTypes[4]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1093,7 +1103,7 @@ func file_common_common_proto_rawDescGZIP() []byte {
var file_common_common_proto_enumTypes = make([]protoimpl.EnumInfo, 10)
var file_common_common_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
var file_common_common_proto_goTypes = []any{
var file_common_common_proto_goTypes = []interface{}{
(Modulation)(0), // 0: common.Modulation
(Region)(0), // 1: common.Region
(MType)(0), // 2: common.MType
@ -1129,6 +1139,68 @@ func file_common_common_proto_init() {
if File_common_common_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_common_common_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Location); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_common_common_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*KeyEnvelope); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_common_common_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Metric); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_common_common_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MetricDataset); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_common_common_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*JoinServerContext); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{

834
api/go/gw/gw.pb.go vendored

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.35.1
// protoc v5.28.3
// protoc-gen-go v1.34.1
// protoc v4.24.4
// source: integration/integration.proto
package integration
@ -102,8 +102,6 @@ const (
LogCode_RELAY_NEW_END_DEVICE LogCode = 9
// Downlink frame-counter.
LogCode_F_CNT_DOWN LogCode = 10
// Downlink has expired.
LogCode_EXPIRED LogCode = 11
)
// Enum value maps for LogCode.
@ -120,7 +118,6 @@ var (
8: "DOWNLINK_GATEWAY",
9: "RELAY_NEW_END_DEVICE",
10: "F_CNT_DOWN",
11: "EXPIRED",
}
LogCode_value = map[string]int32{
"UNKNOWN": 0,
@ -134,7 +131,6 @@ var (
"DOWNLINK_GATEWAY": 8,
"RELAY_NEW_END_DEVICE": 9,
"F_CNT_DOWN": 10,
"EXPIRED": 11,
}
)
@ -195,9 +191,11 @@ type DeviceInfo struct {
func (x *DeviceInfo) Reset() {
*x = DeviceInfo{}
mi := &file_integration_integration_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_integration_integration_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeviceInfo) String() string {
@ -208,7 +206,7 @@ func (*DeviceInfo) ProtoMessage() {}
func (x *DeviceInfo) ProtoReflect() protoreflect.Message {
mi := &file_integration_integration_proto_msgTypes[0]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -315,9 +313,11 @@ type UplinkRelayRxInfo struct {
func (x *UplinkRelayRxInfo) Reset() {
*x = UplinkRelayRxInfo{}
mi := &file_integration_integration_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_integration_integration_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UplinkRelayRxInfo) String() string {
@ -328,7 +328,7 @@ func (*UplinkRelayRxInfo) ProtoMessage() {}
func (x *UplinkRelayRxInfo) ProtoReflect() protoreflect.Message {
mi := &file_integration_integration_proto_msgTypes[1]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -429,9 +429,11 @@ type UplinkEvent struct {
func (x *UplinkEvent) Reset() {
*x = UplinkEvent{}
mi := &file_integration_integration_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_integration_integration_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UplinkEvent) String() string {
@ -442,7 +444,7 @@ func (*UplinkEvent) ProtoMessage() {}
func (x *UplinkEvent) ProtoReflect() protoreflect.Message {
mi := &file_integration_integration_proto_msgTypes[2]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -588,9 +590,11 @@ type JoinEvent struct {
func (x *JoinEvent) Reset() {
*x = JoinEvent{}
mi := &file_integration_integration_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_integration_integration_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *JoinEvent) String() string {
@ -601,7 +605,7 @@ func (*JoinEvent) ProtoMessage() {}
func (x *JoinEvent) ProtoReflect() protoreflect.Message {
mi := &file_integration_integration_proto_msgTypes[3]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -681,9 +685,11 @@ type AckEvent struct {
func (x *AckEvent) Reset() {
*x = AckEvent{}
mi := &file_integration_integration_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_integration_integration_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AckEvent) String() string {
@ -694,7 +700,7 @@ func (*AckEvent) ProtoMessage() {}
func (x *AckEvent) ProtoReflect() protoreflect.Message {
mi := &file_integration_integration_proto_msgTypes[4]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -777,9 +783,11 @@ type TxAckEvent struct {
func (x *TxAckEvent) Reset() {
*x = TxAckEvent{}
mi := &file_integration_integration_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_integration_integration_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TxAckEvent) String() string {
@ -790,7 +798,7 @@ func (*TxAckEvent) ProtoMessage() {}
func (x *TxAckEvent) ProtoReflect() protoreflect.Message {
mi := &file_integration_integration_proto_msgTypes[5]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -876,9 +884,11 @@ type LogEvent struct {
func (x *LogEvent) Reset() {
*x = LogEvent{}
mi := &file_integration_integration_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_integration_integration_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LogEvent) String() string {
@ -889,7 +899,7 @@ func (*LogEvent) ProtoMessage() {}
func (x *LogEvent) ProtoReflect() protoreflect.Message {
mi := &file_integration_integration_proto_msgTypes[6]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -972,9 +982,11 @@ type StatusEvent struct {
func (x *StatusEvent) Reset() {
*x = StatusEvent{}
mi := &file_integration_integration_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_integration_integration_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StatusEvent) String() string {
@ -985,7 +997,7 @@ func (*StatusEvent) ProtoMessage() {}
func (x *StatusEvent) ProtoReflect() protoreflect.Message {
mi := &file_integration_integration_proto_msgTypes[7]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1067,9 +1079,11 @@ type LocationEvent struct {
func (x *LocationEvent) Reset() {
*x = LocationEvent{}
mi := &file_integration_integration_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_integration_integration_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LocationEvent) String() string {
@ -1080,7 +1094,7 @@ func (*LocationEvent) ProtoMessage() {}
func (x *LocationEvent) ProtoReflect() protoreflect.Message {
mi := &file_integration_integration_proto_msgTypes[8]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1147,9 +1161,11 @@ type IntegrationEvent struct {
func (x *IntegrationEvent) Reset() {
*x = IntegrationEvent{}
mi := &file_integration_integration_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_integration_integration_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *IntegrationEvent) String() string {
@ -1160,7 +1176,7 @@ func (*IntegrationEvent) ProtoMessage() {}
func (x *IntegrationEvent) ProtoReflect() protoreflect.Message {
mi := &file_integration_integration_proto_msgTypes[9]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1243,9 +1259,11 @@ type DownlinkCommand struct {
func (x *DownlinkCommand) Reset() {
*x = DownlinkCommand{}
mi := &file_integration_integration_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_integration_integration_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DownlinkCommand) String() string {
@ -1256,7 +1274,7 @@ func (*DownlinkCommand) ProtoMessage() {}
func (x *DownlinkCommand) ProtoReflect() protoreflect.Message {
mi := &file_integration_integration_proto_msgTypes[10]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -1548,7 +1566,7 @@ var file_integration_integration_proto_rawDesc = []byte{
0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2a, 0x2c, 0x0a,
0x08, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x4e, 0x46,
0x4f, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01,
0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x2a, 0xf7, 0x01, 0x0a, 0x07,
0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x2a, 0xea, 0x01, 0x0a, 0x07,
0x4c, 0x6f, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f,
0x57, 0x4e, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x49, 0x4e, 0x4b,
0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x01, 0x12,
@ -1563,20 +1581,20 @@ var file_integration_integration_proto_rawDesc = []byte{
0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x47, 0x41, 0x54, 0x45, 0x57, 0x41, 0x59, 0x10, 0x08, 0x12, 0x18,
0x0a, 0x14, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x45, 0x4e, 0x44, 0x5f,
0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x46, 0x5f, 0x43, 0x4e,
0x54, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x0a, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x58, 0x50, 0x49,
0x52, 0x45, 0x44, 0x10, 0x0b, 0x42, 0xbf, 0x01, 0x0a, 0x1d, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69,
0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x74, 0x65,
0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x33, 0x67, 0x69, 0x74,
0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x72, 0x6f, 0x63, 0x61, 0x61, 0x72, 0x2f,
0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67,
0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0xaa, 0x02, 0x16, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x49, 0x6e,
0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0xca, 0x02, 0x16, 0x43, 0x68, 0x69, 0x72,
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0xe2, 0x02, 0x22, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
0x5c, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x49, 0x6e, 0x74, 0x65,
0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x54, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x0a, 0x42, 0xbf, 0x01, 0x0a, 0x1d, 0x69, 0x6f, 0x2e,
0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69,
0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x49, 0x6e, 0x74, 0x65,
0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x33,
0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x72, 0x6f, 0x63, 0x61,
0x61, 0x72, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70,
0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0xaa, 0x02, 0x16, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b,
0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0xca, 0x02, 0x16, 0x43,
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0xe2, 0x02, 0x22, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64,
0x61, 0x74, 0x61, 0x5c, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x49,
0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x33,
}
var (
@ -1593,7 +1611,7 @@ func file_integration_integration_proto_rawDescGZIP() []byte {
var file_integration_integration_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_integration_integration_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
var file_integration_integration_proto_goTypes = []any{
var file_integration_integration_proto_goTypes = []interface{}{
(LogLevel)(0), // 0: integration.LogLevel
(LogCode)(0), // 1: integration.LogCode
(*DeviceInfo)(nil), // 2: integration.DeviceInfo
@ -1663,6 +1681,140 @@ func file_integration_integration_proto_init() {
if File_integration_integration_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_integration_integration_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeviceInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_integration_integration_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UplinkRelayRxInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_integration_integration_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UplinkEvent); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_integration_integration_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*JoinEvent); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_integration_integration_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AckEvent); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_integration_integration_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TxAckEvent); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_integration_integration_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LogEvent); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_integration_integration_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StatusEvent); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_integration_integration_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LocationEvent); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_integration_integration_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*IntegrationEvent); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_integration_integration_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DownlinkCommand); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{

View File

@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.35.1
// protoc v5.28.3
// protoc-gen-go v1.34.1
// protoc v4.24.4
// source: stream/api_request.proto
package stream
@ -38,9 +38,11 @@ type ApiRequestLog struct {
func (x *ApiRequestLog) Reset() {
*x = ApiRequestLog{}
mi := &file_stream_api_request_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_stream_api_request_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ApiRequestLog) String() string {
@ -51,7 +53,7 @@ func (*ApiRequestLog) ProtoMessage() {}
func (x *ApiRequestLog) ProtoReflect() protoreflect.Message {
mi := &file_stream_api_request_proto_msgTypes[0]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -135,7 +137,7 @@ func file_stream_api_request_proto_rawDescGZIP() []byte {
}
var file_stream_api_request_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_stream_api_request_proto_goTypes = []any{
var file_stream_api_request_proto_goTypes = []interface{}{
(*ApiRequestLog)(nil), // 0: stream.ApiRequestLog
nil, // 1: stream.ApiRequestLog.MetadataEntry
}
@ -153,6 +155,20 @@ func file_stream_api_request_proto_init() {
if File_stream_api_request_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_stream_api_request_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ApiRequestLog); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{

View File

@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.35.1
// protoc v5.28.3
// protoc-gen-go v1.34.1
// protoc v4.24.4
// source: stream/backend_interfaces.proto
package stream
@ -48,9 +48,11 @@ type BackendInterfacesRequest struct {
func (x *BackendInterfacesRequest) Reset() {
*x = BackendInterfacesRequest{}
mi := &file_stream_backend_interfaces_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_stream_backend_interfaces_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BackendInterfacesRequest) String() string {
@ -61,7 +63,7 @@ func (*BackendInterfacesRequest) ProtoMessage() {}
func (x *BackendInterfacesRequest) ProtoReflect() protoreflect.Message {
mi := &file_stream_backend_interfaces_proto_msgTypes[0]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -196,7 +198,7 @@ func file_stream_backend_interfaces_proto_rawDescGZIP() []byte {
}
var file_stream_backend_interfaces_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_stream_backend_interfaces_proto_goTypes = []any{
var file_stream_backend_interfaces_proto_goTypes = []interface{}{
(*BackendInterfacesRequest)(nil), // 0: stream.BackendInterfacesRequest
(*timestamppb.Timestamp)(nil), // 1: google.protobuf.Timestamp
}
@ -214,6 +216,20 @@ func file_stream_backend_interfaces_proto_init() {
if File_stream_backend_interfaces_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_stream_backend_interfaces_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BackendInterfacesRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{

View File

@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.35.1
// protoc v5.28.3
// protoc-gen-go v1.34.1
// protoc v4.24.4
// source: stream/frame.proto
package stream
@ -50,9 +50,11 @@ type UplinkFrameLog struct {
func (x *UplinkFrameLog) Reset() {
*x = UplinkFrameLog{}
mi := &file_stream_frame_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_stream_frame_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UplinkFrameLog) String() string {
@ -63,7 +65,7 @@ func (*UplinkFrameLog) ProtoMessage() {}
func (x *UplinkFrameLog) ProtoReflect() protoreflect.Message {
mi := &file_stream_frame_proto_msgTypes[0]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -170,9 +172,11 @@ type DownlinkFrameLog struct {
func (x *DownlinkFrameLog) Reset() {
*x = DownlinkFrameLog{}
mi := &file_stream_frame_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_stream_frame_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DownlinkFrameLog) String() string {
@ -183,7 +187,7 @@ func (*DownlinkFrameLog) ProtoMessage() {}
func (x *DownlinkFrameLog) ProtoReflect() protoreflect.Message {
mi := &file_stream_frame_proto_msgTypes[1]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -351,7 +355,7 @@ func file_stream_frame_proto_rawDescGZIP() []byte {
}
var file_stream_frame_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_stream_frame_proto_goTypes = []any{
var file_stream_frame_proto_goTypes = []interface{}{
(*UplinkFrameLog)(nil), // 0: stream.UplinkFrameLog
(*DownlinkFrameLog)(nil), // 1: stream.DownlinkFrameLog
(*gw.UplinkTxInfo)(nil), // 2: gw.UplinkTxInfo
@ -380,6 +384,32 @@ func file_stream_frame_proto_init() {
if File_stream_frame_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_stream_frame_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UplinkFrameLog); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stream_frame_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DownlinkFrameLog); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{

View File

@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.35.1
// protoc v5.28.3
// protoc-gen-go v1.34.1
// protoc v4.24.4
// source: stream/meta.proto
package stream
@ -45,9 +45,11 @@ type UplinkMeta struct {
func (x *UplinkMeta) Reset() {
*x = UplinkMeta{}
mi := &file_stream_meta_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_stream_meta_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UplinkMeta) String() string {
@ -58,7 +60,7 @@ func (*UplinkMeta) ProtoMessage() {}
func (x *UplinkMeta) ProtoReflect() protoreflect.Message {
mi := &file_stream_meta_proto_msgTypes[0]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -147,9 +149,11 @@ type DownlinkMeta struct {
func (x *DownlinkMeta) Reset() {
*x = DownlinkMeta{}
mi := &file_stream_meta_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
if protoimpl.UnsafeEnabled {
mi := &file_stream_meta_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DownlinkMeta) String() string {
@ -160,7 +164,7 @@ func (*DownlinkMeta) ProtoMessage() {}
func (x *DownlinkMeta) ProtoReflect() protoreflect.Message {
mi := &file_stream_meta_proto_msgTypes[1]
if x != nil {
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@ -310,7 +314,7 @@ func file_stream_meta_proto_rawDescGZIP() []byte {
}
var file_stream_meta_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_stream_meta_proto_goTypes = []any{
var file_stream_meta_proto_goTypes = []interface{}{
(*UplinkMeta)(nil), // 0: stream.UplinkMeta
(*DownlinkMeta)(nil), // 1: stream.DownlinkMeta
(*gw.UplinkTxInfo)(nil), // 2: gw.UplinkTxInfo
@ -336,6 +340,32 @@ func file_stream_meta_proto_init() {
if File_stream_meta_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_stream_meta_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UplinkMeta); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stream_meta_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DownlinkMeta); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{

View File

@ -1,6 +1,6 @@
{
"name": "@chirpstack/chirpstack-api-grpc-web",
"version": "4.10.2",
"version": "4.9.0",
"description": "Chirpstack gRPC-web API",
"license": "MIT",
"devDependencies": {

View File

@ -8,7 +8,7 @@ plugins {
}
group = "io.chirpstack"
version = "4.10.2"
version = "4.9.0"
repositories {
mavenCentral()
@ -21,10 +21,10 @@ buildscript {
}
dependencies {
api("io.grpc:grpc-protobuf:1.59.1")
api("io.grpc:grpc-api:1.59.1")
api("io.grpc:grpc-stub:1.59.1")
api("io.grpc:grpc-netty:1.59.1")
api("io.grpc:grpc-protobuf:1.51.0")
api("io.grpc:grpc-api:1.51.0")
api("io.grpc:grpc-stub:1.51.0")
api("io.grpc:grpc-netty:1.51.0")
implementation("javax.annotation:javax.annotation-api:1.3.2")
}

2
api/js/package.json vendored
View File

@ -1,6 +1,6 @@
{
"name": "@chirpstack/chirpstack-api",
"version": "4.10.2",
"version": "4.9.0",
"description": "Chirpstack JS and TS API",
"license": "MIT",
"devDependencies": {

View File

@ -9,7 +9,7 @@ plugins {
}
group = "io.chirpstack"
version = "4.10.2"
version = "4.9.0"
repositories {
mavenCentral()

View File

@ -3,7 +3,7 @@
"description": "Chirpstack PHP API",
"license": "MIT",
"type": "library",
"version": "4.10.2",
"version": "4.9.0",
"require": {
"php": ">=7.0.0",
"grpc/grpc": "^v1.57.0",

View File

@ -539,10 +539,6 @@ message DeviceQueueItem {
// the data payload. In this case, the f_cnt_down field must be set to
// the corresponding frame-counter which has been used during the encryption.
bool is_encrypted = 9;
// Expires at (optional).
// Expired queue-items will be automatically removed from the queue.
google.protobuf.Timestamp expires_at = 10;
}
message EnqueueDeviceQueueItemRequest { DeviceQueueItem queue_item = 1; }
@ -586,4 +582,4 @@ message GetDeviceNextFCntDownRequest {
message GetDeviceNextFCntDownResponse {
// FCntDown.
uint32 f_cnt_down = 1;
}
}

View File

@ -302,10 +302,6 @@ message MulticastGroupQueueItem {
// Payload.
bytes data = 4;
// Expires at (optional).
// Expired queue-items will be automatically removed from the queue.
google.protobuf.Timestamp expires_at = 5;
}
message EnqueueMulticastGroupQueueItemRequest {

View File

@ -60,9 +60,6 @@ enum LogCode {
// Downlink frame-counter.
F_CNT_DOWN = 10;
// Downlink has expired.
EXPIRED = 11;
}
// Device information.

View File

@ -18,7 +18,7 @@ CLASSIFIERS = [
setup(
name='chirpstack-api',
version = "4.10.2",
version = "4.9.0",
url='https://github.com/brocaar/chirpstack-api',
author='Orne Brocaar',
author_email='info@brocaar.com',

4
api/rust/Cargo.toml vendored
View File

@ -1,7 +1,7 @@
[package]
name = "chirpstack_api"
description = "ChirpStack Protobuf / gRPC API definitions."
version = "4.10.2"
version = "4.9.0"
authors = ["Orne Brocaar <info@brocaar.com>"]
license = "MIT"
homepage = "https://www.chirpstack.io"
@ -24,7 +24,7 @@
"codegen",
"prost",
], default-features = false, optional = true }
tokio = { version = "1.41", features = ["macros"], optional = true }
tokio = { version = "1.38", features = ["macros"], optional = true }
pbjson = { version = "0.7", optional = true }
pbjson-types = { version = "0.7", optional = true }
serde = { version = "1.0", optional = true }

12
api/rust/build.rs vendored
View File

@ -28,7 +28,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
.file_descriptor_set_path(out_dir.join("common").join("proto_descriptor.bin"))
.compile_well_known_types(true)
.extern_path(".google.protobuf", well_known_types_path)
.compile_protos(
.compile(
&[cs_dir.join("common").join("common.proto").to_str().unwrap()],
&[
proto_dir.join("chirpstack").to_str().unwrap(),
@ -53,7 +53,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
.compile_well_known_types(true)
.extern_path(".google.protobuf", well_known_types_path)
.extern_path(".common", "crate::common")
.compile_protos(
.compile(
&[cs_dir.join("gw").join("gw.proto").to_str().unwrap()],
&[
proto_dir.join("chirpstack").to_str().unwrap(),
@ -87,7 +87,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
builder = builder.message_attribute("internal.DeviceSession", "#[derive(diesel::expression::AsExpression, diesel::deserialize::FromSqlRow)] #[diesel(sql_type = diesel::sql_types::Binary)]");
}
builder.compile_protos(
builder.compile(
&[cs_dir
.join("internal")
.join("internal.proto")
@ -119,7 +119,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
.extern_path(".google.protobuf", well_known_types_path)
.extern_path(".common", "crate::common")
.extern_path(".gw", "crate::gw")
.compile_protos(
.compile(
&[cs_dir
.join("integration")
.join("integration.proto")
@ -153,7 +153,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
.extern_path(".google.protobuf", well_known_types_path)
.extern_path(".common", "crate::common")
.extern_path(".gw", "crate::gw")
.compile_protos(
.compile(
&[
cs_dir.join("stream").join("meta.proto").to_str().unwrap(),
cs_dir.join("stream").join("frame.proto").to_str().unwrap(),
@ -192,7 +192,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
.file_descriptor_set_path(out_dir.join("api").join("proto_descriptor.bin"))
.extern_path(".common", "crate::common")
.extern_path(".gw", "crate::gw")
.compile_protos(
.compile(
&[
cs_dir.join("api").join("internal.proto").to_str().unwrap(),
cs_dir.join("api").join("user.proto").to_str().unwrap(),

View File

@ -539,10 +539,6 @@ message DeviceQueueItem {
// the data payload. In this case, the f_cnt_down field must be set to
// the corresponding frame-counter which has been used during the encryption.
bool is_encrypted = 9;
// Expires at (optional).
// Expired queue-items will be automatically removed from the queue.
google.protobuf.Timestamp expires_at = 10;
}
message EnqueueDeviceQueueItemRequest { DeviceQueueItem queue_item = 1; }
@ -586,4 +582,4 @@ message GetDeviceNextFCntDownRequest {
message GetDeviceNextFCntDownResponse {
// FCntDown.
uint32 f_cnt_down = 1;
}
}

View File

@ -302,10 +302,6 @@ message MulticastGroupQueueItem {
// Payload.
bytes data = 4;
// Expires at (optional).
// Expired queue-items will be automatically removed from the queue.
google.protobuf.Timestamp expires_at = 5;
}
message EnqueueMulticastGroupQueueItemRequest {

View File

@ -60,9 +60,6 @@ enum LogCode {
// Downlink frame-counter.
F_CNT_DOWN = 10;
// Downlink has expired.
EXPIRED = 11;
}
// Device information.

View File

@ -32,7 +32,6 @@ impl Into<String> for LogCode {
LogCode::DownlinkGateway => "DOWNLINK_GATEWAY",
LogCode::RelayNewEndDevice => "RELAY_NEW_END_DEVICE",
LogCode::FCntDown => "F_CNT_DOWN",
LogCode::Expired => "EXPIRED",
}
.to_string()
}

5
api/rust/src/lib.rs vendored
View File

@ -1,9 +1,4 @@
#[cfg(feature = "json")]
pub use pbjson_types;
pub use prost;
#[cfg(feature = "api")]
pub use tonic;
#[cfg(feature = "api")]
pub mod api;
pub mod common;

View File

@ -1,6 +1,6 @@
[package]
name = "backend"
version = "4.10.2"
version = "4.9.0"
authors = ["Orne Brocaar <info@brocaar.com>"]
edition = "2018"
publish = false
@ -8,7 +8,7 @@
[dependencies]
serde = { version = "1.0", features = ["derive", "rc"] }
serde_json = "1.0"
thiserror = "2.0"
thiserror = "1.0"
anyhow = "1.0"
tracing = "0.1"
hex = "0.4"
@ -19,7 +19,7 @@
"rustls-tls",
], default-features = false }
chrono = { version = "0.4", features = ["serde"] }
tokio = { version = "1.42", features = ["macros"] }
tokio = { version = "1.38", features = ["macros"] }
chirpstack_api = { path = "../api/rust", default-features = false, features = [
"json",
] }

View File

@ -3,14 +3,14 @@
description = "Library for building external ChirpStack integrations"
homepage = "https://www.chirpstack.io/"
license = "MIT"
version = "4.10.2"
version = "4.9.0"
authors = ["Orne Brocaar <info@brocaar.com>"]
edition = "2021"
repository = "https://github.com/chirpstack/chirpstack"
[dependencies]
chirpstack_api = { path = "../api/rust", version = "4.10.2" }
redis = { version = "0.27", features = [
chirpstack_api = { path = "../api/rust", version = "4.9.0-test.1" }
redis = { version = "0.26", features = [
"cluster-async",
"tokio-rustls-comp",
] }
@ -21,9 +21,9 @@
"ansi",
"json",
], default-features = true }
async-trait = "0.1"
async-trait = "0.1.79"
serde = { version = "1.0", features = ["derive"] }
tokio = { version = "1.42", features = ["macros", "rt-multi-thread"] }
lazy_static = "1.5"
tokio = { version = "1.36", features = ["macros", "rt-multi-thread"] }
lazy_static = "1.4"
serde_json = "1.0"
toml = "0.8"

View File

@ -3,7 +3,7 @@
description = "ChirpStack is an open-source LoRaWAN(TM) Network Server"
repository = "https://github.com/chirpstack/chirpstack"
homepage = "https://www.chirpstack.io/"
version = "4.10.2"
version = "4.9.0"
authors = ["Orne Brocaar <info@brocaar.com>"]
edition = "2021"
publish = false
@ -20,7 +20,7 @@
serde_urlencoded = "0.7"
humantime-serde = "1.1"
toml = "0.8"
handlebars = "6.2"
handlebars = "6.0"
# Database
email_address = "0.2"
@ -35,10 +35,10 @@
"async-connection-wrapper",
] }
tokio-postgres = { version = "0.7", optional = true }
tokio-postgres-rustls = { version = "0.13", optional = true }
tokio-postgres-rustls = { version = "0.12", optional = true }
bigdecimal = "0.4"
redis = { version = "0.27", features = ["tls-rustls", "tokio-rustls-comp"] }
deadpool-redis = { version = "0.18", features = ["cluster", "serde"] }
redis = { version = "0.26", features = ["tls-rustls", "tokio-rustls-comp"] }
deadpool-redis = { version = "0.16", features = ["cluster"] }
# Logging
tracing = "0.1"
@ -74,7 +74,7 @@
lapin = { version = "2.5", default-features = false }
tokio-executor-trait = "2.1"
tokio-reactor-trait = "1.1"
rdkafka = { version = "0.37", default-features = false, features = [
rdkafka = { version = "0.36", default-features = false, features = [
"tokio",
"cmake-build",
] }
@ -83,7 +83,7 @@
tonic = "0.12"
tonic-web = "0.12"
tonic-reflection = "0.12"
tokio = { version = "1.42", features = ["macros", "rt-multi-thread"] }
tokio = { version = "1.38", features = ["macros", "rt-multi-thread"] }
tokio-stream = "0.1"
prost-types = "0.13"
prost = "0.13"
@ -92,31 +92,31 @@
# gRPC and HTTP multiplexing
axum = "0.7"
axum-server = { version = "0.7.1", features = ["tls-rustls-no-provider"] }
tower = { version = "0.5", features = ["util"] }
tower = { version = "0.4" }
futures = "0.3"
futures-util = "0.3"
http = "1.1"
http-body = "1.0"
rust-embed = "8.5"
mime_guess = "2.0"
tower-http = { version = "0.6", features = ["trace", "auth"] }
tower-http = { version = "0.5", features = ["trace", "auth"] }
# Error handling
thiserror = "2.0"
thiserror = "1.0"
anyhow = "1.0"
# Authentication
pbkdf2 = { version = "0.12", features = ["simple"] }
rand_core = { version = "0.6", features = ["std"] }
jsonwebtoken = "9.3"
jsonwebtoken = "9.2"
rustls = { version = "0.23", default-features = false, features = [
"logging",
"std",
"tls12",
"ring",
] }
rustls-native-certs = "0.8"
rustls-pemfile = "2.2"
rustls-native-certs = "0.7"
rustls-pemfile = "2.1"
pem = "3.0"
x509-parser = "0.16"
rsa = "0.9"
@ -133,7 +133,7 @@
hex = "0.4"
# Codecs
rquickjs = { version = "0.8", features = [
rquickjs = { version = "0.6", features = [
"bindgen",
"loader",
"array-buffer",
@ -142,14 +142,14 @@
# Misc
lazy_static = "1.5"
uuid = { version = "1.11", features = ["v4", "serde"] }
uuid = { version = "1.10", features = ["v4", "serde"] }
chrono = "0.4"
async-trait = "0.1"
aes = "0.8"
rand = "0.8"
base64 = "0.22"
async-recursion = "1.1"
regex = "1.11"
regex = "1.10"
petgraph = "0.6"
prometheus-client = "0.22"
pin-project = "1.1"
@ -160,7 +160,7 @@
# Development and testing
[dev-dependencies]
httpmock = "0.7.0"
bytes = "1.8"
bytes = "1.6"
dotenv = "0.15"
[features]
@ -235,15 +235,9 @@
"/etc/chirpstack/region_us915_7.toml",
]
suggests = "postgresql, mosquitto, redis"
conflicts = "chirpstack-sqlite"
maintainer-scripts = "debian/"
systemd-units = { enable = true }
[package.metadata.deb.variants.sqlite]
name = "chirpstack-sqlite"
suggests = "mosquitto, redis"
conflicts = "chirpstack"
[package.metadata.generate-rpm]
auto-req = "no"
@ -265,17 +259,3 @@ chmod 640 /etc/chirpstack/*.toml
{ source = "configuration/*", dest = "/etc/chirpstack" },
{ source = "rpm/chirpstack.service", dest = "/lib/systemd/system/chirpstack.service" },
]
[package.metadata.generate-rpm.conflicts]
chirpstack-sqlite = "*"
[package.metadata.generate-rpm.variants.sqlite]
name = "chirpstack-sqlite"
assets = [
{ source = "target/release/chirpstack", dest = "/usr/bin/chirpstack", mode = "755" },
{ source = "configuration/*", dest = "/etc/chirpstack" },
{ source = "rpm/chirpstack.service", dest = "/lib/systemd/system/chirpstack-sqlite.service" },
]
[package.metadata.generate-rpm.variants.sqlite.conflicts]
chirpstack = "*"

View File

@ -2,11 +2,6 @@
PKG_VERSION := $(shell cargo metadata --no-deps --format-version 1 | jq -r '.packages[0].version')
DATABASE ?= postgres
ifeq ($(DATABASE),postgres)
VARIANT_FLAGS ?=
else
VARIANT_FLAGS ?= --variant="$(DATABASE)"
endif
debug-amd64:
cross build --target x86_64-unknown-linux-musl --no-default-features --features="$(DATABASE)"
@ -22,13 +17,13 @@ dist:
cross build --target x86_64-unknown-linux-musl --release --no-default-features --features="$(DATABASE)"
cross build --target armv7-unknown-linux-musleabihf --release --no-default-features --features="$(DATABASE)"
cargo deb --target x86_64-unknown-linux-musl --no-build --no-strip $(VARIANT_FLAGS)
cargo deb --target armv7-unknown-linux-musleabihf --no-build --no-strip $(VARIANT_FLAGS)
cargo deb --target aarch64-unknown-linux-musl --no-build --no-strip $(VARIANT_FLAGS)
cargo deb --target x86_64-unknown-linux-musl --no-build --no-strip
cargo deb --target armv7-unknown-linux-musleabihf --no-build --no-strip
cargo deb --target aarch64-unknown-linux-musl --no-build --no-strip
cargo generate-rpm --target x86_64-unknown-linux-musl --target-dir ../target $(VARIANT_FLAGS)
cargo generate-rpm --target armv7-unknown-linux-musleabihf --target-dir ../target $(VARIANT_FLAGS)
cargo generate-rpm --target aarch64-unknown-linux-musl --target-dir ../target $(VARIANT_FLAGS)
cargo generate-rpm --target x86_64-unknown-linux-musl --target-dir ../target
cargo generate-rpm --target armv7-unknown-linux-musleabihf --target-dir ../target
cargo generate-rpm --target aarch64-unknown-linux-musl --target-dir ../target
mkdir -p ../dist
@ -40,9 +35,9 @@ dist:
cp ../target/armv7-unknown-linux-musleabihf/generate-rpm/*.rpm ../dist
cp ../target/aarch64-unknown-linux-musl/generate-rpm/*.rpm ../dist
tar -czvf ../dist/chirpstack_$(PKG_VERSION)_$(DATABASE)_amd64.tar.gz -C ../target/x86_64-unknown-linux-musl/release chirpstack
tar -czvf ../dist/chirpstack_$(PKG_VERSION)_$(DATABASE)_armv7hf.tar.gz -C ../target/armv7-unknown-linux-musleabihf/release chirpstack
tar -czvf ../dist/chirpstack_$(PKG_VERSION)_$(DATABASE)_arm64.tar.gz -C ../target/aarch64-unknown-linux-musl/release chirpstack
tar -czvf ../dist/chirpstack_$(PKG_VERSION)_amd64.tar.gz -C ../target/x86_64-unknown-linux-musl/release chirpstack
tar -czvf ../dist/chirpstack_$(PKG_VERSION)_armv7hf.tar.gz -C ../target/armv7-unknown-linux-musleabihf/release chirpstack
tar -czvf ../dist/chirpstack_$(PKG_VERSION)_arm64.tar.gz -C ../target/aarch64-unknown-linux-musl/release chirpstack
test:
cargo fmt --check

View File

@ -1,6 +0,0 @@
alter table device_queue_item
drop column expires_at;
alter table multicast_group_queue_item
drop column expires_at;

View File

@ -1,6 +0,0 @@
alter table multicast_group_queue_item
add column expires_at timestamp with time zone null;
alter table device_queue_item
add column expires_at timestamp with time zone null;

View File

@ -1,2 +0,0 @@
alter table device_keys
alter column dev_nonces type int[] using '{}';

View File

@ -1,7 +0,0 @@
alter table device_keys
alter column dev_nonces type jsonb using jsonb_build_object('0000000000000000', dev_nonces);
update device_keys
set dev_nonces = jsonb_build_object(encode(device.join_eui, 'hex'), dev_nonces->'0000000000000000')
from device
where device.dev_eui = device_keys.dev_eui;

View File

@ -1,6 +0,0 @@
alter table device_queue_item
drop column expires_at;
alter table multicast_group_queue_item
drop column expires_at;

View File

@ -1,5 +0,0 @@
alter table multicast_group_queue_item
add column expires_at datetime null;
alter table device_queue_item
add column expires_at datetime null;

View File

@ -1 +0,0 @@
update device_keys set dev_nonces = '[]';

View File

@ -1 +0,0 @@
update device_keys set dev_nonces = '{}';

View File

@ -328,7 +328,6 @@ async fn _handle_pr_start_req_data(
let kek_label = roaming::get_passive_roaming_kek_label(sender_id)?;
let ds = d.get_device_session()?;
// Only in case validate_mic=true and LoRaWAN=1.0.x.
let nwk_s_key = if validate_mic && ds.mac_version().to_string().starts_with("1.0") {
Some(keywrap::wrap(
&kek_label,
@ -338,14 +337,13 @@ async fn _handle_pr_start_req_data(
None
};
// Only in case validate_mic=true and LoRaWAN=1.1.x.
let f_nwk_s_int_key = if validate_mic && ds.mac_version().to_string().starts_with("1.1") {
let f_nwk_s_int_key = if validate_mic && ds.mac_version().to_string().starts_with("1.0") {
None
} else {
Some(keywrap::wrap(
&kek_label,
AES128Key::from_slice(&ds.f_nwk_s_int_key)?,
)?)
} else {
None
};
// In case of stateless, the payload is directly handled

View File

@ -469,7 +469,7 @@ impl DeviceService for Device {
)
.await?;
device_keys::set_dev_nonces(dev_eui, &fields::DevNonces::default())
device_keys::set_dev_nonces(&dev_eui, &Vec::new())
.await
.map_err(|e| e.status())?;
@ -1095,14 +1095,6 @@ impl DeviceService for Device {
} else {
None
},
expires_at: if let Some(expires_at) = req_qi.expires_at {
let expires_at: std::time::SystemTime = expires_at
.try_into()
.map_err(|e: prost_types::TimestampError| e.status())?;
Some(expires_at.into())
} else {
None
},
data,
..Default::default()
};
@ -1177,10 +1169,6 @@ impl DeviceService for Device {
is_pending: qi.is_pending,
f_cnt_down: qi.f_cnt_down.unwrap_or(0) as u32,
is_encrypted: qi.is_encrypted,
expires_at: qi.expires_at.map(|v| {
let v: std::time::SystemTime = v.into();
v.into()
}),
})
.collect(),
});
@ -1429,13 +1417,10 @@ pub mod test {
);
// flush dev nonces
let _ = device_keys::set_dev_nonces(EUI64::from_str("0102030405060708").unwrap(), &{
let mut dev_nonces = fields::DevNonces::default();
dev_nonces.insert(EUI64::from_str("0102030405060708").unwrap(), 123);
dev_nonces
})
.await
.unwrap();
let _ =
device_keys::set_dev_nonces(&EUI64::from_str("0102030405060708").unwrap(), &[1, 2, 3])
.await
.unwrap();
let flush_dev_nonces_req = get_request(
&u.id,
api::FlushDevNoncesRequest {
@ -1449,7 +1434,7 @@ pub mod test {
let dk = device_keys::get(&EUI64::from_str("0102030405060708").unwrap())
.await
.unwrap();
assert_eq!(fields::DevNonces::default(), dk.dev_nonces);
assert_eq!(0, dk.dev_nonces.len());
// delete keys
let del_keys_req = get_request(

View File

@ -287,7 +287,11 @@ impl InternalService for Internal {
let tenant_id = if req_key.tenant_id.is_empty() {
None
} else {
Some(Uuid::from_str(&req_key.tenant_id).map_err(|e| e.status())?)
Some(
Uuid::from_str(&req_key.tenant_id)
.map_err(|e| e.status())?
.into(),
)
};
if req_key.is_admin && tenant_id.is_some() {

View File

@ -133,7 +133,7 @@ pub async fn setup() -> Result<()> {
.add_service(
TonicReflectionBuilder::configure()
.register_encoded_file_descriptor_set(chirpstack_api::api::DESCRIPTOR)
.build_v1()
.build()
.unwrap(),
)
.add_service(InternalServiceServer::with_interceptor(

View File

@ -411,14 +411,6 @@ impl MulticastGroupService for MulticastGroup {
multicast_group_id: mg_id.into(),
f_port: req_enq.f_port as i16,
data: req_enq.data.clone(),
expires_at: if let Some(expires_at) = req_enq.expires_at {
let expires_at: std::time::SystemTime = expires_at
.try_into()
.map_err(|e: prost_types::TimestampError| e.status())?;
Some(expires_at.into())
} else {
None
},
..Default::default()
})
.await
@ -486,10 +478,6 @@ impl MulticastGroupService for MulticastGroup {
f_cnt: qi.f_cnt as u32,
f_port: qi.f_port as u32,
data: qi.data.clone(),
expires_at: qi.expires_at.map(|v| {
let v: std::time::SystemTime = v.into();
v.into()
}),
});
}
}
@ -790,7 +778,6 @@ pub mod test {
f_cnt: 31,
f_port: 10,
data: vec![1, 2, 3],
expires_at: None,
},
list_queue_resp.items[0]
);

View File

@ -258,8 +258,8 @@ impl TenantService for Tenant {
.await?;
let _ = tenant::add_user(tenant::TenantUser {
user_id,
tenant_id: tenant_id.into(),
user_id: user_id.into(),
is_admin: req_user.is_admin,
is_device_admin: req_user.is_device_admin,
is_gateway_admin: req_user.is_gateway_admin,

View File

@ -65,7 +65,7 @@ impl UserService for User {
tenant::add_user(tenant::TenantUser {
tenant_id: tenant_id.into(),
user_id: u.id,
user_id: u.id.into(),
is_admin: tu.is_admin,
is_device_admin: tu.is_device_admin,
is_gateway_admin: tu.is_gateway_admin,

View File

@ -1,9 +1,8 @@
use handlebars::Handlebars;
use handlebars::{no_escape, Handlebars};
use super::super::config;
pub fn run() {
#[allow(clippy::useless_vec)]
let template = vec![
r#"
# Logging configuration
@ -17,6 +16,7 @@ r#"
# * INFO
# * WARN
# * ERROR
# * OFF
level="{{ logging.level }}"
# Log as JSON.
@ -993,7 +993,7 @@ r#"
"#].join("\n");
let mut reg = Handlebars::new();
reg.register_escape_fn(|s| s.to_string().replace('"', r#"\""#));
reg.register_escape_fn(no_escape);
let conf = config::get();
println!(
"{}",

View File

@ -1,257 +0,0 @@
use std::fs;
use std::path::Path;
use anyhow::Result;
use serde::Deserialize;
use tracing::{info, span, Instrument, Level};
use crate::codec::Codec;
use crate::storage::{self, device_profile_template};
use lrwn::region;
#[derive(Deserialize)]
struct VendorConfig {
pub vendor: Vendor,
}
#[derive(Default, Deserialize)]
#[serde(default)]
pub struct Vendor {
pub slug: String,
pub name: String,
pub id: usize,
pub ouis: Vec<String>,
pub devices: Vec<String>,
}
#[derive(Deserialize)]
pub struct DeviceConfig {
pub device: Device,
}
#[derive(Default, Deserialize)]
#[serde(default)]
pub struct Device {
pub slug: String,
pub name: String,
pub description: String,
pub firmware: Vec<DeviceFirmware>,
}
#[derive(Deserialize)]
pub struct DeviceFirmware {
pub version: String,
pub profiles: Vec<String>,
pub codec: Option<String>,
}
#[derive(Deserialize)]
pub struct ProfileConfig {
pub profile: Profile,
}
#[derive(Deserialize)]
#[serde(default)]
pub struct Profile {
pub region: region::CommonName,
pub mac_version: region::MacVersion,
pub reg_params_revision: region::Revision,
pub supports_otaa: bool,
pub supports_class_b: bool,
pub supports_class_c: bool,
pub max_eirp: usize,
pub abp: ProfileAbp,
pub class_b: ProfileClassB,
pub class_c: ProfileClassC,
}
impl Default for Profile {
fn default() -> Self {
Self {
region: region::CommonName::EU868,
mac_version: region::MacVersion::LORAWAN_1_0_4,
reg_params_revision: region::Revision::RP002_1_0_4,
supports_otaa: false,
supports_class_b: false,
supports_class_c: false,
max_eirp: 0,
abp: ProfileAbp::default(),
class_b: ProfileClassB::default(),
class_c: ProfileClassC::default(),
}
}
}
#[derive(Default, Deserialize)]
pub struct ProfileAbp {
pub rx1_delay: usize,
pub rx1_dr_offset: usize,
pub rx2_dr: usize,
pub rx2_freq: usize,
}
#[derive(Default, Deserialize)]
pub struct ProfileClassB {
pub timeout_secs: usize,
pub ping_slot_nb_k: usize,
pub ping_slot_dr: usize,
pub ping_slot_freq: usize,
}
#[derive(Default, Deserialize)]
pub struct ProfileClassC {
pub timeout_secs: usize,
}
pub async fn run(dir: &Path) -> Result<()> {
storage::setup().await?;
info!(path = ?dir, "Import LoRaWAN device profiles");
let vendors_dir = dir.join("vendors");
let vendors = fs::read_dir(vendors_dir)?;
for vendor in vendors.flatten() {
if vendor.file_name() == "example-vendor" {
continue;
}
let span = span!(Level::INFO, "", vendor = ?vendor.file_name());
let vendor_dir = vendor.path();
if vendor_dir.is_dir() {
handle_vendor(&vendor_dir).instrument(span).await?;
}
}
Ok(())
}
async fn handle_vendor(dir: &Path) -> Result<()> {
let vendor_conf = dir.join("vendor.toml");
info!(path = ?vendor_conf, "Reading vendor configuration");
let mut vendor_conf: VendorConfig = toml::from_str(&fs::read_to_string(vendor_conf)?)?;
vendor_conf.vendor.slug = dir.file_name().unwrap().to_str().unwrap().to_string();
info!(vendor_name = %vendor_conf.vendor.name, "Vendor loaded");
for device in &vendor_conf.vendor.devices {
let span = span!(Level::INFO, "", device = %device);
handle_device(dir, &vendor_conf.vendor, device)
.instrument(span)
.await?;
}
Ok(())
}
async fn handle_device(dir: &Path, vendor: &Vendor, device: &str) -> Result<()> {
let device_conf = dir.join("devices").join(device);
info!(path = ?device_conf, "Reading device configuration");
let mut device_conf: DeviceConfig = toml::from_str(&fs::read_to_string(device_conf)?)?;
device_conf.device.slug = dir
.join("devices")
.join(device)
.file_stem()
.unwrap()
.to_str()
.unwrap()
.to_string();
info!(device_name = %device_conf.device.name, "Device loaded");
for firmware in &device_conf.device.firmware {
let span = span!(Level::INFO, "", firmware = %firmware.version);
handle_firmware(dir, vendor, &device_conf.device, firmware)
.instrument(span)
.await?;
}
Ok(())
}
async fn handle_firmware(
dir: &Path,
vendor: &Vendor,
device: &Device,
firmware: &DeviceFirmware,
) -> Result<()> {
let codec = if let Some(codec) = &firmware.codec {
let codec_path = dir.join("codecs").join(codec);
info!(path = ?codec_path, "Reading codec file");
Some(fs::read_to_string(codec_path)?)
} else {
None
};
for profile in &firmware.profiles {
let span = span!(Level::INFO, "", profile = %profile);
handle_profile(dir, vendor, device, firmware, &codec, profile)
.instrument(span)
.await?;
}
Ok(())
}
async fn handle_profile(
dir: &Path,
vendor: &Vendor,
device: &Device,
firmware: &DeviceFirmware,
codec: &Option<String>,
profile: &str,
) -> Result<()> {
let profile_path = dir.join("profiles").join(profile);
info!(path = ?profile_path, "Reading profile configuration");
let profile_conf: ProfileConfig = toml::from_str(&fs::read_to_string(profile_path)?)?;
let id_regex = regex::Regex::new(r"[^a-zA-Z0-9\-]+").unwrap();
let id = format!(
"{}-{}-{}-{}",
vendor.slug, device.slug, firmware.version, profile_conf.profile.region
);
let id = id_regex.replace_all(&id, "-").to_string();
let dpt = device_profile_template::DeviceProfileTemplate {
id,
name: device.name.clone(),
description: device.description.clone(),
vendor: vendor.name.clone(),
firmware: firmware.version.clone(),
region: profile_conf.profile.region,
mac_version: profile_conf.profile.mac_version,
reg_params_revision: profile_conf.profile.reg_params_revision,
adr_algorithm_id: "default".into(),
payload_codec_runtime: match codec {
Some(_) => Codec::JS,
None => Codec::NONE,
},
payload_codec_script: match codec {
Some(v) => v.into(),
None => "".into(),
},
uplink_interval: 60 * 60,
device_status_req_interval: 1,
flush_queue_on_activate: true,
supports_otaa: profile_conf.profile.supports_otaa,
supports_class_b: profile_conf.profile.supports_class_b,
supports_class_c: profile_conf.profile.supports_class_c,
class_b_timeout: profile_conf.profile.class_b.timeout_secs as i32,
class_b_ping_slot_nb_k: profile_conf.profile.class_b.ping_slot_nb_k as i32,
class_b_ping_slot_dr: profile_conf.profile.class_b.ping_slot_dr as i16,
class_b_ping_slot_freq: profile_conf.profile.class_b.ping_slot_freq as i64,
class_c_timeout: profile_conf.profile.class_c.timeout_secs as i32,
abp_rx1_delay: profile_conf.profile.abp.rx1_delay as i16,
abp_rx1_dr_offset: profile_conf.profile.abp.rx1_dr_offset as i16,
abp_rx2_dr: profile_conf.profile.abp.rx2_dr as i16,
abp_rx2_freq: profile_conf.profile.abp.rx2_freq as i64,
..Default::default()
};
info!(id = %dpt.id, "Creating or updating device-profile template");
device_profile_template::upsert(dpt).await?;
Ok(())
}

View File

@ -1,7 +1,6 @@
pub mod configfile;
pub mod create_api_key;
pub mod import_legacy_lorawan_devices_repository;
pub mod import_lorawan_device_profiles;
pub mod migrate_ds_to_pg;
pub mod print_ds;
pub mod root;

View File

@ -227,7 +227,7 @@ pub mod test {
let out = decode(Utc::now(), 10, &vars, &decoder, &[0x01, 0x02, 0x03]).await;
assert_eq!(
"JS error: Error: foo is not defined\n at decodeUplink (eval_script:3:1)\n at <eval> (eval_script:8:9)\n",
"JS error: Error:4:24 'foo' is not defined\n at decodeUplink (eval_script:4:24)\n at <eval> (eval_script:8:9)\n",
out.err().unwrap().to_string()
);
}
@ -368,7 +368,7 @@ pub mod test {
};
let out = encode(10, &vars, &encoder, &input).await;
assert_eq!("JS error: Error: foo is not defined\n at encodeDownlink (eval_script:3:1)\n at <eval> (eval_script:8:9)\n", out.err().unwrap().to_string());
assert_eq!("JS error: Error:4:24 'foo' is not defined\n at encodeDownlink (eval_script:4:24)\n at <eval> (eval_script:8:9)\n", out.err().unwrap().to_string());
}
#[tokio::test]

View File

@ -464,12 +464,10 @@ impl Data {
// The queue item:
// * should fit within the max payload size
// * should not be pending
// * should not be expired
// * in case encrypted, should have a valid FCntDown
if !(qi.data.len() > max_payload_size
|| qi.is_pending
|| qi.expires_at.is_some() && qi.expires_at.unwrap() < Utc::now()
|| qi.is_encrypted
if qi.data.len() <= max_payload_size
&& !qi.is_pending
&& !(qi.is_encrypted
&& (qi.f_cnt_down.unwrap_or_default() as u32) < ds.get_a_f_cnt_down())
{
trace!(id = %qi.id, more_in_queue = more_in_queue, "Found device queue-item for downlink");
@ -528,34 +526,6 @@ impl Data {
continue;
}
// Handle expired payload.
if let Some(expires_at) = qi.expires_at {
if expires_at < Utc::now() {
device_queue::delete_item(&qi.id)
.await
.context("Delete device queue-item")?;
let pl = integration_pb::LogEvent {
time: Some(Utc::now().into()),
device_info: Some(device_info.clone()),
level: integration_pb::LogLevel::Error.into(),
code: integration_pb::LogCode::Expired.into(),
description: "Device queue-item discarded because it has expired"
.to_string(),
context: [("queue_item_id".to_string(), qi.id.to_string())]
.iter()
.cloned()
.collect(),
};
integration::log_event(self.application.id.into(), &self.device.variables, &pl)
.await;
warn!(dev_eui = %self.device.dev_eui, device_queue_item_id = %qi.id, "Device queue-item discarded because it has expired");
continue;
}
}
// Handle payload size.
if qi.data.len() > max_payload_size {
device_queue::delete_item(&qi.id)
@ -2797,41 +2767,6 @@ mod test {
..Default::default()
}),
},
Test {
name: "item has expired".into(),
max_payload_size: 10,
queue_items: vec![device_queue::DeviceQueueItem {
id: qi_id.into(),
dev_eui: d.dev_eui,
f_port: 1,
data: vec![1, 2, 3],
expires_at: Some(Utc::now() - chrono::Duration::seconds(10)),
..Default::default()
}],
expected_queue_item: None,
expected_ack_event: None,
expected_log_event: Some(integration_pb::LogEvent {
device_info: Some(integration_pb::DeviceInfo {
tenant_id: t.id.to_string(),
tenant_name: t.name.clone(),
application_id: app.id.to_string(),
application_name: app.name.clone(),
device_profile_id: dp.id.to_string(),
device_profile_name: dp.name.clone(),
device_name: d.name.clone(),
dev_eui: d.dev_eui.to_string(),
..Default::default()
}),
level: integration_pb::LogLevel::Error.into(),
code: integration_pb::LogCode::Expired.into(),
description: "Device queue-item discarded because it has expired".into(),
context: [("queue_item_id".to_string(), qi_id.to_string())]
.iter()
.cloned()
.collect(),
..Default::default()
}),
},
Test {
name: "is pending".into(),
max_payload_size: 10,

View File

@ -6,8 +6,5 @@ pub enum Error {
Abort,
#[error(transparent)]
Anyhow(#[from] anyhow::Error),
#[error(transparent)]
Storage(#[from] crate::storage::error::Error),
AnyhowError(#[from] anyhow::Error),
}

View File

@ -1,14 +1,13 @@
use std::collections::{HashMap, HashSet};
use anyhow::{Context, Result};
use chrono::Utc;
use petgraph::algo::min_spanning_tree;
use petgraph::data::FromElements;
use petgraph::graph::{DefaultIx, Graph, NodeIndex, UnGraph};
use rand::Rng;
use tracing::{span, trace, warn, Instrument, Level};
use crate::downlink::{error::Error, helpers};
use crate::downlink::helpers;
use crate::gateway::backend as gateway_backend;
use crate::storage::{device_gateway, downlink_frame, gateway, multicast};
use crate::{config, region};
@ -33,19 +32,9 @@ impl Multicast {
pub async fn handle_schedule_queue_item(qi: multicast::MulticastGroupQueueItem) -> Result<()> {
let span = span!(Level::INFO, "multicast", multicast_group_id = %qi.multicast_group_id, gateway_id = %qi.gateway_id);
match Multicast::_handle_schedule_queue_item(qi)
Multicast::_handle_schedule_queue_item(qi)
.instrument(span)
.await
{
Ok(()) => Ok(()),
Err(e) => match e.downcast_ref::<Error>() {
Some(Error::Abort) => {
// Nothing to do
Ok(())
}
_ => Err(e),
},
}
}
async fn _handle_schedule_queue_item(qi: multicast::MulticastGroupQueueItem) -> Result<()> {
@ -66,7 +55,6 @@ impl Multicast {
ctx.get_gateway().await?;
ctx.set_region_config_id()?;
ctx.get_multicast_group().await?;
ctx.validate_expiration().await?;
ctx.validate_payload_size().await?;
ctx.set_tx_info()?;
ctx.set_phy_payload()?;
@ -102,23 +90,7 @@ impl Multicast {
Ok(())
}
async fn validate_expiration(&self) -> Result<(), Error> {
trace!("Validating expires_at");
if let Some(expires_at) = self.multicast_group_queue_item.expires_at {
if Utc::now() > expires_at {
warn!(
expires_at = %expires_at,
"Discarding multicast-group queue item because it has expired"
);
multicast::delete_queue_item(&self.multicast_group_queue_item.id).await?;
return Err(Error::Abort);
}
}
Ok(())
}
async fn validate_payload_size(&self) -> Result<(), Error> {
async fn validate_payload_size(&self) -> Result<()> {
trace!("Validating payload size for DR");
let mg = self.multicast_group.as_ref().unwrap();
let region_conf = region::get(&self.region_config_id)?;
@ -137,7 +109,9 @@ impl Multicast {
"Discarding multicast-group queue item because it exceeds max. payload size"
);
multicast::delete_queue_item(&self.multicast_group_queue_item.id).await?;
return Err(Error::Abort);
return Err(anyhow!(
"Queue item exceeds max payload and has been discarded"
));
}
Ok(())

View File

@ -8,7 +8,7 @@ use tokio::fs;
// Return root certificates, optionally with the provided ca_file appended.
pub fn get_root_certs(ca_file: Option<String>) -> Result<rustls::RootCertStore> {
let mut roots = rustls::RootCertStore::empty();
for cert in rustls_native_certs::load_native_certs().certs {
for cert in rustls_native_certs::load_native_certs()? {
roots.add(cert)?;
}

View File

@ -11,7 +11,7 @@ use tokio::fs;
// Return root certificates, optionally with the provided ca_file appended.
pub fn get_root_certs(ca_file: Option<String>) -> Result<rustls::RootCertStore> {
let mut roots = rustls::RootCertStore::empty();
for cert in rustls_native_certs::load_native_certs().certs {
for cert in rustls_native_certs::load_native_certs()? {
roots.add(cert)?;
}

View File

@ -65,13 +65,6 @@ enum Commands {
dev_eui: String,
},
/// Import lorawan-device-profiles repository.
ImportLorawanDeviceProfiles {
/// Path to repository root.
#[arg(short, long, value_name = "DIR")]
dir: String,
},
/// Import legacy lorawan-devices repository.
ImportLegacyLorawanDevicesRepository {
/// Path to repository root.
@ -120,11 +113,6 @@ async fn main() -> Result<()> {
let dev_eui = EUI64::from_str(dev_eui).unwrap();
cmd::print_ds::run(&dev_eui).await.unwrap();
}
Some(Commands::ImportLorawanDeviceProfiles { dir }) => {
cmd::import_lorawan_device_profiles::run(Path::new(&dir))
.await
.unwrap()
}
Some(Commands::ImportLegacyLorawanDevicesRepository { dir }) => {
cmd::import_legacy_lorawan_devices_repository::run(Path::new(&dir))
.await

View File

@ -1,5 +1,6 @@
use std::collections::HashMap;
use std::fmt;
use std::ops::{Deref, DerefMut};
use std::str::FromStr;
use anyhow::{Context, Result};
@ -145,13 +146,15 @@ impl Device {
pub fn get_device_session(&self) -> Result<&internal::DeviceSession, Error> {
self.device_session
.as_deref()
.as_ref()
.map(|ds| ds.deref())
.ok_or_else(|| Error::NotFound(self.dev_eui.to_string()))
}
pub fn get_device_session_mut(&mut self) -> Result<&mut internal::DeviceSession, Error> {
self.device_session
.as_deref_mut()
.as_mut()
.map(|ds| ds.deref_mut())
.ok_or_else(|| Error::NotFound(self.dev_eui.to_string()))
}

View File

@ -38,7 +38,7 @@ impl Default for DeviceKeys {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00,
]),
dev_nonces: fields::DevNonces::default(),
dev_nonces: Vec::new().into(),
join_nonce: 0,
}
}
@ -93,12 +93,10 @@ pub async fn delete(dev_eui: &EUI64) -> Result<(), Error> {
Ok(())
}
pub async fn set_dev_nonces(
dev_eui: EUI64,
nonces: &fields::DevNonces,
) -> Result<DeviceKeys, Error> {
pub async fn set_dev_nonces(dev_eui: &EUI64, nonces: &[i32]) -> Result<DeviceKeys, Error> {
let nonces: Vec<Option<i32>> = nonces.iter().map(|v| Some(*v)).collect();
let dk: DeviceKeys = diesel::update(device_keys::dsl::device_keys.find(dev_eui))
.set(device_keys::dev_nonces.eq(nonces))
.set(device_keys::dev_nonces.eq(fields::DevNonces::from(nonces)))
.get_result(&mut get_async_db_conn().await?)
.await
.map_err(|e| Error::from_diesel(e, dev_eui.to_string()))?;
@ -110,9 +108,8 @@ pub async fn set_dev_nonces(
}
pub async fn validate_incr_join_and_store_dev_nonce(
join_eui: EUI64,
dev_eui: EUI64,
dev_nonce: u16,
dev_eui: &EUI64,
dev_nonce: i32,
) -> Result<DeviceKeys, Error> {
let mut c = get_async_db_conn().await?;
let dk: DeviceKeys = db_transaction::<DeviceKeys, Error, _>(&mut c, |c| {
@ -125,11 +122,11 @@ pub async fn validate_incr_join_and_store_dev_nonce(
.await
.map_err(|e| Error::from_diesel(e, dev_eui.to_string()))?;
if dk.dev_nonces.contains(join_eui, dev_nonce) {
if dk.dev_nonces.contains(&(Some(dev_nonce))) {
return Err(Error::InvalidDevNonce);
}
dk.dev_nonces.insert(join_eui, dev_nonce);
dk.dev_nonces.push(Some(dev_nonce));
dk.join_nonce += 1;
diesel::update(device_keys::dsl::device_keys.find(&dev_eui))
@ -158,7 +155,7 @@ pub mod test {
pub async fn reset_nonces(dev_eui: &EUI64) -> Result<DeviceKeys, Error> {
let dk: DeviceKeys = diesel::update(device_keys::dsl::device_keys.find(&dev_eui))
.set((
device_keys::dev_nonces.eq(fields::DevNonces::default()),
device_keys::dev_nonces.eq(fields::DevNonces::from(Vec::new())),
device_keys::join_nonce.eq(0),
))
.get_result(&mut get_async_db_conn().await?)

View File

@ -22,7 +22,6 @@ pub struct DeviceQueueItem {
pub f_cnt_down: Option<i64>,
pub timeout_after: Option<DateTime<Utc>>,
pub is_encrypted: bool,
pub expires_at: Option<DateTime<Utc>>,
}
impl DeviceQueueItem {
@ -58,7 +57,6 @@ impl Default for DeviceQueueItem {
f_cnt_down: None,
timeout_after: None,
is_encrypted: false,
expires_at: None,
}
}
}

View File

@ -54,7 +54,7 @@ impl deserialize::FromSql<Numeric, Pg> for BigDecimal {
#[cfg(feature = "postgres")]
impl serialize::ToSql<Numeric, Pg> for BigDecimal {
fn to_sql(&self, out: &mut serialize::Output<'_, '_, Pg>) -> serialize::Result {
fn to_sql<'b>(&self, out: &mut serialize::Output<'b, '_, Pg>) -> serialize::Result {
<bigdecimal::BigDecimal as serialize::ToSql<Numeric, Pg>>::to_sql(
&self.0,
&mut out.reborrow(),

View File

@ -1,48 +1,72 @@
use std::collections::HashMap;
use diesel::backend::Backend;
use diesel::{deserialize, serialize};
#[cfg(feature = "postgres")]
use diesel::{pg::Pg, sql_types::Jsonb};
use diesel::{
pg::Pg,
sql_types::{Array, Int4, Nullable},
};
#[cfg(feature = "sqlite")]
use diesel::{sql_types::Text, sqlite::Sqlite};
use serde::{Deserialize, Serialize};
use lrwn::EUI64;
#[cfg(feature = "postgres")]
type DevNoncesPgType = Array<Nullable<Int4>>;
#[derive(Default, Debug, Clone, PartialEq, Eq, AsExpression, FromSqlRow)]
#[cfg_attr(feature = "postgres", diesel(sql_type = Jsonb))]
// Sqlite has no native array type so use text
#[derive(Deserialize, Serialize, Clone, Debug, Eq, PartialEq, AsExpression, FromSqlRow)]
#[serde(transparent)]
#[cfg_attr(feature = "postgres", diesel(sql_type = DevNoncesPgType))]
#[cfg_attr(feature = "sqlite", diesel(sql_type = Text))]
pub struct DevNonces(HashMap<EUI64, Vec<u16>>);
pub struct DevNonces(DevNoncesInner);
impl DevNonces {
pub fn contains(&self, join_eui: EUI64, dev_nonce: u16) -> bool {
if let Some(v) = self.0.get(&join_eui) {
v.contains(&dev_nonce)
} else {
false
}
pub type DevNoncesInner = Vec<Option<i32>>;
impl std::default::Default for DevNonces {
fn default() -> Self {
Self(Vec::new())
}
}
pub fn insert(&mut self, join_eui: EUI64, dev_nonce: u16) {
self.0.entry(join_eui).or_default().push(dev_nonce)
impl std::convert::AsRef<DevNoncesInner> for DevNonces {
fn as_ref(&self) -> &DevNoncesInner {
&self.0
}
}
impl std::convert::From<DevNoncesInner> for DevNonces {
fn from(value: DevNoncesInner) -> Self {
Self(value)
}
}
impl std::ops::Deref for DevNonces {
type Target = DevNoncesInner;
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl std::ops::DerefMut for DevNonces {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.0
}
}
#[cfg(feature = "postgres")]
impl deserialize::FromSql<Jsonb, Pg> for DevNonces {
impl deserialize::FromSql<DevNoncesPgType, Pg> for DevNonces {
fn from_sql(value: <Pg as Backend>::RawValue<'_>) -> deserialize::Result<Self> {
let value = <serde_json::Value as deserialize::FromSql<Jsonb, Pg>>::from_sql(value)?;
let dev_nonces: HashMap<EUI64, Vec<u16>> = serde_json::from_value(value)?;
Ok(DevNonces(dev_nonces))
let sql_val = <DevNoncesInner>::from_sql(value)?;
Ok(DevNonces(sql_val))
}
}
#[cfg(feature = "postgres")]
impl serialize::ToSql<Jsonb, Pg> for DevNonces {
fn to_sql<'b>(&'b self, out: &mut serialize::Output<'b, '_, Pg>) -> serialize::Result {
let value = serde_json::to_value(&self.0)?;
<serde_json::Value as serialize::ToSql<Jsonb, Pg>>::to_sql(&value, &mut out.reborrow())
impl serialize::ToSql<DevNoncesPgType, Pg> for DevNonces {
fn to_sql<'b>(&self, out: &mut serialize::Output<'b, '_, Pg>) -> serialize::Result {
<DevNoncesInner as serialize::ToSql<DevNoncesPgType, Pg>>::to_sql(
&self.0,
&mut out.reborrow(),
)
}
}
@ -54,15 +78,15 @@ where
fn from_sql(value: <Sqlite as Backend>::RawValue<'_>) -> deserialize::Result<Self> {
let s =
<*const str as deserialize::FromSql<diesel::sql_types::Text, Sqlite>>::from_sql(value)?;
let dev_nonces: HashMap<EUI64, Vec<u16>> = serde_json::from_str(unsafe { &*s })?;
Ok(DevNonces(dev_nonces))
let nonces = serde_json::from_str::<DevNonces>(unsafe { &*s })?;
Ok(nonces)
}
}
#[cfg(feature = "sqlite")]
impl serialize::ToSql<Text, Sqlite> for DevNonces {
fn to_sql<'b>(&'b self, out: &mut serialize::Output<'b, '_, Sqlite>) -> serialize::Result {
out.set_value(serde_json::to_string(&self.0)?);
fn to_sql<'b>(&self, out: &mut serialize::Output<'b, '_, Sqlite>) -> serialize::Result {
out.set_value(serde_json::to_string(self)?);
Ok(serialize::IsNull::No)
}
}

View File

@ -34,9 +34,9 @@ impl std::convert::From<&internal::DeviceSession> for DeviceSession {
}
}
impl std::convert::From<DeviceSession> for internal::DeviceSession {
fn from(val: DeviceSession) -> Self {
val.0
impl std::convert::Into<internal::DeviceSession> for DeviceSession {
fn into(self) -> internal::DeviceSession {
self.0
}
}

View File

@ -7,7 +7,7 @@ mod multicast_group_scheduling_type;
mod uuid;
pub use big_decimal::BigDecimal;
pub use dev_nonces::DevNonces;
pub use dev_nonces::*;
pub use device_session::DeviceSession;
pub use key_value::KeyValue;
pub use measurements::*;

View File

@ -21,13 +21,13 @@ impl std::convert::From<uuid::Uuid> for Uuid {
impl std::convert::From<&uuid::Uuid> for Uuid {
fn from(u: &uuid::Uuid) -> Self {
Self::from(*u)
Self::from(u.clone())
}
}
impl std::convert::From<Uuid> for uuid::Uuid {
fn from(val: Uuid) -> Self {
val.0
impl std::convert::Into<uuid::Uuid> for Uuid {
fn into(self) -> uuid::Uuid {
self.0
}
}
@ -60,7 +60,7 @@ impl deserialize::FromSql<diesel::sql_types::Uuid, Pg> for Uuid {
#[cfg(feature = "postgres")]
impl serialize::ToSql<diesel::sql_types::Uuid, Pg> for Uuid {
fn to_sql(&self, out: &mut serialize::Output<'_, '_, Pg>) -> serialize::Result {
fn to_sql<'b>(&self, out: &mut serialize::Output<'b, '_, Pg>) -> serialize::Result {
<uuid::Uuid as serialize::ToSql<diesel::sql_types::Uuid, Pg>>::to_sql(
&self.0,
&mut out.reborrow(),

View File

@ -390,7 +390,7 @@ pub async fn get_counts_by_state(tenant_id: &Option<Uuid>) -> Result<GatewayCoun
gateway
where
$1 is null or tenant_id = $1
"#).bind::<diesel::sql_types::Nullable<fields::sql_types::Uuid>, _>(tenant_id.map(fields::Uuid::from)).get_result(&mut get_async_db_conn().await?).await?;
"#).bind::<diesel::sql_types::Nullable<fields::sql_types::Uuid>, _>(tenant_id.map(|u| fields::Uuid::from(u))).get_result(&mut get_async_db_conn().await?).await?;
Ok(counts)
}

View File

@ -98,7 +98,6 @@ pub struct MulticastGroupQueueItem {
pub f_port: i16,
pub data: Vec<u8>,
pub emit_at_time_since_gps_epoch: Option<i64>,
pub expires_at: Option<DateTime<Utc>>,
}
impl MulticastGroupQueueItem {
@ -127,7 +126,6 @@ impl Default for MulticastGroupQueueItem {
f_port: 0,
data: vec![],
emit_at_time_since_gps_epoch: None,
expires_at: None,
}
}
}
@ -465,7 +463,7 @@ pub async fn enqueue(
for gateway_id in gateway_ids {
let qi = MulticastGroupQueueItem {
scheduler_run_after: scheduler_run_after_ts,
multicast_group_id: mg.id,
multicast_group_id: mg.id.into(),
gateway_id: *gateway_id,
f_cnt: mg.f_cnt,
f_port: qi.f_port,
@ -473,7 +471,6 @@ pub async fn enqueue(
emit_at_time_since_gps_epoch: Some(
emit_at_time_since_gps_epoch.num_milliseconds(),
),
expires_at: qi.expires_at,
..Default::default()
};
@ -540,13 +537,12 @@ pub async fn enqueue(
for gateway_id in gateway_ids {
let qi = MulticastGroupQueueItem {
scheduler_run_after: scheduler_run_after_ts,
multicast_group_id: mg.id,
multicast_group_id: mg.id.into(),
gateway_id: *gateway_id,
f_cnt: mg.f_cnt,
f_port: qi.f_port,
data: qi.data.clone(),
emit_at_time_since_gps_epoch,
expires_at: qi.expires_at,
..Default::default()
};
@ -670,8 +666,7 @@ pub async fn get_schedulable_queue_items(limit: usize) -> Result<Vec<MulticastGr
on g.gateway_id = qi.gateway_id
where
qi.scheduler_run_after <= $2
-- check that the gateway is online, except when the item already has expired
and ($2 - make_interval(secs => g.stats_interval_secs * 2) <= g.last_seen_at or expires_at <= $2)
and now() - make_interval(secs => g.stats_interval_secs * 2) <= g.last_seen_at
order by
qi.created_at
limit $1
@ -1123,117 +1118,4 @@ pub mod test {
flush_queue(&mg.id.into()).await.unwrap();
assert!(delete_queue_item(&ids[0]).await.is_err());
}
#[tokio::test]
async fn test_get_schedulable_queue_items() {
let _guard = test::prepare().await;
let t = tenant::create(tenant::Tenant {
name: "test-tenant".into(),
can_have_gateways: true,
..Default::default()
})
.await
.unwrap();
let app = application::create(application::Application {
name: "test-app".into(),
tenant_id: t.id,
..Default::default()
})
.await
.unwrap();
let gw = gateway::create(gateway::Gateway {
gateway_id: EUI64::from_be_bytes([1, 2, 3, 4, 5, 6, 7, 8]),
name: "test-gw".into(),
tenant_id: t.id,
stats_interval_secs: 30,
last_seen_at: Some(Utc::now()),
..Default::default()
})
.await
.unwrap();
let mg = create(MulticastGroup {
application_id: app.id,
name: "test-mg".into(),
region: CommonName::EU868,
mc_addr: DevAddr::from_be_bytes([1, 2, 3, 4]),
mc_nwk_s_key: AES128Key::from_bytes([1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8]),
f_cnt: 10,
group_type: "C".into(),
dr: 1,
frequency: 868100000,
class_c_scheduling_type: fields::MulticastGroupSchedulingType::DELAY,
..Default::default()
})
.await
.unwrap();
let mut qi = MulticastGroupQueueItem {
scheduler_run_after: Utc::now(),
multicast_group_id: mg.id,
gateway_id: gw.gateway_id,
f_cnt: mg.f_cnt,
f_port: 10,
data: vec![1, 2, 3],
expires_at: None,
..Default::default()
};
qi = diesel::insert_into(multicast_group_queue_item::table)
.values(&qi)
.get_result(&mut get_async_db_conn().await.unwrap())
.await
.unwrap();
// We expect one queue item.
let out = get_schedulable_queue_items(100).await.unwrap();
assert_eq!(1, out.len());
// We expect zero items because the scheduler_run_after has been updated
// by the get_schedulable_queue_items function.
let out = get_schedulable_queue_items(100).await.unwrap();
assert_eq!(0, out.len());
// Restore scheduler_run_after
diesel::update(multicast_group_queue_item::dsl::multicast_group_queue_item.find(&qi.id))
.set(multicast_group_queue_item::scheduler_run_after.eq(Utc::now()))
.execute(&mut get_async_db_conn().await.unwrap())
.await
.unwrap();
// The below features are (currently) for PostgreSQL only.
#[cfg(feature = "postgres")]
{
// Set gateway last_seen_at in the past.
gateway::partial_update(
gw.gateway_id,
&gateway::GatewayChangeset {
last_seen_at: Some(Some(Utc::now() - Duration::days(1))),
..Default::default()
},
)
.await
.unwrap();
// We expect zero items, as the gateway is not online.
let out = get_schedulable_queue_items(100).await.unwrap();
assert_eq!(0, out.len());
// Set the expires_at of the queue item to now.
diesel::update(
multicast_group_queue_item::dsl::multicast_group_queue_item.find(&qi.id),
)
.set(multicast_group_queue_item::expires_at.eq(Some(Utc::now())))
.execute(&mut get_async_db_conn().await.unwrap())
.await
.unwrap();
// We expect one item, as it has expired.
let out = get_schedulable_queue_items(100).await.unwrap();
assert_eq!(1, out.len());
}
}
}

View File

@ -75,7 +75,7 @@ diesel::table! {
updated_at -> Timestamptz,
nwk_key -> Bytea,
app_key -> Bytea,
dev_nonces -> Jsonb,
dev_nonces -> Array<Nullable<Int4>>,
join_nonce -> Int4,
}
}
@ -203,7 +203,6 @@ diesel::table! {
f_cnt_down -> Nullable<Int8>,
timeout_after -> Nullable<Timestamptz>,
is_encrypted -> Bool,
expires_at -> Nullable<Timestamptz>,
}
}
@ -278,7 +277,6 @@ diesel::table! {
f_port -> Int2,
data -> Bytea,
emit_at_time_since_gps_epoch -> Nullable<Int8>,
expires_at -> Nullable<Timestamptz>,
}
}

View File

@ -183,7 +183,6 @@ diesel::table! {
f_cnt_down -> Nullable<BigInt>,
timeout_after -> Nullable<TimestamptzSqlite>,
is_encrypted -> Bool,
expires_at -> Nullable<TimestamptzSqlite>,
}
}
@ -253,7 +252,6 @@ diesel::table! {
f_port -> SmallInt,
data -> Binary,
emit_at_time_since_gps_epoch -> Nullable<BigInt>,
expires_at -> Nullable<TimestamptzSqlite>,
}
}

View File

@ -1,4 +1,4 @@
use chrono::{Duration, Utc};
use chrono::Utc;
use super::assert;
use crate::storage::{
@ -118,7 +118,7 @@ async fn test_multicast() {
name: "one item in queue".into(),
multicast_group: mg.clone(),
multicast_group_queue_items: vec![multicast::MulticastGroupQueueItem {
multicast_group_id: mg.id,
multicast_group_id: mg.id.into(),
f_port: 5,
data: vec![1, 2, 3],
..Default::default()
@ -160,13 +160,13 @@ async fn test_multicast() {
multicast_group: mg.clone(),
multicast_group_queue_items: vec![
multicast::MulticastGroupQueueItem {
multicast_group_id: mg.id,
multicast_group_id: mg.id.into(),
f_port: 5,
data: vec![1, 2, 3],
..Default::default()
},
multicast::MulticastGroupQueueItem {
multicast_group_id: mg.id,
multicast_group_id: mg.id.into(),
f_port: 6,
data: vec![1, 2, 3],
..Default::default()
@ -207,24 +207,20 @@ async fn test_multicast() {
MulticastTest {
name: "item discarded because of payload size".into(),
multicast_group: mg.clone(),
multicast_group_queue_items: vec![multicast::MulticastGroupQueueItem {
multicast_group_id: mg.id,
f_port: 5,
data: vec![2; 300],
..Default::default()
}],
assert: vec![assert::no_downlink_frame()],
},
MulticastTest {
name: "item discarded because it has expired".into(),
multicast_group: mg.clone(),
multicast_group_queue_items: vec![multicast::MulticastGroupQueueItem {
multicast_group_id: mg.id,
f_port: 5,
data: vec![1, 2, 3],
expires_at: Some(Utc::now() - Duration::seconds(10)),
..Default::default()
}],
multicast_group_queue_items: vec![
multicast::MulticastGroupQueueItem {
multicast_group_id: mg.id.into(),
f_port: 5,
data: vec![2; 300],
..Default::default()
},
multicast::MulticastGroupQueueItem {
multicast_group_id: mg.id.into(),
f_port: 6,
data: vec![1, 2, 3],
..Default::default()
},
],
assert: vec![assert::no_downlink_frame()],
},
];

View File

@ -15,7 +15,7 @@ use crate::storage::{
device::{self, DeviceClass},
device_keys, device_profile, gateway, tenant,
};
use crate::{config, storage::fields, test, uplink};
use crate::{config, test, uplink};
use chirpstack_api::gw;
use lrwn::{AES128Key, EUI64Prefix, NetID, EUI64};
@ -314,7 +314,7 @@ async fn test_sns() {
let dk = device_keys::create(device_keys::DeviceKeys {
dev_eui: dev.dev_eui,
nwk_key: AES128Key::from_bytes([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]),
dev_nonces: fields::DevNonces::default(),
dev_nonces: vec![].into(),
..Default::default()
})
.await
@ -499,7 +499,7 @@ async fn test_sns_roaming_not_allowed() {
let dk = device_keys::create(device_keys::DeviceKeys {
dev_eui: dev.dev_eui,
nwk_key: AES128Key::from_bytes([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]),
dev_nonces: fields::DevNonces::default(),
dev_nonces: vec![].into(),
..Default::default()
})
.await

View File

@ -10,9 +10,7 @@ use crate::storage::{
device::{self, DeviceClass},
device_keys, device_profile, gateway, tenant,
};
use crate::{
config, gateway::backend as gateway_backend, integration, region, storage::fields, test, uplink,
};
use crate::{config, gateway::backend as gateway_backend, integration, region, test, uplink};
use chirpstack_api::{common, gw, internal, stream};
use lrwn::keys::get_js_int_key;
use lrwn::{AES128Key, EUI64};
@ -103,11 +101,7 @@ async fn test_gateway_filtering() {
let dk = device_keys::create(device_keys::DeviceKeys {
dev_eui: dev.dev_eui,
nwk_key: AES128Key::from_bytes([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]),
dev_nonces: {
let mut dev_nonces = fields::DevNonces::default();
dev_nonces.insert(EUI64::from_be_bytes([1, 2, 3, 4, 5, 6, 7, 8]), 258);
dev_nonces
},
dev_nonces: vec![Some(258)].into(),
..Default::default()
})
.await
@ -279,11 +273,7 @@ async fn test_lorawan_10() {
let dk = device_keys::create(device_keys::DeviceKeys {
dev_eui: dev.dev_eui,
nwk_key: AES128Key::from_bytes([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]),
dev_nonces: {
let mut dev_nonces = fields::DevNonces::default();
dev_nonces.insert(EUI64::from_be_bytes([1, 2, 3, 4, 5, 6, 7, 8]), 258);
dev_nonces
},
dev_nonces: vec![Some(258)].into(),
..Default::default()
})
.await
@ -939,11 +929,7 @@ async fn test_lorawan_11() {
dev_eui: dev.dev_eui,
nwk_key: AES128Key::from_bytes([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]),
app_key: AES128Key::from_bytes([16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]),
dev_nonces: {
let mut dev_nonces = fields::DevNonces::default();
dev_nonces.insert(EUI64::from_be_bytes([1, 2, 3, 4, 5, 6, 7, 8]), 258);
dev_nonces
},
dev_nonces: vec![Some(258)].into(),
..Default::default()
})
.await

View File

@ -456,9 +456,8 @@ impl JoinRequest {
self.device_keys = Some(
match device_keys::validate_incr_join_and_store_dev_nonce(
join_request.join_eui,
dev.dev_eui,
join_request.dev_nonce,
&dev.dev_eui,
join_request.dev_nonce as i32,
)
.await
{

View File

@ -353,9 +353,8 @@ impl JoinRequest {
self.device_keys = Some(
match device_keys::validate_incr_join_and_store_dev_nonce(
join_request.join_eui,
dev.dev_eui,
join_request.dev_nonce,
&dev.dev_eui,
join_request.dev_nonce as i32,
)
.await
{

View File

@ -3,7 +3,7 @@
description = "Library for filtering LoRaWAN payloads on DevAddr and JoinEUIs prefixes"
homepage = "https://www.chirpstack.io/"
license = "MIT"
version = "4.10.2"
version = "4.9.0"
authors = ["Orne Brocaar <info@brocaar.com>"]
edition = "2021"
repository = "https://github.com/chirpstack/chirpstack"
@ -13,7 +13,7 @@
[dependencies]
hex = "0.4"
thiserror = "2.0"
thiserror = "1.0"
serde = { version = "1.0", features = ["derive"], optional = true }
[dev-dependencies]

View File

@ -32,7 +32,7 @@ pub fn matches(phy_payload: &[u8], config: &Filters) -> bool {
let mhdr = phy_payload[0];
let m_type = mhdr >> 5;
let dev_addr: Option<[u8; 4]> = match m_type {
let dev_addr: Option<u32> = match m_type {
// DataUp
0x02 | 0x04 => {
// MHDR + DevAddr
@ -40,7 +40,7 @@ pub fn matches(phy_payload: &[u8], config: &Filters) -> bool {
if phy_payload.len() >= 5 {
let mut dev_addr: [u8; 4] = [0; 4];
dev_addr.clone_from_slice(&phy_payload[1..5]);
Some(dev_addr)
Some(u32::from_le_bytes(dev_addr))
} else {
None
}
@ -48,7 +48,7 @@ pub fn matches(phy_payload: &[u8], config: &Filters) -> bool {
_ => None,
};
let join_eui: Option<[u8; 8]> = match m_type {
let join_eui: Option<u64> = match m_type {
// JoinRequest
0x00 => {
// MHDR + JoinEUI + DevEUI
@ -56,7 +56,7 @@ pub fn matches(phy_payload: &[u8], config: &Filters) -> bool {
if phy_payload.len() >= 17 {
let mut join_eui: [u8; 8] = [0; 8];
join_eui.clone_from_slice(&phy_payload[1..9]);
Some(join_eui)
Some(u64::from_le_bytes(join_eui))
} else {
None
}
@ -76,7 +76,8 @@ pub fn matches(phy_payload: &[u8], config: &Filters) -> bool {
}
for p in &config.dev_addr_prefixes {
if p.is_match(dev_addr) {
let prefix = u32::from_be_bytes(p.prefix());
if dev_addr >> (32 - p.size()) == prefix >> (32 - p.size()) {
return true;
}
}
@ -88,7 +89,8 @@ pub fn matches(phy_payload: &[u8], config: &Filters) -> bool {
}
for p in &config.join_eui_prefixes {
if p.is_match(join_eui) {
let prefix = u64::from_be_bytes(p.prefix());
if join_eui >> (64 - p.size()) == prefix >> (64 - p.size()) {
return true;
}
}
@ -106,12 +108,6 @@ impl DevAddrPrefix {
DevAddrPrefix(prefix, size)
}
pub fn is_match(&self, dev_addr_le: [u8; 4]) -> bool {
let dev_addr = u32::from_le_bytes(dev_addr_le);
let prefix = u32::from_be_bytes(self.prefix());
dev_addr >> (32 - self.size()) == prefix >> (32 - self.size())
}
fn prefix(&self) -> [u8; 4] {
self.0
}
@ -208,14 +204,6 @@ impl EuiPrefix {
EuiPrefix(prefix, size)
}
pub fn is_match(&self, eui_le: [u8; 8]) -> bool {
let eui = u64::from_le_bytes(eui_le);
let prefix = u64::from_be_bytes(self.prefix());
println!("EUI: {}", eui >> (64 - self.size()));
println!("PREFIX: {}", prefix >> (64 - self.size()));
eui >> (64 - self.size()) == prefix >> (64 - self.size())
}
fn prefix(&self) -> [u8; 8] {
self.0
}

Some files were not shown because too many files have changed in this diff Show More