mirror of
https://github.com/chirpstack/chirpstack.git
synced 2025-04-17 20:50:14 +00:00
Compare commits
70 Commits
queue_expi
...
api/go/v4.
Author | SHA1 | Date | |
---|---|---|---|
2fc762d932 | |||
24333f8b5d | |||
99239a82d4 | |||
317c1cb14d | |||
2e0d034a6b | |||
fb59f541b1 | |||
f6374f00f8 | |||
32a9aadbae | |||
99613014ad | |||
8cb2d4f383 | |||
96b544974e | |||
a71113db42 | |||
2e738e1f33 | |||
0487d6a7f0 | |||
6864f6ef2b | |||
9c25a5d48b | |||
de492a7e30 | |||
2028ccab9a | |||
724dfb138c | |||
b6763cc951 | |||
df3aafd1c4 | |||
64b2e82244 | |||
70e4afae54 | |||
922a83597f | |||
e50a1e3655 | |||
e5397ca43a | |||
a70afa223b | |||
7936955a19 | |||
092c119cdc | |||
661c4ed417 | |||
8aff4490f9 | |||
30b1e0301a | |||
d3692144fa | |||
91b9077ba8 | |||
532392abe1 | |||
41b3c6a4e4 | |||
4b6391f57e | |||
ed11c88307 | |||
0ed78a1d0a | |||
fdf168bd09 | |||
dddb471878 | |||
f265a815a6 | |||
9bf78eebfd | |||
3d470c6a14 | |||
2b5b54a7b7 | |||
905db6e9b7 | |||
1245386f38 | |||
49e7c1ccb9 | |||
eafda74526 | |||
3378a81a37 | |||
04e676cad6 | |||
e3b83066b7 | |||
dcf6ea14bd | |||
b1766e506d | |||
87c918bc35 | |||
d5929e0523 | |||
d69f18edad | |||
6621a23652 | |||
20ec2877f2 | |||
10cbdb1e00 | |||
d24b8241c5 | |||
eecdeeb092 | |||
20e9e087ed | |||
c9bdea87f1 | |||
11fdd33139 | |||
07364fb05d | |||
3b42b9ffdb | |||
af139ebabd | |||
bf74c9d91d | |||
4d7a4b22e1 |
13
.github/workflows/main.yml
vendored
13
.github/workflows/main.yml
vendored
@ -28,7 +28,7 @@ jobs:
|
||||
name: Install Nix
|
||||
uses: cachix/install-nix-action@v27
|
||||
with:
|
||||
nix_path: nixpkgs=channel:nixos-24.05
|
||||
nix_path: nixpkgs=channel:nixos-24.11
|
||||
-
|
||||
name: Cargo cache
|
||||
uses: actions/cache@v4
|
||||
@ -54,6 +54,13 @@ 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
|
||||
@ -62,7 +69,7 @@ jobs:
|
||||
name: Install Nix
|
||||
uses: cachix/install-nix-action@v27
|
||||
with:
|
||||
nix_path: nixpkgs=channel:nixos-24.05
|
||||
nix_path: nixpkgs=channel:nixos-24.11
|
||||
-
|
||||
name: Cargo cache
|
||||
uses: actions/cache@v4
|
||||
@ -101,7 +108,7 @@ jobs:
|
||||
uses: docker/metadata-action@v3
|
||||
with:
|
||||
images: |
|
||||
chirpstack/${{ github.event.repository.name }}
|
||||
chirpstack/${{ github.event.repository.name }}${{ matrix.database != 'postgres' && format('-{0}', matrix.database) || '' }}
|
||||
tags: |
|
||||
type=semver,pattern={{version}}
|
||||
type=semver,pattern={{major}}
|
||||
|
1483
Cargo.lock
generated
1483
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
||||
# Copy binary stage
|
||||
FROM --platform=$BUILDPLATFORM alpine:3.18.0 as binary
|
||||
FROM --platform=$BUILDPLATFORM alpine:3.21.0 as binary
|
||||
|
||||
ARG TARGETPLATFORM
|
||||
|
||||
@ -20,11 +20,11 @@ RUN case "$TARGETPLATFORM" in \
|
||||
esac;
|
||||
|
||||
# Final stage
|
||||
FROM alpine:3.18.0
|
||||
FROM alpine:3.21.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"]
|
||||
|
11
Makefile
11
Makefile
@ -6,11 +6,10 @@ dist:
|
||||
cd chirpstack && make dist
|
||||
|
||||
# Install dev dependencies
|
||||
# TODO: test latest cargo-deb and move it to shell.nix.
|
||||
dev-dependencies:
|
||||
cargo install cross --version 0.2.5
|
||||
cargo install diesel_cli --version 2.2.1 --no-default-features --features postgres,sqlite
|
||||
cargo install cargo-deb --version 1.43.1
|
||||
cargo install cargo-generate-rpm --version 0.12.1
|
||||
cargo install cargo-deb --version 1.43.1 --locked
|
||||
cargo install cargo-generate-rpm --version 0.12.1 --locked
|
||||
|
||||
# Set the versions
|
||||
version:
|
||||
@ -53,10 +52,6 @@ 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
Normal file
16
api/Dockerfile-c
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
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
9
api/Makefile
vendored
@ -1,6 +1,6 @@
|
||||
.PHONY: rust grpc-web go js python md java kotlin csharp php
|
||||
.PHONY: rust grpc-web go js python md java kotlin csharp php c
|
||||
|
||||
all: rust grpc-web go js python md java kotlin csharp php
|
||||
all: rust grpc-web go js python md java kotlin csharp php c
|
||||
|
||||
rust:
|
||||
cd rust && make
|
||||
@ -30,4 +30,7 @@ csharp:
|
||||
docker compose run --rm chirpstack-csharp
|
||||
|
||||
php:
|
||||
docker compose run --rm chirpstack-api-php
|
||||
docker compose run --rm chirpstack-api-php
|
||||
|
||||
c:
|
||||
docker compose run --rm chirpstack-api-c
|
||||
|
2
api/c/.gitignore
vendored
Normal file
2
api/c/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
/src/
|
||||
/proto/
|
34
api/c/Makefile
vendored
Normal file
34
api/c/Makefile
vendored
Normal file
@ -0,0 +1,34 @@
|
||||
.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) {} \;
|
7
api/docker-compose.yml
vendored
7
api/docker-compose.yml
vendored
@ -49,3 +49,10 @@ 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
|
||||
|
1680
api/go/api/application.pb.go
vendored
1680
api/go/api/application.pb.go
vendored
File diff suppressed because it is too large
Load Diff
2
api/go/api/application_grpc.pb.go
vendored
2
api/go/api/application_grpc.pb.go
vendored
@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-grpc v1.3.0
|
||||
// - protoc v4.24.4
|
||||
// - protoc v5.28.3
|
||||
// source: api/application.proto
|
||||
|
||||
package api
|
||||
|
1289
api/go/api/device.pb.go
vendored
1289
api/go/api/device.pb.go
vendored
File diff suppressed because it is too large
Load Diff
2
api/go/api/device_grpc.pb.go
vendored
2
api/go/api/device_grpc.pb.go
vendored
@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-grpc v1.3.0
|
||||
// - protoc v4.24.4
|
||||
// - protoc v5.28.3
|
||||
// source: api/device.proto
|
||||
|
||||
package api
|
||||
|
294
api/go/api/device_profile.pb.go
vendored
294
api/go/api/device_profile.pb.go
vendored
@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// protoc-gen-go v1.35.1
|
||||
// protoc v5.28.3
|
||||
// source: api/device_profile.proto
|
||||
|
||||
package api
|
||||
@ -556,11 +556,9 @@ type DeviceProfile struct {
|
||||
|
||||
func (x *DeviceProfile) Reset() {
|
||||
*x = DeviceProfile{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_device_profile_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_device_profile_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *DeviceProfile) String() string {
|
||||
@ -571,7 +569,7 @@ func (*DeviceProfile) ProtoMessage() {}
|
||||
|
||||
func (x *DeviceProfile) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_device_profile_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -970,11 +968,9 @@ type Measurement struct {
|
||||
|
||||
func (x *Measurement) Reset() {
|
||||
*x = Measurement{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_device_profile_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_device_profile_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *Measurement) String() string {
|
||||
@ -985,7 +981,7 @@ func (*Measurement) ProtoMessage() {}
|
||||
|
||||
func (x *Measurement) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_device_profile_proto_msgTypes[1]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1043,11 +1039,9 @@ type DeviceProfileListItem struct {
|
||||
|
||||
func (x *DeviceProfileListItem) Reset() {
|
||||
*x = DeviceProfileListItem{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_device_profile_proto_msgTypes[2]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_device_profile_proto_msgTypes[2]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *DeviceProfileListItem) String() string {
|
||||
@ -1058,7 +1052,7 @@ func (*DeviceProfileListItem) ProtoMessage() {}
|
||||
|
||||
func (x *DeviceProfileListItem) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_device_profile_proto_msgTypes[2]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1154,11 +1148,9 @@ type CreateDeviceProfileRequest struct {
|
||||
|
||||
func (x *CreateDeviceProfileRequest) Reset() {
|
||||
*x = CreateDeviceProfileRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_device_profile_proto_msgTypes[3]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_device_profile_proto_msgTypes[3]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *CreateDeviceProfileRequest) String() string {
|
||||
@ -1169,7 +1161,7 @@ func (*CreateDeviceProfileRequest) ProtoMessage() {}
|
||||
|
||||
func (x *CreateDeviceProfileRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_device_profile_proto_msgTypes[3]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1202,11 +1194,9 @@ type CreateDeviceProfileResponse struct {
|
||||
|
||||
func (x *CreateDeviceProfileResponse) Reset() {
|
||||
*x = CreateDeviceProfileResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_device_profile_proto_msgTypes[4]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_device_profile_proto_msgTypes[4]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *CreateDeviceProfileResponse) String() string {
|
||||
@ -1217,7 +1207,7 @@ func (*CreateDeviceProfileResponse) ProtoMessage() {}
|
||||
|
||||
func (x *CreateDeviceProfileResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_device_profile_proto_msgTypes[4]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1250,11 +1240,9 @@ type GetDeviceProfileRequest struct {
|
||||
|
||||
func (x *GetDeviceProfileRequest) Reset() {
|
||||
*x = GetDeviceProfileRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_device_profile_proto_msgTypes[5]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_device_profile_proto_msgTypes[5]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *GetDeviceProfileRequest) String() string {
|
||||
@ -1265,7 +1253,7 @@ func (*GetDeviceProfileRequest) ProtoMessage() {}
|
||||
|
||||
func (x *GetDeviceProfileRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_device_profile_proto_msgTypes[5]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1302,11 +1290,9 @@ type GetDeviceProfileResponse struct {
|
||||
|
||||
func (x *GetDeviceProfileResponse) Reset() {
|
||||
*x = GetDeviceProfileResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_device_profile_proto_msgTypes[6]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_device_profile_proto_msgTypes[6]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *GetDeviceProfileResponse) String() string {
|
||||
@ -1317,7 +1303,7 @@ func (*GetDeviceProfileResponse) ProtoMessage() {}
|
||||
|
||||
func (x *GetDeviceProfileResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_device_profile_proto_msgTypes[6]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1364,11 +1350,9 @@ type UpdateDeviceProfileRequest struct {
|
||||
|
||||
func (x *UpdateDeviceProfileRequest) Reset() {
|
||||
*x = UpdateDeviceProfileRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_device_profile_proto_msgTypes[7]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_device_profile_proto_msgTypes[7]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *UpdateDeviceProfileRequest) String() string {
|
||||
@ -1379,7 +1363,7 @@ func (*UpdateDeviceProfileRequest) ProtoMessage() {}
|
||||
|
||||
func (x *UpdateDeviceProfileRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_device_profile_proto_msgTypes[7]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1412,11 +1396,9 @@ type DeleteDeviceProfileRequest struct {
|
||||
|
||||
func (x *DeleteDeviceProfileRequest) Reset() {
|
||||
*x = DeleteDeviceProfileRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_device_profile_proto_msgTypes[8]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_device_profile_proto_msgTypes[8]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *DeleteDeviceProfileRequest) String() string {
|
||||
@ -1427,7 +1409,7 @@ func (*DeleteDeviceProfileRequest) ProtoMessage() {}
|
||||
|
||||
func (x *DeleteDeviceProfileRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_device_profile_proto_msgTypes[8]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1466,11 +1448,9 @@ type ListDeviceProfilesRequest struct {
|
||||
|
||||
func (x *ListDeviceProfilesRequest) Reset() {
|
||||
*x = ListDeviceProfilesRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_device_profile_proto_msgTypes[9]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_device_profile_proto_msgTypes[9]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *ListDeviceProfilesRequest) String() string {
|
||||
@ -1481,7 +1461,7 @@ func (*ListDeviceProfilesRequest) ProtoMessage() {}
|
||||
|
||||
func (x *ListDeviceProfilesRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_device_profile_proto_msgTypes[9]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1537,11 +1517,9 @@ type ListDeviceProfilesResponse struct {
|
||||
|
||||
func (x *ListDeviceProfilesResponse) Reset() {
|
||||
*x = ListDeviceProfilesResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_device_profile_proto_msgTypes[10]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_device_profile_proto_msgTypes[10]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *ListDeviceProfilesResponse) String() string {
|
||||
@ -1552,7 +1530,7 @@ func (*ListDeviceProfilesResponse) ProtoMessage() {}
|
||||
|
||||
func (x *ListDeviceProfilesResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_device_profile_proto_msgTypes[10]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1594,11 +1572,9 @@ type ListDeviceProfileAdrAlgorithmsResponse struct {
|
||||
|
||||
func (x *ListDeviceProfileAdrAlgorithmsResponse) Reset() {
|
||||
*x = ListDeviceProfileAdrAlgorithmsResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_device_profile_proto_msgTypes[11]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_device_profile_proto_msgTypes[11]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *ListDeviceProfileAdrAlgorithmsResponse) String() string {
|
||||
@ -1609,7 +1585,7 @@ func (*ListDeviceProfileAdrAlgorithmsResponse) ProtoMessage() {}
|
||||
|
||||
func (x *ListDeviceProfileAdrAlgorithmsResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_device_profile_proto_msgTypes[11]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1651,11 +1627,9 @@ type AdrAlgorithmListItem struct {
|
||||
|
||||
func (x *AdrAlgorithmListItem) Reset() {
|
||||
*x = AdrAlgorithmListItem{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_device_profile_proto_msgTypes[12]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_device_profile_proto_msgTypes[12]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *AdrAlgorithmListItem) String() string {
|
||||
@ -1666,7 +1640,7 @@ func (*AdrAlgorithmListItem) ProtoMessage() {}
|
||||
|
||||
func (x *AdrAlgorithmListItem) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_device_profile_proto_msgTypes[12]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -2081,7 +2055,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 = []interface{}{
|
||||
var file_api_device_profile_proto_goTypes = []any{
|
||||
(CodecRuntime)(0), // 0: api.CodecRuntime
|
||||
(MeasurementKind)(0), // 1: api.MeasurementKind
|
||||
(CadPeriodicity)(0), // 2: api.CadPeriodicity
|
||||
@ -2156,164 +2130,6 @@ 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{
|
||||
|
2
api/go/api/device_profile_grpc.pb.go
vendored
2
api/go/api/device_profile_grpc.pb.go
vendored
@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-grpc v1.3.0
|
||||
// - protoc v4.24.4
|
||||
// - protoc v5.28.3
|
||||
// source: api/device_profile.proto
|
||||
|
||||
package api
|
||||
|
206
api/go/api/device_profile_template.pb.go
vendored
206
api/go/api/device_profile_template.pb.go
vendored
@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// protoc-gen-go v1.35.1
|
||||
// protoc v5.28.3
|
||||
// source: api/device_profile_template.proto
|
||||
|
||||
package api
|
||||
@ -105,11 +105,9 @@ type DeviceProfileTemplate struct {
|
||||
|
||||
func (x *DeviceProfileTemplate) Reset() {
|
||||
*x = DeviceProfileTemplate{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_device_profile_template_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_device_profile_template_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *DeviceProfileTemplate) String() string {
|
||||
@ -120,7 +118,7 @@ func (*DeviceProfileTemplate) ProtoMessage() {}
|
||||
|
||||
func (x *DeviceProfileTemplate) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_device_profile_template_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -371,11 +369,9 @@ type DeviceProfileTemplateListItem struct {
|
||||
|
||||
func (x *DeviceProfileTemplateListItem) Reset() {
|
||||
*x = DeviceProfileTemplateListItem{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_device_profile_template_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_device_profile_template_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *DeviceProfileTemplateListItem) String() string {
|
||||
@ -386,7 +382,7 @@ func (*DeviceProfileTemplateListItem) ProtoMessage() {}
|
||||
|
||||
func (x *DeviceProfileTemplateListItem) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_device_profile_template_proto_msgTypes[1]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -496,11 +492,9 @@ type CreateDeviceProfileTemplateRequest struct {
|
||||
|
||||
func (x *CreateDeviceProfileTemplateRequest) Reset() {
|
||||
*x = CreateDeviceProfileTemplateRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_device_profile_template_proto_msgTypes[2]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_device_profile_template_proto_msgTypes[2]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *CreateDeviceProfileTemplateRequest) String() string {
|
||||
@ -511,7 +505,7 @@ func (*CreateDeviceProfileTemplateRequest) ProtoMessage() {}
|
||||
|
||||
func (x *CreateDeviceProfileTemplateRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_device_profile_template_proto_msgTypes[2]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -544,11 +538,9 @@ type GetDeviceProfileTemplateRequest struct {
|
||||
|
||||
func (x *GetDeviceProfileTemplateRequest) Reset() {
|
||||
*x = GetDeviceProfileTemplateRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_device_profile_template_proto_msgTypes[3]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_device_profile_template_proto_msgTypes[3]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *GetDeviceProfileTemplateRequest) String() string {
|
||||
@ -559,7 +551,7 @@ func (*GetDeviceProfileTemplateRequest) ProtoMessage() {}
|
||||
|
||||
func (x *GetDeviceProfileTemplateRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_device_profile_template_proto_msgTypes[3]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -596,11 +588,9 @@ type GetDeviceProfileTemplateResponse struct {
|
||||
|
||||
func (x *GetDeviceProfileTemplateResponse) Reset() {
|
||||
*x = GetDeviceProfileTemplateResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_device_profile_template_proto_msgTypes[4]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_device_profile_template_proto_msgTypes[4]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *GetDeviceProfileTemplateResponse) String() string {
|
||||
@ -611,7 +601,7 @@ func (*GetDeviceProfileTemplateResponse) ProtoMessage() {}
|
||||
|
||||
func (x *GetDeviceProfileTemplateResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_device_profile_template_proto_msgTypes[4]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -658,11 +648,9 @@ type UpdateDeviceProfileTemplateRequest struct {
|
||||
|
||||
func (x *UpdateDeviceProfileTemplateRequest) Reset() {
|
||||
*x = UpdateDeviceProfileTemplateRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_device_profile_template_proto_msgTypes[5]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_device_profile_template_proto_msgTypes[5]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *UpdateDeviceProfileTemplateRequest) String() string {
|
||||
@ -673,7 +661,7 @@ func (*UpdateDeviceProfileTemplateRequest) ProtoMessage() {}
|
||||
|
||||
func (x *UpdateDeviceProfileTemplateRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_device_profile_template_proto_msgTypes[5]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -706,11 +694,9 @@ type DeleteDeviceProfileTemplateRequest struct {
|
||||
|
||||
func (x *DeleteDeviceProfileTemplateRequest) Reset() {
|
||||
*x = DeleteDeviceProfileTemplateRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_device_profile_template_proto_msgTypes[6]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_device_profile_template_proto_msgTypes[6]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *DeleteDeviceProfileTemplateRequest) String() string {
|
||||
@ -721,7 +707,7 @@ func (*DeleteDeviceProfileTemplateRequest) ProtoMessage() {}
|
||||
|
||||
func (x *DeleteDeviceProfileTemplateRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_device_profile_template_proto_msgTypes[6]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -756,11 +742,9 @@ type ListDeviceProfileTemplatesRequest struct {
|
||||
|
||||
func (x *ListDeviceProfileTemplatesRequest) Reset() {
|
||||
*x = ListDeviceProfileTemplatesRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_device_profile_template_proto_msgTypes[7]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_device_profile_template_proto_msgTypes[7]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *ListDeviceProfileTemplatesRequest) String() string {
|
||||
@ -771,7 +755,7 @@ func (*ListDeviceProfileTemplatesRequest) ProtoMessage() {}
|
||||
|
||||
func (x *ListDeviceProfileTemplatesRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_device_profile_template_proto_msgTypes[7]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -813,11 +797,9 @@ type ListDeviceProfileTemplatesResponse struct {
|
||||
|
||||
func (x *ListDeviceProfileTemplatesResponse) Reset() {
|
||||
*x = ListDeviceProfileTemplatesResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_device_profile_template_proto_msgTypes[8]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_device_profile_template_proto_msgTypes[8]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *ListDeviceProfileTemplatesResponse) String() string {
|
||||
@ -828,7 +810,7 @@ func (*ListDeviceProfileTemplatesResponse) ProtoMessage() {}
|
||||
|
||||
func (x *ListDeviceProfileTemplatesResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_device_profile_template_proto_msgTypes[8]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1114,7 +1096,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 = []interface{}{
|
||||
var file_api_device_profile_template_proto_goTypes = []any{
|
||||
(*DeviceProfileTemplate)(nil), // 0: api.DeviceProfileTemplate
|
||||
(*DeviceProfileTemplateListItem)(nil), // 1: api.DeviceProfileTemplateListItem
|
||||
(*CreateDeviceProfileTemplateRequest)(nil), // 2: api.CreateDeviceProfileTemplateRequest
|
||||
@ -1176,116 +1158,6 @@ 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{
|
||||
|
@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-grpc v1.3.0
|
||||
// - protoc v4.24.4
|
||||
// - protoc v5.28.3
|
||||
// source: api/device_profile_template.proto
|
||||
|
||||
package api
|
||||
|
514
api/go/api/gateway.pb.go
vendored
514
api/go/api/gateway.pb.go
vendored
@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// protoc-gen-go v1.35.1
|
||||
// protoc v5.28.3
|
||||
// source: api/gateway.proto
|
||||
|
||||
package api
|
||||
@ -103,11 +103,9 @@ type Gateway struct {
|
||||
|
||||
func (x *Gateway) Reset() {
|
||||
*x = Gateway{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_gateway_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_gateway_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *Gateway) String() string {
|
||||
@ -118,7 +116,7 @@ func (*Gateway) ProtoMessage() {}
|
||||
|
||||
func (x *Gateway) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_gateway_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -220,11 +218,9 @@ type GatewayListItem struct {
|
||||
|
||||
func (x *GatewayListItem) Reset() {
|
||||
*x = GatewayListItem{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_gateway_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_gateway_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *GatewayListItem) String() string {
|
||||
@ -235,7 +231,7 @@ func (*GatewayListItem) ProtoMessage() {}
|
||||
|
||||
func (x *GatewayListItem) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_gateway_proto_msgTypes[1]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -331,11 +327,9 @@ type CreateGatewayRequest struct {
|
||||
|
||||
func (x *CreateGatewayRequest) Reset() {
|
||||
*x = CreateGatewayRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_gateway_proto_msgTypes[2]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_gateway_proto_msgTypes[2]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *CreateGatewayRequest) String() string {
|
||||
@ -346,7 +340,7 @@ func (*CreateGatewayRequest) ProtoMessage() {}
|
||||
|
||||
func (x *CreateGatewayRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_gateway_proto_msgTypes[2]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -379,11 +373,9 @@ type GetGatewayRequest struct {
|
||||
|
||||
func (x *GetGatewayRequest) Reset() {
|
||||
*x = GetGatewayRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_gateway_proto_msgTypes[3]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_gateway_proto_msgTypes[3]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *GetGatewayRequest) String() string {
|
||||
@ -394,7 +386,7 @@ func (*GetGatewayRequest) ProtoMessage() {}
|
||||
|
||||
func (x *GetGatewayRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_gateway_proto_msgTypes[3]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -433,11 +425,9 @@ type GetGatewayResponse struct {
|
||||
|
||||
func (x *GetGatewayResponse) Reset() {
|
||||
*x = GetGatewayResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_gateway_proto_msgTypes[4]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_gateway_proto_msgTypes[4]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *GetGatewayResponse) String() string {
|
||||
@ -448,7 +438,7 @@ func (*GetGatewayResponse) ProtoMessage() {}
|
||||
|
||||
func (x *GetGatewayResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_gateway_proto_msgTypes[4]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -502,11 +492,9 @@ type UpdateGatewayRequest struct {
|
||||
|
||||
func (x *UpdateGatewayRequest) Reset() {
|
||||
*x = UpdateGatewayRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_gateway_proto_msgTypes[5]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_gateway_proto_msgTypes[5]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *UpdateGatewayRequest) String() string {
|
||||
@ -517,7 +505,7 @@ func (*UpdateGatewayRequest) ProtoMessage() {}
|
||||
|
||||
func (x *UpdateGatewayRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_gateway_proto_msgTypes[5]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -550,11 +538,9 @@ type DeleteGatewayRequest struct {
|
||||
|
||||
func (x *DeleteGatewayRequest) Reset() {
|
||||
*x = DeleteGatewayRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_gateway_proto_msgTypes[6]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_gateway_proto_msgTypes[6]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *DeleteGatewayRequest) String() string {
|
||||
@ -565,7 +551,7 @@ func (*DeleteGatewayRequest) ProtoMessage() {}
|
||||
|
||||
func (x *DeleteGatewayRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_gateway_proto_msgTypes[6]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -607,11 +593,9 @@ type ListGatewaysRequest struct {
|
||||
|
||||
func (x *ListGatewaysRequest) Reset() {
|
||||
*x = ListGatewaysRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_gateway_proto_msgTypes[7]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_gateway_proto_msgTypes[7]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *ListGatewaysRequest) String() string {
|
||||
@ -622,7 +606,7 @@ func (*ListGatewaysRequest) ProtoMessage() {}
|
||||
|
||||
func (x *ListGatewaysRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_gateway_proto_msgTypes[7]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -685,11 +669,9 @@ type ListGatewaysResponse struct {
|
||||
|
||||
func (x *ListGatewaysResponse) Reset() {
|
||||
*x = ListGatewaysResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_gateway_proto_msgTypes[8]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_gateway_proto_msgTypes[8]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *ListGatewaysResponse) String() string {
|
||||
@ -700,7 +682,7 @@ func (*ListGatewaysResponse) ProtoMessage() {}
|
||||
|
||||
func (x *ListGatewaysResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_gateway_proto_msgTypes[8]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -740,11 +722,9 @@ type GenerateGatewayClientCertificateRequest struct {
|
||||
|
||||
func (x *GenerateGatewayClientCertificateRequest) Reset() {
|
||||
*x = GenerateGatewayClientCertificateRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_gateway_proto_msgTypes[9]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_gateway_proto_msgTypes[9]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *GenerateGatewayClientCertificateRequest) String() string {
|
||||
@ -755,7 +735,7 @@ func (*GenerateGatewayClientCertificateRequest) ProtoMessage() {}
|
||||
|
||||
func (x *GenerateGatewayClientCertificateRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_gateway_proto_msgTypes[9]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -794,11 +774,9 @@ type GenerateGatewayClientCertificateResponse struct {
|
||||
|
||||
func (x *GenerateGatewayClientCertificateResponse) Reset() {
|
||||
*x = GenerateGatewayClientCertificateResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_gateway_proto_msgTypes[10]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_gateway_proto_msgTypes[10]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *GenerateGatewayClientCertificateResponse) String() string {
|
||||
@ -809,7 +787,7 @@ func (*GenerateGatewayClientCertificateResponse) ProtoMessage() {}
|
||||
|
||||
func (x *GenerateGatewayClientCertificateResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_gateway_proto_msgTypes[10]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -869,11 +847,9 @@ type GetGatewayMetricsRequest struct {
|
||||
|
||||
func (x *GetGatewayMetricsRequest) Reset() {
|
||||
*x = GetGatewayMetricsRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_gateway_proto_msgTypes[11]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_gateway_proto_msgTypes[11]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *GetGatewayMetricsRequest) String() string {
|
||||
@ -884,7 +860,7 @@ func (*GetGatewayMetricsRequest) ProtoMessage() {}
|
||||
|
||||
func (x *GetGatewayMetricsRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_gateway_proto_msgTypes[11]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -950,11 +926,9 @@ type GetGatewayMetricsResponse struct {
|
||||
|
||||
func (x *GetGatewayMetricsResponse) Reset() {
|
||||
*x = GetGatewayMetricsResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_gateway_proto_msgTypes[12]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_gateway_proto_msgTypes[12]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *GetGatewayMetricsResponse) String() string {
|
||||
@ -965,7 +939,7 @@ func (*GetGatewayMetricsResponse) ProtoMessage() {}
|
||||
|
||||
func (x *GetGatewayMetricsResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_gateway_proto_msgTypes[12]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1044,11 +1018,9 @@ type GetGatewayDutyCycleMetricsRequest struct {
|
||||
|
||||
func (x *GetGatewayDutyCycleMetricsRequest) Reset() {
|
||||
*x = GetGatewayDutyCycleMetricsRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_gateway_proto_msgTypes[13]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_gateway_proto_msgTypes[13]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *GetGatewayDutyCycleMetricsRequest) String() string {
|
||||
@ -1059,7 +1031,7 @@ func (*GetGatewayDutyCycleMetricsRequest) ProtoMessage() {}
|
||||
|
||||
func (x *GetGatewayDutyCycleMetricsRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_gateway_proto_msgTypes[13]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1108,11 +1080,9 @@ type GetGatewayDutyCycleMetricsResponse struct {
|
||||
|
||||
func (x *GetGatewayDutyCycleMetricsResponse) Reset() {
|
||||
*x = GetGatewayDutyCycleMetricsResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_gateway_proto_msgTypes[14]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_gateway_proto_msgTypes[14]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *GetGatewayDutyCycleMetricsResponse) String() string {
|
||||
@ -1123,7 +1093,7 @@ func (*GetGatewayDutyCycleMetricsResponse) ProtoMessage() {}
|
||||
|
||||
func (x *GetGatewayDutyCycleMetricsResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_gateway_proto_msgTypes[14]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1165,11 +1135,9 @@ type GetRelayGatewayRequest struct {
|
||||
|
||||
func (x *GetRelayGatewayRequest) Reset() {
|
||||
*x = GetRelayGatewayRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_gateway_proto_msgTypes[15]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_gateway_proto_msgTypes[15]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *GetRelayGatewayRequest) String() string {
|
||||
@ -1180,7 +1148,7 @@ func (*GetRelayGatewayRequest) ProtoMessage() {}
|
||||
|
||||
func (x *GetRelayGatewayRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_gateway_proto_msgTypes[15]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1226,11 +1194,9 @@ type GetRelayGatewayResponse struct {
|
||||
|
||||
func (x *GetRelayGatewayResponse) Reset() {
|
||||
*x = GetRelayGatewayResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_gateway_proto_msgTypes[16]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_gateway_proto_msgTypes[16]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *GetRelayGatewayResponse) String() string {
|
||||
@ -1241,7 +1207,7 @@ func (*GetRelayGatewayResponse) ProtoMessage() {}
|
||||
|
||||
func (x *GetRelayGatewayResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_gateway_proto_msgTypes[16]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1300,11 +1266,9 @@ type ListRelayGatewaysRequest struct {
|
||||
|
||||
func (x *ListRelayGatewaysRequest) Reset() {
|
||||
*x = ListRelayGatewaysRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_gateway_proto_msgTypes[17]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_gateway_proto_msgTypes[17]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *ListRelayGatewaysRequest) String() string {
|
||||
@ -1315,7 +1279,7 @@ func (*ListRelayGatewaysRequest) ProtoMessage() {}
|
||||
|
||||
func (x *ListRelayGatewaysRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_gateway_proto_msgTypes[17]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1364,11 +1328,9 @@ type ListRelayGatewaysResponse struct {
|
||||
|
||||
func (x *ListRelayGatewaysResponse) Reset() {
|
||||
*x = ListRelayGatewaysResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_gateway_proto_msgTypes[18]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_gateway_proto_msgTypes[18]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *ListRelayGatewaysResponse) String() string {
|
||||
@ -1379,7 +1341,7 @@ func (*ListRelayGatewaysResponse) ProtoMessage() {}
|
||||
|
||||
func (x *ListRelayGatewaysResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_gateway_proto_msgTypes[18]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1437,11 +1399,9 @@ type RelayGatewayListItem struct {
|
||||
|
||||
func (x *RelayGatewayListItem) Reset() {
|
||||
*x = RelayGatewayListItem{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_gateway_proto_msgTypes[19]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_gateway_proto_msgTypes[19]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *RelayGatewayListItem) String() string {
|
||||
@ -1452,7 +1412,7 @@ func (*RelayGatewayListItem) ProtoMessage() {}
|
||||
|
||||
func (x *RelayGatewayListItem) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_gateway_proto_msgTypes[19]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1541,11 +1501,9 @@ type UpdateRelayGatewayRequest struct {
|
||||
|
||||
func (x *UpdateRelayGatewayRequest) Reset() {
|
||||
*x = UpdateRelayGatewayRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_gateway_proto_msgTypes[20]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_gateway_proto_msgTypes[20]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *UpdateRelayGatewayRequest) String() string {
|
||||
@ -1556,7 +1514,7 @@ func (*UpdateRelayGatewayRequest) ProtoMessage() {}
|
||||
|
||||
func (x *UpdateRelayGatewayRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_gateway_proto_msgTypes[20]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1591,11 +1549,9 @@ type DeleteRelayGatewayRequest struct {
|
||||
|
||||
func (x *DeleteRelayGatewayRequest) Reset() {
|
||||
*x = DeleteRelayGatewayRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_gateway_proto_msgTypes[21]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_gateway_proto_msgTypes[21]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *DeleteRelayGatewayRequest) String() string {
|
||||
@ -1606,7 +1562,7 @@ func (*DeleteRelayGatewayRequest) ProtoMessage() {}
|
||||
|
||||
func (x *DeleteRelayGatewayRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_gateway_proto_msgTypes[21]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1658,11 +1614,9 @@ type RelayGateway struct {
|
||||
|
||||
func (x *RelayGateway) Reset() {
|
||||
*x = RelayGateway{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_gateway_proto_msgTypes[22]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_gateway_proto_msgTypes[22]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *RelayGateway) String() string {
|
||||
@ -1673,7 +1627,7 @@ func (*RelayGateway) ProtoMessage() {}
|
||||
|
||||
func (x *RelayGateway) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_gateway_proto_msgTypes[22]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -2134,7 +2088,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 = []interface{}{
|
||||
var file_api_gateway_proto_goTypes = []any{
|
||||
(GatewayState)(0), // 0: api.GatewayState
|
||||
(*Gateway)(nil), // 1: api.Gateway
|
||||
(*GatewayListItem)(nil), // 2: api.GatewayListItem
|
||||
@ -2246,284 +2200,6 @@ 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{
|
||||
|
2
api/go/api/gateway_grpc.pb.go
vendored
2
api/go/api/gateway_grpc.pb.go
vendored
@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-grpc v1.3.0
|
||||
// - protoc v4.24.4
|
||||
// - protoc v5.28.3
|
||||
// source: api/gateway.proto
|
||||
|
||||
package api
|
||||
|
756
api/go/api/internal.pb.go
vendored
756
api/go/api/internal.pb.go
vendored
File diff suppressed because it is too large
Load Diff
2
api/go/api/internal_grpc.pb.go
vendored
2
api/go/api/internal_grpc.pb.go
vendored
@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-grpc v1.3.0
|
||||
// - protoc v4.24.4
|
||||
// - protoc v5.28.3
|
||||
// source: api/internal.proto
|
||||
|
||||
package api
|
||||
|
799
api/go/api/multicast_group.pb.go
vendored
799
api/go/api/multicast_group.pb.go
vendored
File diff suppressed because it is too large
Load Diff
2
api/go/api/multicast_group_grpc.pb.go
vendored
2
api/go/api/multicast_group_grpc.pb.go
vendored
@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-grpc v1.3.0
|
||||
// - protoc v4.24.4
|
||||
// - protoc v5.28.3
|
||||
// source: api/multicast_group.proto
|
||||
|
||||
package api
|
||||
|
184
api/go/api/relay.pb.go
vendored
184
api/go/api/relay.pb.go
vendored
@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// protoc-gen-go v1.35.1
|
||||
// protoc v5.28.3
|
||||
// source: api/relay.proto
|
||||
|
||||
package api
|
||||
@ -36,11 +36,9 @@ type RelayListItem struct {
|
||||
|
||||
func (x *RelayListItem) Reset() {
|
||||
*x = RelayListItem{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_relay_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_relay_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *RelayListItem) String() string {
|
||||
@ -51,7 +49,7 @@ func (*RelayListItem) ProtoMessage() {}
|
||||
|
||||
func (x *RelayListItem) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_relay_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -95,11 +93,9 @@ type ListRelaysRequest struct {
|
||||
|
||||
func (x *ListRelaysRequest) Reset() {
|
||||
*x = ListRelaysRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_relay_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_relay_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *ListRelaysRequest) String() string {
|
||||
@ -110,7 +106,7 @@ func (*ListRelaysRequest) ProtoMessage() {}
|
||||
|
||||
func (x *ListRelaysRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_relay_proto_msgTypes[1]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -159,11 +155,9 @@ type ListRelaysResponse struct {
|
||||
|
||||
func (x *ListRelaysResponse) Reset() {
|
||||
*x = ListRelaysResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_relay_proto_msgTypes[2]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_relay_proto_msgTypes[2]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *ListRelaysResponse) String() string {
|
||||
@ -174,7 +168,7 @@ func (*ListRelaysResponse) ProtoMessage() {}
|
||||
|
||||
func (x *ListRelaysResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_relay_proto_msgTypes[2]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -216,11 +210,9 @@ type AddRelayDeviceRequest struct {
|
||||
|
||||
func (x *AddRelayDeviceRequest) Reset() {
|
||||
*x = AddRelayDeviceRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_relay_proto_msgTypes[3]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_relay_proto_msgTypes[3]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *AddRelayDeviceRequest) String() string {
|
||||
@ -231,7 +223,7 @@ func (*AddRelayDeviceRequest) ProtoMessage() {}
|
||||
|
||||
func (x *AddRelayDeviceRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_relay_proto_msgTypes[3]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -273,11 +265,9 @@ type RemoveRelayDeviceRequest struct {
|
||||
|
||||
func (x *RemoveRelayDeviceRequest) Reset() {
|
||||
*x = RemoveRelayDeviceRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_relay_proto_msgTypes[4]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_relay_proto_msgTypes[4]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *RemoveRelayDeviceRequest) String() string {
|
||||
@ -288,7 +278,7 @@ func (*RemoveRelayDeviceRequest) ProtoMessage() {}
|
||||
|
||||
func (x *RemoveRelayDeviceRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_relay_proto_msgTypes[4]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -332,11 +322,9 @@ type ListRelayDevicesRequest struct {
|
||||
|
||||
func (x *ListRelayDevicesRequest) Reset() {
|
||||
*x = ListRelayDevicesRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_relay_proto_msgTypes[5]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_relay_proto_msgTypes[5]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *ListRelayDevicesRequest) String() string {
|
||||
@ -347,7 +335,7 @@ func (*ListRelayDevicesRequest) ProtoMessage() {}
|
||||
|
||||
func (x *ListRelayDevicesRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_relay_proto_msgTypes[5]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -398,11 +386,9 @@ type RelayDeviceListItem struct {
|
||||
|
||||
func (x *RelayDeviceListItem) Reset() {
|
||||
*x = RelayDeviceListItem{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_relay_proto_msgTypes[6]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_relay_proto_msgTypes[6]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *RelayDeviceListItem) String() string {
|
||||
@ -413,7 +399,7 @@ func (*RelayDeviceListItem) ProtoMessage() {}
|
||||
|
||||
func (x *RelayDeviceListItem) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_relay_proto_msgTypes[6]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -462,11 +448,9 @@ type ListRelayDevicesResponse struct {
|
||||
|
||||
func (x *ListRelayDevicesResponse) Reset() {
|
||||
*x = ListRelayDevicesResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_relay_proto_msgTypes[7]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_relay_proto_msgTypes[7]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *ListRelayDevicesResponse) String() string {
|
||||
@ -477,7 +461,7 @@ func (*ListRelayDevicesResponse) ProtoMessage() {}
|
||||
|
||||
func (x *ListRelayDevicesResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_relay_proto_msgTypes[7]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -621,7 +605,7 @@ func file_api_relay_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_api_relay_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
|
||||
var file_api_relay_proto_goTypes = []interface{}{
|
||||
var file_api_relay_proto_goTypes = []any{
|
||||
(*RelayListItem)(nil), // 0: api.RelayListItem
|
||||
(*ListRelaysRequest)(nil), // 1: api.ListRelaysRequest
|
||||
(*ListRelaysResponse)(nil), // 2: api.ListRelaysResponse
|
||||
@ -657,104 +641,6 @@ 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{
|
||||
|
2
api/go/api/relay_grpc.pb.go
vendored
2
api/go/api/relay_grpc.pb.go
vendored
@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-grpc v1.3.0
|
||||
// - protoc v4.24.4
|
||||
// - protoc v5.28.3
|
||||
// source: api/relay.proto
|
||||
|
||||
package api
|
||||
|
426
api/go/api/tenant.pb.go
vendored
426
api/go/api/tenant.pb.go
vendored
@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// protoc-gen-go v1.35.1
|
||||
// protoc v5.28.3
|
||||
// source: api/tenant.proto
|
||||
|
||||
package api
|
||||
@ -60,11 +60,9 @@ type Tenant struct {
|
||||
|
||||
func (x *Tenant) Reset() {
|
||||
*x = Tenant{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_tenant_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_tenant_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *Tenant) String() string {
|
||||
@ -75,7 +73,7 @@ func (*Tenant) ProtoMessage() {}
|
||||
|
||||
func (x *Tenant) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_tenant_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -182,11 +180,9 @@ type TenantListItem struct {
|
||||
|
||||
func (x *TenantListItem) Reset() {
|
||||
*x = TenantListItem{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_tenant_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_tenant_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *TenantListItem) String() string {
|
||||
@ -197,7 +193,7 @@ func (*TenantListItem) ProtoMessage() {}
|
||||
|
||||
func (x *TenantListItem) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_tenant_proto_msgTypes[1]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -286,11 +282,9 @@ type CreateTenantRequest struct {
|
||||
|
||||
func (x *CreateTenantRequest) Reset() {
|
||||
*x = CreateTenantRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_tenant_proto_msgTypes[2]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_tenant_proto_msgTypes[2]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *CreateTenantRequest) String() string {
|
||||
@ -301,7 +295,7 @@ func (*CreateTenantRequest) ProtoMessage() {}
|
||||
|
||||
func (x *CreateTenantRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_tenant_proto_msgTypes[2]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -334,11 +328,9 @@ type CreateTenantResponse struct {
|
||||
|
||||
func (x *CreateTenantResponse) Reset() {
|
||||
*x = CreateTenantResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_tenant_proto_msgTypes[3]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_tenant_proto_msgTypes[3]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *CreateTenantResponse) String() string {
|
||||
@ -349,7 +341,7 @@ func (*CreateTenantResponse) ProtoMessage() {}
|
||||
|
||||
func (x *CreateTenantResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_tenant_proto_msgTypes[3]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -382,11 +374,9 @@ type GetTenantRequest struct {
|
||||
|
||||
func (x *GetTenantRequest) Reset() {
|
||||
*x = GetTenantRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_tenant_proto_msgTypes[4]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_tenant_proto_msgTypes[4]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *GetTenantRequest) String() string {
|
||||
@ -397,7 +387,7 @@ func (*GetTenantRequest) ProtoMessage() {}
|
||||
|
||||
func (x *GetTenantRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_tenant_proto_msgTypes[4]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -434,11 +424,9 @@ type GetTenantResponse struct {
|
||||
|
||||
func (x *GetTenantResponse) Reset() {
|
||||
*x = GetTenantResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_tenant_proto_msgTypes[5]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_tenant_proto_msgTypes[5]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *GetTenantResponse) String() string {
|
||||
@ -449,7 +437,7 @@ func (*GetTenantResponse) ProtoMessage() {}
|
||||
|
||||
func (x *GetTenantResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_tenant_proto_msgTypes[5]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -496,11 +484,9 @@ type UpdateTenantRequest struct {
|
||||
|
||||
func (x *UpdateTenantRequest) Reset() {
|
||||
*x = UpdateTenantRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_tenant_proto_msgTypes[6]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_tenant_proto_msgTypes[6]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *UpdateTenantRequest) String() string {
|
||||
@ -511,7 +497,7 @@ func (*UpdateTenantRequest) ProtoMessage() {}
|
||||
|
||||
func (x *UpdateTenantRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_tenant_proto_msgTypes[6]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -544,11 +530,9 @@ type DeleteTenantRequest struct {
|
||||
|
||||
func (x *DeleteTenantRequest) Reset() {
|
||||
*x = DeleteTenantRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_tenant_proto_msgTypes[7]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_tenant_proto_msgTypes[7]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *DeleteTenantRequest) String() string {
|
||||
@ -559,7 +543,7 @@ func (*DeleteTenantRequest) ProtoMessage() {}
|
||||
|
||||
func (x *DeleteTenantRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_tenant_proto_msgTypes[7]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -599,11 +583,9 @@ type ListTenantsRequest struct {
|
||||
|
||||
func (x *ListTenantsRequest) Reset() {
|
||||
*x = ListTenantsRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_tenant_proto_msgTypes[8]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_tenant_proto_msgTypes[8]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *ListTenantsRequest) String() string {
|
||||
@ -614,7 +596,7 @@ func (*ListTenantsRequest) ProtoMessage() {}
|
||||
|
||||
func (x *ListTenantsRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_tenant_proto_msgTypes[8]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -670,11 +652,9 @@ type ListTenantsResponse struct {
|
||||
|
||||
func (x *ListTenantsResponse) Reset() {
|
||||
*x = ListTenantsResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_tenant_proto_msgTypes[9]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_tenant_proto_msgTypes[9]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *ListTenantsResponse) String() string {
|
||||
@ -685,7 +665,7 @@ func (*ListTenantsResponse) ProtoMessage() {}
|
||||
|
||||
func (x *ListTenantsResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_tenant_proto_msgTypes[9]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -737,11 +717,9 @@ type TenantUser struct {
|
||||
|
||||
func (x *TenantUser) Reset() {
|
||||
*x = TenantUser{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_tenant_proto_msgTypes[10]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_tenant_proto_msgTypes[10]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *TenantUser) String() string {
|
||||
@ -752,7 +730,7 @@ func (*TenantUser) ProtoMessage() {}
|
||||
|
||||
func (x *TenantUser) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_tenant_proto_msgTypes[10]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -836,11 +814,9 @@ type TenantUserListItem struct {
|
||||
|
||||
func (x *TenantUserListItem) Reset() {
|
||||
*x = TenantUserListItem{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_tenant_proto_msgTypes[11]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_tenant_proto_msgTypes[11]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *TenantUserListItem) String() string {
|
||||
@ -851,7 +827,7 @@ func (*TenantUserListItem) ProtoMessage() {}
|
||||
|
||||
func (x *TenantUserListItem) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_tenant_proto_msgTypes[11]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -933,11 +909,9 @@ type AddTenantUserRequest struct {
|
||||
|
||||
func (x *AddTenantUserRequest) Reset() {
|
||||
*x = AddTenantUserRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_tenant_proto_msgTypes[12]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_tenant_proto_msgTypes[12]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *AddTenantUserRequest) String() string {
|
||||
@ -948,7 +922,7 @@ func (*AddTenantUserRequest) ProtoMessage() {}
|
||||
|
||||
func (x *AddTenantUserRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_tenant_proto_msgTypes[12]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -983,11 +957,9 @@ type GetTenantUserRequest struct {
|
||||
|
||||
func (x *GetTenantUserRequest) Reset() {
|
||||
*x = GetTenantUserRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_tenant_proto_msgTypes[13]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_tenant_proto_msgTypes[13]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *GetTenantUserRequest) String() string {
|
||||
@ -998,7 +970,7 @@ func (*GetTenantUserRequest) ProtoMessage() {}
|
||||
|
||||
func (x *GetTenantUserRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_tenant_proto_msgTypes[13]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1042,11 +1014,9 @@ type GetTenantUserResponse struct {
|
||||
|
||||
func (x *GetTenantUserResponse) Reset() {
|
||||
*x = GetTenantUserResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_tenant_proto_msgTypes[14]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_tenant_proto_msgTypes[14]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *GetTenantUserResponse) String() string {
|
||||
@ -1057,7 +1027,7 @@ func (*GetTenantUserResponse) ProtoMessage() {}
|
||||
|
||||
func (x *GetTenantUserResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_tenant_proto_msgTypes[14]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1104,11 +1074,9 @@ type UpdateTenantUserRequest struct {
|
||||
|
||||
func (x *UpdateTenantUserRequest) Reset() {
|
||||
*x = UpdateTenantUserRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_tenant_proto_msgTypes[15]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_tenant_proto_msgTypes[15]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *UpdateTenantUserRequest) String() string {
|
||||
@ -1119,7 +1087,7 @@ func (*UpdateTenantUserRequest) ProtoMessage() {}
|
||||
|
||||
func (x *UpdateTenantUserRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_tenant_proto_msgTypes[15]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1154,11 +1122,9 @@ type DeleteTenantUserRequest struct {
|
||||
|
||||
func (x *DeleteTenantUserRequest) Reset() {
|
||||
*x = DeleteTenantUserRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_tenant_proto_msgTypes[16]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_tenant_proto_msgTypes[16]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *DeleteTenantUserRequest) String() string {
|
||||
@ -1169,7 +1135,7 @@ func (*DeleteTenantUserRequest) ProtoMessage() {}
|
||||
|
||||
func (x *DeleteTenantUserRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_tenant_proto_msgTypes[16]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1213,11 +1179,9 @@ type ListTenantUsersRequest struct {
|
||||
|
||||
func (x *ListTenantUsersRequest) Reset() {
|
||||
*x = ListTenantUsersRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_tenant_proto_msgTypes[17]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_tenant_proto_msgTypes[17]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *ListTenantUsersRequest) String() string {
|
||||
@ -1228,7 +1192,7 @@ func (*ListTenantUsersRequest) ProtoMessage() {}
|
||||
|
||||
func (x *ListTenantUsersRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_tenant_proto_msgTypes[17]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1277,11 +1241,9 @@ type ListTenantUsersResponse struct {
|
||||
|
||||
func (x *ListTenantUsersResponse) Reset() {
|
||||
*x = ListTenantUsersResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_tenant_proto_msgTypes[18]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_tenant_proto_msgTypes[18]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *ListTenantUsersResponse) String() string {
|
||||
@ -1292,7 +1254,7 @@ func (*ListTenantUsersResponse) ProtoMessage() {}
|
||||
|
||||
func (x *ListTenantUsersResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_tenant_proto_msgTypes[18]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1590,7 +1552,7 @@ func file_api_tenant_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_api_tenant_proto_msgTypes = make([]protoimpl.MessageInfo, 20)
|
||||
var file_api_tenant_proto_goTypes = []interface{}{
|
||||
var file_api_tenant_proto_goTypes = []any{
|
||||
(*Tenant)(nil), // 0: api.Tenant
|
||||
(*TenantListItem)(nil), // 1: api.TenantListItem
|
||||
(*CreateTenantRequest)(nil), // 2: api.CreateTenantRequest
|
||||
@ -1664,236 +1626,6 @@ 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{
|
||||
|
2
api/go/api/tenant_grpc.pb.go
vendored
2
api/go/api/tenant_grpc.pb.go
vendored
@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-grpc v1.3.0
|
||||
// - protoc v4.24.4
|
||||
// - protoc v5.28.3
|
||||
// source: api/tenant.proto
|
||||
|
||||
package api
|
||||
|
272
api/go/api/user.pb.go
vendored
272
api/go/api/user.pb.go
vendored
@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// protoc-gen-go v1.35.1
|
||||
// protoc v5.28.3
|
||||
// source: api/user.proto
|
||||
|
||||
package api
|
||||
@ -43,11 +43,9 @@ type User struct {
|
||||
|
||||
func (x *User) Reset() {
|
||||
*x = User{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_user_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_user_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *User) String() string {
|
||||
@ -58,7 +56,7 @@ func (*User) ProtoMessage() {}
|
||||
|
||||
func (x *User) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_user_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -129,11 +127,9 @@ type UserListItem struct {
|
||||
|
||||
func (x *UserListItem) Reset() {
|
||||
*x = UserListItem{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_user_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_user_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *UserListItem) String() string {
|
||||
@ -144,7 +140,7 @@ func (*UserListItem) ProtoMessage() {}
|
||||
|
||||
func (x *UserListItem) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_user_proto_msgTypes[1]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -220,11 +216,9 @@ type UserTenant struct {
|
||||
|
||||
func (x *UserTenant) Reset() {
|
||||
*x = UserTenant{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_user_proto_msgTypes[2]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_user_proto_msgTypes[2]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *UserTenant) String() string {
|
||||
@ -235,7 +229,7 @@ func (*UserTenant) ProtoMessage() {}
|
||||
|
||||
func (x *UserTenant) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_user_proto_msgTypes[2]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -293,11 +287,9 @@ type CreateUserRequest struct {
|
||||
|
||||
func (x *CreateUserRequest) Reset() {
|
||||
*x = CreateUserRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_user_proto_msgTypes[3]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_user_proto_msgTypes[3]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *CreateUserRequest) String() string {
|
||||
@ -308,7 +300,7 @@ func (*CreateUserRequest) ProtoMessage() {}
|
||||
|
||||
func (x *CreateUserRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_user_proto_msgTypes[3]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -355,11 +347,9 @@ type CreateUserResponse struct {
|
||||
|
||||
func (x *CreateUserResponse) Reset() {
|
||||
*x = CreateUserResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_user_proto_msgTypes[4]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_user_proto_msgTypes[4]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *CreateUserResponse) String() string {
|
||||
@ -370,7 +360,7 @@ func (*CreateUserResponse) ProtoMessage() {}
|
||||
|
||||
func (x *CreateUserResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_user_proto_msgTypes[4]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -403,11 +393,9 @@ type GetUserRequest struct {
|
||||
|
||||
func (x *GetUserRequest) Reset() {
|
||||
*x = GetUserRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_user_proto_msgTypes[5]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_user_proto_msgTypes[5]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *GetUserRequest) String() string {
|
||||
@ -418,7 +406,7 @@ func (*GetUserRequest) ProtoMessage() {}
|
||||
|
||||
func (x *GetUserRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_user_proto_msgTypes[5]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -455,11 +443,9 @@ type GetUserResponse struct {
|
||||
|
||||
func (x *GetUserResponse) Reset() {
|
||||
*x = GetUserResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_user_proto_msgTypes[6]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_user_proto_msgTypes[6]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *GetUserResponse) String() string {
|
||||
@ -470,7 +456,7 @@ func (*GetUserResponse) ProtoMessage() {}
|
||||
|
||||
func (x *GetUserResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_user_proto_msgTypes[6]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -517,11 +503,9 @@ type UpdateUserRequest struct {
|
||||
|
||||
func (x *UpdateUserRequest) Reset() {
|
||||
*x = UpdateUserRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_user_proto_msgTypes[7]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_user_proto_msgTypes[7]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *UpdateUserRequest) String() string {
|
||||
@ -532,7 +516,7 @@ func (*UpdateUserRequest) ProtoMessage() {}
|
||||
|
||||
func (x *UpdateUserRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_user_proto_msgTypes[7]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -565,11 +549,9 @@ type DeleteUserRequest struct {
|
||||
|
||||
func (x *DeleteUserRequest) Reset() {
|
||||
*x = DeleteUserRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_user_proto_msgTypes[8]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_user_proto_msgTypes[8]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *DeleteUserRequest) String() string {
|
||||
@ -580,7 +562,7 @@ func (*DeleteUserRequest) ProtoMessage() {}
|
||||
|
||||
func (x *DeleteUserRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_user_proto_msgTypes[8]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -615,11 +597,9 @@ type ListUsersRequest struct {
|
||||
|
||||
func (x *ListUsersRequest) Reset() {
|
||||
*x = ListUsersRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_user_proto_msgTypes[9]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_user_proto_msgTypes[9]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *ListUsersRequest) String() string {
|
||||
@ -630,7 +610,7 @@ func (*ListUsersRequest) ProtoMessage() {}
|
||||
|
||||
func (x *ListUsersRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_user_proto_msgTypes[9]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -672,11 +652,9 @@ type ListUsersResponse struct {
|
||||
|
||||
func (x *ListUsersResponse) Reset() {
|
||||
*x = ListUsersResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_user_proto_msgTypes[10]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_user_proto_msgTypes[10]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *ListUsersResponse) String() string {
|
||||
@ -687,7 +665,7 @@ func (*ListUsersResponse) ProtoMessage() {}
|
||||
|
||||
func (x *ListUsersResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_user_proto_msgTypes[10]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -729,11 +707,9 @@ type UpdateUserPasswordRequest struct {
|
||||
|
||||
func (x *UpdateUserPasswordRequest) Reset() {
|
||||
*x = UpdateUserPasswordRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_api_user_proto_msgTypes[11]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_api_user_proto_msgTypes[11]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *UpdateUserPasswordRequest) String() string {
|
||||
@ -744,7 +720,7 @@ func (*UpdateUserPasswordRequest) ProtoMessage() {}
|
||||
|
||||
func (x *UpdateUserPasswordRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_user_proto_msgTypes[11]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -917,7 +893,7 @@ func file_api_user_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_api_user_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
|
||||
var file_api_user_proto_goTypes = []interface{}{
|
||||
var file_api_user_proto_goTypes = []any{
|
||||
(*User)(nil), // 0: api.User
|
||||
(*UserListItem)(nil), // 1: api.UserListItem
|
||||
(*UserTenant)(nil), // 2: api.UserTenant
|
||||
@ -967,152 +943,6 @@ 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{
|
||||
|
2
api/go/api/user_grpc.pb.go
vendored
2
api/go/api/user_grpc.pb.go
vendored
@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-grpc v1.3.0
|
||||
// - protoc v4.24.4
|
||||
// - protoc v5.28.3
|
||||
// source: api/user.proto
|
||||
|
||||
package api
|
||||
|
118
api/go/common/common.pb.go
vendored
118
api/go/common/common.pb.go
vendored
@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// protoc-gen-go v1.35.1
|
||||
// protoc v5.28.3
|
||||
// source: common/common.proto
|
||||
|
||||
package common
|
||||
@ -656,11 +656,9 @@ type Location struct {
|
||||
|
||||
func (x *Location) Reset() {
|
||||
*x = Location{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_common_common_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_common_common_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *Location) String() string {
|
||||
@ -671,7 +669,7 @@ func (*Location) ProtoMessage() {}
|
||||
|
||||
func (x *Location) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_common_common_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -734,11 +732,9 @@ type KeyEnvelope struct {
|
||||
|
||||
func (x *KeyEnvelope) Reset() {
|
||||
*x = KeyEnvelope{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_common_common_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_common_common_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *KeyEnvelope) String() string {
|
||||
@ -749,7 +745,7 @@ func (*KeyEnvelope) ProtoMessage() {}
|
||||
|
||||
func (x *KeyEnvelope) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_common_common_proto_msgTypes[1]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -795,11 +791,9 @@ type Metric struct {
|
||||
|
||||
func (x *Metric) Reset() {
|
||||
*x = Metric{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_common_common_proto_msgTypes[2]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_common_common_proto_msgTypes[2]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *Metric) String() string {
|
||||
@ -810,7 +804,7 @@ func (*Metric) ProtoMessage() {}
|
||||
|
||||
func (x *Metric) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_common_common_proto_msgTypes[2]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -867,11 +861,9 @@ type MetricDataset struct {
|
||||
|
||||
func (x *MetricDataset) Reset() {
|
||||
*x = MetricDataset{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_common_common_proto_msgTypes[3]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_common_common_proto_msgTypes[3]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *MetricDataset) String() string {
|
||||
@ -882,7 +874,7 @@ func (*MetricDataset) ProtoMessage() {}
|
||||
|
||||
func (x *MetricDataset) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_common_common_proto_msgTypes[3]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -925,11 +917,9 @@ type JoinServerContext struct {
|
||||
|
||||
func (x *JoinServerContext) Reset() {
|
||||
*x = JoinServerContext{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_common_common_proto_msgTypes[4]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_common_common_proto_msgTypes[4]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *JoinServerContext) String() string {
|
||||
@ -940,7 +930,7 @@ func (*JoinServerContext) ProtoMessage() {}
|
||||
|
||||
func (x *JoinServerContext) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_common_common_proto_msgTypes[4]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1103,7 +1093,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 = []interface{}{
|
||||
var file_common_common_proto_goTypes = []any{
|
||||
(Modulation)(0), // 0: common.Modulation
|
||||
(Region)(0), // 1: common.Region
|
||||
(MType)(0), // 2: common.MType
|
||||
@ -1139,68 +1129,6 @@ 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
834
api/go/gw/gw.pb.go
vendored
File diff suppressed because it is too large
Load Diff
594
api/go/integration/integration.pb.go
vendored
594
api/go/integration/integration.pb.go
vendored
@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// protoc-gen-go v1.35.1
|
||||
// protoc v5.28.3
|
||||
// source: integration/integration.proto
|
||||
|
||||
package integration
|
||||
@ -102,6 +102,8 @@ 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.
|
||||
@ -118,6 +120,7 @@ var (
|
||||
8: "DOWNLINK_GATEWAY",
|
||||
9: "RELAY_NEW_END_DEVICE",
|
||||
10: "F_CNT_DOWN",
|
||||
11: "EXPIRED",
|
||||
}
|
||||
LogCode_value = map[string]int32{
|
||||
"UNKNOWN": 0,
|
||||
@ -131,6 +134,7 @@ var (
|
||||
"DOWNLINK_GATEWAY": 8,
|
||||
"RELAY_NEW_END_DEVICE": 9,
|
||||
"F_CNT_DOWN": 10,
|
||||
"EXPIRED": 11,
|
||||
}
|
||||
)
|
||||
|
||||
@ -191,11 +195,9 @@ type DeviceInfo struct {
|
||||
|
||||
func (x *DeviceInfo) Reset() {
|
||||
*x = DeviceInfo{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_integration_integration_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_integration_integration_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *DeviceInfo) String() string {
|
||||
@ -206,7 +208,7 @@ func (*DeviceInfo) ProtoMessage() {}
|
||||
|
||||
func (x *DeviceInfo) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_integration_integration_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -313,11 +315,9 @@ type UplinkRelayRxInfo struct {
|
||||
|
||||
func (x *UplinkRelayRxInfo) Reset() {
|
||||
*x = UplinkRelayRxInfo{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_integration_integration_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
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 protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -425,15 +425,16 @@ type UplinkEvent struct {
|
||||
// the AppSKey and that the encryption / decryption of the payloads is
|
||||
// the responsibility of the end-application.
|
||||
JoinServerContext *common.JoinServerContext `protobuf:"bytes,15,opt,name=join_server_context,json=joinServerContext,proto3" json:"join_server_context,omitempty"`
|
||||
// Region config ID.
|
||||
// This contains the region config ID which reported the uplink.
|
||||
RegionConfigId string `protobuf:"bytes,16,opt,name=region_config_id,json=regionConfigId,proto3" json:"region_config_id,omitempty"`
|
||||
}
|
||||
|
||||
func (x *UplinkEvent) Reset() {
|
||||
*x = UplinkEvent{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_integration_integration_proto_msgTypes[2]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_integration_integration_proto_msgTypes[2]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *UplinkEvent) String() string {
|
||||
@ -444,7 +445,7 @@ func (*UplinkEvent) ProtoMessage() {}
|
||||
|
||||
func (x *UplinkEvent) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_integration_integration_proto_msgTypes[2]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -564,6 +565,13 @@ func (x *UplinkEvent) GetJoinServerContext() *common.JoinServerContext {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *UplinkEvent) GetRegionConfigId() string {
|
||||
if x != nil {
|
||||
return x.RegionConfigId
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// JoinEvent is the message sent when a device joined the network.
|
||||
// Note: this event is sent at the first uplink after OTAA.
|
||||
type JoinEvent struct {
|
||||
@ -586,15 +594,16 @@ type JoinEvent struct {
|
||||
// the AppSKey and that the encryption / decryption of the payloads is
|
||||
// the responsibility of the end-application.
|
||||
JoinServerContext *common.JoinServerContext `protobuf:"bytes,6,opt,name=join_server_context,json=joinServerContext,proto3" json:"join_server_context,omitempty"`
|
||||
// Region config ID.
|
||||
// This contains the region config ID which reported the uplink.
|
||||
RegionConfigId string `protobuf:"bytes,7,opt,name=region_config_id,json=regionConfigId,proto3" json:"region_config_id,omitempty"`
|
||||
}
|
||||
|
||||
func (x *JoinEvent) Reset() {
|
||||
*x = JoinEvent{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_integration_integration_proto_msgTypes[3]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_integration_integration_proto_msgTypes[3]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *JoinEvent) String() string {
|
||||
@ -605,7 +614,7 @@ func (*JoinEvent) ProtoMessage() {}
|
||||
|
||||
func (x *JoinEvent) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_integration_integration_proto_msgTypes[3]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -662,6 +671,13 @@ func (x *JoinEvent) GetJoinServerContext() *common.JoinServerContext {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *JoinEvent) GetRegionConfigId() string {
|
||||
if x != nil {
|
||||
return x.RegionConfigId
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// AckEvent is the message sent when a confirmation on a confirmed downlink
|
||||
// has been received -or- when the downlink timed out.
|
||||
type AckEvent struct {
|
||||
@ -685,11 +701,9 @@ type AckEvent struct {
|
||||
|
||||
func (x *AckEvent) Reset() {
|
||||
*x = AckEvent{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_integration_integration_proto_msgTypes[4]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_integration_integration_proto_msgTypes[4]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *AckEvent) String() string {
|
||||
@ -700,7 +714,7 @@ func (*AckEvent) ProtoMessage() {}
|
||||
|
||||
func (x *AckEvent) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_integration_integration_proto_msgTypes[4]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -783,11 +797,9 @@ type TxAckEvent struct {
|
||||
|
||||
func (x *TxAckEvent) Reset() {
|
||||
*x = TxAckEvent{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_integration_integration_proto_msgTypes[5]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_integration_integration_proto_msgTypes[5]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *TxAckEvent) String() string {
|
||||
@ -798,7 +810,7 @@ func (*TxAckEvent) ProtoMessage() {}
|
||||
|
||||
func (x *TxAckEvent) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_integration_integration_proto_msgTypes[5]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -884,11 +896,9 @@ type LogEvent struct {
|
||||
|
||||
func (x *LogEvent) Reset() {
|
||||
*x = LogEvent{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_integration_integration_proto_msgTypes[6]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_integration_integration_proto_msgTypes[6]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *LogEvent) String() string {
|
||||
@ -899,7 +909,7 @@ func (*LogEvent) ProtoMessage() {}
|
||||
|
||||
func (x *LogEvent) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_integration_integration_proto_msgTypes[6]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -982,11 +992,9 @@ type StatusEvent struct {
|
||||
|
||||
func (x *StatusEvent) Reset() {
|
||||
*x = StatusEvent{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_integration_integration_proto_msgTypes[7]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_integration_integration_proto_msgTypes[7]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *StatusEvent) String() string {
|
||||
@ -997,7 +1005,7 @@ func (*StatusEvent) ProtoMessage() {}
|
||||
|
||||
func (x *StatusEvent) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_integration_integration_proto_msgTypes[7]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1079,11 +1087,9 @@ type LocationEvent struct {
|
||||
|
||||
func (x *LocationEvent) Reset() {
|
||||
*x = LocationEvent{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_integration_integration_proto_msgTypes[8]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_integration_integration_proto_msgTypes[8]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *LocationEvent) String() string {
|
||||
@ -1094,7 +1100,7 @@ func (*LocationEvent) ProtoMessage() {}
|
||||
|
||||
func (x *LocationEvent) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_integration_integration_proto_msgTypes[8]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1161,11 +1167,9 @@ type IntegrationEvent struct {
|
||||
|
||||
func (x *IntegrationEvent) Reset() {
|
||||
*x = IntegrationEvent{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_integration_integration_proto_msgTypes[9]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_integration_integration_proto_msgTypes[9]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *IntegrationEvent) String() string {
|
||||
@ -1176,7 +1180,7 @@ func (*IntegrationEvent) ProtoMessage() {}
|
||||
|
||||
func (x *IntegrationEvent) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_integration_integration_proto_msgTypes[9]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1259,11 +1263,9 @@ type DownlinkCommand struct {
|
||||
|
||||
func (x *DownlinkCommand) Reset() {
|
||||
*x = DownlinkCommand{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_integration_integration_proto_msgTypes[10]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_integration_integration_proto_msgTypes[10]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *DownlinkCommand) String() string {
|
||||
@ -1274,7 +1276,7 @@ func (*DownlinkCommand) ProtoMessage() {}
|
||||
|
||||
func (x *DownlinkCommand) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_integration_integration_proto_msgTypes[10]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -1383,7 +1385,7 @@ var file_integration_integration_proto_rawDesc = []byte{
|
||||
0x01, 0x28, 0x05, 0x52, 0x03, 0x73, 0x6e, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x73, 0x73, 0x69,
|
||||
0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x72, 0x73, 0x73, 0x69, 0x12, 0x1f, 0x0a, 0x0b,
|
||||
0x77, 0x6f, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28,
|
||||
0x0d, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0xd3, 0x04,
|
||||
0x0d, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0xfd, 0x04,
|
||||
0x0a, 0x0b, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a,
|
||||
0x10, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69,
|
||||
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69,
|
||||
@ -1421,7 +1423,33 @@ var file_integration_integration_proto_rawDesc = []byte{
|
||||
0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4a,
|
||||
0x6f, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74,
|
||||
0x52, 0x11, 0x6a, 0x6f, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74,
|
||||
0x65, 0x78, 0x74, 0x22, 0xca, 0x02, 0x0a, 0x09, 0x4a, 0x6f, 0x69, 0x6e, 0x45, 0x76, 0x65, 0x6e,
|
||||
0x65, 0x78, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f,
|
||||
0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72,
|
||||
0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x22, 0xf4, 0x02,
|
||||
0x0a, 0x09, 0x4a, 0x6f, 0x69, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x64,
|
||||
0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02,
|
||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
|
||||
0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x69, 0x6e,
|
||||
0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f,
|
||||
0x12, 0x19, 0x0a, 0x08, 0x64, 0x65, 0x76, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x04, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x76, 0x41, 0x64, 0x64, 0x72, 0x12, 0x42, 0x0a, 0x0d, 0x72,
|
||||
0x65, 0x6c, 0x61, 0x79, 0x5f, 0x72, 0x78, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01,
|
||||
0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x2e, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x78, 0x49, 0x6e,
|
||||
0x66, 0x6f, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12,
|
||||
0x49, 0x0a, 0x13, 0x6a, 0x6f, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x63,
|
||||
0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63,
|
||||
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
|
||||
0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x11, 0x6a, 0x6f, 0x69, 0x6e, 0x53, 0x65, 0x72,
|
||||
0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x65,
|
||||
0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x07,
|
||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66,
|
||||
0x69, 0x67, 0x49, 0x64, 0x22, 0x85, 0x02, 0x0a, 0x08, 0x41, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e,
|
||||
0x74, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x64,
|
||||
0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x04,
|
||||
@ -1431,97 +1459,55 @@ var file_integration_integration_proto_rawDesc = []byte{
|
||||
0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28,
|
||||
0x0b, 0x32, 0x17, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
|
||||
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x65, 0x76, 0x5f, 0x61, 0x64,
|
||||
0x64, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x76, 0x41, 0x64, 0x64,
|
||||
0x72, 0x12, 0x42, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x72, 0x78, 0x5f, 0x69, 0x6e,
|
||||
0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x67,
|
||||
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x6c,
|
||||
0x61, 0x79, 0x52, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x52,
|
||||
0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x49, 0x0a, 0x13, 0x6a, 0x6f, 0x69, 0x6e, 0x5f, 0x73, 0x65,
|
||||
0x72, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x06, 0x20, 0x01,
|
||||
0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4a, 0x6f, 0x69, 0x6e,
|
||||
0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x11, 0x6a,
|
||||
0x6f, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74,
|
||||
0x22, 0x85, 0x02, 0x0a, 0x08, 0x41, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a,
|
||||
0x10, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69,
|
||||
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69,
|
||||
0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
|
||||
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
|
||||
0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e,
|
||||
0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e,
|
||||
0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0d, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d,
|
||||
0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x75, 0x65,
|
||||
0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77,
|
||||
0x6c, 0x65, 0x64, 0x67, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x63,
|
||||
0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x0a, 0x66, 0x5f,
|
||||
0x63, 0x6e, 0x74, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08,
|
||||
0x66, 0x43, 0x6e, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x22, 0xa5, 0x02, 0x0a, 0x0a, 0x54, 0x78, 0x41,
|
||||
0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x6f, 0x77, 0x6e, 0x6c,
|
||||
0x69, 0x6e, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x6f,
|
||||
0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
|
||||
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
|
||||
0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e,
|
||||
0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e,
|
||||
0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0d, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d,
|
||||
0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x75, 0x65,
|
||||
0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x0a, 0x66, 0x5f, 0x63, 0x6e, 0x74, 0x5f,
|
||||
0x64, 0x6f, 0x77, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x66, 0x43, 0x6e, 0x74,
|
||||
0x44, 0x6f, 0x77, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f,
|
||||
0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61,
|
||||
0x79, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x07,
|
||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x77, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x69,
|
||||
0x6e, 0x6b, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x74, 0x78, 0x49, 0x6e, 0x66, 0x6f,
|
||||
0x22, 0xe7, 0x02, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2e, 0x0a,
|
||||
0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
|
||||
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
|
||||
0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x38, 0x0a,
|
||||
0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01,
|
||||
0x28, 0x0b, 0x32, 0x17, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x64, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2b, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c,
|
||||
0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c,
|
||||
0x65, 0x76, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01,
|
||||
0x28, 0x0e, 0x32, 0x14, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x2e, 0x4c, 0x6f, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x20,
|
||||
0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x12, 0x3c, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28,
|
||||
0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
|
||||
0x4c, 0x6f, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74,
|
||||
0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x1a, 0x3a,
|
||||
0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
|
||||
0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
|
||||
0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xcf, 0x02, 0x0a, 0x0b, 0x53,
|
||||
0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65,
|
||||
0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
|
||||
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52,
|
||||
0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f,
|
||||
0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x69, 0x6e, 0x74,
|
||||
0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49,
|
||||
0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12,
|
||||
0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52,
|
||||
0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x32, 0x0a, 0x15, 0x65, 0x78, 0x74, 0x65, 0x72,
|
||||
0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
|
||||
0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,
|
||||
0x50, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x3a, 0x0a, 0x19, 0x62,
|
||||
0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x75, 0x6e, 0x61,
|
||||
0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17,
|
||||
0x62, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x55, 0x6e, 0x61, 0x76,
|
||||
0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x74, 0x74, 0x65,
|
||||
0x72, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c,
|
||||
0x62, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0xd2, 0x01, 0x0a,
|
||||
0x0d, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x29,
|
||||
0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0d, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f,
|
||||
0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71,
|
||||
0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x63,
|
||||
0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08,
|
||||
0x52, 0x0c, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x64, 0x12, 0x1c,
|
||||
0x0a, 0x0a, 0x66, 0x5f, 0x63, 0x6e, 0x74, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x06, 0x20, 0x01,
|
||||
0x28, 0x0d, 0x52, 0x08, 0x66, 0x43, 0x6e, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x22, 0xa5, 0x02, 0x0a,
|
||||
0x0a, 0x54, 0x78, 0x41, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x64,
|
||||
0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d,
|
||||
0x52, 0x0a, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x04,
|
||||
0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
|
||||
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
|
||||
0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x0b,
|
||||
0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28,
|
||||
0x0b, 0x32, 0x17, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
|
||||
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0d, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f,
|
||||
0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71,
|
||||
0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x0a, 0x66, 0x5f,
|
||||
0x63, 0x6e, 0x74, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08,
|
||||
0x66, 0x43, 0x6e, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65,
|
||||
0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61,
|
||||
0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x69, 0x6e,
|
||||
0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x77, 0x2e, 0x44, 0x6f,
|
||||
0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x74, 0x78,
|
||||
0x49, 0x6e, 0x66, 0x6f, 0x22, 0xe7, 0x02, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x45, 0x76, 0x65, 0x6e,
|
||||
0x74, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||
0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
|
||||
0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d,
|
||||
0x65, 0x12, 0x38, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52,
|
||||
0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2b, 0x0a, 0x05, 0x6c,
|
||||
0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x69, 0x6e, 0x74,
|
||||
0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65,
|
||||
0x6c, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65,
|
||||
0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x6f, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f,
|
||||
0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18,
|
||||
0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x6f, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6e,
|
||||
0x74, 0x65, 0x78, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65,
|
||||
0x78, 0x74, 0x1a, 0x3a, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x45, 0x6e, 0x74,
|
||||
0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xcf,
|
||||
0x02, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x29,
|
||||
0x0a, 0x10, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
|
||||
0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c,
|
||||
0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d,
|
||||
@ -1531,70 +1517,92 @@ var file_integration_integration_proto_rawDesc = []byte{
|
||||
0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17,
|
||||
0x2e, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49,
|
||||
0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
|
||||
0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c,
|
||||
0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x22, 0xa2, 0x02, 0x0a, 0x10, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c,
|
||||
0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
|
||||
0x52, 0x0f, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49,
|
||||
0x64, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||
0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
|
||||
0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d,
|
||||
0x65, 0x12, 0x38, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f,
|
||||
0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52,
|
||||
0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29, 0x0a, 0x10, 0x69,
|
||||
0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
|
||||
0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f,
|
||||
0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e,
|
||||
0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18,
|
||||
0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06,
|
||||
0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x22, 0xb4, 0x01, 0x0a, 0x0f, 0x44, 0x6f, 0x77, 0x6e, 0x6c,
|
||||
0x69, 0x6e, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x65,
|
||||
0x76, 0x5f, 0x65, 0x75, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76,
|
||||
0x45, 0x75, 0x69, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64,
|
||||
0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65,
|
||||
0x64, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
|
||||
0x0d, 0x52, 0x05, 0x66, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61,
|
||||
0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2f, 0x0a, 0x06,
|
||||
0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67,
|
||||
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53,
|
||||
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, 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,
|
||||
0x10, 0x0a, 0x0c, 0x55, 0x50, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x43, 0x10,
|
||||
0x02, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x43, 0x4f,
|
||||
0x44, 0x45, 0x43, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x4f, 0x54, 0x41, 0x41, 0x10, 0x04, 0x12,
|
||||
0x16, 0x0a, 0x12, 0x55, 0x50, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x46, 0x5f, 0x43, 0x4e, 0x54, 0x5f,
|
||||
0x52, 0x45, 0x53, 0x45, 0x54, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x50, 0x4c, 0x49, 0x4e,
|
||||
0x4b, 0x5f, 0x4d, 0x49, 0x43, 0x10, 0x06, 0x12, 0x1f, 0x0a, 0x1b, 0x55, 0x50, 0x4c, 0x49, 0x4e,
|
||||
0x4b, 0x5f, 0x46, 0x5f, 0x43, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x4d,
|
||||
0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x07, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x4f, 0x57, 0x4e,
|
||||
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, 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,
|
||||
0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x05, 0x20,
|
||||
0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x32, 0x0a, 0x15, 0x65,
|
||||
0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x73, 0x6f,
|
||||
0x75, 0x72, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x65, 0x78, 0x74, 0x65,
|
||||
0x72, 0x6e, 0x61, 0x6c, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12,
|
||||
0x3a, 0x0a, 0x19, 0x62, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c,
|
||||
0x5f, 0x75, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01,
|
||||
0x28, 0x08, 0x52, 0x17, 0x62, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c,
|
||||
0x55, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x62,
|
||||
0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x08, 0x20, 0x01,
|
||||
0x28, 0x02, 0x52, 0x0c, 0x62, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c,
|
||||
0x22, 0xd2, 0x01, 0x0a, 0x0d, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65,
|
||||
0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65,
|
||||
0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2e, 0x0a,
|
||||
0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
|
||||
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
|
||||
0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x38, 0x0a,
|
||||
0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01,
|
||||
0x28, 0x0b, 0x32, 0x17, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x64, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
|
||||
0x6f, 0x6e, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63,
|
||||
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa2, 0x02, 0x0a, 0x10, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72,
|
||||
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65,
|
||||
0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
|
||||
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52,
|
||||
0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f,
|
||||
0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x69, 0x6e, 0x74,
|
||||
0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49,
|
||||
0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12,
|
||||
0x29, 0x0a, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e,
|
||||
0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x67,
|
||||
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x76,
|
||||
0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
|
||||
0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x6f, 0x62, 0x6a,
|
||||
0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
|
||||
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75,
|
||||
0x63, 0x74, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x22, 0xb4, 0x01, 0x0a, 0x0f, 0x44,
|
||||
0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x0e,
|
||||
0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17,
|
||||
0x0a, 0x07, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x06, 0x64, 0x65, 0x76, 0x45, 0x75, 0x69, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69,
|
||||
0x72, 0x6d, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x66,
|
||||
0x69, 0x72, 0x6d, 0x65, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18,
|
||||
0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04,
|
||||
0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61,
|
||||
0x12, 0x2f, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b,
|
||||
0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
|
||||
0x75, 0x66, 0x2e, 0x53, 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, 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, 0x10, 0x0a, 0x0c, 0x55, 0x50, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x43, 0x4f,
|
||||
0x44, 0x45, 0x43, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x49, 0x4e,
|
||||
0x4b, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x43, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x4f, 0x54, 0x41,
|
||||
0x41, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x55, 0x50, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x46, 0x5f,
|
||||
0x43, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x54, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x55,
|
||||
0x50, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x4d, 0x49, 0x43, 0x10, 0x06, 0x12, 0x1f, 0x0a, 0x1b, 0x55,
|
||||
0x50, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x46, 0x5f, 0x43, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x54, 0x52,
|
||||
0x41, 0x4e, 0x53, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x07, 0x12, 0x14, 0x0a, 0x10,
|
||||
0x44, 0x4f, 0x57, 0x4e, 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,
|
||||
}
|
||||
|
||||
var (
|
||||
@ -1611,7 +1619,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 = []interface{}{
|
||||
var file_integration_integration_proto_goTypes = []any{
|
||||
(LogLevel)(0), // 0: integration.LogLevel
|
||||
(LogCode)(0), // 1: integration.LogCode
|
||||
(*DeviceInfo)(nil), // 2: integration.DeviceInfo
|
||||
@ -1681,140 +1689,6 @@ 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{
|
||||
|
30
api/go/stream/api_request.pb.go
vendored
30
api/go/stream/api_request.pb.go
vendored
@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// protoc-gen-go v1.35.1
|
||||
// protoc v5.28.3
|
||||
// source: stream/api_request.proto
|
||||
|
||||
package stream
|
||||
@ -38,11 +38,9 @@ type ApiRequestLog struct {
|
||||
|
||||
func (x *ApiRequestLog) Reset() {
|
||||
*x = ApiRequestLog{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_stream_api_request_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_stream_api_request_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *ApiRequestLog) String() string {
|
||||
@ -53,7 +51,7 @@ func (*ApiRequestLog) ProtoMessage() {}
|
||||
|
||||
func (x *ApiRequestLog) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_stream_api_request_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -137,7 +135,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 = []interface{}{
|
||||
var file_stream_api_request_proto_goTypes = []any{
|
||||
(*ApiRequestLog)(nil), // 0: stream.ApiRequestLog
|
||||
nil, // 1: stream.ApiRequestLog.MetadataEntry
|
||||
}
|
||||
@ -155,20 +153,6 @@ 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{
|
||||
|
30
api/go/stream/backend_interfaces.pb.go
vendored
30
api/go/stream/backend_interfaces.pb.go
vendored
@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// protoc-gen-go v1.35.1
|
||||
// protoc v5.28.3
|
||||
// source: stream/backend_interfaces.proto
|
||||
|
||||
package stream
|
||||
@ -48,11 +48,9 @@ type BackendInterfacesRequest struct {
|
||||
|
||||
func (x *BackendInterfacesRequest) Reset() {
|
||||
*x = BackendInterfacesRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_stream_backend_interfaces_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_stream_backend_interfaces_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *BackendInterfacesRequest) String() string {
|
||||
@ -63,7 +61,7 @@ func (*BackendInterfacesRequest) ProtoMessage() {}
|
||||
|
||||
func (x *BackendInterfacesRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_stream_backend_interfaces_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -198,7 +196,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 = []interface{}{
|
||||
var file_stream_backend_interfaces_proto_goTypes = []any{
|
||||
(*BackendInterfacesRequest)(nil), // 0: stream.BackendInterfacesRequest
|
||||
(*timestamppb.Timestamp)(nil), // 1: google.protobuf.Timestamp
|
||||
}
|
||||
@ -216,20 +214,6 @@ 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{
|
||||
|
52
api/go/stream/frame.pb.go
vendored
52
api/go/stream/frame.pb.go
vendored
@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// protoc-gen-go v1.35.1
|
||||
// protoc v5.28.3
|
||||
// source: stream/frame.proto
|
||||
|
||||
package stream
|
||||
@ -50,11 +50,9 @@ type UplinkFrameLog struct {
|
||||
|
||||
func (x *UplinkFrameLog) Reset() {
|
||||
*x = UplinkFrameLog{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_stream_frame_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_stream_frame_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *UplinkFrameLog) String() string {
|
||||
@ -65,7 +63,7 @@ func (*UplinkFrameLog) ProtoMessage() {}
|
||||
|
||||
func (x *UplinkFrameLog) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_stream_frame_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -172,11 +170,9 @@ type DownlinkFrameLog struct {
|
||||
|
||||
func (x *DownlinkFrameLog) Reset() {
|
||||
*x = DownlinkFrameLog{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_stream_frame_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_stream_frame_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *DownlinkFrameLog) String() string {
|
||||
@ -187,7 +183,7 @@ func (*DownlinkFrameLog) ProtoMessage() {}
|
||||
|
||||
func (x *DownlinkFrameLog) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_stream_frame_proto_msgTypes[1]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -355,7 +351,7 @@ func file_stream_frame_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_stream_frame_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
|
||||
var file_stream_frame_proto_goTypes = []interface{}{
|
||||
var file_stream_frame_proto_goTypes = []any{
|
||||
(*UplinkFrameLog)(nil), // 0: stream.UplinkFrameLog
|
||||
(*DownlinkFrameLog)(nil), // 1: stream.DownlinkFrameLog
|
||||
(*gw.UplinkTxInfo)(nil), // 2: gw.UplinkTxInfo
|
||||
@ -384,32 +380,6 @@ 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{
|
||||
|
52
api/go/stream/meta.pb.go
vendored
52
api/go/stream/meta.pb.go
vendored
@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// protoc-gen-go v1.35.1
|
||||
// protoc v5.28.3
|
||||
// source: stream/meta.proto
|
||||
|
||||
package stream
|
||||
@ -45,11 +45,9 @@ type UplinkMeta struct {
|
||||
|
||||
func (x *UplinkMeta) Reset() {
|
||||
*x = UplinkMeta{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_stream_meta_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_stream_meta_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *UplinkMeta) String() string {
|
||||
@ -60,7 +58,7 @@ func (*UplinkMeta) ProtoMessage() {}
|
||||
|
||||
func (x *UplinkMeta) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_stream_meta_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -149,11 +147,9 @@ type DownlinkMeta struct {
|
||||
|
||||
func (x *DownlinkMeta) Reset() {
|
||||
*x = DownlinkMeta{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_stream_meta_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
mi := &file_stream_meta_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *DownlinkMeta) String() string {
|
||||
@ -164,7 +160,7 @@ func (*DownlinkMeta) ProtoMessage() {}
|
||||
|
||||
func (x *DownlinkMeta) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_stream_meta_proto_msgTypes[1]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
@ -314,7 +310,7 @@ func file_stream_meta_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_stream_meta_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
|
||||
var file_stream_meta_proto_goTypes = []interface{}{
|
||||
var file_stream_meta_proto_goTypes = []any{
|
||||
(*UplinkMeta)(nil), // 0: stream.UplinkMeta
|
||||
(*DownlinkMeta)(nil), // 1: stream.DownlinkMeta
|
||||
(*gw.UplinkTxInfo)(nil), // 2: gw.UplinkTxInfo
|
||||
@ -340,32 +336,6 @@ 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{
|
||||
|
2
api/grpc-web/package.json
vendored
2
api/grpc-web/package.json
vendored
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@chirpstack/chirpstack-api-grpc-web",
|
||||
"version": "4.9.0",
|
||||
"version": "4.11.1",
|
||||
"description": "Chirpstack gRPC-web API",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
|
2
api/java/build.gradle.kts
vendored
2
api/java/build.gradle.kts
vendored
@ -8,7 +8,7 @@ plugins {
|
||||
}
|
||||
|
||||
group = "io.chirpstack"
|
||||
version = "4.9.0"
|
||||
version = "4.11.1"
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
|
2
api/js/package.json
vendored
2
api/js/package.json
vendored
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@chirpstack/chirpstack-api",
|
||||
"version": "4.9.0",
|
||||
"version": "4.11.1",
|
||||
"description": "Chirpstack JS and TS API",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
|
2
api/kotlin/build.gradle.kts
vendored
2
api/kotlin/build.gradle.kts
vendored
@ -9,7 +9,7 @@ plugins {
|
||||
}
|
||||
|
||||
group = "io.chirpstack"
|
||||
version = "4.9.0"
|
||||
version = "4.11.1"
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
|
2
api/php/composer.json
vendored
2
api/php/composer.json
vendored
@ -3,7 +3,7 @@
|
||||
"description": "Chirpstack PHP API",
|
||||
"license": "MIT",
|
||||
"type": "library",
|
||||
"version": "4.9.0",
|
||||
"version": "4.11.1",
|
||||
"require": {
|
||||
"php": ">=7.0.0",
|
||||
"grpc/grpc": "^v1.57.0",
|
||||
|
8
api/proto/integration/integration.proto
vendored
8
api/proto/integration/integration.proto
vendored
@ -169,6 +169,10 @@ message UplinkEvent {
|
||||
// the AppSKey and that the encryption / decryption of the payloads is
|
||||
// the responsibility of the end-application.
|
||||
common.JoinServerContext join_server_context = 15;
|
||||
|
||||
// Region config ID.
|
||||
// This contains the region config ID which reported the uplink.
|
||||
string region_config_id = 16;
|
||||
}
|
||||
|
||||
// JoinEvent is the message sent when a device joined the network.
|
||||
@ -194,6 +198,10 @@ message JoinEvent {
|
||||
// the AppSKey and that the encryption / decryption of the payloads is
|
||||
// the responsibility of the end-application.
|
||||
common.JoinServerContext join_server_context = 6;
|
||||
|
||||
// Region config ID.
|
||||
// This contains the region config ID which reported the uplink.
|
||||
string region_config_id = 7;
|
||||
}
|
||||
|
||||
// AckEvent is the message sent when a confirmation on a confirmed downlink
|
||||
|
2
api/python/src/setup.py
vendored
2
api/python/src/setup.py
vendored
@ -18,7 +18,7 @@ CLASSIFIERS = [
|
||||
|
||||
setup(
|
||||
name='chirpstack-api',
|
||||
version = "4.9.0",
|
||||
version = "4.11.1",
|
||||
url='https://github.com/brocaar/chirpstack-api',
|
||||
author='Orne Brocaar',
|
||||
author_email='info@brocaar.com',
|
||||
|
4
api/rust/Cargo.toml
vendored
4
api/rust/Cargo.toml
vendored
@ -1,7 +1,7 @@
|
||||
[package]
|
||||
name = "chirpstack_api"
|
||||
description = "ChirpStack Protobuf / gRPC API definitions."
|
||||
version = "4.9.0"
|
||||
version = "4.11.1"
|
||||
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.38", features = ["macros"], optional = true }
|
||||
tokio = { version = "1.41", features = ["macros"], optional = true }
|
||||
pbjson = { version = "0.7", optional = true }
|
||||
pbjson-types = { version = "0.7", optional = true }
|
||||
serde = { version = "1.0", optional = true }
|
||||
|
17
api/rust/build.rs
vendored
17
api/rust/build.rs
vendored
@ -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(
|
||||
.compile_protos(
|
||||
&[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(
|
||||
.compile_protos(
|
||||
&[cs_dir.join("gw").join("gw.proto").to_str().unwrap()],
|
||||
&[
|
||||
proto_dir.join("chirpstack").to_str().unwrap(),
|
||||
@ -82,12 +82,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
.extern_path(".google.protobuf", well_known_types_path)
|
||||
.extern_path(".common", "crate::common");
|
||||
|
||||
#[cfg(feature = "diesel")]
|
||||
{
|
||||
builder = builder.message_attribute("internal.DeviceSession", "#[derive(diesel::expression::AsExpression, diesel::deserialize::FromSqlRow)] #[diesel(sql_type = diesel::sql_types::Binary)]");
|
||||
}
|
||||
|
||||
builder.compile(
|
||||
builder.compile_protos(
|
||||
&[cs_dir
|
||||
.join("internal")
|
||||
.join("internal.proto")
|
||||
@ -119,7 +114,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(
|
||||
.compile_protos(
|
||||
&[cs_dir
|
||||
.join("integration")
|
||||
.join("integration.proto")
|
||||
@ -153,7 +148,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(
|
||||
.compile_protos(
|
||||
&[
|
||||
cs_dir.join("stream").join("meta.proto").to_str().unwrap(),
|
||||
cs_dir.join("stream").join("frame.proto").to_str().unwrap(),
|
||||
@ -192,7 +187,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(
|
||||
.compile_protos(
|
||||
&[
|
||||
cs_dir.join("api").join("internal.proto").to_str().unwrap(),
|
||||
cs_dir.join("api").join("user.proto").to_str().unwrap(),
|
||||
|
@ -169,6 +169,10 @@ message UplinkEvent {
|
||||
// the AppSKey and that the encryption / decryption of the payloads is
|
||||
// the responsibility of the end-application.
|
||||
common.JoinServerContext join_server_context = 15;
|
||||
|
||||
// Region config ID.
|
||||
// This contains the region config ID which reported the uplink.
|
||||
string region_config_id = 16;
|
||||
}
|
||||
|
||||
// JoinEvent is the message sent when a device joined the network.
|
||||
@ -194,6 +198,10 @@ message JoinEvent {
|
||||
// the AppSKey and that the encryption / decryption of the payloads is
|
||||
// the responsibility of the end-application.
|
||||
common.JoinServerContext join_server_context = 6;
|
||||
|
||||
// Region config ID.
|
||||
// This contains the region config ID which reported the uplink.
|
||||
string region_config_id = 7;
|
||||
}
|
||||
|
||||
// AckEvent is the message sent when a confirmation on a confirmed downlink
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "backend"
|
||||
version = "4.9.0"
|
||||
version = "4.11.1"
|
||||
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 = "1.0"
|
||||
thiserror = "2.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.38", features = ["macros"] }
|
||||
tokio = { version = "1.42", features = ["macros"] }
|
||||
chirpstack_api = { path = "../api/rust", default-features = false, features = [
|
||||
"json",
|
||||
] }
|
||||
|
@ -3,14 +3,14 @@
|
||||
description = "Library for building external ChirpStack integrations"
|
||||
homepage = "https://www.chirpstack.io/"
|
||||
license = "MIT"
|
||||
version = "4.9.0"
|
||||
version = "4.11.1"
|
||||
authors = ["Orne Brocaar <info@brocaar.com>"]
|
||||
edition = "2021"
|
||||
repository = "https://github.com/chirpstack/chirpstack"
|
||||
|
||||
[dependencies]
|
||||
chirpstack_api = { path = "../api/rust", version = "4.9.0-test.1" }
|
||||
redis = { version = "0.26", features = [
|
||||
chirpstack_api = { path = "../api/rust", version = "4.11.1" }
|
||||
redis = { version = "0.27", features = [
|
||||
"cluster-async",
|
||||
"tokio-rustls-comp",
|
||||
] }
|
||||
@ -21,9 +21,9 @@
|
||||
"ansi",
|
||||
"json",
|
||||
], default-features = true }
|
||||
async-trait = "0.1.79"
|
||||
async-trait = "0.1"
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
tokio = { version = "1.36", features = ["macros", "rt-multi-thread"] }
|
||||
lazy_static = "1.4"
|
||||
tokio = { version = "1.42", features = ["macros", "rt-multi-thread"] }
|
||||
lazy_static = "1.5"
|
||||
serde_json = "1.0"
|
||||
toml = "0.8"
|
||||
|
@ -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.9.0"
|
||||
version = "4.11.1"
|
||||
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.0"
|
||||
handlebars = "6.2"
|
||||
|
||||
# Database
|
||||
email_address = "0.2"
|
||||
@ -35,10 +35,10 @@
|
||||
"async-connection-wrapper",
|
||||
] }
|
||||
tokio-postgres = { version = "0.7", optional = true }
|
||||
tokio-postgres-rustls = { version = "0.12", optional = true }
|
||||
tokio-postgres-rustls = { version = "0.13", optional = true }
|
||||
bigdecimal = "0.4"
|
||||
redis = { version = "0.26", features = ["tls-rustls", "tokio-rustls-comp"] }
|
||||
deadpool-redis = { version = "0.16", features = ["cluster"] }
|
||||
redis = { version = "0.27", features = ["tls-rustls", "tokio-rustls-comp"] }
|
||||
deadpool-redis = { version = "0.18", features = ["cluster", "serde"] }
|
||||
|
||||
# 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.36", default-features = false, features = [
|
||||
rdkafka = { version = "0.37", 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.40", features = ["macros", "rt-multi-thread"] }
|
||||
tokio = { version = "1.42", features = ["macros", "rt-multi-thread"] }
|
||||
tokio-stream = "0.1"
|
||||
prost-types = "0.13"
|
||||
prost = "0.13"
|
||||
@ -99,10 +99,10 @@
|
||||
http-body = "1.0"
|
||||
rust-embed = "8.5"
|
||||
mime_guess = "2.0"
|
||||
tower-http = { version = "0.5", features = ["trace", "auth"] }
|
||||
tower-http = { version = "0.6", features = ["trace", "auth"] }
|
||||
|
||||
# Error handling
|
||||
thiserror = "1.0"
|
||||
thiserror = "2.0"
|
||||
anyhow = "1.0"
|
||||
|
||||
# Authentication
|
||||
@ -116,7 +116,7 @@
|
||||
"ring",
|
||||
] }
|
||||
rustls-native-certs = "0.8"
|
||||
rustls-pemfile = "2.1"
|
||||
rustls-pemfile = "2.2"
|
||||
pem = "3.0"
|
||||
x509-parser = "0.16"
|
||||
rsa = "0.9"
|
||||
@ -133,7 +133,7 @@
|
||||
hex = "0.4"
|
||||
|
||||
# Codecs
|
||||
rquickjs = { version = "0.6", features = [
|
||||
rquickjs = { version = "0.8", features = [
|
||||
"bindgen",
|
||||
"loader",
|
||||
"array-buffer",
|
||||
@ -142,14 +142,14 @@
|
||||
|
||||
# Misc
|
||||
lazy_static = "1.5"
|
||||
uuid = { version = "1.10", features = ["v4", "serde"] }
|
||||
uuid = { version = "1.11", 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.10"
|
||||
regex = "1.11"
|
||||
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.7"
|
||||
bytes = "1.8"
|
||||
dotenv = "0.15"
|
||||
|
||||
[features]
|
||||
@ -235,9 +235,15 @@
|
||||
"/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"
|
||||
|
||||
@ -259,3 +265,17 @@ 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 = "*"
|
||||
|
@ -2,6 +2,11 @@
|
||||
|
||||
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)"
|
||||
@ -17,13 +22,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
|
||||
cargo deb --target armv7-unknown-linux-musleabihf --no-build --no-strip
|
||||
cargo deb --target aarch64-unknown-linux-musl --no-build --no-strip
|
||||
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 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
|
||||
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)
|
||||
|
||||
mkdir -p ../dist
|
||||
|
||||
@ -35,9 +40,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)_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
|
||||
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
|
||||
|
||||
test:
|
||||
cargo fmt --check
|
||||
|
@ -0,0 +1,2 @@
|
||||
alter table device_keys
|
||||
alter column dev_nonces type int[] using '{}';
|
@ -0,0 +1,7 @@
|
||||
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;
|
@ -0,0 +1 @@
|
||||
update device_keys set dev_nonces = '[]';
|
@ -0,0 +1 @@
|
||||
update device_keys set dev_nonces = '{}';
|
@ -21,7 +21,7 @@ impl Plugin {
|
||||
let m = rquickjs::Module::declare(ctx, "script", script.clone())
|
||||
.context("Declare script")?;
|
||||
let (m, m_promise) = m.eval().context("Evaluate script")?;
|
||||
m_promise.finish()?;
|
||||
() = m_promise.finish()?;
|
||||
let id_func: rquickjs::Function = m.get("id").context("Get id function")?;
|
||||
let name_func: rquickjs::Function = m.get("name").context("Get name function")?;
|
||||
|
||||
@ -55,7 +55,7 @@ impl Handler for Plugin {
|
||||
let m = rquickjs::Module::declare(ctx.clone(), "script", self.script.clone())
|
||||
.context("Declare script")?;
|
||||
let (m, m_promise) = m.eval().context("Evaluate script")?;
|
||||
m_promise.finish()?;
|
||||
() = m_promise.finish()?;
|
||||
let func: rquickjs::Function = m.get("handle").context("Get handle function")?;
|
||||
|
||||
let device_variables = rquickjs::Object::new(ctx.clone())?;
|
||||
|
@ -328,6 +328,7 @@ 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,
|
||||
@ -337,13 +338,14 @@ async fn _handle_pr_start_req_data(
|
||||
None
|
||||
};
|
||||
|
||||
let f_nwk_s_int_key = if validate_mic && ds.mac_version().to_string().starts_with("1.0") {
|
||||
None
|
||||
} else {
|
||||
// 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") {
|
||||
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
|
||||
@ -599,7 +601,7 @@ async fn handle_async_ans(bp: &BasePayload, b: &[u8]) -> Result<Response> {
|
||||
|
||||
let key = redis_key(format!("backend:async:{}", transaction_id));
|
||||
|
||||
redis::pipe()
|
||||
() = redis::pipe()
|
||||
.atomic()
|
||||
.cmd("XADD")
|
||||
.arg(&key)
|
||||
|
@ -469,7 +469,7 @@ impl DeviceService for Device {
|
||||
)
|
||||
.await?;
|
||||
|
||||
device_keys::set_dev_nonces(&dev_eui, &Vec::new())
|
||||
device_keys::set_dev_nonces(dev_eui, &fields::DevNonces::default())
|
||||
.await
|
||||
.map_err(|e| e.status())?;
|
||||
|
||||
@ -1429,10 +1429,13 @@ pub mod test {
|
||||
);
|
||||
|
||||
// flush dev nonces
|
||||
let _ =
|
||||
device_keys::set_dev_nonces(&EUI64::from_str("0102030405060708").unwrap(), &[1, 2, 3])
|
||||
.await
|
||||
.unwrap();
|
||||
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 flush_dev_nonces_req = get_request(
|
||||
&u.id,
|
||||
api::FlushDevNoncesRequest {
|
||||
@ -1446,7 +1449,7 @@ pub mod test {
|
||||
let dk = device_keys::get(&EUI64::from_str("0102030405060708").unwrap())
|
||||
.await
|
||||
.unwrap();
|
||||
assert_eq!(0, dk.dev_nonces.len());
|
||||
assert_eq!(fields::DevNonces::default(), dk.dev_nonces);
|
||||
|
||||
// delete keys
|
||||
let del_keys_req = get_request(
|
||||
|
@ -287,11 +287,7 @@ 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())?
|
||||
.into(),
|
||||
)
|
||||
Some(Uuid::from_str(&req_key.tenant_id).map_err(|e| e.status())?)
|
||||
};
|
||||
|
||||
if req_key.is_admin && tenant_id.is_some() {
|
||||
|
@ -162,7 +162,7 @@ async fn store_verifier(
|
||||
trace!("Storing verifier");
|
||||
|
||||
let key = redis_key(format!("auth:oauth2:{}", token.secret()));
|
||||
redis::cmd("PSETEX")
|
||||
() = redis::cmd("PSETEX")
|
||||
.arg(key)
|
||||
.arg(Duration::try_minutes(5).unwrap().num_milliseconds())
|
||||
.arg(verifier.secret())
|
||||
|
@ -119,7 +119,7 @@ async fn store_nonce(state: &CsrfToken, nonce: &Nonce) -> Result<()> {
|
||||
trace!("Storing nonce");
|
||||
let key = redis_key(format!("auth:oidc:{}", state.secret()));
|
||||
|
||||
redis::cmd("PSETEX")
|
||||
() = redis::cmd("PSETEX")
|
||||
.arg(key)
|
||||
.arg(Duration::try_minutes(5).unwrap().num_milliseconds())
|
||||
.arg(nonce.secret())
|
||||
|
@ -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,
|
||||
|
@ -65,7 +65,7 @@ impl UserService for User {
|
||||
|
||||
tenant::add_user(tenant::TenantUser {
|
||||
tenant_id: tenant_id.into(),
|
||||
user_id: u.id.into(),
|
||||
user_id: u.id,
|
||||
is_admin: tu.is_admin,
|
||||
is_device_admin: tu.is_device_admin,
|
||||
is_gateway_admin: tu.is_gateway_admin,
|
||||
|
@ -3,6 +3,7 @@ use handlebars::Handlebars;
|
||||
use super::super::config;
|
||||
|
||||
pub fn run() {
|
||||
#[allow(clippy::useless_vec)]
|
||||
let template = vec![
|
||||
r#"
|
||||
# Logging configuration
|
||||
|
@ -111,18 +111,16 @@ pub async fn run(dir: &Path) -> Result<()> {
|
||||
let vendors_dir = dir.join("vendors");
|
||||
let vendors = fs::read_dir(vendors_dir)?;
|
||||
|
||||
for vendor in vendors {
|
||||
if let Ok(vendor) = vendor {
|
||||
if vendor.file_name() == "example-vendor" {
|
||||
continue;
|
||||
}
|
||||
for vendor in vendors.flatten() {
|
||||
if vendor.file_name() == "example-vendor" {
|
||||
continue;
|
||||
}
|
||||
|
||||
let span = span!(Level::INFO, "", vendor = ?vendor.file_name());
|
||||
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?;
|
||||
}
|
||||
let vendor_dir = vendor.path();
|
||||
if vendor_dir.is_dir() {
|
||||
handle_vendor(&vendor_dir).instrument(span).await?;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -63,7 +63,7 @@ pub async fn decode(
|
||||
.eval()
|
||||
.catch(&ctx)
|
||||
.map_err(|e| anyhow!("JS error: {}", e))?;
|
||||
buff_promise.finish()?;
|
||||
() = buff_promise.finish()?;
|
||||
let buff: rquickjs::Function = buff.get("Buffer")?;
|
||||
|
||||
let input = rquickjs::Object::new(ctx.clone())?;
|
||||
@ -154,7 +154,7 @@ pub async fn encode(
|
||||
.eval()
|
||||
.catch(&ctx)
|
||||
.map_err(|e| anyhow!("JS error: {}", e))?;
|
||||
buff_promise.finish()?;
|
||||
() = buff_promise.finish()?;
|
||||
let buff: rquickjs::Function = buff.get("Buffer")?;
|
||||
|
||||
let input = rquickjs::Object::new(ctx.clone())?;
|
||||
@ -227,7 +227,7 @@ pub mod test {
|
||||
let out = decode(Utc::now(), 10, &vars, &decoder, &[0x01, 0x02, 0x03]).await;
|
||||
|
||||
assert_eq!(
|
||||
"JS error: Error:4:24 'foo' is not defined\n at decodeUplink (eval_script:4:24)\n at <eval> (eval_script:8:9)\n",
|
||||
"JS error: Error: foo is not defined\n at decodeUplink (eval_script:3:1)\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: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());
|
||||
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());
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
|
@ -466,10 +466,10 @@ impl Data {
|
||||
// * 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.expires_at.is_some() && qi.expires_at.unwrap() < Utc::now()
|
||||
|| 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");
|
||||
|
@ -6,5 +6,8 @@ pub enum Error {
|
||||
Abort,
|
||||
|
||||
#[error(transparent)]
|
||||
AnyhowError(#[from] anyhow::Error),
|
||||
Anyhow(#[from] anyhow::Error),
|
||||
|
||||
#[error(transparent)]
|
||||
Storage(#[from] crate::storage::error::Error),
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ use petgraph::graph::{DefaultIx, Graph, NodeIndex, UnGraph};
|
||||
use rand::Rng;
|
||||
use tracing::{span, trace, warn, Instrument, Level};
|
||||
|
||||
use crate::downlink::helpers;
|
||||
use crate::downlink::{error::Error, helpers};
|
||||
use crate::gateway::backend as gateway_backend;
|
||||
use crate::storage::{device_gateway, downlink_frame, gateway, multicast};
|
||||
use crate::{config, region};
|
||||
@ -33,9 +33,19 @@ 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);
|
||||
|
||||
Multicast::_handle_schedule_queue_item(qi)
|
||||
match 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<()> {
|
||||
@ -92,7 +102,7 @@ impl Multicast {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
async fn validate_expiration(&self) -> Result<()> {
|
||||
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 {
|
||||
@ -101,14 +111,14 @@ impl Multicast {
|
||||
"Discarding multicast-group queue item because it has expired"
|
||||
);
|
||||
multicast::delete_queue_item(&self.multicast_group_queue_item.id).await?;
|
||||
return Err(anyhow!("Queue item has expired and has been discarded"));
|
||||
return Err(Error::Abort);
|
||||
}
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
async fn validate_payload_size(&self) -> Result<()> {
|
||||
async fn validate_payload_size(&self) -> Result<(), Error> {
|
||||
trace!("Validating payload size for DR");
|
||||
let mg = self.multicast_group.as_ref().unwrap();
|
||||
let region_conf = region::get(&self.region_config_id)?;
|
||||
@ -127,9 +137,7 @@ 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(anyhow!(
|
||||
"Queue item exceeds max payload and has been discarded"
|
||||
));
|
||||
return Err(Error::Abort);
|
||||
}
|
||||
|
||||
Ok(())
|
||||
|
@ -182,7 +182,7 @@ impl TxAck {
|
||||
|
||||
async fn get_downlink_frame(&mut self) -> Result<()> {
|
||||
trace!("Get downlink-frame from Redis");
|
||||
let df = downlink_frame::get(self.downlink_id).await?;
|
||||
let df = downlink_frame::get_and_del(self.downlink_id).await?;
|
||||
let gw_df = &df
|
||||
.downlink_frame
|
||||
.as_ref()
|
||||
|
@ -363,16 +363,13 @@ async fn message_callback(
|
||||
if let Some(rx_info) = &mut event.rx_info {
|
||||
set_gateway_json(&rx_info.gateway_id, json);
|
||||
rx_info.ns_time = Some(Utc::now().into());
|
||||
rx_info
|
||||
.metadata
|
||||
.insert("region_config_id".to_string(), region_config_id.to_string());
|
||||
rx_info.metadata.insert(
|
||||
"region_common_name".to_string(),
|
||||
region_common_name.to_string(),
|
||||
);
|
||||
}
|
||||
|
||||
tokio::spawn(uplink::deduplicate_uplink(event));
|
||||
tokio::spawn(uplink::deduplicate_uplink(
|
||||
region_common_name,
|
||||
region_config_id.to_string(),
|
||||
event,
|
||||
));
|
||||
} else if topic.ends_with("/stats") {
|
||||
EVENT_COUNTER
|
||||
.get_or_create(&EventLabels {
|
||||
|
@ -1,9 +1,12 @@
|
||||
use std::collections::HashMap;
|
||||
use std::sync::OnceLock;
|
||||
use std::time::Duration;
|
||||
|
||||
use anyhow::Result;
|
||||
use async_trait::async_trait;
|
||||
use base64::{engine::general_purpose, Engine as _};
|
||||
use prost::Message;
|
||||
use reqwest::Client;
|
||||
use tracing::{info, trace};
|
||||
|
||||
use super::Integration as IntegrationTrait;
|
||||
@ -11,13 +14,25 @@ use crate::storage::application::AwsSnsConfiguration;
|
||||
use chirpstack_api::api::Encoding;
|
||||
use chirpstack_api::integration;
|
||||
|
||||
static CLIENT: OnceLock<Client> = OnceLock::new();
|
||||
|
||||
fn get_client() -> Client {
|
||||
CLIENT
|
||||
.get_or_init(|| {
|
||||
Client::builder()
|
||||
.timeout(Duration::from_secs(5))
|
||||
.build()
|
||||
.unwrap()
|
||||
})
|
||||
.clone()
|
||||
}
|
||||
|
||||
pub struct Integration {
|
||||
json: bool,
|
||||
access_key_id: String,
|
||||
secret_access_key: String,
|
||||
region: String,
|
||||
topic_arn: String,
|
||||
client: reqwest::Client,
|
||||
}
|
||||
|
||||
impl Integration {
|
||||
@ -35,7 +50,6 @@ impl Integration {
|
||||
access_key_id: conf.access_key_id.clone(),
|
||||
secret_access_key: conf.secret_access_key.clone(),
|
||||
region: conf.region.clone(),
|
||||
client: reqwest::Client::new(),
|
||||
})
|
||||
}
|
||||
|
||||
@ -97,7 +111,7 @@ impl Integration {
|
||||
|
||||
headers.insert(reqwest::header::AUTHORIZATION, s.parse()?);
|
||||
|
||||
self.client
|
||||
get_client()
|
||||
.post(url)
|
||||
.headers(headers)
|
||||
.body(body)
|
||||
|
@ -1,4 +1,5 @@
|
||||
use std::collections::HashMap;
|
||||
use std::sync::OnceLock;
|
||||
use std::time::{Duration, SystemTime, UNIX_EPOCH};
|
||||
|
||||
use anyhow::Result;
|
||||
@ -16,8 +17,20 @@ use crate::storage::application::AzureServiceBusConfiguration;
|
||||
use chirpstack_api::api::Encoding;
|
||||
use chirpstack_api::integration;
|
||||
|
||||
static CLIENT: OnceLock<Client> = OnceLock::new();
|
||||
|
||||
fn get_client() -> Client {
|
||||
CLIENT
|
||||
.get_or_init(|| {
|
||||
Client::builder()
|
||||
.timeout(Duration::from_secs(5))
|
||||
.build()
|
||||
.unwrap()
|
||||
})
|
||||
.clone()
|
||||
}
|
||||
|
||||
pub struct Integration {
|
||||
timeout: Duration,
|
||||
json: bool,
|
||||
uri: String,
|
||||
key_name: String,
|
||||
@ -31,7 +44,6 @@ impl Integration {
|
||||
let kv = parse_connection_string(&conf.connection_string);
|
||||
|
||||
Ok(Integration {
|
||||
timeout: Duration::from_secs(5),
|
||||
json: match Encoding::try_from(conf.encoding)
|
||||
.map_err(|_| anyhow!("Invalid encoding"))?
|
||||
{
|
||||
@ -65,7 +77,6 @@ impl Integration {
|
||||
&(SystemTime::now() + Duration::from_secs(60 * 5)),
|
||||
)?;
|
||||
|
||||
let client = Client::builder().timeout(self.timeout).build()?;
|
||||
let mut headers = HeaderMap::new();
|
||||
|
||||
headers.insert(AUTHORIZATION, token.parse()?);
|
||||
@ -89,7 +100,7 @@ impl Integration {
|
||||
);
|
||||
|
||||
info!(event = %event, dev_eui = %dev_eui, "Publishing event");
|
||||
let res = client
|
||||
let res = get_client()
|
||||
.post(format!("{}/messages", self.uri))
|
||||
.body(pl.to_string())
|
||||
.headers(headers)
|
||||
@ -307,7 +318,6 @@ pub mod test {
|
||||
let server = MockServer::start();
|
||||
|
||||
let i = Integration {
|
||||
timeout: Duration::from_secs(5),
|
||||
json: true,
|
||||
uri: server.url(""),
|
||||
key_name: "key-name".to_string(),
|
||||
|
@ -1,4 +1,5 @@
|
||||
use std::collections::HashMap;
|
||||
use std::sync::OnceLock;
|
||||
use std::time::Duration;
|
||||
|
||||
use anyhow::{Context, Result};
|
||||
@ -16,12 +17,24 @@ use crate::storage::application::GcpPubSubConfiguration;
|
||||
use chirpstack_api::api::Encoding;
|
||||
use chirpstack_api::integration;
|
||||
|
||||
static CLIENT: OnceLock<Client> = OnceLock::new();
|
||||
|
||||
fn get_client() -> Client {
|
||||
CLIENT
|
||||
.get_or_init(|| {
|
||||
Client::builder()
|
||||
.timeout(Duration::from_secs(5))
|
||||
.build()
|
||||
.unwrap()
|
||||
})
|
||||
.clone()
|
||||
}
|
||||
|
||||
pub struct Integration {
|
||||
json: bool,
|
||||
project_id: String,
|
||||
topic_name: String,
|
||||
service_account: gcp_auth::CustomServiceAccount,
|
||||
timeout: Duration,
|
||||
}
|
||||
|
||||
#[derive(Serialize)]
|
||||
@ -57,7 +70,6 @@ impl Integration {
|
||||
project_id: conf.project_id.clone(),
|
||||
topic_name: conf.topic_name.clone(),
|
||||
service_account,
|
||||
timeout: Duration::from_secs(5),
|
||||
})
|
||||
}
|
||||
|
||||
@ -93,7 +105,6 @@ impl Integration {
|
||||
.await
|
||||
.context("Get GCP bearer token")?;
|
||||
|
||||
let client = Client::builder().timeout(self.timeout).build()?;
|
||||
let mut headers = HeaderMap::new();
|
||||
headers.insert(CONTENT_TYPE, "application/json".parse().unwrap());
|
||||
headers.insert(
|
||||
@ -101,7 +112,7 @@ impl Integration {
|
||||
format!("Bearer {}", token.as_str()).parse().unwrap(),
|
||||
);
|
||||
|
||||
let res = client
|
||||
let res = get_client()
|
||||
.post(format!(
|
||||
"https://pubsub.googleapis.com/v1/{}:publish",
|
||||
topic
|
||||
|
@ -1,4 +1,5 @@
|
||||
use std::collections::HashMap;
|
||||
use std::sync::OnceLock;
|
||||
use std::time::Duration;
|
||||
|
||||
use anyhow::Result;
|
||||
@ -12,8 +13,20 @@ use super::Integration as IntegrationTrait;
|
||||
use crate::storage::application::HttpConfiguration;
|
||||
use chirpstack_api::integration;
|
||||
|
||||
static CLIENT: OnceLock<Client> = OnceLock::new();
|
||||
|
||||
fn get_client() -> Client {
|
||||
CLIENT
|
||||
.get_or_init(|| {
|
||||
Client::builder()
|
||||
.timeout(Duration::from_secs(5))
|
||||
.build()
|
||||
.unwrap()
|
||||
})
|
||||
.clone()
|
||||
}
|
||||
|
||||
pub struct Integration {
|
||||
timeout: Duration,
|
||||
endpoints: Vec<String>,
|
||||
headers: HashMap<String, String>,
|
||||
json: bool,
|
||||
@ -24,7 +37,6 @@ impl Integration {
|
||||
trace!("Initializing http integration");
|
||||
|
||||
Integration {
|
||||
timeout: Duration::from_secs(5),
|
||||
headers: conf.headers.clone(),
|
||||
json: conf.json,
|
||||
endpoints: conf
|
||||
@ -36,7 +48,6 @@ impl Integration {
|
||||
}
|
||||
|
||||
async fn post_event(&self, event: &str, b: Vec<u8>) -> Result<()> {
|
||||
let client = Client::builder().timeout(self.timeout).build()?;
|
||||
let mut headers = HeaderMap::new();
|
||||
|
||||
for (k, v) in &self.headers {
|
||||
@ -51,7 +62,7 @@ impl Integration {
|
||||
|
||||
for url in &self.endpoints {
|
||||
info!(event = %event, url = %url, "Posting event");
|
||||
let res = client
|
||||
let res = get_client()
|
||||
.post(url)
|
||||
.body(b.clone())
|
||||
.query(&[("event", event)])
|
||||
@ -214,7 +225,6 @@ pub mod test {
|
||||
let server = MockServer::start();
|
||||
|
||||
let i = Integration {
|
||||
timeout: Duration::from_secs(5),
|
||||
endpoints: vec![server.url("/")],
|
||||
headers: [("Foo".to_string(), "Bar".to_string())]
|
||||
.iter()
|
||||
|
@ -1,4 +1,5 @@
|
||||
use std::collections::HashMap;
|
||||
use std::sync::OnceLock;
|
||||
use std::time::Duration;
|
||||
|
||||
use anyhow::Result;
|
||||
@ -13,6 +14,19 @@ use crate::codec;
|
||||
use crate::storage::application::IftttConfiguration;
|
||||
use chirpstack_api::integration;
|
||||
|
||||
static CLIENT: OnceLock<Client> = OnceLock::new();
|
||||
|
||||
fn get_client() -> Client {
|
||||
CLIENT
|
||||
.get_or_init(|| {
|
||||
Client::builder()
|
||||
.timeout(Duration::from_secs(5))
|
||||
.build()
|
||||
.unwrap()
|
||||
})
|
||||
.clone()
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize)]
|
||||
struct Values {
|
||||
#[serde(skip_serializing_if = "String::is_empty")]
|
||||
@ -63,12 +77,16 @@ impl Integration {
|
||||
format!("{}/trigger/{}/with/key/{}", self.server, event, self.key)
|
||||
};
|
||||
|
||||
let client = Client::builder().timeout(Duration::from_secs(5)).build()?;
|
||||
let mut headers = HeaderMap::new();
|
||||
headers.insert(CONTENT_TYPE, "application/json".parse().unwrap());
|
||||
|
||||
info!(event = %event, "Sending event to IFTTT");
|
||||
let res = client.post(url).json(&v).headers(headers).send().await?;
|
||||
let res = get_client()
|
||||
.post(url)
|
||||
.json(&v)
|
||||
.headers(headers)
|
||||
.send()
|
||||
.await?;
|
||||
match res.error_for_status() {
|
||||
Ok(_) => Ok(()),
|
||||
Err(e) => {
|
||||
|
@ -1,5 +1,6 @@
|
||||
use std::collections::HashMap;
|
||||
use std::fmt;
|
||||
use std::sync::OnceLock;
|
||||
use std::time::Duration;
|
||||
|
||||
use anyhow::Result;
|
||||
@ -13,8 +14,20 @@ use crate::storage::application::InfluxDbConfiguration;
|
||||
use chirpstack_api::api::{InfluxDbPrecision, InfluxDbVersion};
|
||||
use chirpstack_api::integration;
|
||||
|
||||
static CLIENT: OnceLock<Client> = OnceLock::new();
|
||||
|
||||
fn get_client() -> Client {
|
||||
CLIENT
|
||||
.get_or_init(|| {
|
||||
Client::builder()
|
||||
.timeout(Duration::from_secs(5))
|
||||
.build()
|
||||
.unwrap()
|
||||
})
|
||||
.clone()
|
||||
}
|
||||
|
||||
pub struct Integration {
|
||||
timeout: Duration,
|
||||
endpoint: String,
|
||||
version: InfluxDbVersion,
|
||||
|
||||
@ -36,7 +49,6 @@ impl Integration {
|
||||
trace!("Initializing InfluxDB integration");
|
||||
|
||||
Ok(Integration {
|
||||
timeout: Duration::from_secs(5),
|
||||
endpoint: conf.endpoint.clone(),
|
||||
version: InfluxDbVersion::try_from(conf.version)
|
||||
.map_err(|_| anyhow!("Invalid version"))?,
|
||||
@ -66,8 +78,6 @@ impl Integration {
|
||||
measurements.sort();
|
||||
let body = measurements.join("\n");
|
||||
|
||||
let client = Client::builder().timeout(self.timeout).build()?;
|
||||
|
||||
let mut headers = HeaderMap::new();
|
||||
headers.insert(CONTENT_TYPE, "text/plain".parse().unwrap());
|
||||
if self.version == InfluxDbVersion::Influxdb2 {
|
||||
@ -87,7 +97,7 @@ impl Integration {
|
||||
}
|
||||
}
|
||||
|
||||
let mut req = client
|
||||
let mut req = get_client()
|
||||
.post(&self.endpoint)
|
||||
.body(body)
|
||||
.query(&query)
|
||||
@ -477,7 +487,6 @@ pub mod test {
|
||||
let server = MockServer::start();
|
||||
|
||||
let i = Integration {
|
||||
timeout: Duration::from_secs(5),
|
||||
endpoint: server.url("/write"),
|
||||
version: InfluxDbVersion::Influxdb1,
|
||||
db: "testdb".into(),
|
||||
@ -832,7 +841,6 @@ device_uplink,application_name=test-app,dev_eui=0102030405060708,device_name=tes
|
||||
let server = MockServer::start();
|
||||
|
||||
let i = Integration {
|
||||
timeout: Duration::from_secs(5),
|
||||
endpoint: server.url("/write"),
|
||||
version: InfluxDbVersion::Influxdb2,
|
||||
db: "".into(),
|
||||
|
@ -39,7 +39,7 @@ impl<'a> Integration<'a> {
|
||||
templates.register_template_string("event_key", &conf.event_key)?;
|
||||
|
||||
let producer: FutureProducer = ClientConfig::new()
|
||||
.set("bootstrap.servers", &conf.brokers.join(","))
|
||||
.set("bootstrap.servers", conf.brokers.join(","))
|
||||
.set("message.timeout.ms", "5000")
|
||||
.set("allow.auto.create.topics", "true")
|
||||
.set(
|
||||
|
@ -86,7 +86,7 @@ pub async fn save_geoloc_buffer(
|
||||
};
|
||||
let b = buffer.encode_to_vec();
|
||||
|
||||
redis::cmd("PSETEX")
|
||||
() = redis::cmd("PSETEX")
|
||||
.arg(key)
|
||||
.arg(ttl.num_milliseconds())
|
||||
.arg(b)
|
||||
|
@ -1,4 +1,5 @@
|
||||
use std::fmt;
|
||||
use std::sync::OnceLock;
|
||||
use std::time::Duration;
|
||||
|
||||
use anyhow::Result;
|
||||
@ -13,6 +14,19 @@ use crate::gpstime::ToGpsTime;
|
||||
use crate::uplink::helpers;
|
||||
use lrwn::EUI64;
|
||||
|
||||
static CLIENT: OnceLock<Client> = OnceLock::new();
|
||||
|
||||
fn get_client() -> Client {
|
||||
CLIENT
|
||||
.get_or_init(|| {
|
||||
Client::builder()
|
||||
.timeout(Duration::from_secs(5))
|
||||
.build()
|
||||
.unwrap()
|
||||
})
|
||||
.clone()
|
||||
}
|
||||
|
||||
#[derive(Error, Debug)]
|
||||
pub enum Error {
|
||||
#[error("No location")]
|
||||
@ -25,7 +39,6 @@ pub enum Error {
|
||||
pub struct ApiClient {
|
||||
uri: String,
|
||||
token: String,
|
||||
timeout: Duration,
|
||||
}
|
||||
|
||||
impl ApiClient {
|
||||
@ -33,7 +46,6 @@ impl ApiClient {
|
||||
ApiClient {
|
||||
uri: uri.to_string(),
|
||||
token: token.to_string(),
|
||||
timeout: Duration::from_secs(5),
|
||||
}
|
||||
}
|
||||
|
||||
@ -117,7 +129,6 @@ impl ApiClient {
|
||||
|
||||
pub async fn uplink_send(&self, req: &UplinkRequest) -> Result<UplinkResponse> {
|
||||
let endpoint = format!("{}/api/v1/device/send", self.uri);
|
||||
let client = Client::builder().timeout(self.timeout).build()?;
|
||||
let mut headers = HeaderMap::new();
|
||||
headers.insert(CONTENT_TYPE, "application/json".parse().unwrap());
|
||||
headers.insert(
|
||||
@ -125,7 +136,7 @@ impl ApiClient {
|
||||
self.token.parse()?,
|
||||
);
|
||||
|
||||
let res = client
|
||||
let res = get_client()
|
||||
.post(endpoint)
|
||||
.headers(headers)
|
||||
.json(req)
|
||||
@ -138,7 +149,6 @@ impl ApiClient {
|
||||
|
||||
async fn request(&self, endpoint: &str, body: &str) -> Result<Response> {
|
||||
let endpoint = format!("{}{}", self.uri, endpoint);
|
||||
let client = Client::builder().timeout(self.timeout).build()?;
|
||||
let mut headers = HeaderMap::new();
|
||||
headers.insert(CONTENT_TYPE, "application/json".parse().unwrap());
|
||||
headers.insert(
|
||||
@ -146,7 +156,7 @@ impl ApiClient {
|
||||
self.token.parse()?,
|
||||
);
|
||||
|
||||
let res = client
|
||||
let res = get_client()
|
||||
.post(endpoint)
|
||||
.body(body.to_string())
|
||||
.headers(headers)
|
||||
@ -160,7 +170,6 @@ impl ApiClient {
|
||||
|
||||
async fn v3_request(&self, endpoint: &str, body: &str) -> Result<V3Response> {
|
||||
let endpoint = format!("{}{}", self.uri, endpoint);
|
||||
let client = Client::builder().timeout(self.timeout).build()?;
|
||||
let mut headers = HeaderMap::new();
|
||||
headers.insert(CONTENT_TYPE, "application/json".parse().unwrap());
|
||||
headers.insert(
|
||||
@ -168,7 +177,7 @@ impl ApiClient {
|
||||
self.token.parse()?,
|
||||
);
|
||||
|
||||
let res = client
|
||||
let res = get_client()
|
||||
.post(endpoint)
|
||||
.body(body.to_string())
|
||||
.headers(headers)
|
||||
|
@ -1,4 +1,5 @@
|
||||
use std::collections::HashMap;
|
||||
use std::sync::OnceLock;
|
||||
use std::time::Duration;
|
||||
|
||||
use anyhow::Result;
|
||||
@ -13,6 +14,19 @@ use super::Integration as IntegrationTrait;
|
||||
use crate::storage::application::MyDevicesConfiguration;
|
||||
use chirpstack_api::integration;
|
||||
|
||||
static CLIENT: OnceLock<Client> = OnceLock::new();
|
||||
|
||||
fn get_client() -> Client {
|
||||
CLIENT
|
||||
.get_or_init(|| {
|
||||
Client::builder()
|
||||
.timeout(Duration::from_secs(5))
|
||||
.build()
|
||||
.unwrap()
|
||||
})
|
||||
.clone()
|
||||
}
|
||||
|
||||
#[derive(Serialize)]
|
||||
struct UplinkPayload {
|
||||
#[serde(rename = "correlationID")]
|
||||
@ -88,7 +102,6 @@ struct Location {
|
||||
}
|
||||
|
||||
pub struct Integration {
|
||||
timeout: Duration,
|
||||
endpoint: String,
|
||||
}
|
||||
|
||||
@ -96,7 +109,6 @@ impl Integration {
|
||||
pub fn new(conf: &MyDevicesConfiguration) -> Integration {
|
||||
trace!("Initializing myDevices integration");
|
||||
Integration {
|
||||
timeout: Duration::from_secs(5),
|
||||
endpoint: conf.endpoint.clone(),
|
||||
}
|
||||
}
|
||||
@ -120,11 +132,10 @@ impl IntegrationTrait for Integration {
|
||||
let pl = UplinkPayload::from_uplink_event(pl);
|
||||
let b = serde_json::to_string(&pl)?;
|
||||
|
||||
let client = Client::builder().timeout(self.timeout).build()?;
|
||||
let mut headers = HeaderMap::new();
|
||||
headers.insert(CONTENT_TYPE, "application/json".parse().unwrap());
|
||||
|
||||
let req = client
|
||||
let req = get_client()
|
||||
.post(&self.endpoint)
|
||||
.body(b)
|
||||
.headers(headers)
|
||||
@ -204,7 +215,6 @@ pub mod test {
|
||||
let server = MockServer::start();
|
||||
|
||||
let i = Integration {
|
||||
timeout: Duration::from_secs(5),
|
||||
endpoint: server.url("/"),
|
||||
};
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
use std::collections::HashMap;
|
||||
use std::sync::OnceLock;
|
||||
use std::time::Duration;
|
||||
|
||||
use anyhow::Result;
|
||||
@ -12,8 +13,20 @@ use super::Integration as IntegrationTrait;
|
||||
use crate::storage::application::PilotThingsConfiguration;
|
||||
use chirpstack_api::integration;
|
||||
|
||||
static CLIENT: OnceLock<Client> = OnceLock::new();
|
||||
|
||||
fn get_client() -> Client {
|
||||
CLIENT
|
||||
.get_or_init(|| {
|
||||
Client::builder()
|
||||
.timeout(Duration::from_secs(5))
|
||||
.build()
|
||||
.unwrap()
|
||||
})
|
||||
.clone()
|
||||
}
|
||||
|
||||
pub struct Integration {
|
||||
timeout: Duration,
|
||||
server: String,
|
||||
token: String,
|
||||
}
|
||||
@ -23,7 +36,6 @@ impl Integration {
|
||||
trace!("Initializing Pilot Things integration");
|
||||
|
||||
Integration {
|
||||
timeout: Duration::from_secs(5),
|
||||
server: conf.server.clone(),
|
||||
token: conf.token.clone(),
|
||||
}
|
||||
@ -45,11 +57,10 @@ impl IntegrationTrait for Integration {
|
||||
let pl = UplinkPayload::from_uplink_event(pl);
|
||||
let b = serde_json::to_string(&pl)?;
|
||||
|
||||
let client = Client::builder().timeout(self.timeout).build()?;
|
||||
let mut headers = HeaderMap::new();
|
||||
headers.insert(CONTENT_TYPE, "application/json".parse().unwrap());
|
||||
|
||||
let res = client
|
||||
let res = get_client()
|
||||
.post(endpoint)
|
||||
.body(b)
|
||||
.query(&[("token", self.token.clone())])
|
||||
@ -182,7 +193,6 @@ pub mod test {
|
||||
let server = MockServer::start();
|
||||
|
||||
let i = Integration {
|
||||
timeout: Duration::from_secs(5),
|
||||
server: server.url(""),
|
||||
token: "foo-token".into(),
|
||||
};
|
||||
|
@ -1,4 +1,5 @@
|
||||
use std::collections::{BTreeMap, HashMap};
|
||||
use std::sync::OnceLock;
|
||||
use std::time::Duration;
|
||||
|
||||
use anyhow::Result;
|
||||
@ -12,9 +13,21 @@ use super::Integration as IntegrationTrait;
|
||||
use crate::storage::application::ThingsBoardConfiguration;
|
||||
use chirpstack_api::integration;
|
||||
|
||||
static CLIENT: OnceLock<Client> = OnceLock::new();
|
||||
|
||||
fn get_client() -> Client {
|
||||
CLIENT
|
||||
.get_or_init(|| {
|
||||
Client::builder()
|
||||
.timeout(Duration::from_secs(5))
|
||||
.build()
|
||||
.unwrap()
|
||||
})
|
||||
.clone()
|
||||
}
|
||||
|
||||
pub struct Integration {
|
||||
server: String,
|
||||
timeout: Duration,
|
||||
}
|
||||
|
||||
impl Integration {
|
||||
@ -22,7 +35,6 @@ impl Integration {
|
||||
trace!("Initializing ThingsBoard integration");
|
||||
|
||||
Integration {
|
||||
timeout: Duration::from_secs(5),
|
||||
server: conf.server.clone(),
|
||||
}
|
||||
}
|
||||
@ -39,11 +51,10 @@ impl Integration {
|
||||
let endpoint = format!("{}/api/v1/{}/attributes", self.server, access_token);
|
||||
let b = serde_json::to_string(&attributes)?;
|
||||
|
||||
let client = Client::builder().timeout(self.timeout).build()?;
|
||||
let mut headers = HeaderMap::new();
|
||||
headers.insert(CONTENT_TYPE, "application/json".parse().unwrap());
|
||||
|
||||
let res = client
|
||||
let res = get_client()
|
||||
.post(endpoint)
|
||||
.body(b)
|
||||
.headers(headers)
|
||||
@ -65,11 +76,10 @@ impl Integration {
|
||||
let endpoint = format!("{}/api/v1/{}/telemetry", self.server, access_token);
|
||||
let b = serde_json::to_string(&telemetry)?;
|
||||
|
||||
let client = Client::builder().timeout(self.timeout).build()?;
|
||||
let mut headers = HeaderMap::new();
|
||||
headers.insert(CONTENT_TYPE, "application/json".parse().unwrap());
|
||||
|
||||
let res = client
|
||||
let res = get_client()
|
||||
.post(endpoint)
|
||||
.body(b)
|
||||
.headers(headers)
|
||||
@ -323,7 +333,6 @@ pub mod test {
|
||||
|
||||
let i = Integration {
|
||||
server: server.url(""),
|
||||
timeout: Duration::from_secs(5),
|
||||
};
|
||||
|
||||
let mut vars: HashMap<String, String> = HashMap::new();
|
||||
|
@ -27,31 +27,40 @@ pub fn handle(
|
||||
.as_ref()
|
||||
.ok_or_else(|| anyhow!("parameters can not be None"))?;
|
||||
|
||||
if let gw::modulation::Parameters::Lora(pl) = mod_params {
|
||||
let required_snr = config::get_required_snr_for_sf(pl.spreading_factor as u8)?;
|
||||
let mut max_snr: f32 = 0.0;
|
||||
// For non-LoRa modulations, the margin will be set to 0, as it can not be calculated.
|
||||
// This way, at least the gw_cnt can be provided and the end-device is able to confirm
|
||||
// it is still connected.
|
||||
let margin = match mod_params {
|
||||
gw::modulation::Parameters::Lora(pl) => {
|
||||
let required_snr = config::get_required_snr_for_sf(pl.spreading_factor as u8)?;
|
||||
let mut max_snr: f32 = 0.0;
|
||||
|
||||
for (i, rx_info) in ufs.rx_info_set.iter().enumerate() {
|
||||
if i == 0 || rx_info.snr > max_snr {
|
||||
max_snr = rx_info.snr;
|
||||
for (i, rx_info) in ufs.rx_info_set.iter().enumerate() {
|
||||
if i == 0 || rx_info.snr > max_snr {
|
||||
max_snr = rx_info.snr;
|
||||
}
|
||||
}
|
||||
|
||||
let margin = max_snr - required_snr;
|
||||
if margin < 0.0 {
|
||||
0.0
|
||||
} else {
|
||||
margin
|
||||
}
|
||||
}
|
||||
|
||||
let mut margin = max_snr - required_snr;
|
||||
if margin < 0.0 {
|
||||
margin = 0.0;
|
||||
_ => {
|
||||
warn!("Modulation does not provide margin to LinkCheckReq");
|
||||
0.0
|
||||
}
|
||||
};
|
||||
|
||||
return Ok(Some(lrwn::MACCommandSet::new(vec![
|
||||
lrwn::MACCommand::LinkCheckAns(lrwn::LinkCheckAnsPayload {
|
||||
margin: margin as u8,
|
||||
gw_cnt: ufs.rx_info_set.len() as u8,
|
||||
}),
|
||||
])));
|
||||
}
|
||||
|
||||
warn!("Unsupported modulation for LinkCheckReq");
|
||||
Ok(None)
|
||||
// We always return a LinkCheckAns, even
|
||||
Ok(Some(lrwn::MACCommandSet::new(vec![
|
||||
lrwn::MACCommand::LinkCheckAns(lrwn::LinkCheckAnsPayload {
|
||||
margin: margin as u8,
|
||||
gw_cnt: ufs.rx_info_set.len() as u8,
|
||||
}),
|
||||
])))
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
@ -1,6 +1,5 @@
|
||||
use std::collections::HashMap;
|
||||
use std::fmt;
|
||||
use std::ops::{Deref, DerefMut};
|
||||
use std::str::FromStr;
|
||||
|
||||
use anyhow::{Context, Result};
|
||||
@ -146,15 +145,13 @@ impl Device {
|
||||
|
||||
pub fn get_device_session(&self) -> Result<&internal::DeviceSession, Error> {
|
||||
self.device_session
|
||||
.as_ref()
|
||||
.map(|ds| ds.deref())
|
||||
.as_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_mut()
|
||||
.map(|ds| ds.deref_mut())
|
||||
.as_deref_mut()
|
||||
.ok_or_else(|| Error::NotFound(self.dev_eui.to_string()))
|
||||
}
|
||||
|
||||
@ -302,6 +299,7 @@ pub async fn get(dev_eui: &EUI64) -> Result<Device, Error> {
|
||||
// On Ok response, the PhyPayload f_cnt will be set to the full 32bit frame-counter based on the
|
||||
// device-session context.
|
||||
pub async fn get_for_phypayload_and_incr_f_cnt_up(
|
||||
region_config_id: &str,
|
||||
relayed: bool,
|
||||
phy: &mut lrwn::PhyPayload,
|
||||
tx_dr: u8,
|
||||
@ -344,7 +342,17 @@ pub async fn get_for_phypayload_and_incr_f_cnt_up(
|
||||
}
|
||||
|
||||
for ds in &mut sessions {
|
||||
if ds.dev_addr != dev_addr.to_vec() {
|
||||
// Set the region_config_id if it is empty, e.g. after a ChirpStack v3 to
|
||||
// ChirpStack v4 migration.
|
||||
if ds.region_config_id.is_empty() {
|
||||
ds.region_config_id = region_config_id.into();
|
||||
}
|
||||
// Check that the DevAddr and region_config_id are equal.
|
||||
// The latter is needed because we must assure that the uplink was received
|
||||
// under the same region as the device was activated. In case the uplink was
|
||||
// received under two region configurations, this will start two uplink flows,
|
||||
// each with their own region_config_id associated.
|
||||
if ds.region_config_id != region_config_id || ds.dev_addr != dev_addr.to_vec() {
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -1165,6 +1173,7 @@ pub mod test {
|
||||
dev_addr: Some(DevAddr::from_be_bytes([1, 2, 3, 4])),
|
||||
device_session: Some(
|
||||
internal::DeviceSession {
|
||||
region_config_id: "eu868".into(),
|
||||
dev_addr: vec![0x01, 0x02, 0x03, 0x04],
|
||||
s_nwk_s_int_key: vec![
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
@ -1194,6 +1203,7 @@ pub mod test {
|
||||
dev_addr: Some(DevAddr::from_be_bytes([1, 2, 3, 4])),
|
||||
device_session: Some(
|
||||
internal::DeviceSession {
|
||||
region_config_id: "eu868".into(),
|
||||
dev_addr: vec![0x01, 0x02, 0x03, 0x04],
|
||||
s_nwk_s_int_key: vec![
|
||||
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
|
||||
@ -1223,6 +1233,7 @@ pub mod test {
|
||||
secondary_dev_addr: Some(DevAddr::from_be_bytes([4, 3, 2, 1])),
|
||||
device_session: Some(
|
||||
internal::DeviceSession {
|
||||
region_config_id: "eu868".into(),
|
||||
dev_addr: vec![0x01, 0x02, 0x03, 0x04],
|
||||
s_nwk_s_int_key: vec![
|
||||
0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
|
||||
@ -1238,6 +1249,7 @@ pub mod test {
|
||||
],
|
||||
f_cnt_up: 300,
|
||||
pending_rejoin_device_session: Some(Box::new(internal::DeviceSession {
|
||||
region_config_id: "eu868".into(),
|
||||
dev_addr: vec![0x04, 0x03, 0x02, 0x01],
|
||||
s_nwk_s_int_key: vec![
|
||||
0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
|
||||
@ -1268,6 +1280,7 @@ pub mod test {
|
||||
dev_addr: Some(DevAddr::from_be_bytes([1, 2, 3, 4])),
|
||||
device_session: Some(
|
||||
internal::DeviceSession {
|
||||
region_config_id: "eu868".into(),
|
||||
dev_addr: vec![0x01, 0x02, 0x03, 0x04],
|
||||
s_nwk_s_int_key: vec![
|
||||
0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
|
||||
@ -1479,7 +1492,7 @@ pub mod test {
|
||||
pl.fhdr.f_cnt = tst.f_cnt % (1 << 16);
|
||||
}
|
||||
|
||||
let d = get_for_phypayload_and_incr_f_cnt_up(false, &mut phy, 0, 0).await;
|
||||
let d = get_for_phypayload_and_incr_f_cnt_up("eu868", false, &mut phy, 0, 0).await;
|
||||
if tst.expected_error.is_some() {
|
||||
assert!(d.is_err());
|
||||
assert_eq!(
|
||||
|
@ -16,7 +16,7 @@ pub async fn save_rx_info(rx_info: &internal::DeviceGatewayRxInfo) -> Result<()>
|
||||
let ttl = conf.network.device_session_ttl.as_millis() as usize;
|
||||
let b = rx_info.encode_to_vec();
|
||||
|
||||
redis::cmd("PSETEX")
|
||||
() = redis::cmd("PSETEX")
|
||||
.arg(key)
|
||||
.arg(ttl)
|
||||
.arg(b)
|
||||
|
@ -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: Vec::new().into(),
|
||||
dev_nonces: fields::DevNonces::default(),
|
||||
join_nonce: 0,
|
||||
}
|
||||
}
|
||||
@ -93,10 +93,12 @@ pub async fn delete(dev_eui: &EUI64) -> Result<(), Error> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
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();
|
||||
pub async fn set_dev_nonces(
|
||||
dev_eui: EUI64,
|
||||
nonces: &fields::DevNonces,
|
||||
) -> Result<DeviceKeys, Error> {
|
||||
let dk: DeviceKeys = diesel::update(device_keys::dsl::device_keys.find(dev_eui))
|
||||
.set(device_keys::dev_nonces.eq(fields::DevNonces::from(nonces)))
|
||||
.set(device_keys::dev_nonces.eq(nonces))
|
||||
.get_result(&mut get_async_db_conn().await?)
|
||||
.await
|
||||
.map_err(|e| Error::from_diesel(e, dev_eui.to_string()))?;
|
||||
@ -108,8 +110,9 @@ pub async fn set_dev_nonces(dev_eui: &EUI64, nonces: &[i32]) -> Result<DeviceKey
|
||||
}
|
||||
|
||||
pub async fn validate_incr_join_and_store_dev_nonce(
|
||||
dev_eui: &EUI64,
|
||||
dev_nonce: i32,
|
||||
join_eui: EUI64,
|
||||
dev_eui: EUI64,
|
||||
dev_nonce: u16,
|
||||
) -> Result<DeviceKeys, Error> {
|
||||
let mut c = get_async_db_conn().await?;
|
||||
let dk: DeviceKeys = db_transaction::<DeviceKeys, Error, _>(&mut c, |c| {
|
||||
@ -122,11 +125,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(&(Some(dev_nonce))) {
|
||||
if dk.dev_nonces.contains(join_eui, dev_nonce) {
|
||||
return Err(Error::InvalidDevNonce);
|
||||
}
|
||||
|
||||
dk.dev_nonces.push(Some(dev_nonce));
|
||||
dk.dev_nonces.insert(join_eui, dev_nonce);
|
||||
dk.join_nonce += 1;
|
||||
|
||||
diesel::update(device_keys::dsl::device_keys.find(&dev_eui))
|
||||
@ -155,7 +158,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::from(Vec::new())),
|
||||
device_keys::dev_nonces.eq(fields::DevNonces::default()),
|
||||
device_keys::join_nonce.eq(0),
|
||||
))
|
||||
.get_result(&mut get_async_db_conn().await?)
|
||||
|
@ -11,7 +11,7 @@ pub async fn save(df: &internal::DownlinkFrame) -> Result<()> {
|
||||
let b = df.encode_to_vec();
|
||||
let key = redis_key(format!("frame:{}", df.downlink_id));
|
||||
|
||||
redis::cmd("SETEX")
|
||||
() = redis::cmd("SETEX")
|
||||
.arg(key)
|
||||
.arg(30)
|
||||
.arg(b)
|
||||
@ -22,9 +22,9 @@ pub async fn save(df: &internal::DownlinkFrame) -> Result<()> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub async fn get(id: u32) -> Result<internal::DownlinkFrame, Error> {
|
||||
pub async fn get_and_del(id: u32) -> Result<internal::DownlinkFrame, Error> {
|
||||
let key = redis_key(format!("frame:{}", id));
|
||||
let v: Vec<u8> = redis::cmd("GET")
|
||||
let v: Vec<u8> = redis::cmd("GETDEL")
|
||||
.arg(key)
|
||||
.query_async(&mut get_async_redis_conn().await?)
|
||||
.await?;
|
||||
@ -53,7 +53,7 @@ pub mod test {
|
||||
};
|
||||
|
||||
save(&df).await.unwrap();
|
||||
let df_get = get(12345).await.unwrap();
|
||||
let df_get = get_and_del(12345).await.unwrap();
|
||||
assert_eq!(df, df_get);
|
||||
}
|
||||
}
|
||||
|
@ -54,7 +54,7 @@ impl deserialize::FromSql<Numeric, Pg> for BigDecimal {
|
||||
|
||||
#[cfg(feature = "postgres")]
|
||||
impl serialize::ToSql<Numeric, Pg> for BigDecimal {
|
||||
fn to_sql<'b>(&self, out: &mut serialize::Output<'b, '_, Pg>) -> serialize::Result {
|
||||
fn to_sql(&self, out: &mut serialize::Output<'_, '_, Pg>) -> serialize::Result {
|
||||
<bigdecimal::BigDecimal as serialize::ToSql<Numeric, Pg>>::to_sql(
|
||||
&self.0,
|
||||
&mut out.reborrow(),
|
||||
|
@ -1,72 +1,48 @@
|
||||
use std::collections::HashMap;
|
||||
|
||||
use diesel::backend::Backend;
|
||||
|
||||
use diesel::{deserialize, serialize};
|
||||
#[cfg(feature = "postgres")]
|
||||
use diesel::{
|
||||
pg::Pg,
|
||||
sql_types::{Array, Int4, Nullable},
|
||||
};
|
||||
use diesel::{pg::Pg, sql_types::Jsonb};
|
||||
#[cfg(feature = "sqlite")]
|
||||
use diesel::{sql_types::Text, sqlite::Sqlite};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[cfg(feature = "postgres")]
|
||||
type DevNoncesPgType = Array<Nullable<Int4>>;
|
||||
use lrwn::EUI64;
|
||||
|
||||
// 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))]
|
||||
#[derive(Default, Debug, Clone, PartialEq, Eq, AsExpression, FromSqlRow)]
|
||||
#[cfg_attr(feature = "postgres", diesel(sql_type = Jsonb))]
|
||||
#[cfg_attr(feature = "sqlite", diesel(sql_type = Text))]
|
||||
pub struct DevNonces(DevNoncesInner);
|
||||
pub struct DevNonces(HashMap<EUI64, Vec<u16>>);
|
||||
|
||||
pub type DevNoncesInner = Vec<Option<i32>>;
|
||||
|
||||
impl std::default::Default for DevNonces {
|
||||
fn default() -> Self {
|
||||
Self(Vec::new())
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
pub fn insert(&mut self, join_eui: EUI64, dev_nonce: u16) {
|
||||
self.0.entry(join_eui).or_default().push(dev_nonce)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "postgres")]
|
||||
impl deserialize::FromSql<DevNoncesPgType, Pg> for DevNonces {
|
||||
impl deserialize::FromSql<Jsonb, Pg> for DevNonces {
|
||||
fn from_sql(value: <Pg as Backend>::RawValue<'_>) -> deserialize::Result<Self> {
|
||||
let sql_val = <DevNoncesInner>::from_sql(value)?;
|
||||
Ok(DevNonces(sql_val))
|
||||
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))
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "postgres")]
|
||||
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(),
|
||||
)
|
||||
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())
|
||||
}
|
||||
}
|
||||
|
||||
@ -78,15 +54,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 nonces = serde_json::from_str::<DevNonces>(unsafe { &*s })?;
|
||||
Ok(nonces)
|
||||
let dev_nonces: HashMap<EUI64, Vec<u16>> = serde_json::from_str(unsafe { &*s })?;
|
||||
Ok(DevNonces(dev_nonces))
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "sqlite")]
|
||||
impl serialize::ToSql<Text, Sqlite> for DevNonces {
|
||||
fn to_sql<'b>(&self, out: &mut serialize::Output<'b, '_, Sqlite>) -> serialize::Result {
|
||||
out.set_value(serde_json::to_string(self)?);
|
||||
fn to_sql<'b>(&'b self, out: &mut serialize::Output<'b, '_, Sqlite>) -> serialize::Result {
|
||||
out.set_value(serde_json::to_string(&self.0)?);
|
||||
Ok(serialize::IsNull::No)
|
||||
}
|
||||
}
|
||||
|
@ -34,9 +34,9 @@ impl std::convert::From<&internal::DeviceSession> for DeviceSession {
|
||||
}
|
||||
}
|
||||
|
||||
impl std::convert::Into<internal::DeviceSession> for DeviceSession {
|
||||
fn into(self) -> internal::DeviceSession {
|
||||
self.0
|
||||
impl std::convert::From<DeviceSession> for internal::DeviceSession {
|
||||
fn from(val: DeviceSession) -> Self {
|
||||
val.0
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -7,7 +7,7 @@ mod multicast_group_scheduling_type;
|
||||
mod uuid;
|
||||
|
||||
pub use big_decimal::BigDecimal;
|
||||
pub use dev_nonces::*;
|
||||
pub use dev_nonces::DevNonces;
|
||||
pub use device_session::DeviceSession;
|
||||
pub use key_value::KeyValue;
|
||||
pub use measurements::*;
|
||||
|
@ -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.clone())
|
||||
Self::from(*u)
|
||||
}
|
||||
}
|
||||
|
||||
impl std::convert::Into<uuid::Uuid> for Uuid {
|
||||
fn into(self) -> uuid::Uuid {
|
||||
self.0
|
||||
impl std::convert::From<Uuid> for uuid::Uuid {
|
||||
fn from(val: Uuid) -> Self {
|
||||
val.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<'b>(&self, out: &mut serialize::Output<'b, '_, Pg>) -> serialize::Result {
|
||||
fn to_sql(&self, out: &mut serialize::Output<'_, '_, Pg>) -> serialize::Result {
|
||||
<uuid::Uuid as serialize::ToSql<diesel::sql_types::Uuid, Pg>>::to_sql(
|
||||
&self.0,
|
||||
&mut out.reborrow(),
|
||||
|
@ -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(|u| fields::Uuid::from(u))).get_result(&mut get_async_db_conn().await?).await?;
|
||||
"#).bind::<diesel::sql_types::Nullable<fields::sql_types::Uuid>, _>(tenant_id.map(fields::Uuid::from)).get_result(&mut get_async_db_conn().await?).await?;
|
||||
Ok(counts)
|
||||
}
|
||||
|
||||
|
@ -12,7 +12,7 @@ pub async fn set_pending(dev_eui: &EUI64, cid: lrwn::CID, set: &lrwn::MACCommand
|
||||
let ttl = conf.network.device_session_ttl.as_millis() as usize;
|
||||
let b = set.to_vec()?;
|
||||
|
||||
redis::cmd("PSETEX")
|
||||
() = redis::cmd("PSETEX")
|
||||
.arg(key)
|
||||
.arg(ttl)
|
||||
.arg(b)
|
||||
@ -48,7 +48,7 @@ pub async fn get_pending(dev_eui: &EUI64, cid: lrwn::CID) -> Result<Option<lrwn:
|
||||
pub async fn delete_pending(dev_eui: &EUI64, cid: lrwn::CID) -> Result<()> {
|
||||
let key = redis_key(format!("device:{}:mac:pending:{}", dev_eui, cid.to_u8()));
|
||||
|
||||
redis::cmd("DEL")
|
||||
() = redis::cmd("DEL")
|
||||
.arg(key)
|
||||
.query_async(&mut get_async_redis_conn().await?)
|
||||
.await?;
|
||||
|
@ -78,7 +78,7 @@ pub async fn save_state(name: &str, state: &str) -> Result<()> {
|
||||
let key = redis_key(format!("metrics:{{{}}}", name));
|
||||
let ttl = get_ttl(Aggregation::MONTH);
|
||||
|
||||
redis::cmd("PSETEX")
|
||||
() = redis::cmd("PSETEX")
|
||||
.arg(key)
|
||||
.arg(ttl.as_millis() as usize)
|
||||
.arg(state)
|
||||
@ -160,7 +160,7 @@ pub async fn save(name: &str, record: &Record, aggregations: &[Aggregation]) ->
|
||||
info!(name = %name, aggregation = %a, "Metrics saved");
|
||||
}
|
||||
|
||||
pipe.query_async(&mut get_async_redis_conn().await?).await?;
|
||||
() = pipe.query_async(&mut get_async_redis_conn().await?).await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
@ -226,7 +226,7 @@ pub async fn reset_db() -> Result<()> {
|
||||
|
||||
#[cfg(test)]
|
||||
pub async fn reset_redis() -> Result<()> {
|
||||
redis::cmd("FLUSHDB")
|
||||
() = redis::cmd("FLUSHDB")
|
||||
.query_async(&mut get_async_redis_conn().await?)
|
||||
.await?;
|
||||
Ok(())
|
||||
|
@ -465,7 +465,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.into(),
|
||||
multicast_group_id: mg.id,
|
||||
gateway_id: *gateway_id,
|
||||
f_cnt: mg.f_cnt,
|
||||
f_port: qi.f_port,
|
||||
@ -473,7 +473,7 @@ pub async fn enqueue(
|
||||
emit_at_time_since_gps_epoch: Some(
|
||||
emit_at_time_since_gps_epoch.num_milliseconds(),
|
||||
),
|
||||
expires_at: qi.expires_at.clone(),
|
||||
expires_at: qi.expires_at,
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
@ -540,13 +540,13 @@ 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.into(),
|
||||
multicast_group_id: mg.id,
|
||||
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.clone(),
|
||||
expires_at: qi.expires_at,
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
@ -670,7 +670,8 @@ 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
|
||||
and now() - make_interval(secs => g.stats_interval_secs * 2) <= g.last_seen_at
|
||||
-- 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)
|
||||
order by
|
||||
qi.created_at
|
||||
limit $1
|
||||
@ -1122,4 +1123,117 @@ 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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -55,15 +55,15 @@ pub async fn save(ds: &internal::PassiveRoamingDeviceSession) -> Result<()> {
|
||||
// * We need to be able to lookup the session using the DevAddr (potentially
|
||||
// using the MIC validation).
|
||||
// * We need to be able to stop a passive-roaming session given a DevEUI.
|
||||
redis::pipe()
|
||||
() = redis::pipe()
|
||||
.atomic()
|
||||
.cmd("SADD")
|
||||
.arg(&dev_addr_key)
|
||||
.arg(&sess_id.to_string())
|
||||
.arg(sess_id.to_string())
|
||||
.ignore()
|
||||
.cmd("SADD")
|
||||
.arg(&dev_eui_key)
|
||||
.arg(&sess_id.to_string())
|
||||
.arg(sess_id.to_string())
|
||||
.ignore()
|
||||
.cmd("PEXPIRE")
|
||||
.arg(&dev_addr_key)
|
||||
@ -105,7 +105,7 @@ pub async fn get(id: Uuid) -> Result<internal::PassiveRoamingDeviceSession, Erro
|
||||
pub async fn delete(id: Uuid) -> Result<()> {
|
||||
let key = redis_key(format!("pr:sess:{{{}}}", id));
|
||||
|
||||
redis::cmd("DEL")
|
||||
() = redis::cmd("DEL")
|
||||
.arg(&key)
|
||||
.query_async(&mut get_async_redis_conn().await?)
|
||||
.await?;
|
||||
|
@ -75,7 +75,7 @@ diesel::table! {
|
||||
updated_at -> Timestamptz,
|
||||
nwk_key -> Bytea,
|
||||
app_key -> Bytea,
|
||||
dev_nonces -> Array<Nullable<Int4>>,
|
||||
dev_nonces -> Jsonb,
|
||||
join_nonce -> Int4,
|
||||
}
|
||||
}
|
||||
|
@ -14,7 +14,7 @@ pub async fn log_request(pl: &stream::ApiRequestLog) -> Result<()> {
|
||||
|
||||
let key = redis_key("api:stream:request".to_string());
|
||||
let b = pl.encode_to_vec();
|
||||
redis::cmd("XADD")
|
||||
() = redis::cmd("XADD")
|
||||
.arg(&key)
|
||||
.arg("MAXLEN")
|
||||
.arg(conf.monitoring.api_request_log_max_history)
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user