mirror of
https://github.com/chirpstack/chirpstack.git
synced 2025-04-15 15:49:15 +00:00
Compare commits
131 Commits
api/go/v4.
...
v4.10.0
Author | SHA1 | Date | |
---|---|---|---|
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 | |||
3829f591e4 | |||
2919fb79e5 | |||
61d794b680 | |||
29b57fb72a | |||
190d977bf5 | |||
9d04a74a94 | |||
5f8ddca7b7 | |||
e04515f647 | |||
d69a0eee75 | |||
e63296573b | |||
800d7d0efe | |||
489a35e0ec | |||
1848097e6c | |||
76b7ec4881 | |||
3aaa114f46 | |||
a811ec5c80 | |||
5794f41324 | |||
7158c0c610 | |||
eda6646b18 | |||
40a2b83bf5 | |||
4e0106a4e8 | |||
98978135c4 | |||
6a691c62e2 | |||
66ab41036b | |||
dc57e6fe51 | |||
ebc4065ca2 | |||
a23797ddbb | |||
8fabfd925e | |||
2eb17bde92 | |||
a22ed43883 | |||
de656cf885 | |||
2a8e49bf8d | |||
262f51da3f | |||
4f0d2126d8 | |||
3777de706d | |||
f76a4b7f83 | |||
920f485734 | |||
2737284d2d | |||
d39fbea7af | |||
15461d8cc5 | |||
ad2fecd1d2 | |||
4ef0fbbd8f | |||
264f51a190 | |||
abde97f46d | |||
6c8e87f505 | |||
c173ace8bc | |||
f153eb8ca0 | |||
4a33f67ed6 | |||
63bc1b57de | |||
f854236b79 | |||
d25cc3ca6d | |||
68473906c9 | |||
3f1a47e1e2 | |||
c0b148fecb | |||
6b9f7a9ea1 | |||
3b95a413a6 | |||
38d544a5f7 | |||
880b319bfd | |||
a0abd4a4bb | |||
52a08acf81 | |||
04ffcf88a1 | |||
c7f1367bf8 | |||
ae31e4d85f | |||
4968f5d792 | |||
36bbf8f153 | |||
c3de89a4a4 | |||
73ad79a356 | |||
a65ac0077e | |||
370b84cb09 | |||
d03870ff11 | |||
f62d8b325c | |||
e0a9e52cca | |||
b7dad2a7d0 | |||
2e65c5baa9 | |||
640a0f348e | |||
057aed7f50 | |||
66d0ec2f6f | |||
f475e4f642 | |||
17ae49ca7d | |||
18e56957e2 | |||
99dbefdfec | |||
26832f3a5f | |||
40cfa3ddf2 | |||
ed9a9b0c88 | |||
4f1a1bbce5 | |||
c51653d1bc | |||
3ec9ee2031 | |||
5f6ccc35fb | |||
0d11ad609a | |||
fed94a9b75 | |||
13e26977f4 | |||
0b665c7a11 | |||
3ee4598320 | |||
8adc80bf4e | |||
487f785302 | |||
a5ff416fa2 | |||
2889da37c2 | |||
378b314a32 | |||
9207effb5b | |||
6ef100c9b7 |
@ -6,3 +6,6 @@ rustflags = ["-C", "target-feature=+crt-static", "-C", "link-arg=-s", "-C", "lin
|
||||
|
||||
[target.armv7-unknown-linux-musleabihf]
|
||||
rustflags = ["-C", "target-feature=+crt-static", "-C", "link-arg=-s", "-C", "link-arg=-lc", "-C", "link-arg=-lgcc"]
|
||||
|
||||
[profile.dev.build-override]
|
||||
opt-level = 3
|
||||
|
37
.github/workflows/main.yml
vendored
37
.github/workflows/main.yml
vendored
@ -7,21 +7,31 @@ on:
|
||||
- 'v*'
|
||||
pull_request:
|
||||
|
||||
env:
|
||||
CARGO_INCREMENTAL: 0
|
||||
|
||||
jobs:
|
||||
tests:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
database:
|
||||
- postgres
|
||||
- sqlite
|
||||
env:
|
||||
DATABASE: ${{ matrix.database }}
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v4
|
||||
-
|
||||
name: Install Nix
|
||||
uses: cachix/install-nix-action@v20
|
||||
uses: cachix/install-nix-action@v27
|
||||
with:
|
||||
nix_path: nixpkgs=channel:nixos-22.11
|
||||
nix_path: nixpkgs=channel:nixos-24.05
|
||||
-
|
||||
name: Cargo cache
|
||||
uses: actions/cache@v3
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.cargo/bin/
|
||||
@ -29,7 +39,7 @@ jobs:
|
||||
~/.cargo/registry/cache/
|
||||
~/.cargo/git/db/
|
||||
target/
|
||||
key: ${{ runner.os }}-cargo-test-${{ hashFiles('**/Cargo.lock') }}
|
||||
key: ${{ runner.os }}-cargo-test-${{ matrix.database }}-${{ hashFiles('**/Cargo.lock') }}
|
||||
-
|
||||
name: Start dependency services
|
||||
run: docker compose up -d
|
||||
@ -44,18 +54,25 @@ 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
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v4
|
||||
-
|
||||
name: Install Nix
|
||||
uses: cachix/install-nix-action@v20
|
||||
uses: cachix/install-nix-action@v27
|
||||
with:
|
||||
nix_path: nixpkgs=channel:nixos-22.11
|
||||
nix_path: nixpkgs=channel:nixos-24.05
|
||||
-
|
||||
name: Cargo cache
|
||||
uses: actions/cache@v3
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.cargo/bin/
|
||||
@ -91,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}}
|
||||
|
5
.gitignore
vendored
5
.gitignore
vendored
@ -3,6 +3,7 @@
|
||||
!/chirpstack/.rpm
|
||||
!/.cargo
|
||||
!/.env
|
||||
!.npmignore
|
||||
|
||||
# Log files
|
||||
*.log
|
||||
@ -10,8 +11,12 @@
|
||||
# Binary packages
|
||||
/dist
|
||||
|
||||
# SQLite databases
|
||||
*.sqlite
|
||||
|
||||
# Rust target directory
|
||||
**/target
|
||||
**/target-sqlite
|
||||
|
||||
# Certificates
|
||||
/chirpstack/configuration/certs/*
|
||||
|
2502
Cargo.lock
generated
2502
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
31
Cargo.toml
31
Cargo.toml
@ -1,22 +1,15 @@
|
||||
[workspace]
|
||||
resolver = "2"
|
||||
members = [
|
||||
"chirpstack",
|
||||
"chirpstack-integration",
|
||||
"lrwn",
|
||||
"lrwn-filters",
|
||||
"backend",
|
||||
"api/rust",
|
||||
]
|
||||
resolver = "2"
|
||||
members = [
|
||||
"chirpstack",
|
||||
"chirpstack-integration",
|
||||
"lrwn",
|
||||
"lrwn-filters",
|
||||
"backend",
|
||||
"api/rust",
|
||||
]
|
||||
|
||||
[profile.release]
|
||||
opt-level = 'z'
|
||||
lto = true
|
||||
codegen-units = 1
|
||||
|
||||
[patch.crates-io]
|
||||
# Remove if diesel > 2.1.4
|
||||
diesel = { git = "https://github.com/diesel-rs/diesel.git", rev = "566dcccc6df6adb6ceddef8df5e1806e2a065c40" }
|
||||
|
||||
# Remove if diesel-async > 0.4.1
|
||||
diesel-async = { git = "https://github.com/weiznich/diesel_async.git", rev = "017ebe2fb7a2709ab5db92148dea5ce812a35e09" }
|
||||
opt-level = 'z'
|
||||
lto = true
|
||||
codegen-units = 1
|
||||
|
15
Makefile
15
Makefile
@ -8,25 +8,26 @@ dist:
|
||||
# Install dev dependencies
|
||||
dev-dependencies:
|
||||
cargo install cross --version 0.2.5
|
||||
cargo install diesel_cli --version 2.1.0 --no-default-features --features postgres
|
||||
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
|
||||
|
||||
# Set the versions
|
||||
version:
|
||||
test -n "$(VERSION)"
|
||||
sed -i 's/^version.*/version = "$(VERSION)"/g' ./chirpstack/Cargo.toml
|
||||
sed -i 's/^version.*/version = "$(VERSION)"/g' ./backend/Cargo.toml
|
||||
sed -i 's/^version.*/version = "$(VERSION)"/g' ./lrwn/Cargo.toml
|
||||
sed -i 's/^version.*/version = "$(VERSION)"/g' ./lrwn-filters/Cargo.toml
|
||||
sed -i 's/^version.*/version = "$(VERSION)"/g' ./chirpstack-integration/Cargo.toml
|
||||
sed -i 's/^ version.*/ version = "$(VERSION)"/g' ./chirpstack/Cargo.toml
|
||||
sed -i 's/^ version.*/ version = "$(VERSION)"/g' ./backend/Cargo.toml
|
||||
sed -i 's/^ version.*/ version = "$(VERSION)"/g' ./lrwn/Cargo.toml
|
||||
sed -i 's/^ version.*/ version = "$(VERSION)"/g' ./lrwn-filters/Cargo.toml
|
||||
sed -i 's/^ version.*/ version = "$(VERSION)"/g' ./chirpstack-integration/Cargo.toml
|
||||
sed -i 's/"version.*/"version": "$(VERSION)",/g' ./ui/package.json
|
||||
sed -i 's/"version.*/"version": "$(VERSION)",/g' ./api/grpc-web/package.json
|
||||
sed -i 's/"version.*/"version": "$(VERSION)",/g' ./api/js/package.json
|
||||
sed -i 's/version.*/version = "$(VERSION)",/g' ./api/python/src/setup.py
|
||||
sed -i 's/^version.*/version = "$(VERSION)"/g' ./api/rust/Cargo.toml
|
||||
sed -i 's/^ version.*/ version = "$(VERSION)"/g' ./api/rust/Cargo.toml
|
||||
sed -i 's/^version.*/version = "$(VERSION)"/g' ./api/java/build.gradle.kts
|
||||
sed -i 's/^version.*/version = "$(VERSION)"/g' ./api/kotlin/build.gradle.kts
|
||||
sed -i 's/"version.*/"version": "$(VERSION)",/g' ./api/php/composer.json
|
||||
|
||||
cd api && make
|
||||
make build-ui
|
||||
|
32
README.md
32
README.md
@ -84,7 +84,11 @@ docker compose up -d
|
||||
Run the following command to run the ChirpStack tests:
|
||||
|
||||
```bash
|
||||
# Test (with PostgresQL database backend)
|
||||
make test
|
||||
|
||||
# Test with SQLite database backend
|
||||
DATABASE=sqlite make test
|
||||
```
|
||||
|
||||
### Building ChirpStack binaries
|
||||
@ -109,6 +113,34 @@ make release-amd64
|
||||
make dist
|
||||
```
|
||||
|
||||
By default the above commands will build ChirpStack with the PostgresQL database
|
||||
database backend. Set the `DATABASE=sqlite` env. variable to compile ChirpStack
|
||||
with the SQLite database backend.
|
||||
|
||||
### Database migrations
|
||||
|
||||
To create a new database migration, execute:
|
||||
|
||||
```
|
||||
make migration-generate NAME=test-migration
|
||||
```
|
||||
|
||||
To apply migrations, execute:
|
||||
|
||||
```
|
||||
make migration-run
|
||||
```
|
||||
|
||||
To revert a migration, execute:
|
||||
|
||||
```
|
||||
make migration-revert
|
||||
```
|
||||
|
||||
By default the above commands will execute the migration commands using the
|
||||
PostgresQL database backend. To execute migration commands for the SQLite
|
||||
database backend, set the `DATABASE=sqlite` env. variable.
|
||||
|
||||
## License
|
||||
|
||||
ChirpStack Network Server is distributed under the MIT license. See also
|
||||
|
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
|
2
api/Dockerfile-csharp
vendored
2
api/Dockerfile-csharp
vendored
@ -3,7 +3,7 @@ FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
|
||||
ENV PROJECT_PATH=/chirpstack/api
|
||||
|
||||
RUN apt update && apt install -y make git
|
||||
RUN git clone --depth=1 --branch=master https://github.com/googleapis/googleapis.git /googleapis
|
||||
RUN git clone --depth=1 https://github.com/googleapis/googleapis.git /googleapis
|
||||
RUN mkdir -p /googleproto/google/api/
|
||||
RUN mv /googleapis/google/api/http.proto /googleproto/google/api/ && mv /googleapis/google/api/annotations.proto /googleproto/google/api/
|
||||
RUN rm -rf /googleapis
|
||||
|
2
api/Dockerfile-md
vendored
2
api/Dockerfile-md
vendored
@ -3,7 +3,7 @@ FROM golang:1.19.3-alpine
|
||||
ENV PROJECT_PATH=/chirpstack/api
|
||||
RUN apk add --no-cache make git bash protobuf protobuf-dev
|
||||
|
||||
RUN git clone https://github.com/googleapis/googleapis.git /googleapis
|
||||
RUN git clone --depth=1 https://github.com/googleapis/googleapis.git /googleapis
|
||||
|
||||
RUN mkdir -p $PROJECT_PATH
|
||||
WORKDIR $PROJECT_PATH
|
||||
|
9
api/Dockerfile-php
vendored
Normal file
9
api/Dockerfile-php
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
FROM php:8.1-bookworm
|
||||
|
||||
RUN apt update -y
|
||||
RUN apt install -y make protobuf-compiler protobuf-compiler-grpc
|
||||
|
||||
ENV PROJECT_PATH=/chirpstack/api
|
||||
|
||||
RUN mkdir -p PROJECT_PATH
|
||||
WORKDIR $PROJECT_PATH
|
4
api/Dockerfile-python
vendored
4
api/Dockerfile-python
vendored
@ -2,8 +2,8 @@ FROM python:3.11.0
|
||||
|
||||
ENV PROJECT_PATH=/chirpstack/api
|
||||
|
||||
RUN git clone https://github.com/protocolbuffers/protobuf.git /protobuf
|
||||
RUN git clone https://github.com/googleapis/googleapis.git /googleapis
|
||||
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
|
||||
|
10
api/Makefile
vendored
10
api/Makefile
vendored
@ -1,6 +1,6 @@
|
||||
.PHONY: rust grpc-web go js python md java kotlin csharp
|
||||
.PHONY: rust grpc-web go js python md java kotlin csharp php c
|
||||
|
||||
all: rust grpc-web go js python md java kotlin csharp
|
||||
all: rust grpc-web go js python md java kotlin csharp php c
|
||||
|
||||
rust:
|
||||
cd rust && make
|
||||
@ -28,3 +28,9 @@ kotlin:
|
||||
|
||||
csharp:
|
||||
docker compose run --rm chirpstack-csharp
|
||||
|
||||
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) {} \;
|
14
api/docker-compose.yml
vendored
14
api/docker-compose.yml
vendored
@ -42,3 +42,17 @@ services:
|
||||
command: bash -c "cd csharp && make all"
|
||||
volumes:
|
||||
- ./:/chirpstack/api
|
||||
chirpstack-api-php:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile-php
|
||||
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
|
||||
|
21
api/go/api/application.pb.go
vendored
21
api/go/api/application.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: api/application.proto
|
||||
|
||||
@ -5622,14 +5622,17 @@ var file_api_application_proto_rawDesc = []byte{
|
||||
0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69,
|
||||
0x64, 0x7d, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f,
|
||||
0x6d, 0x71, 0x74, 0x74, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65,
|
||||
0x42, 0x68, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63,
|
||||
0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x10, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75,
|
||||
0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b,
|
||||
0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f,
|
||||
0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72,
|
||||
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
|
||||
0x6f, 0x33,
|
||||
0x42, 0x96, 0x01, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61,
|
||||
0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x10, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68,
|
||||
0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63,
|
||||
0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69,
|
||||
0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69,
|
||||
0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69, 0xca, 0x02, 0x0e, 0x43, 0x68,
|
||||
0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0xe2, 0x02, 0x1a, 0x47,
|
||||
0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5c, 0x43, 0x68, 0x69, 0x72, 0x70,
|
||||
0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||
0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
468
api/go/api/device.pb.go
vendored
468
api/go/api/device.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: api/device.proto
|
||||
|
||||
@ -1116,6 +1116,8 @@ type DeviceActivation struct {
|
||||
// Application session key (HEX encoded).
|
||||
AppSKey string `protobuf:"bytes,3,opt,name=app_s_key,json=appSKey,proto3" json:"app_s_key,omitempty"`
|
||||
// Network session encryption key (HEX encoded).
|
||||
// Note: For ABP in LoRaWAN 1.0.x, use this, the serving and the forwarding
|
||||
// network session integrity key fields with the LoRaWAN 1.0.x 'NwkSKey`!
|
||||
NwkSEncKey string `protobuf:"bytes,4,opt,name=nwk_s_enc_key,json=nwkSEncKey,proto3" json:"nwk_s_enc_key,omitempty"`
|
||||
// Serving network session integrity key (HEX encoded).
|
||||
SNwkSIntKey string `protobuf:"bytes,8,opt,name=s_nwk_s_int_key,json=sNwkSIntKey,proto3" json:"s_nwk_s_int_key,omitempty"`
|
||||
@ -1912,6 +1914,9 @@ type DeviceQueueItem struct {
|
||||
// the data payload. In this case, the f_cnt_down field must be set to
|
||||
// the corresponding frame-counter which has been used during the encryption.
|
||||
IsEncrypted bool `protobuf:"varint,9,opt,name=is_encrypted,json=isEncrypted,proto3" json:"is_encrypted,omitempty"`
|
||||
// Expires at (optional).
|
||||
// Expired queue-items will be automatically removed from the queue.
|
||||
ExpiresAt *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"`
|
||||
}
|
||||
|
||||
func (x *DeviceQueueItem) Reset() {
|
||||
@ -2009,6 +2014,13 @@ func (x *DeviceQueueItem) GetIsEncrypted() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *DeviceQueueItem) GetExpiresAt() *timestamppb.Timestamp {
|
||||
if x != nil {
|
||||
return x.ExpiresAt
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type EnqueueDeviceQueueItemRequest struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@ -2693,7 +2705,7 @@ var file_api_device_proto_rawDesc = []byte{
|
||||
0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0e, 0x72, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73,
|
||||
0x50, 0x65, 0x72, 0x44, 0x72, 0x12, 0x26, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18,
|
||||
0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d,
|
||||
0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x94, 0x02,
|
||||
0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0xcf, 0x02,
|
||||
0x0a, 0x0f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65,
|
||||
0x6d, 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,
|
||||
@ -2711,190 +2723,197 @@ var file_api_device_proto_rawDesc = []byte{
|
||||
0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x66, 0x43, 0x6e, 0x74, 0x44, 0x6f, 0x77,
|
||||
0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65,
|
||||
0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x45, 0x6e, 0x63, 0x72, 0x79,
|
||||
0x70, 0x74, 0x65, 0x64, 0x22, 0x54, 0x0a, 0x1d, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x44,
|
||||
0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69,
|
||||
0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e,
|
||||
0x70, 0x74, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f,
|
||||
0x61, 0x74, 0x18, 0x0a, 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, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x41, 0x74, 0x22,
|
||||
0x54, 0x0a, 0x1d, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x12, 0x33, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x09, 0x71, 0x75, 0x65, 0x75,
|
||||
0x65, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x30, 0x0a, 0x1e, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65,
|
||||
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52,
|
||||
0x09, 0x71, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x30, 0x0a, 0x1e, 0x45, 0x6e,
|
||||
0x71, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65,
|
||||
0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02,
|
||||
0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x32, 0x0a, 0x17,
|
||||
0x46, 0x6c, 0x75, 0x73, 0x68, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65,
|
||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x5f, 0x65,
|
||||
0x75, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x45, 0x75, 0x69,
|
||||
0x22, 0x54, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65,
|
||||
0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17,
|
||||
0x0a, 0x07, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x06, 0x64, 0x65, 0x76, 0x45, 0x75, 0x69, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74,
|
||||
0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x75,
|
||||
0x6e, 0x74, 0x4f, 0x6e, 0x6c, 0x79, 0x22, 0x6c, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x73,
|
||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63,
|
||||
0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61,
|
||||
0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
|
||||
0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x06, 0x72, 0x65,
|
||||
0x73, 0x75, 0x6c, 0x74, 0x22, 0x30, 0x0a, 0x15, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x44, 0x65, 0x76,
|
||||
0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a,
|
||||
0x07, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
|
||||
0x64, 0x65, 0x76, 0x45, 0x75, 0x69, 0x22, 0x37, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x43, 0x6e, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75,
|
||||
0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x45, 0x75, 0x69, 0x22,
|
||||
0x3d, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x65, 0x78, 0x74,
|
||||
0x46, 0x43, 0x6e, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x12, 0x1c, 0x0a, 0x0a, 0x66, 0x5f, 0x63, 0x6e, 0x74, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x66, 0x43, 0x6e, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x32, 0xe2,
|
||||
0x11, 0x0a, 0x0d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
|
||||
0x12, 0x53, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69,
|
||||
0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x17, 0x82, 0xd3,
|
||||
0xe4, 0x93, 0x02, 0x11, 0x3a, 0x01, 0x2a, 0x22, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65,
|
||||
0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x15, 0x2e, 0x61,
|
||||
0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4,
|
||||
0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x12, 0x64, 0x0a, 0x06, 0x55,
|
||||
0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x32, 0x0a, 0x17, 0x46, 0x6c, 0x75, 0x73, 0x68,
|
||||
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
|
||||
0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x45, 0x75, 0x69, 0x22, 0x54, 0x0a, 0x1a, 0x47,
|
||||
0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65,
|
||||
0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x65, 0x76,
|
||||
0x5f, 0x65, 0x75, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x45,
|
||||
0x75, 0x69, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x6e, 0x6c, 0x79,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x6e, 0x6c,
|
||||
0x79, 0x22, 0x6c, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75,
|
||||
0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e,
|
||||
0x74, 0x12, 0x2c, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28,
|
||||
0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75,
|
||||
0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22,
|
||||
0x30, 0x0a, 0x15, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x44, 0x65, 0x76, 0x4e, 0x6f, 0x6e, 0x63, 0x65,
|
||||
0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x5f,
|
||||
0x65, 0x75, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x45, 0x75,
|
||||
0x69, 0x22, 0x37, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x65,
|
||||
0x78, 0x74, 0x46, 0x43, 0x6e, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x45, 0x75, 0x69, 0x22, 0x3d, 0x0a, 0x1d, 0x47, 0x65,
|
||||
0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x43, 0x6e, 0x74, 0x44,
|
||||
0x6f, 0x77, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x0a, 0x66,
|
||||
0x5f, 0x63, 0x6e, 0x74, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
|
||||
0x08, 0x66, 0x43, 0x6e, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x32, 0xe2, 0x11, 0x0a, 0x0d, 0x44, 0x65,
|
||||
0x76, 0x69, 0x63, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x06, 0x43,
|
||||
0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61,
|
||||
0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
|
||||
0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
|
||||
0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x3a,
|
||||
0x01, 0x2a, 0x1a, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73,
|
||||
0x2f, 0x7b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69,
|
||||
0x7d, 0x12, 0x5a, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1e, 0x82,
|
||||
0xd3, 0xe4, 0x93, 0x02, 0x18, 0x2a, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x12, 0x4f, 0x0a,
|
||||
0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74,
|
||||
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73,
|
||||
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e,
|
||||
0x12, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x76,
|
||||
0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x1c, 0x2e, 0x61,
|
||||
0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4b,
|
||||
0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
|
||||
0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x3a,
|
||||
0x01, 0x2a, 0x22, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73,
|
||||
0x12, 0x54, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65,
|
||||
0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16,
|
||||
0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65,
|
||||
0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x12, 0x64, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
|
||||
0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
|
||||
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
|
||||
0x74, 0x79, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x3a, 0x01, 0x2a, 0x22, 0x27, 0x2f,
|
||||
0x74, 0x79, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x3a, 0x01, 0x2a, 0x1a, 0x1d, 0x2f,
|
||||
0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69,
|
||||
0x7d, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x65, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4b, 0x65, 0x79,
|
||||
0x73, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61,
|
||||
0x69, 0x63, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x12, 0x5a, 0x0a, 0x06,
|
||||
0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x6c,
|
||||
0x65, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
|
||||
0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18,
|
||||
0x2a, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b,
|
||||
0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x12, 0x4f, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74,
|
||||
0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e,
|
||||
0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
||||
0x6e, 0x73, 0x65, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12, 0x0c, 0x2f, 0x61, 0x70,
|
||||
0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x76, 0x0a, 0x0a, 0x43, 0x72, 0x65,
|
||||
0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72,
|
||||
0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x32, 0x82,
|
||||
0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x3a, 0x01, 0x2a, 0x22, 0x27, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64,
|
||||
0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6b,
|
||||
0x65, 0x79, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x6b, 0x65, 0x79,
|
||||
0x73, 0x12, 0x65, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x19, 0x2e, 0x61,
|
||||
0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4b, 0x65, 0x79, 0x73,
|
||||
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d,
|
||||
0x12, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b,
|
||||
0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x76, 0x0a,
|
||||
0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x1c, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4b, 0x65,
|
||||
0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
|
||||
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
|
||||
0x79, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x3a, 0x01, 0x2a, 0x1a, 0x27, 0x2f, 0x61,
|
||||
0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d,
|
||||
0x2f, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x67, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4b,
|
||||
0x65, 0x79, 0x73, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
|
||||
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||
0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02,
|
||||
0x1d, 0x2a, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f,
|
||||
0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x6f,
|
||||
0x0a, 0x0e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x44, 0x65, 0x76, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73,
|
||||
0x12, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x44, 0x65, 0x76, 0x4e,
|
||||
0x6f, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67,
|
||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65,
|
||||
0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
||||
0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x61, 0x70,
|
||||
0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65,
|
||||
0x75, 0x69, 0x7d, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x76, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61,
|
||||
0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x70, 0x64,
|
||||
0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x32, 0x82, 0xd3,
|
||||
0xe4, 0x93, 0x02, 0x2c, 0x3a, 0x01, 0x2a, 0x1a, 0x27, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65,
|
||||
0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6b, 0x65,
|
||||
0x79, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x6b, 0x65, 0x79, 0x73,
|
||||
0x12, 0x67, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x1c,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67,
|
||||
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45,
|
||||
0x6d, 0x70, 0x74, 0x79, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x2a, 0x21, 0x2f, 0x61,
|
||||
0x6d, 0x70, 0x74, 0x79, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x2a, 0x1b, 0x2f, 0x61,
|
||||
0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f,
|
||||
0x65, 0x75, 0x69, 0x7d, 0x2f, 0x64, 0x65, 0x76, 0x2d, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x12,
|
||||
0x7c, 0x0a, 0x08, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x65, 0x75, 0x69, 0x7d, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x6f, 0x0a, 0x0e, 0x46, 0x6c, 0x75,
|
||||
0x73, 0x68, 0x44, 0x65, 0x76, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x1a, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x44, 0x65, 0x76, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73,
|
||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
|
||||
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22,
|
||||
0x3c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x3a, 0x01, 0x2a, 0x22, 0x31, 0x2f, 0x61, 0x70, 0x69,
|
||||
0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x64, 0x65, 0x76, 0x5f,
|
||||
0x65, 0x75, 0x69, 0x7d, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x6d, 0x0a,
|
||||
0x0a, 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
|
||||
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
|
||||
0x79, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x2a, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f,
|
||||
0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69,
|
||||
0x7d, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x7d, 0x0a, 0x0d,
|
||||
0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x74,
|
||||
0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63,
|
||||
0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64,
|
||||
0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d,
|
||||
0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x83, 0x01, 0x0a, 0x10,
|
||||
0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x41, 0x64, 0x64, 0x72,
|
||||
0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d,
|
||||
0x44, 0x65, 0x76, 0x41, 0x64, 0x64, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x44, 0x65,
|
||||
0x76, 0x41, 0x64, 0x64, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82,
|
||||
0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x22, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x67, 0x65,
|
||||
0x74, 0x2d, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x2d, 0x64, 0x65, 0x76, 0x2d, 0x61, 0x64, 0x64,
|
||||
0x72, 0x12, 0x71, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12,
|
||||
0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d,
|
||||
0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x74,
|
||||
0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3,
|
||||
0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x6d, 0x65, 0x74,
|
||||
0x72, 0x69, 0x63, 0x73, 0x12, 0x82, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x6e, 0x6b,
|
||||
0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65,
|
||||
0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69,
|
||||
0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e,
|
||||
0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74,
|
||||
0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3,
|
||||
0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x6c, 0x69, 0x6e,
|
||||
0x6b, 0x2d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x86, 0x01, 0x0a, 0x07, 0x45, 0x6e,
|
||||
0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x6e, 0x71, 0x75,
|
||||
0x65, 0x75, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74,
|
||||
0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e,
|
||||
0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65,
|
||||
0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32,
|
||||
0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x3a, 0x01, 0x2a, 0x22, 0x27, 0x2f, 0x61, 0x70, 0x69, 0x2f,
|
||||
0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69,
|
||||
0x74, 0x65, 0x6d, 0x2e, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x71, 0x75, 0x65,
|
||||
0x75, 0x65, 0x12, 0x68, 0x0a, 0x0a, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x51, 0x75, 0x65, 0x75, 0x65,
|
||||
0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x44, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16,
|
||||
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
|
||||
0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x2a, 0x1c,
|
||||
0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65,
|
||||
0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x73, 0x0a, 0x08,
|
||||
0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47,
|
||||
0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65,
|
||||
0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e,
|
||||
0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74,
|
||||
0x65, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4,
|
||||
0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x71, 0x75, 0x65, 0x75,
|
||||
0x65, 0x12, 0x8f, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x43, 0x6e,
|
||||
0x74, 0x44, 0x6f, 0x77, 0x6e, 0x12, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44,
|
||||
0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x43, 0x6e, 0x74, 0x44, 0x6f, 0x77,
|
||||
0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47,
|
||||
0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x43, 0x6e, 0x74,
|
||||
0x44, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x35, 0x82, 0xd3,
|
||||
0xe4, 0x93, 0x02, 0x2f, 0x3a, 0x01, 0x2a, 0x22, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65,
|
||||
0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x2a, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65,
|
||||
0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f,
|
||||
0x67, 0x65, 0x74, 0x2d, 0x6e, 0x65, 0x78, 0x74, 0x2d, 0x66, 0x2d, 0x63, 0x6e, 0x74, 0x2d, 0x64,
|
||||
0x6f, 0x77, 0x6e, 0x42, 0x63, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73,
|
||||
0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x0b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
|
||||
0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63,
|
||||
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f,
|
||||
0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73,
|
||||
0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x64, 0x65, 0x76, 0x2d, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x7c, 0x0a, 0x08, 0x41, 0x63,
|
||||
0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, 0x74,
|
||||
0x69, 0x76, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
|
||||
0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
|
||||
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3c, 0x82, 0xd3, 0xe4, 0x93,
|
||||
0x02, 0x36, 0x3a, 0x01, 0x2a, 0x22, 0x31, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69,
|
||||
0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f,
|
||||
0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x6d, 0x0a, 0x0a, 0x44, 0x65, 0x61, 0x63,
|
||||
0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x61,
|
||||
0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x29, 0x82, 0xd3,
|
||||
0xe4, 0x93, 0x02, 0x23, 0x2a, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x61, 0x63, 0x74,
|
||||
0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x7d, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, 0x63,
|
||||
0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47,
|
||||
0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e,
|
||||
0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4,
|
||||
0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x61, 0x63, 0x74, 0x69,
|
||||
0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x83, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x61,
|
||||
0x6e, 0x64, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1c, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x41, 0x64,
|
||||
0x64, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e,
|
||||
0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x41, 0x64, 0x64, 0x72,
|
||||
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c,
|
||||
0x22, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b,
|
||||
0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x67, 0x65, 0x74, 0x2d, 0x72, 0x61, 0x6e,
|
||||
0x64, 0x6f, 0x6d, 0x2d, 0x64, 0x65, 0x76, 0x2d, 0x61, 0x64, 0x64, 0x72, 0x12, 0x71, 0x0a, 0x0a,
|
||||
0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69,
|
||||
0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63,
|
||||
0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47,
|
||||
0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12,
|
||||
0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64,
|
||||
0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12,
|
||||
0x82, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69,
|
||||
0x63, 0x73, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65,
|
||||
0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12,
|
||||
0x23, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64,
|
||||
0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x6c, 0x69, 0x6e, 0x6b, 0x2d, 0x6d, 0x65, 0x74,
|
||||
0x72, 0x69, 0x63, 0x73, 0x12, 0x86, 0x01, 0x0a, 0x07, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65,
|
||||
0x12, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65,
|
||||
0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x6e, 0x71, 0x75, 0x65,
|
||||
0x75, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65,
|
||||
0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02,
|
||||
0x2c, 0x3a, 0x01, 0x2a, 0x22, 0x27, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x73, 0x2f, 0x7b, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x2e, 0x64,
|
||||
0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x68, 0x0a,
|
||||
0x0a, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x1c, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65,
|
||||
0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
|
||||
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
|
||||
0x79, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x2a, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f,
|
||||
0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69,
|
||||
0x7d, 0x2f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x73, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x51, 0x75,
|
||||
0x65, 0x75, 0x65, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65,
|
||||
0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c,
|
||||
0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65,
|
||||
0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x8f, 0x01, 0x0a,
|
||||
0x0f, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x43, 0x6e, 0x74, 0x44, 0x6f, 0x77, 0x6e,
|
||||
0x12, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x4e, 0x65, 0x78, 0x74, 0x46, 0x43, 0x6e, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x43, 0x6e, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x52,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x3a,
|
||||
0x01, 0x2a, 0x22, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73,
|
||||
0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x67, 0x65, 0x74, 0x2d, 0x6e,
|
||||
0x65, 0x78, 0x74, 0x2d, 0x66, 0x2d, 0x63, 0x6e, 0x74, 0x2d, 0x64, 0x6f, 0x77, 0x6e, 0x42, 0x91,
|
||||
0x01, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x42, 0x0b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74,
|
||||
0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
|
||||
0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70,
|
||||
0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f,
|
||||
0x61, 0x70, 0x69, 0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b,
|
||||
0x2e, 0x41, 0x70, 0x69, 0xca, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63,
|
||||
0x6b, 0x5c, 0x41, 0x70, 0x69, 0xe2, 0x02, 0x1a, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64,
|
||||
0x61, 0x74, 0x61, 0x5c, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41,
|
||||
0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
@ -2999,55 +3018,56 @@ var file_api_device_proto_depIdxs = []int32{
|
||||
45, // 35: api.GetDeviceLinkMetricsResponse.rx_packets_per_dr:type_name -> common.Metric
|
||||
45, // 36: api.GetDeviceLinkMetricsResponse.errors:type_name -> common.Metric
|
||||
46, // 37: api.DeviceQueueItem.object:type_name -> google.protobuf.Struct
|
||||
28, // 38: api.EnqueueDeviceQueueItemRequest.queue_item:type_name -> api.DeviceQueueItem
|
||||
28, // 39: api.GetDeviceQueueItemsResponse.result:type_name -> api.DeviceQueueItem
|
||||
45, // 40: api.GetDeviceMetricsResponse.MetricsEntry.value:type_name -> common.Metric
|
||||
25, // 41: api.GetDeviceMetricsResponse.StatesEntry.value:type_name -> api.DeviceState
|
||||
4, // 42: api.DeviceService.Create:input_type -> api.CreateDeviceRequest
|
||||
5, // 43: api.DeviceService.Get:input_type -> api.GetDeviceRequest
|
||||
7, // 44: api.DeviceService.Update:input_type -> api.UpdateDeviceRequest
|
||||
8, // 45: api.DeviceService.Delete:input_type -> api.DeleteDeviceRequest
|
||||
9, // 46: api.DeviceService.List:input_type -> api.ListDevicesRequest
|
||||
11, // 47: api.DeviceService.CreateKeys:input_type -> api.CreateDeviceKeysRequest
|
||||
12, // 48: api.DeviceService.GetKeys:input_type -> api.GetDeviceKeysRequest
|
||||
14, // 49: api.DeviceService.UpdateKeys:input_type -> api.UpdateDeviceKeysRequest
|
||||
15, // 50: api.DeviceService.DeleteKeys:input_type -> api.DeleteDeviceKeysRequest
|
||||
34, // 51: api.DeviceService.FlushDevNonces:input_type -> api.FlushDevNoncesRequest
|
||||
17, // 52: api.DeviceService.Activate:input_type -> api.ActivateDeviceRequest
|
||||
18, // 53: api.DeviceService.Deactivate:input_type -> api.DeactivateDeviceRequest
|
||||
19, // 54: api.DeviceService.GetActivation:input_type -> api.GetDeviceActivationRequest
|
||||
21, // 55: api.DeviceService.GetRandomDevAddr:input_type -> api.GetRandomDevAddrRequest
|
||||
23, // 56: api.DeviceService.GetMetrics:input_type -> api.GetDeviceMetricsRequest
|
||||
26, // 57: api.DeviceService.GetLinkMetrics:input_type -> api.GetDeviceLinkMetricsRequest
|
||||
29, // 58: api.DeviceService.Enqueue:input_type -> api.EnqueueDeviceQueueItemRequest
|
||||
31, // 59: api.DeviceService.FlushQueue:input_type -> api.FlushDeviceQueueRequest
|
||||
32, // 60: api.DeviceService.GetQueue:input_type -> api.GetDeviceQueueItemsRequest
|
||||
35, // 61: api.DeviceService.GetNextFCntDown:input_type -> api.GetDeviceNextFCntDownRequest
|
||||
47, // 62: api.DeviceService.Create:output_type -> google.protobuf.Empty
|
||||
6, // 63: api.DeviceService.Get:output_type -> api.GetDeviceResponse
|
||||
47, // 64: api.DeviceService.Update:output_type -> google.protobuf.Empty
|
||||
47, // 65: api.DeviceService.Delete:output_type -> google.protobuf.Empty
|
||||
10, // 66: api.DeviceService.List:output_type -> api.ListDevicesResponse
|
||||
47, // 67: api.DeviceService.CreateKeys:output_type -> google.protobuf.Empty
|
||||
13, // 68: api.DeviceService.GetKeys:output_type -> api.GetDeviceKeysResponse
|
||||
47, // 69: api.DeviceService.UpdateKeys:output_type -> google.protobuf.Empty
|
||||
47, // 70: api.DeviceService.DeleteKeys:output_type -> google.protobuf.Empty
|
||||
47, // 71: api.DeviceService.FlushDevNonces:output_type -> google.protobuf.Empty
|
||||
47, // 72: api.DeviceService.Activate:output_type -> google.protobuf.Empty
|
||||
47, // 73: api.DeviceService.Deactivate:output_type -> google.protobuf.Empty
|
||||
20, // 74: api.DeviceService.GetActivation:output_type -> api.GetDeviceActivationResponse
|
||||
22, // 75: api.DeviceService.GetRandomDevAddr:output_type -> api.GetRandomDevAddrResponse
|
||||
24, // 76: api.DeviceService.GetMetrics:output_type -> api.GetDeviceMetricsResponse
|
||||
27, // 77: api.DeviceService.GetLinkMetrics:output_type -> api.GetDeviceLinkMetricsResponse
|
||||
30, // 78: api.DeviceService.Enqueue:output_type -> api.EnqueueDeviceQueueItemResponse
|
||||
47, // 79: api.DeviceService.FlushQueue:output_type -> google.protobuf.Empty
|
||||
33, // 80: api.DeviceService.GetQueue:output_type -> api.GetDeviceQueueItemsResponse
|
||||
36, // 81: api.DeviceService.GetNextFCntDown:output_type -> api.GetDeviceNextFCntDownResponse
|
||||
62, // [62:82] is the sub-list for method output_type
|
||||
42, // [42:62] is the sub-list for method input_type
|
||||
42, // [42:42] is the sub-list for extension type_name
|
||||
42, // [42:42] is the sub-list for extension extendee
|
||||
0, // [0:42] is the sub-list for field type_name
|
||||
41, // 38: api.DeviceQueueItem.expires_at:type_name -> google.protobuf.Timestamp
|
||||
28, // 39: api.EnqueueDeviceQueueItemRequest.queue_item:type_name -> api.DeviceQueueItem
|
||||
28, // 40: api.GetDeviceQueueItemsResponse.result:type_name -> api.DeviceQueueItem
|
||||
45, // 41: api.GetDeviceMetricsResponse.MetricsEntry.value:type_name -> common.Metric
|
||||
25, // 42: api.GetDeviceMetricsResponse.StatesEntry.value:type_name -> api.DeviceState
|
||||
4, // 43: api.DeviceService.Create:input_type -> api.CreateDeviceRequest
|
||||
5, // 44: api.DeviceService.Get:input_type -> api.GetDeviceRequest
|
||||
7, // 45: api.DeviceService.Update:input_type -> api.UpdateDeviceRequest
|
||||
8, // 46: api.DeviceService.Delete:input_type -> api.DeleteDeviceRequest
|
||||
9, // 47: api.DeviceService.List:input_type -> api.ListDevicesRequest
|
||||
11, // 48: api.DeviceService.CreateKeys:input_type -> api.CreateDeviceKeysRequest
|
||||
12, // 49: api.DeviceService.GetKeys:input_type -> api.GetDeviceKeysRequest
|
||||
14, // 50: api.DeviceService.UpdateKeys:input_type -> api.UpdateDeviceKeysRequest
|
||||
15, // 51: api.DeviceService.DeleteKeys:input_type -> api.DeleteDeviceKeysRequest
|
||||
34, // 52: api.DeviceService.FlushDevNonces:input_type -> api.FlushDevNoncesRequest
|
||||
17, // 53: api.DeviceService.Activate:input_type -> api.ActivateDeviceRequest
|
||||
18, // 54: api.DeviceService.Deactivate:input_type -> api.DeactivateDeviceRequest
|
||||
19, // 55: api.DeviceService.GetActivation:input_type -> api.GetDeviceActivationRequest
|
||||
21, // 56: api.DeviceService.GetRandomDevAddr:input_type -> api.GetRandomDevAddrRequest
|
||||
23, // 57: api.DeviceService.GetMetrics:input_type -> api.GetDeviceMetricsRequest
|
||||
26, // 58: api.DeviceService.GetLinkMetrics:input_type -> api.GetDeviceLinkMetricsRequest
|
||||
29, // 59: api.DeviceService.Enqueue:input_type -> api.EnqueueDeviceQueueItemRequest
|
||||
31, // 60: api.DeviceService.FlushQueue:input_type -> api.FlushDeviceQueueRequest
|
||||
32, // 61: api.DeviceService.GetQueue:input_type -> api.GetDeviceQueueItemsRequest
|
||||
35, // 62: api.DeviceService.GetNextFCntDown:input_type -> api.GetDeviceNextFCntDownRequest
|
||||
47, // 63: api.DeviceService.Create:output_type -> google.protobuf.Empty
|
||||
6, // 64: api.DeviceService.Get:output_type -> api.GetDeviceResponse
|
||||
47, // 65: api.DeviceService.Update:output_type -> google.protobuf.Empty
|
||||
47, // 66: api.DeviceService.Delete:output_type -> google.protobuf.Empty
|
||||
10, // 67: api.DeviceService.List:output_type -> api.ListDevicesResponse
|
||||
47, // 68: api.DeviceService.CreateKeys:output_type -> google.protobuf.Empty
|
||||
13, // 69: api.DeviceService.GetKeys:output_type -> api.GetDeviceKeysResponse
|
||||
47, // 70: api.DeviceService.UpdateKeys:output_type -> google.protobuf.Empty
|
||||
47, // 71: api.DeviceService.DeleteKeys:output_type -> google.protobuf.Empty
|
||||
47, // 72: api.DeviceService.FlushDevNonces:output_type -> google.protobuf.Empty
|
||||
47, // 73: api.DeviceService.Activate:output_type -> google.protobuf.Empty
|
||||
47, // 74: api.DeviceService.Deactivate:output_type -> google.protobuf.Empty
|
||||
20, // 75: api.DeviceService.GetActivation:output_type -> api.GetDeviceActivationResponse
|
||||
22, // 76: api.DeviceService.GetRandomDevAddr:output_type -> api.GetRandomDevAddrResponse
|
||||
24, // 77: api.DeviceService.GetMetrics:output_type -> api.GetDeviceMetricsResponse
|
||||
27, // 78: api.DeviceService.GetLinkMetrics:output_type -> api.GetDeviceLinkMetricsResponse
|
||||
30, // 79: api.DeviceService.Enqueue:output_type -> api.EnqueueDeviceQueueItemResponse
|
||||
47, // 80: api.DeviceService.FlushQueue:output_type -> google.protobuf.Empty
|
||||
33, // 81: api.DeviceService.GetQueue:output_type -> api.GetDeviceQueueItemsResponse
|
||||
36, // 82: api.DeviceService.GetNextFCntDown:output_type -> api.GetDeviceNextFCntDownResponse
|
||||
63, // [63:83] is the sub-list for method output_type
|
||||
43, // [43:63] is the sub-list for method input_type
|
||||
43, // [43:43] is the sub-list for extension type_name
|
||||
43, // [43:43] is the sub-list for extension extendee
|
||||
0, // [0:43] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_api_device_proto_init() }
|
||||
|
382
api/go/api/device_profile.pb.go
vendored
382
api/go/api/device_profile.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: api/device_profile.proto
|
||||
|
||||
@ -544,6 +544,14 @@ type DeviceProfile struct {
|
||||
//
|
||||
// If set to true, it means that the device is allowed to use roaming.
|
||||
AllowRoaming bool `protobuf:"varint,52,opt,name=allow_roaming,json=allowRoaming,proto3" json:"allow_roaming,omitempty"`
|
||||
// RX1 Delay.
|
||||
//
|
||||
// This makes it possible to override the system RX1 Delay. Please note that
|
||||
// this values only has effect in case it is higher than the system value.
|
||||
// In other words, it can be used to increase the RX1 Delay but not to decrease
|
||||
// it.
|
||||
// Valid options are 1 - 15 (0 = always use system RX1 Delay).
|
||||
Rx1Delay uint32 `protobuf:"varint,53,opt,name=rx1_delay,json=rx1Delay,proto3" json:"rx1_delay,omitempty"`
|
||||
}
|
||||
|
||||
func (x *DeviceProfile) Reset() {
|
||||
@ -942,6 +950,13 @@ func (x *DeviceProfile) GetAllowRoaming() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *DeviceProfile) GetRx1Delay() uint32 {
|
||||
if x != nil {
|
||||
return x.Rx1Delay
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
type Measurement struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@ -1692,7 +1707,7 @@ var file_api_device_profile_proto_rawDesc = []byte{
|
||||
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f,
|
||||
0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x13, 0x63, 0x6f, 0x6d,
|
||||
0x6d, 0x6f, 0x6e, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||
0x22, 0xd3, 0x16, 0x0a, 0x0d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69,
|
||||
0x22, 0xf0, 0x16, 0x0a, 0x0d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69,
|
||||
0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
|
||||
0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18,
|
||||
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12,
|
||||
@ -1864,187 +1879,192 @@ var file_api_device_profile_proto_rawDesc = []byte{
|
||||
0x76, 0x65, 0x72, 0x61, 0x6c, 0x6c, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65,
|
||||
0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72,
|
||||
0x6f, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x34, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c,
|
||||
0x6c, 0x6f, 0x77, 0x52, 0x6f, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61,
|
||||
0x67, 0x73, 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, 0x1a, 0x51, 0x0a, 0x11, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65,
|
||||
0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x26, 0x0a, 0x05, 0x76, 0x61,
|
||||
0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e,
|
||||
0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c,
|
||||
0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4b, 0x0a, 0x0b, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72,
|
||||
0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x6b, 0x69, 0x6e,
|
||||
0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x65,
|
||||
0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b,
|
||||
0x69, 0x6e, 0x64, 0x22, 0xd2, 0x03, 0x0a, 0x15, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72,
|
||||
0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a,
|
||||
0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x39, 0x0a,
|
||||
0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x09, 0x63,
|
||||
0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61,
|
||||
0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 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, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
|
||||
0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f,
|
||||
0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
|
||||
0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12,
|
||||
0x33, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06,
|
||||
0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x61,
|
||||
0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x6d, 0x61, 0x63, 0x56, 0x65, 0x72,
|
||||
0x73, 0x69, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x13, 0x72, 0x65, 0x67, 0x5f, 0x70, 0x61, 0x72, 0x61,
|
||||
0x6d, 0x73, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28,
|
||||
0x0e, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x67, 0x50, 0x61,
|
||||
0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x72, 0x65,
|
||||
0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12,
|
||||
0x23, 0x0a, 0x0d, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x6f, 0x74, 0x61, 0x61,
|
||||
0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73,
|
||||
0x4f, 0x74, 0x61, 0x61, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73,
|
||||
0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x62, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e,
|
||||
0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x12, 0x28,
|
||||
0x0a, 0x10, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73,
|
||||
0x5f, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72,
|
||||
0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x22, 0x57, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61,
|
||||
0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69,
|
||||
0x6c, 0x65, 0x52, 0x0d, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c,
|
||||
0x65, 0x22, 0x2d, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
|
||||
0x22, 0x29, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f,
|
||||
0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69,
|
||||
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xcb, 0x01, 0x0a, 0x18,
|
||||
0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
|
||||
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x0e, 0x64, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
|
||||
0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f,
|
||||
0x66, 0x69, 0x6c, 0x65, 0x52, 0x0d, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66,
|
||||
0x69, 0x6c, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61,
|
||||
0x74, 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, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39,
|
||||
0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 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, 0x09,
|
||||
0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x57, 0x0a, 0x1a, 0x55, 0x70, 0x64,
|
||||
0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
|
||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0e, 0x64, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||
0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66,
|
||||
0x69, 0x6c, 0x65, 0x52, 0x0d, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69,
|
||||
0x6c, 0x65, 0x22, 0x2c, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
|
||||
0x22, 0x7e, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72,
|
||||
0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a,
|
||||
0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x69,
|
||||
0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73,
|
||||
0x65, 0x61, 0x72, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x61,
|
||||
0x72, 0x63, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64,
|
||||
0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64,
|
||||
0x22, 0x71, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72,
|
||||
0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f,
|
||||
0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12,
|
||||
0x32, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
||||
0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66,
|
||||
0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x06, 0x72, 0x65, 0x73,
|
||||
0x75, 0x6c, 0x74, 0x22, 0x7c, 0x0a, 0x26, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x64, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72,
|
||||
0x69, 0x74, 0x68, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a,
|
||||
0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x31,
|
||||
0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x64, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68,
|
||||
0x6d, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c,
|
||||
0x74, 0x22, 0x3a, 0x0a, 0x14, 0x41, 0x64, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68,
|
||||
0x6d, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
|
||||
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x2a, 0x31, 0x0a,
|
||||
0x0c, 0x43, 0x6f, 0x64, 0x65, 0x63, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x08, 0x0a,
|
||||
0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x41, 0x59, 0x45, 0x4e,
|
||||
0x4e, 0x45, 0x5f, 0x4c, 0x50, 0x50, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x4a, 0x53, 0x10, 0x02,
|
||||
0x2a, 0x50, 0x0a, 0x0f, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4b,
|
||||
0x69, 0x6e, 0x64, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00,
|
||||
0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x01, 0x12, 0x0c, 0x0a,
|
||||
0x08, 0x41, 0x42, 0x53, 0x4f, 0x4c, 0x55, 0x54, 0x45, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x47,
|
||||
0x41, 0x55, 0x47, 0x45, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47,
|
||||
0x10, 0x04, 0x2a, 0x55, 0x0a, 0x0e, 0x43, 0x61, 0x64, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69,
|
||||
0x63, 0x69, 0x74, 0x79, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x45, 0x43, 0x5f, 0x31, 0x10, 0x00, 0x12,
|
||||
0x0a, 0x0a, 0x06, 0x4d, 0x53, 0x5f, 0x35, 0x30, 0x30, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4d,
|
||||
0x53, 0x5f, 0x32, 0x35, 0x30, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x53, 0x5f, 0x31, 0x30,
|
||||
0x30, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x53, 0x5f, 0x35, 0x30, 0x10, 0x04, 0x12, 0x09,
|
||||
0x0a, 0x05, 0x4d, 0x53, 0x5f, 0x32, 0x30, 0x10, 0x05, 0x2a, 0x61, 0x0a, 0x11, 0x53, 0x65, 0x63,
|
||||
0x6f, 0x6e, 0x64, 0x43, 0x68, 0x41, 0x63, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x09,
|
||||
0x0a, 0x05, 0x4b, 0x48, 0x5a, 0x5f, 0x30, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x4b, 0x48, 0x5a,
|
||||
0x5f, 0x32, 0x30, 0x30, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x4b, 0x48, 0x5a, 0x5f, 0x34, 0x30,
|
||||
0x30, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x4b, 0x48, 0x5a, 0x5f, 0x38, 0x30, 0x30, 0x10, 0x03,
|
||||
0x12, 0x0c, 0x0a, 0x08, 0x4b, 0x48, 0x5a, 0x5f, 0x31, 0x36, 0x30, 0x30, 0x10, 0x04, 0x12, 0x0c,
|
||||
0x0a, 0x08, 0x4b, 0x48, 0x5a, 0x5f, 0x33, 0x32, 0x30, 0x30, 0x10, 0x05, 0x2a, 0x6c, 0x0a, 0x13,
|
||||
0x52, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x52,
|
||||
0x45, 0x4c, 0x41, 0x59, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x45,
|
||||
0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x4d, 0x4f, 0x44, 0x45,
|
||||
0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x59, 0x4e, 0x41, 0x4d, 0x49, 0x43, 0x10, 0x02, 0x12,
|
||||
0x19, 0x0a, 0x15, 0x45, 0x4e, 0x44, 0x5f, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x43, 0x4f,
|
||||
0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x32, 0xb8, 0x05, 0x0a, 0x14, 0x44,
|
||||
0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76,
|
||||
0x69, 0x63, 0x65, 0x12, 0x6c, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, 0x2f, 0x61, 0x70,
|
||||
0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
|
||||
0x73, 0x12, 0x65, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47,
|
||||
0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74,
|
||||
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73,
|
||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f,
|
||||
0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x70, 0x72, 0x6f, 0x66, 0x69,
|
||||
0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x76, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61,
|
||||
0x74, 0x65, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44,
|
||||
0x6c, 0x6f, 0x77, 0x52, 0x6f, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x78,
|
||||
0x31, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72,
|
||||
0x78, 0x31, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 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,
|
||||
0x1a, 0x51, 0x0a, 0x11, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73,
|
||||
0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x26, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x65, 0x61,
|
||||
0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
|
||||
0x02, 0x38, 0x01, 0x22, 0x4b, 0x0a, 0x0b, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65,
|
||||
0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
|
||||
0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03,
|
||||
0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75,
|
||||
0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64,
|
||||
0x22, 0xd2, 0x03, 0x0a, 0x15, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69,
|
||||
0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72,
|
||||
0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x09, 0x63, 0x72, 0x65, 0x61,
|
||||
0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64,
|
||||
0x5f, 0x61, 0x74, 0x18, 0x03, 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, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74,
|
||||
0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
|
||||
0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x05,
|
||||
0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x65,
|
||||
0x67, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x0b,
|
||||
0x6d, 0x61, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28,
|
||||
0x0e, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x63, 0x56, 0x65,
|
||||
0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x6d, 0x61, 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
|
||||
0x6e, 0x12, 0x49, 0x0a, 0x13, 0x72, 0x65, 0x67, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x5f,
|
||||
0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19,
|
||||
0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d,
|
||||
0x73, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x72, 0x65, 0x67, 0x50, 0x61,
|
||||
0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d,
|
||||
0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x6f, 0x74, 0x61, 0x61, 0x18, 0x08, 0x20,
|
||||
0x01, 0x28, 0x08, 0x52, 0x0c, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x4f, 0x74, 0x61,
|
||||
0x61, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x63, 0x6c,
|
||||
0x61, 0x73, 0x73, 0x5f, 0x62, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x73, 0x75, 0x70,
|
||||
0x70, 0x6f, 0x72, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x12, 0x28, 0x0a, 0x10, 0x73,
|
||||
0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x63, 0x18,
|
||||
0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x43,
|
||||
0x6c, 0x61, 0x73, 0x73, 0x43, 0x22, 0x57, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44,
|
||||
0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
|
||||
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x33, 0x82, 0xd3, 0xe4,
|
||||
0x93, 0x02, 0x2d, 0x3a, 0x01, 0x2a, 0x1a, 0x28, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x2d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65,
|
||||
0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x69, 0x64, 0x7d,
|
||||
0x12, 0x64, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69,
|
||||
0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f,
|
||||
0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f,
|
||||
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d,
|
||||
0x70, 0x74, 0x79, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x2a, 0x19, 0x2f, 0x61, 0x70,
|
||||
0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
|
||||
0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x65, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1e,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50,
|
||||
0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50,
|
||||
0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
|
||||
0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65,
|
||||
0x76, 0x69, 0x63, 0x65, 0x2d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x85, 0x01,
|
||||
0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74,
|
||||
0x68, 0x6d, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
|
||||
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2b, 0x2e, 0x61, 0x70,
|
||||
0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x72,
|
||||
0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52,
|
||||
0x0d, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x2d,
|
||||
0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72,
|
||||
0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a,
|
||||
0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x29, 0x0a,
|
||||
0x17, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c,
|
||||
0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xcb, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74,
|
||||
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73,
|
||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x0e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f,
|
||||
0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c,
|
||||
0x65, 0x52, 0x0d, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
|
||||
0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75,
|
||||
0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 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, 0x09, 0x75, 0x70, 0x64,
|
||||
0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x57, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
|
||||
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70,
|
||||
0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61,
|
||||
0x70, 0x69, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
|
||||
0x52, 0x0d, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x22,
|
||||
0x2c, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50,
|
||||
0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a,
|
||||
0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x7e, 0x0a,
|
||||
0x19, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69,
|
||||
0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69,
|
||||
0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74,
|
||||
0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d,
|
||||
0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x61, 0x72,
|
||||
0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68,
|
||||
0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x71, 0x0a,
|
||||
0x1a, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69,
|
||||
0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74,
|
||||
0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d,
|
||||
0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x06,
|
||||
0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61,
|
||||
0x70, 0x69, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
|
||||
0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
|
||||
0x22, 0x7c, 0x0a, 0x26, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72,
|
||||
0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x64, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68,
|
||||
0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f,
|
||||
0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
|
||||
0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x72,
|
||||
0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x41, 0x64, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x4c, 0x69,
|
||||
0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x3a,
|
||||
0x0a, 0x14, 0x41, 0x64, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x4c, 0x69,
|
||||
0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02,
|
||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x2a, 0x31, 0x0a, 0x0c, 0x43, 0x6f,
|
||||
0x64, 0x65, 0x63, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f,
|
||||
0x4e, 0x45, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x41, 0x59, 0x45, 0x4e, 0x4e, 0x45, 0x5f,
|
||||
0x4c, 0x50, 0x50, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x4a, 0x53, 0x10, 0x02, 0x2a, 0x50, 0x0a,
|
||||
0x0f, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x69, 0x6e, 0x64,
|
||||
0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a,
|
||||
0x07, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x42,
|
||||
0x53, 0x4f, 0x4c, 0x55, 0x54, 0x45, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x41, 0x55, 0x47,
|
||||
0x45, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x2a,
|
||||
0x55, 0x0a, 0x0e, 0x43, 0x61, 0x64, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x69, 0x74,
|
||||
0x79, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x45, 0x43, 0x5f, 0x31, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06,
|
||||
0x4d, 0x53, 0x5f, 0x35, 0x30, 0x30, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x53, 0x5f, 0x32,
|
||||
0x35, 0x30, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x53, 0x5f, 0x31, 0x30, 0x30, 0x10, 0x03,
|
||||
0x12, 0x09, 0x0a, 0x05, 0x4d, 0x53, 0x5f, 0x35, 0x30, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x4d,
|
||||
0x53, 0x5f, 0x32, 0x30, 0x10, 0x05, 0x2a, 0x61, 0x0a, 0x11, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64,
|
||||
0x43, 0x68, 0x41, 0x63, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x09, 0x0a, 0x05, 0x4b,
|
||||
0x48, 0x5a, 0x5f, 0x30, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x4b, 0x48, 0x5a, 0x5f, 0x32, 0x30,
|
||||
0x30, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x4b, 0x48, 0x5a, 0x5f, 0x34, 0x30, 0x30, 0x10, 0x02,
|
||||
0x12, 0x0b, 0x0a, 0x07, 0x4b, 0x48, 0x5a, 0x5f, 0x38, 0x30, 0x30, 0x10, 0x03, 0x12, 0x0c, 0x0a,
|
||||
0x08, 0x4b, 0x48, 0x5a, 0x5f, 0x31, 0x36, 0x30, 0x30, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x4b,
|
||||
0x48, 0x5a, 0x5f, 0x33, 0x32, 0x30, 0x30, 0x10, 0x05, 0x2a, 0x6c, 0x0a, 0x13, 0x52, 0x65, 0x6c,
|
||||
0x61, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x12, 0x16, 0x0a, 0x12, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x52, 0x45, 0x4c, 0x41,
|
||||
0x59, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x45, 0x4e, 0x41, 0x42,
|
||||
0x4c, 0x45, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x01, 0x12,
|
||||
0x0b, 0x0a, 0x07, 0x44, 0x59, 0x4e, 0x41, 0x4d, 0x49, 0x43, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15,
|
||||
0x45, 0x4e, 0x44, 0x5f, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52,
|
||||
0x4f, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x32, 0xb8, 0x05, 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
|
||||
0x12, 0x6c, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69,
|
||||
0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f,
|
||||
0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72,
|
||||
0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82,
|
||||
0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64,
|
||||
0x65, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x65,
|
||||
0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44,
|
||||
0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
||||
0x73, 0x65, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f, 0x61, 0x70, 0x69,
|
||||
0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73,
|
||||
0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x76, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12,
|
||||
0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
|
||||
0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d,
|
||||
0x3a, 0x01, 0x2a, 0x1a, 0x28, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x2d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x69, 0x64, 0x7d, 0x12, 0x64, 0x0a,
|
||||
0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65,
|
||||
0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c,
|
||||
0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
|
||||
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
|
||||
0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x2a, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64,
|
||||
0x65, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2f, 0x7b,
|
||||
0x69, 0x64, 0x7d, 0x12, 0x65, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66,
|
||||
0x69, 0x6c, 0x65, 0x41, 0x64, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x73,
|
||||
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25,
|
||||
0x12, 0x23, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x70, 0x72,
|
||||
0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2f, 0x61, 0x64, 0x72, 0x2d, 0x61, 0x6c, 0x67, 0x6f, 0x72,
|
||||
0x69, 0x74, 0x68, 0x6d, 0x73, 0x42, 0x6a, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72,
|
||||
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x12, 0x44, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01,
|
||||
0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69,
|
||||
0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61,
|
||||
0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69,
|
||||
0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70,
|
||||
0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66,
|
||||
0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3,
|
||||
0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x2d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x85, 0x01, 0x0a, 0x11, 0x4c,
|
||||
0x69, 0x73, 0x74, 0x41, 0x64, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x73,
|
||||
0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
|
||||
0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c,
|
||||
0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
|
||||
0x41, 0x64, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x73, 0x52, 0x65, 0x73,
|
||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f,
|
||||
0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x70, 0x72, 0x6f, 0x66, 0x69,
|
||||
0x6c, 0x65, 0x73, 0x2f, 0x61, 0x64, 0x72, 0x2d, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68,
|
||||
0x6d, 0x73, 0x42, 0x98, 0x01, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73,
|
||||
0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e,
|
||||
0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70,
|
||||
0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b,
|
||||
0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa, 0x02,
|
||||
0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69, 0xca,
|
||||
0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69,
|
||||
0xe2, 0x02, 0x1a, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5c, 0x43,
|
||||
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0x62, 0x06, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
21
api/go/api/device_profile_template.pb.go
vendored
21
api/go/api/device_profile_template.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: api/device_profile_template.proto
|
||||
|
||||
@ -1088,14 +1088,17 @@ var file_api_device_profile_template_proto_rawDesc = []byte{
|
||||
0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82,
|
||||
0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x2d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2d, 0x74, 0x65, 0x6d, 0x70, 0x6c,
|
||||
0x61, 0x74, 0x65, 0x73, 0x42, 0x72, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70,
|
||||
0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x1a, 0x44, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
|
||||
0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
|
||||
0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63,
|
||||
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f,
|
||||
0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73,
|
||||
0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x61, 0x74, 0x65, 0x73, 0x42, 0xa0, 0x01, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72,
|
||||
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x1a, 0x44, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74,
|
||||
0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
|
||||
0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f,
|
||||
0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67,
|
||||
0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70,
|
||||
0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69, 0xca, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72,
|
||||
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0xe2, 0x02, 0x1a, 0x47, 0x50, 0x42,
|
||||
0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5c, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74,
|
||||
0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
1232
api/go/api/gateway.pb.go
vendored
1232
api/go/api/gateway.pb.go
vendored
File diff suppressed because it is too large
Load Diff
197
api/go/api/gateway_grpc.pb.go
vendored
197
api/go/api/gateway_grpc.pb.go
vendored
@ -27,6 +27,11 @@ const (
|
||||
GatewayService_List_FullMethodName = "/api.GatewayService/List"
|
||||
GatewayService_GenerateClientCertificate_FullMethodName = "/api.GatewayService/GenerateClientCertificate"
|
||||
GatewayService_GetMetrics_FullMethodName = "/api.GatewayService/GetMetrics"
|
||||
GatewayService_GetDutyCycleMetrics_FullMethodName = "/api.GatewayService/GetDutyCycleMetrics"
|
||||
GatewayService_GetRelayGateway_FullMethodName = "/api.GatewayService/GetRelayGateway"
|
||||
GatewayService_ListRelayGateways_FullMethodName = "/api.GatewayService/ListRelayGateways"
|
||||
GatewayService_UpdateRelayGateway_FullMethodName = "/api.GatewayService/UpdateRelayGateway"
|
||||
GatewayService_DeleteRelayGateway_FullMethodName = "/api.GatewayService/DeleteRelayGateway"
|
||||
)
|
||||
|
||||
// GatewayServiceClient is the client API for GatewayService service.
|
||||
@ -47,6 +52,17 @@ type GatewayServiceClient interface {
|
||||
GenerateClientCertificate(ctx context.Context, in *GenerateGatewayClientCertificateRequest, opts ...grpc.CallOption) (*GenerateGatewayClientCertificateResponse, error)
|
||||
// GetMetrics returns the gateway metrics.
|
||||
GetMetrics(ctx context.Context, in *GetGatewayMetricsRequest, opts ...grpc.CallOption) (*GetGatewayMetricsResponse, error)
|
||||
// GetDutyCycleMetrics returns the duty-cycle metrics.
|
||||
// Note that only the last 2 hours of data are stored. Currently only per minute aggregation is available.
|
||||
GetDutyCycleMetrics(ctx context.Context, in *GetGatewayDutyCycleMetricsRequest, opts ...grpc.CallOption) (*GetGatewayDutyCycleMetricsResponse, error)
|
||||
// Get the given Relay Gateway.
|
||||
GetRelayGateway(ctx context.Context, in *GetRelayGatewayRequest, opts ...grpc.CallOption) (*GetRelayGatewayResponse, error)
|
||||
// List the detected Relay Gateways.
|
||||
ListRelayGateways(ctx context.Context, in *ListRelayGatewaysRequest, opts ...grpc.CallOption) (*ListRelayGatewaysResponse, error)
|
||||
// Update the given Relay Gateway.
|
||||
UpdateRelayGateway(ctx context.Context, in *UpdateRelayGatewayRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
|
||||
// Delete the given Relay Gateway.
|
||||
DeleteRelayGateway(ctx context.Context, in *DeleteRelayGatewayRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
|
||||
}
|
||||
|
||||
type gatewayServiceClient struct {
|
||||
@ -120,6 +136,51 @@ func (c *gatewayServiceClient) GetMetrics(ctx context.Context, in *GetGatewayMet
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *gatewayServiceClient) GetDutyCycleMetrics(ctx context.Context, in *GetGatewayDutyCycleMetricsRequest, opts ...grpc.CallOption) (*GetGatewayDutyCycleMetricsResponse, error) {
|
||||
out := new(GetGatewayDutyCycleMetricsResponse)
|
||||
err := c.cc.Invoke(ctx, GatewayService_GetDutyCycleMetrics_FullMethodName, in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *gatewayServiceClient) GetRelayGateway(ctx context.Context, in *GetRelayGatewayRequest, opts ...grpc.CallOption) (*GetRelayGatewayResponse, error) {
|
||||
out := new(GetRelayGatewayResponse)
|
||||
err := c.cc.Invoke(ctx, GatewayService_GetRelayGateway_FullMethodName, in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *gatewayServiceClient) ListRelayGateways(ctx context.Context, in *ListRelayGatewaysRequest, opts ...grpc.CallOption) (*ListRelayGatewaysResponse, error) {
|
||||
out := new(ListRelayGatewaysResponse)
|
||||
err := c.cc.Invoke(ctx, GatewayService_ListRelayGateways_FullMethodName, in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *gatewayServiceClient) UpdateRelayGateway(ctx context.Context, in *UpdateRelayGatewayRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
|
||||
out := new(emptypb.Empty)
|
||||
err := c.cc.Invoke(ctx, GatewayService_UpdateRelayGateway_FullMethodName, in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *gatewayServiceClient) DeleteRelayGateway(ctx context.Context, in *DeleteRelayGatewayRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
|
||||
out := new(emptypb.Empty)
|
||||
err := c.cc.Invoke(ctx, GatewayService_DeleteRelayGateway_FullMethodName, in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// GatewayServiceServer is the server API for GatewayService service.
|
||||
// All implementations must embed UnimplementedGatewayServiceServer
|
||||
// for forward compatibility
|
||||
@ -138,6 +199,17 @@ type GatewayServiceServer interface {
|
||||
GenerateClientCertificate(context.Context, *GenerateGatewayClientCertificateRequest) (*GenerateGatewayClientCertificateResponse, error)
|
||||
// GetMetrics returns the gateway metrics.
|
||||
GetMetrics(context.Context, *GetGatewayMetricsRequest) (*GetGatewayMetricsResponse, error)
|
||||
// GetDutyCycleMetrics returns the duty-cycle metrics.
|
||||
// Note that only the last 2 hours of data are stored. Currently only per minute aggregation is available.
|
||||
GetDutyCycleMetrics(context.Context, *GetGatewayDutyCycleMetricsRequest) (*GetGatewayDutyCycleMetricsResponse, error)
|
||||
// Get the given Relay Gateway.
|
||||
GetRelayGateway(context.Context, *GetRelayGatewayRequest) (*GetRelayGatewayResponse, error)
|
||||
// List the detected Relay Gateways.
|
||||
ListRelayGateways(context.Context, *ListRelayGatewaysRequest) (*ListRelayGatewaysResponse, error)
|
||||
// Update the given Relay Gateway.
|
||||
UpdateRelayGateway(context.Context, *UpdateRelayGatewayRequest) (*emptypb.Empty, error)
|
||||
// Delete the given Relay Gateway.
|
||||
DeleteRelayGateway(context.Context, *DeleteRelayGatewayRequest) (*emptypb.Empty, error)
|
||||
mustEmbedUnimplementedGatewayServiceServer()
|
||||
}
|
||||
|
||||
@ -166,6 +238,21 @@ func (UnimplementedGatewayServiceServer) GenerateClientCertificate(context.Conte
|
||||
func (UnimplementedGatewayServiceServer) GetMetrics(context.Context, *GetGatewayMetricsRequest) (*GetGatewayMetricsResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method GetMetrics not implemented")
|
||||
}
|
||||
func (UnimplementedGatewayServiceServer) GetDutyCycleMetrics(context.Context, *GetGatewayDutyCycleMetricsRequest) (*GetGatewayDutyCycleMetricsResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method GetDutyCycleMetrics not implemented")
|
||||
}
|
||||
func (UnimplementedGatewayServiceServer) GetRelayGateway(context.Context, *GetRelayGatewayRequest) (*GetRelayGatewayResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method GetRelayGateway not implemented")
|
||||
}
|
||||
func (UnimplementedGatewayServiceServer) ListRelayGateways(context.Context, *ListRelayGatewaysRequest) (*ListRelayGatewaysResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method ListRelayGateways not implemented")
|
||||
}
|
||||
func (UnimplementedGatewayServiceServer) UpdateRelayGateway(context.Context, *UpdateRelayGatewayRequest) (*emptypb.Empty, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method UpdateRelayGateway not implemented")
|
||||
}
|
||||
func (UnimplementedGatewayServiceServer) DeleteRelayGateway(context.Context, *DeleteRelayGatewayRequest) (*emptypb.Empty, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method DeleteRelayGateway not implemented")
|
||||
}
|
||||
func (UnimplementedGatewayServiceServer) mustEmbedUnimplementedGatewayServiceServer() {}
|
||||
|
||||
// UnsafeGatewayServiceServer may be embedded to opt out of forward compatibility for this service.
|
||||
@ -305,6 +392,96 @@ func _GatewayService_GetMetrics_Handler(srv interface{}, ctx context.Context, de
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _GatewayService_GetDutyCycleMetrics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(GetGatewayDutyCycleMetricsRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(GatewayServiceServer).GetDutyCycleMetrics(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: GatewayService_GetDutyCycleMetrics_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(GatewayServiceServer).GetDutyCycleMetrics(ctx, req.(*GetGatewayDutyCycleMetricsRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _GatewayService_GetRelayGateway_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(GetRelayGatewayRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(GatewayServiceServer).GetRelayGateway(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: GatewayService_GetRelayGateway_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(GatewayServiceServer).GetRelayGateway(ctx, req.(*GetRelayGatewayRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _GatewayService_ListRelayGateways_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(ListRelayGatewaysRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(GatewayServiceServer).ListRelayGateways(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: GatewayService_ListRelayGateways_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(GatewayServiceServer).ListRelayGateways(ctx, req.(*ListRelayGatewaysRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _GatewayService_UpdateRelayGateway_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(UpdateRelayGatewayRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(GatewayServiceServer).UpdateRelayGateway(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: GatewayService_UpdateRelayGateway_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(GatewayServiceServer).UpdateRelayGateway(ctx, req.(*UpdateRelayGatewayRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _GatewayService_DeleteRelayGateway_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(DeleteRelayGatewayRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(GatewayServiceServer).DeleteRelayGateway(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: GatewayService_DeleteRelayGateway_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(GatewayServiceServer).DeleteRelayGateway(ctx, req.(*DeleteRelayGatewayRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
// GatewayService_ServiceDesc is the grpc.ServiceDesc for GatewayService service.
|
||||
// It's only intended for direct use with grpc.RegisterService,
|
||||
// and not to be introspected or modified (even as a copy)
|
||||
@ -340,6 +517,26 @@ var GatewayService_ServiceDesc = grpc.ServiceDesc{
|
||||
MethodName: "GetMetrics",
|
||||
Handler: _GatewayService_GetMetrics_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "GetDutyCycleMetrics",
|
||||
Handler: _GatewayService_GetDutyCycleMetrics_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "GetRelayGateway",
|
||||
Handler: _GatewayService_GetRelayGateway_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "ListRelayGateways",
|
||||
Handler: _GatewayService_ListRelayGateways_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "UpdateRelayGateway",
|
||||
Handler: _GatewayService_UpdateRelayGateway_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "DeleteRelayGateway",
|
||||
Handler: _GatewayService_DeleteRelayGateway_Handler,
|
||||
},
|
||||
},
|
||||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "api/gateway.proto",
|
||||
|
496
api/go/api/internal.pb.go
vendored
496
api/go/api/internal.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: api/internal.proto
|
||||
|
||||
@ -893,6 +893,10 @@ type SettingsResponse struct {
|
||||
OpenidConnect *OpenIdConnect `protobuf:"bytes,1,opt,name=openid_connect,json=openidConnect,proto3" json:"openid_connect,omitempty"`
|
||||
// OAuth2 settings.
|
||||
Oauth2 *OAuth2 `protobuf:"bytes,2,opt,name=oauth2,proto3" json:"oauth2,omitempty"`
|
||||
// Tileserver URL.
|
||||
TileserverUrl string `protobuf:"bytes,3,opt,name=tileserver_url,json=tileserverUrl,proto3" json:"tileserver_url,omitempty"`
|
||||
// Map attribution.
|
||||
MapAttribution string `protobuf:"bytes,4,opt,name=map_attribution,json=mapAttribution,proto3" json:"map_attribution,omitempty"`
|
||||
}
|
||||
|
||||
func (x *SettingsResponse) Reset() {
|
||||
@ -941,6 +945,20 @@ func (x *SettingsResponse) GetOauth2() *OAuth2 {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *SettingsResponse) GetTileserverUrl() string {
|
||||
if x != nil {
|
||||
return x.TileserverUrl
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *SettingsResponse) GetMapAttribution() string {
|
||||
if x != nil {
|
||||
return x.MapAttribution
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type OpenIdConnect struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@ -2301,242 +2319,250 @@ var file_api_internal_proto_rawDesc = []byte{
|
||||
0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61,
|
||||
0x79, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x6e,
|
||||
0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x61, 0x74, 0x65, 0x77,
|
||||
0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x72, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e,
|
||||
0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x0e, 0x6f, 0x70,
|
||||
0x65, 0x6e, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x43,
|
||||
0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x64, 0x43, 0x6f,
|
||||
0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x23, 0x0a, 0x06, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x18,
|
||||
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x41, 0x75, 0x74,
|
||||
0x68, 0x32, 0x52, 0x06, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x22, 0xad, 0x01, 0x0a, 0x0d, 0x4f,
|
||||
0x70, 0x65, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07,
|
||||
0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65,
|
||||
0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f,
|
||||
0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x69, 0x6e,
|
||||
0x55, 0x72, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x6c, 0x61, 0x62,
|
||||
0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x4c,
|
||||
0x61, 0x62, 0x65, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f, 0x75,
|
||||
0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74,
|
||||
0x55, 0x72, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x64,
|
||||
0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6c, 0x6f, 0x67,
|
||||
0x69, 0x6e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x22, 0xa6, 0x01, 0x0a, 0x06, 0x4f,
|
||||
0x41, 0x75, 0x74, 0x68, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12,
|
||||
0x1b, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x1f, 0x0a, 0x0b,
|
||||
0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x1d, 0x0a,
|
||||
0x0a, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x25, 0x0a, 0x0e,
|
||||
0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x05,
|
||||
0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x64, 0x69, 0x72,
|
||||
0x65, 0x63, 0x74, 0x22, 0x45, 0x0a, 0x19, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x6e,
|
||||
0x6e, 0x65, 0x63, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
|
||||
0x63, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x32, 0x0a, 0x1a, 0x4f, 0x70,
|
||||
0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xc2, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x74, 0x69,
|
||||
0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x0e, 0x6f,
|
||||
0x70, 0x65, 0x6e, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x64,
|
||||
0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x64, 0x43,
|
||||
0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x23, 0x0a, 0x06, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x32,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x41, 0x75,
|
||||
0x74, 0x68, 0x32, 0x52, 0x06, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x12, 0x25, 0x0a, 0x0e, 0x74,
|
||||
0x69, 0x6c, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55,
|
||||
0x72, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62,
|
||||
0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x61, 0x70,
|
||||
0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xad, 0x01, 0x0a, 0x0d,
|
||||
0x4f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x18, 0x0a,
|
||||
0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07,
|
||||
0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x69, 0x6e,
|
||||
0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x69,
|
||||
0x6e, 0x55, 0x72, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x6c, 0x61,
|
||||
0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x69, 0x6e,
|
||||
0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f,
|
||||
0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x6f, 0x75,
|
||||
0x74, 0x55, 0x72, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x72, 0x65,
|
||||
0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6c, 0x6f,
|
||||
0x67, 0x69, 0x6e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x22, 0xa6, 0x01, 0x0a, 0x06,
|
||||
0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
|
||||
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
|
||||
0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x1f, 0x0a,
|
||||
0x0b, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x1d,
|
||||
0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x25, 0x0a,
|
||||
0x0e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18,
|
||||
0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x64, 0x69,
|
||||
0x72, 0x65, 0x63, 0x74, 0x22, 0x45, 0x0a, 0x19, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x43, 0x6f,
|
||||
0x6e, 0x6e, 0x65, 0x63, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02,
|
||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x32, 0x0a, 0x1a, 0x4f,
|
||||
0x70, 0x65, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x4c, 0x6f, 0x67, 0x69,
|
||||
0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b,
|
||||
0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22,
|
||||
0x3e, 0x0a, 0x12, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61,
|
||||
0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22,
|
||||
0x2b, 0x0a, 0x13, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x37, 0x0a, 0x18,
|
||||
0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72,
|
||||
0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61,
|
||||
0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e,
|
||||
0x61, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x93, 0x02, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
||||
0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x6f,
|
||||
0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76,
|
||||
0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69,
|
||||
0x76, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d,
|
||||
0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x46, 0x0a,
|
||||
0x08, 0x64, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
||||
0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73,
|
||||
0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e,
|
||||
0x44, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x64, 0x72,
|
||||
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x65, 0x76, 0x65, 0x72, 0x5f, 0x73,
|
||||
0x65, 0x65, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52,
|
||||
0x0e, 0x6e, 0x65, 0x76, 0x65, 0x72, 0x53, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a,
|
||||
0x3a, 0x0a, 0x0c, 0x44, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
|
||||
0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65,
|
||||
0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d,
|
||||
0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x38, 0x0a, 0x19, 0x47,
|
||||
0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72,
|
||||
0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61,
|
||||
0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e,
|
||||
0x61, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x8e, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74,
|
||||
0x65, 0x77, 0x61, 0x79, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x63,
|
||||
0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, 0x6e, 0x6c, 0x69,
|
||||
0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x66, 0x66, 0x6c, 0x69,
|
||||
0x6e, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c,
|
||||
0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x10,
|
||||
0x6e, 0x65, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x65, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74,
|
||||
0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6e, 0x65, 0x76, 0x65, 0x72, 0x53, 0x65, 0x65,
|
||||
0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xfc, 0x01, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x49, 0x74,
|
||||
0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
|
||||
0x69, 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, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x04, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x3c, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70,
|
||||
0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61,
|
||||
0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65,
|
||||
0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70,
|
||||
0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72,
|
||||
0x74, 0x69, 0x65, 0x73, 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, 0x3b, 0x0a, 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x47,
|
||||
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69,
|
||||
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
|
||||
0x49, 0x64, 0x22, 0x34, 0x0a, 0x19, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
|
||||
0x17, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
|
||||
0x52, 0x06, 0x64, 0x65, 0x76, 0x45, 0x75, 0x69, 0x22, 0x34, 0x0a, 0x19, 0x53, 0x74, 0x72, 0x65,
|
||||
0x61, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x45, 0x75, 0x69, 0x22, 0x44,
|
||||
0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73,
|
||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73,
|
||||
0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x67,
|
||||
0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x07, 0x72, 0x65, 0x67,
|
||||
0x69, 0x6f, 0x6e, 0x73, 0x22, 0x6a, 0x0a, 0x0e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4c, 0x69,
|
||||
0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
|
||||
0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x20,
|
||||
0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x22, 0x22, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
|
||||
0x52, 0x02, 0x69, 0x64, 0x22, 0xb2, 0x03, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x65, 0x67, 0x69,
|
||||
0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x06, 0x72, 0x65,
|
||||
0x67, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6d,
|
||||
0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69,
|
||||
0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18,
|
||||
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12,
|
||||
0x3b, 0x0a, 0x0f, 0x75, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65,
|
||||
0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52,
|
||||
0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x0e, 0x75, 0x70,
|
||||
0x6c, 0x69, 0x6e, 0x6b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x1b, 0x0a, 0x09,
|
||||
0x72, 0x78, 0x31, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52,
|
||||
0x08, 0x72, 0x78, 0x31, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x22, 0x0a, 0x0d, 0x72, 0x78, 0x31,
|
||||
0x5f, 0x64, 0x72, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d,
|
||||
0x52, 0x0b, 0x72, 0x78, 0x31, 0x44, 0x72, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x15, 0x0a,
|
||||
0x06, 0x72, 0x78, 0x32, 0x5f, 0x64, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x72,
|
||||
0x78, 0x32, 0x44, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x78, 0x32, 0x5f, 0x66, 0x72, 0x65, 0x71,
|
||||
0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x72, 0x78, 0x32,
|
||||
0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x2e, 0x0a, 0x14, 0x63, 0x6c, 0x61,
|
||||
0x73, 0x73, 0x5f, 0x62, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x64,
|
||||
0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x50,
|
||||
0x69, 0x6e, 0x67, 0x53, 0x6c, 0x6f, 0x74, 0x44, 0x72, 0x12, 0x3c, 0x0a, 0x1b, 0x63, 0x6c, 0x61,
|
||||
0x73, 0x73, 0x5f, 0x62, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x66,
|
||||
0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17,
|
||||
0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x50, 0x69, 0x6e, 0x67, 0x53, 0x6c, 0x6f, 0x74, 0x46, 0x72,
|
||||
0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,
|
||||
0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65,
|
||||
0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5b, 0x0a, 0x0d, 0x52, 0x65, 0x67,
|
||||
0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72,
|
||||
0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x66,
|
||||
0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x72, 0x5f, 0x6d,
|
||||
0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x64, 0x72, 0x4d, 0x69, 0x6e, 0x12,
|
||||
0x15, 0x0a, 0x06, 0x64, 0x72, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52,
|
||||
0x05, 0x64, 0x72, 0x4d, 0x61, 0x78, 0x22, 0x2e, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72,
|
||||
0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07,
|
||||
0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76,
|
||||
0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0xb9, 0x09, 0x0a, 0x0f, 0x49, 0x6e, 0x74, 0x65, 0x72,
|
||||
0x6e, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x4c, 0x6f,
|
||||
0x67, 0x69, 0x6e, 0x12, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x67,
|
||||
0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x07,
|
||||
0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
|
||||
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a,
|
||||
0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73,
|
||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0c, 0x47, 0x6c, 0x6f, 0x62, 0x61,
|
||||
0x6c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x6c,
|
||||
0x6f, 0x62, 0x61, 0x6c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x65,
|
||||
0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x45,
|
||||
0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x12, 0x18,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65,
|
||||
0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43,
|
||||
0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
||||
0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41,
|
||||
0x70, 0x69, 0x4b, 0x65, 0x79, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x6c, 0x65,
|
||||
0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
|
||||
0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
|
||||
0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0b, 0x4c, 0x69, 0x73,
|
||||
0x74, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c,
|
||||
0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x4b,
|
||||
0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a,
|
||||
0x08, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
|
||||
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
|
||||
0x79, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73,
|
||||
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x12, 0x4f, 0x70,
|
||||
0x65, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e,
|
||||
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65,
|
||||
0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x3e,
|
||||
0x0a, 0x12, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74,
|
||||
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x2b,
|
||||
0x0a, 0x13, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73,
|
||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x37, 0x0a, 0x18, 0x47,
|
||||
0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79,
|
||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e,
|
||||
0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61,
|
||||
0x6e, 0x74, 0x49, 0x64, 0x22, 0x93, 0x02, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
||||
0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x6f, 0x75,
|
||||
0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65,
|
||||
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76,
|
||||
0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x69,
|
||||
0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x08,
|
||||
0x64, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x53,
|
||||
0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44,
|
||||
0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x64, 0x72, 0x43,
|
||||
0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x65, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x65,
|
||||
0x65, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e,
|
||||
0x6e, 0x65, 0x76, 0x65, 0x72, 0x53, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x3a,
|
||||
0x0a, 0x0c, 0x44, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
|
||||
0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79,
|
||||
0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52,
|
||||
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x38, 0x0a, 0x19, 0x47, 0x65,
|
||||
0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79,
|
||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e,
|
||||
0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61,
|
||||
0x6e, 0x74, 0x49, 0x64, 0x22, 0x8e, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65,
|
||||
0x77, 0x61, 0x79, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
||||
0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x63, 0x6f,
|
||||
0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, 0x6e, 0x6c, 0x69, 0x6e,
|
||||
0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e,
|
||||
0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6f,
|
||||
0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x6e,
|
||||
0x65, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x65, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
|
||||
0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6e, 0x65, 0x76, 0x65, 0x72, 0x53, 0x65, 0x65, 0x6e,
|
||||
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xfc, 0x01, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x49, 0x74, 0x65,
|
||||
0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
|
||||
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, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x3c, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65,
|
||||
0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x4c, 0x6f, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72,
|
||||
0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65,
|
||||
0x72, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
|
||||
0x69, 0x65, 0x73, 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, 0x3b, 0x0a, 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x47, 0x61,
|
||||
0x74, 0x65, 0x77, 0x61, 0x79, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
|
||||
0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49,
|
||||
0x64, 0x22, 0x34, 0x0a, 0x19, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17,
|
||||
0x0a, 0x07, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x06, 0x64, 0x65, 0x76, 0x45, 0x75, 0x69, 0x22, 0x34, 0x0a, 0x19, 0x53, 0x74, 0x72, 0x65, 0x61,
|
||||
0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x45, 0x75, 0x69, 0x22, 0x44, 0x0a,
|
||||
0x13, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x18,
|
||||
0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x67, 0x69,
|
||||
0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x07, 0x72, 0x65, 0x67, 0x69,
|
||||
0x6f, 0x6e, 0x73, 0x22, 0x6a, 0x0a, 0x0e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73,
|
||||
0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18,
|
||||
0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52,
|
||||
0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a,
|
||||
0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22,
|
||||
0x22, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x02, 0x69, 0x64, 0x22, 0xb2, 0x03, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f,
|
||||
0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x06, 0x72, 0x65, 0x67,
|
||||
0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
|
||||
0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f,
|
||||
0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03,
|
||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3b,
|
||||
0x0a, 0x0f, 0x75, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
|
||||
0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65,
|
||||
0x67, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x0e, 0x75, 0x70, 0x6c,
|
||||
0x69, 0x6e, 0x6b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x72,
|
||||
0x78, 0x31, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08,
|
||||
0x72, 0x78, 0x31, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x22, 0x0a, 0x0d, 0x72, 0x78, 0x31, 0x5f,
|
||||
0x64, 0x72, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52,
|
||||
0x0b, 0x72, 0x78, 0x31, 0x44, 0x72, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x15, 0x0a, 0x06,
|
||||
0x72, 0x78, 0x32, 0x5f, 0x64, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x72, 0x78,
|
||||
0x32, 0x44, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x78, 0x32, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75,
|
||||
0x65, 0x6e, 0x63, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x72, 0x78, 0x32, 0x46,
|
||||
0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x2e, 0x0a, 0x14, 0x63, 0x6c, 0x61, 0x73,
|
||||
0x73, 0x5f, 0x62, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x64, 0x72,
|
||||
0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x50, 0x69,
|
||||
0x6e, 0x67, 0x53, 0x6c, 0x6f, 0x74, 0x44, 0x72, 0x12, 0x3c, 0x0a, 0x1b, 0x63, 0x6c, 0x61, 0x73,
|
||||
0x73, 0x5f, 0x62, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x66, 0x72,
|
||||
0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x63,
|
||||
0x6c, 0x61, 0x73, 0x73, 0x42, 0x50, 0x69, 0x6e, 0x67, 0x53, 0x6c, 0x6f, 0x74, 0x46, 0x72, 0x65,
|
||||
0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
|
||||
0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73,
|
||||
0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5b, 0x0a, 0x0d, 0x52, 0x65, 0x67, 0x69,
|
||||
0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x65,
|
||||
0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x66, 0x72,
|
||||
0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x72, 0x5f, 0x6d, 0x69,
|
||||
0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x64, 0x72, 0x4d, 0x69, 0x6e, 0x12, 0x15,
|
||||
0x0a, 0x06, 0x64, 0x72, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05,
|
||||
0x64, 0x72, 0x4d, 0x61, 0x78, 0x22, 0x2e, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73,
|
||||
0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76,
|
||||
0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65,
|
||||
0x72, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0xb9, 0x09, 0x0a, 0x0f, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e,
|
||||
0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x4c, 0x6f, 0x67,
|
||||
0x69, 0x6e, 0x12, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x67, 0x69,
|
||||
0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x07, 0x50,
|
||||
0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
|
||||
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x14,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0c, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c,
|
||||
0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x6c, 0x6f,
|
||||
0x62, 0x61, 0x6c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x65, 0x61,
|
||||
0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x45, 0x0a,
|
||||
0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x12, 0x18, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79,
|
||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72,
|
||||
0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
||||
0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70,
|
||||
0x69, 0x4b, 0x65, 0x79, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74,
|
||||
0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16,
|
||||
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
|
||||
0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74,
|
||||
0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69,
|
||||
0x73, 0x74, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x1a, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x4b, 0x65,
|
||||
0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x08,
|
||||
0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
|
||||
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
|
||||
0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x12, 0x4f, 0x70, 0x65,
|
||||
0x6e, 0x49, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12,
|
||||
0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x6e, 0x6e,
|
||||
0x65, 0x63, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
|
||||
0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x6e, 0x6e,
|
||||
0x65, 0x63, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x22, 0x00, 0x12, 0x42, 0x0a, 0x0b, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x4c, 0x6f, 0x67, 0x69,
|
||||
0x6e, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x4c, 0x6f,
|
||||
0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x69,
|
||||
0x2e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1d, 0x2e, 0x61, 0x70,
|
||||
0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x6e,
|
||||
0x6e, 0x65, 0x63, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x6e,
|
||||
0x6e, 0x65, 0x63, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
||||
0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0b, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x4c, 0x6f, 0x67,
|
||||
0x69, 0x6e, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x4c,
|
||||
0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73,
|
||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x44, 0x65,
|
||||
0x76, 0x69, 0x63, 0x65, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1d, 0x2e, 0x61,
|
||||
0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x53, 0x75, 0x6d,
|
||||
0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x53, 0x75, 0x6d, 0x6d,
|
||||
0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69,
|
||||
0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61,
|
||||
0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x12,
|
||||
0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61,
|
||||
0x72, 0x79, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65,
|
||||
0x77, 0x61, 0x79, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65,
|
||||
0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65,
|
||||
0x77, 0x61, 0x79, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
||||
0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x47,
|
||||
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x61,
|
||||
0x70, 0x69, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
|
||||
0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x00, 0x30, 0x01, 0x12,
|
||||
0x46, 0x0a, 0x12, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x46,
|
||||
0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x72, 0x65,
|
||||
0x61, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x67, 0x49,
|
||||
0x74, 0x65, 0x6d, 0x22, 0x00, 0x30, 0x01, 0x12, 0x46, 0x0a, 0x12, 0x53, 0x74, 0x72, 0x65, 0x61,
|
||||
0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1e, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x00, 0x30, 0x01, 0x12,
|
||||
0x41, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16,
|
||||
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
|
||||
0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73,
|
||||
0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x22, 0x00, 0x12, 0x3c, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12,
|
||||
0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74,
|
||||
0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
|
||||
0x12, 0x3f, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16,
|
||||
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
|
||||
0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74,
|
||||
0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
|
||||
0x00, 0x42, 0x65, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61,
|
||||
0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x0d, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,
|
||||
0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
|
||||
0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63,
|
||||
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f,
|
||||
0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73,
|
||||
0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x57, 0x0a,
|
||||
0x12, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x53, 0x75, 0x6d, 0x6d,
|
||||
0x61, 0x72, 0x79, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74,
|
||||
0x65, 0x77, 0x61, 0x79, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74,
|
||||
0x65, 0x77, 0x61, 0x79, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
|
||||
0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1f, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61,
|
||||
0x79, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x00, 0x30, 0x01,
|
||||
0x12, 0x46, 0x0a, 0x12, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x72,
|
||||
0x65, 0x61, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x67,
|
||||
0x49, 0x74, 0x65, 0x6d, 0x22, 0x00, 0x30, 0x01, 0x12, 0x46, 0x0a, 0x12, 0x53, 0x74, 0x72, 0x65,
|
||||
0x61, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1e,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x00, 0x30, 0x01,
|
||||
0x12, 0x41, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x12,
|
||||
0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
|
||||
0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69,
|
||||
0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
||||
0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e,
|
||||
0x12, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e,
|
||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65,
|
||||
0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
|
||||
0x00, 0x12, 0x3f, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12,
|
||||
0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
|
||||
0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65,
|
||||
0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x22, 0x00, 0x42, 0x93, 0x01, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73,
|
||||
0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x0d, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e,
|
||||
0x61, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75,
|
||||
0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b,
|
||||
0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f,
|
||||
0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72,
|
||||
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69, 0xca, 0x02, 0x0e, 0x43, 0x68, 0x69,
|
||||
0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0xe2, 0x02, 0x1a, 0x47, 0x50,
|
||||
0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5c, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73,
|
||||
0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
350
api/go/api/multicast_group.pb.go
vendored
350
api/go/api/multicast_group.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: api/multicast_group.proto
|
||||
|
||||
@ -1069,6 +1069,9 @@ type MulticastGroupQueueItem struct {
|
||||
FPort uint32 `protobuf:"varint,3,opt,name=f_port,json=fPort,proto3" json:"f_port,omitempty"`
|
||||
// Payload.
|
||||
Data []byte `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"`
|
||||
// Expires at (optional).
|
||||
// Expired queue-items will be automatically removed from the queue.
|
||||
ExpiresAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"`
|
||||
}
|
||||
|
||||
func (x *MulticastGroupQueueItem) Reset() {
|
||||
@ -1131,6 +1134,13 @@ func (x *MulticastGroupQueueItem) GetData() []byte {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *MulticastGroupQueueItem) GetExpiresAt() *timestamppb.Timestamp {
|
||||
if x != nil {
|
||||
return x.ExpiresAt
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type EnqueueMulticastGroupQueueItemRequest struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@ -1511,7 +1521,7 @@ var file_api_multicast_group_proto_rawDesc = []byte{
|
||||
0x28, 0x09, 0x52, 0x10, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f,
|
||||
0x75, 0x70, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f,
|
||||
0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61,
|
||||
0x79, 0x49, 0x64, 0x22, 0x87, 0x01, 0x0a, 0x17, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73,
|
||||
0x79, 0x49, 0x64, 0x22, 0xc2, 0x01, 0x0a, 0x17, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73,
|
||||
0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12,
|
||||
0x2c, 0x0a, 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f,
|
||||
0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x75, 0x6c,
|
||||
@ -1519,149 +1529,156 @@ var file_api_multicast_group_proto_rawDesc = []byte{
|
||||
0x05, 0x66, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x66, 0x43,
|
||||
0x6e, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01,
|
||||
0x28, 0x0d, 0x52, 0x05, 0x66, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74,
|
||||
0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x64, 0x0a,
|
||||
0x25, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73,
|
||||
0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f,
|
||||
0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69,
|
||||
0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51,
|
||||
0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x09, 0x71, 0x75, 0x65, 0x75, 0x65, 0x49,
|
||||
0x74, 0x65, 0x6d, 0x22, 0x3d, 0x0a, 0x26, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x75,
|
||||
0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75,
|
||||
0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x13, 0x0a,
|
||||
0x05, 0x66, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x66, 0x43,
|
||||
0x6e, 0x74, 0x22, 0x4f, 0x0a, 0x1f, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69,
|
||||
0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
|
||||
0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x10, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75,
|
||||
0x70, 0x49, 0x64, 0x22, 0x4e, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69,
|
||||
0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
|
||||
0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x10, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75,
|
||||
0x70, 0x49, 0x64, 0x22, 0x55, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69,
|
||||
0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18,
|
||||
0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x75, 0x6c, 0x74,
|
||||
0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a,
|
||||
0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x18, 0x05, 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, 0x09, 0x65,
|
||||
0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x41, 0x74, 0x22, 0x64, 0x0a, 0x25, 0x45, 0x6e, 0x71, 0x75,
|
||||
0x65, 0x75, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75,
|
||||
0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x12, 0x3b, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x75, 0x6c, 0x74,
|
||||
0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49,
|
||||
0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x2a, 0x2e, 0x0a, 0x12, 0x4d, 0x75,
|
||||
0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65,
|
||||
0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x5f, 0x43, 0x10, 0x00, 0x12, 0x0b, 0x0a,
|
||||
0x07, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x5f, 0x42, 0x10, 0x01, 0x2a, 0x37, 0x0a, 0x1c, 0x4d, 0x75,
|
||||
0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65,
|
||||
0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x45,
|
||||
0x4c, 0x41, 0x59, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x47, 0x50, 0x53, 0x5f, 0x54, 0x49, 0x4d,
|
||||
0x45, 0x10, 0x01, 0x32, 0xdd, 0x0c, 0x0a, 0x15, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73,
|
||||
0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x6f, 0x0a,
|
||||
0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72,
|
||||
0x65, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f,
|
||||
0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e,
|
||||
0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47,
|
||||
0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3,
|
||||
0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75,
|
||||
0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x68,
|
||||
0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d,
|
||||
0x74, 0x65, 0x6d, 0x52, 0x09, 0x71, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x3d,
|
||||
0x0a, 0x26, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
|
||||
0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d,
|
||||
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x13, 0x0a, 0x05, 0x66, 0x5f, 0x63, 0x6e,
|
||||
0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x66, 0x43, 0x6e, 0x74, 0x22, 0x4f, 0x0a,
|
||||
0x1f, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47,
|
||||
0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x67, 0x72,
|
||||
0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x75,
|
||||
0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x4e,
|
||||
0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47,
|
||||
0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x67, 0x72,
|
||||
0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x75,
|
||||
0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x55,
|
||||
0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47,
|
||||
0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
||||
0x65, 0x12, 0x32, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
|
||||
0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74,
|
||||
0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05,
|
||||
0x69, 0x74, 0x65, 0x6d, 0x73, 0x2a, 0x2e, 0x0a, 0x12, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
|
||||
0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x43,
|
||||
0x4c, 0x41, 0x53, 0x53, 0x5f, 0x43, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4c, 0x41, 0x53,
|
||||
0x53, 0x5f, 0x42, 0x10, 0x01, 0x2a, 0x37, 0x0a, 0x1c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
|
||||
0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e,
|
||||
0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x45, 0x4c, 0x41, 0x59, 0x10, 0x00,
|
||||
0x12, 0x0c, 0x0a, 0x08, 0x47, 0x50, 0x53, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x01, 0x32, 0xdd,
|
||||
0x0c, 0x0a, 0x15, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75,
|
||||
0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x6f, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61,
|
||||
0x74, 0x65, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d,
|
||||
0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x75,
|
||||
0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x61,
|
||||
0x70, 0x69, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f,
|
||||
0x75, 0x70, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x79, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61,
|
||||
0x74, 0x65, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d,
|
||||
0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x35, 0x82, 0xd3,
|
||||
0xe4, 0x93, 0x02, 0x2f, 0x3a, 0x01, 0x2a, 0x1a, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74,
|
||||
0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a,
|
||||
0x01, 0x2a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
|
||||
0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x68, 0x0a, 0x03, 0x47, 0x65, 0x74,
|
||||
0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63,
|
||||
0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
|
||||
0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
|
||||
0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
|
||||
0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75,
|
||||
0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b,
|
||||
0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e,
|
||||
0x69, 0x64, 0x7d, 0x12, 0x66, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x20, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63,
|
||||
0x69, 0x64, 0x7d, 0x12, 0x79, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x20, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63,
|
||||
0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
|
||||
0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
|
||||
0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x2a,
|
||||
0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d,
|
||||
0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x68, 0x0a, 0x04, 0x4c,
|
||||
0x69, 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75,
|
||||
0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d,
|
||||
0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15,
|
||||
0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67,
|
||||
0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x89, 0x01, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x44, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x12, 0x25, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x44, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x54, 0x6f, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72,
|
||||
0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x3a,
|
||||
0x01, 0x2a, 0x1a, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
|
||||
0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x6d, 0x75, 0x6c, 0x74, 0x69,
|
||||
0x63, 0x61, 0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x69, 0x64, 0x7d, 0x12, 0x66,
|
||||
0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44,
|
||||
0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72,
|
||||
0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
|
||||
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
|
||||
0x74, 0x79, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x3a, 0x01, 0x2a, 0x22, 0x32, 0x2f,
|
||||
0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72,
|
||||
0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f,
|
||||
0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x73, 0x12, 0x98, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x12, 0x2a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44,
|
||||
0x65, 0x76, 0x69, 0x63, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
|
||||
0x74, 0x79, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x2a, 0x1a, 0x2f, 0x61, 0x70, 0x69,
|
||||
0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70,
|
||||
0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x68, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
|
||||
0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
|
||||
0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63,
|
||||
0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
||||
0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f,
|
||||
0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73,
|
||||
0x12, 0x89, 0x01, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x25,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x6f,
|
||||
0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3d, 0x82,
|
||||
0xd3, 0xe4, 0x93, 0x02, 0x37, 0x3a, 0x01, 0x2a, 0x22, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d,
|
||||
0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f,
|
||||
0x7b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70,
|
||||
0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x98, 0x01, 0x0a,
|
||||
0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2a, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x46, 0x72, 0x6f, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f,
|
||||
0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
|
||||
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
|
||||
0x79, 0x22, 0x44, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x2a, 0x3c, 0x2f, 0x61, 0x70, 0x69, 0x2f,
|
||||
0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73,
|
||||
0x2f, 0x7b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75,
|
||||
0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64,
|
||||
0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x12, 0x8c, 0x01, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x47,
|
||||
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x26, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x64, 0x64,
|
||||
0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x54, 0x6f, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
|
||||
0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16,
|
||||
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
|
||||
0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x44, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x2a, 0x3c,
|
||||
0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67,
|
||||
0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74,
|
||||
0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x12, 0x8c, 0x01, 0x0a,
|
||||
0x0a, 0x41, 0x64, 0x64, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x26, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x41, 0x64, 0x64, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x54, 0x6f, 0x4d, 0x75,
|
||||
0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
|
||||
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3e, 0x82, 0xd3, 0xe4,
|
||||
0x93, 0x02, 0x38, 0x3a, 0x01, 0x2a, 0x22, 0x33, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75, 0x6c,
|
||||
0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x6d,
|
||||
0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69,
|
||||
0x64, 0x7d, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x12, 0x9e, 0x01, 0x0a, 0x0d,
|
||||
0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x2b, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61,
|
||||
0x79, 0x46, 0x72, 0x6f, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72,
|
||||
0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
|
||||
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
|
||||
0x74, 0x79, 0x22, 0x48, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x2a, 0x40, 0x2f, 0x61, 0x70, 0x69,
|
||||
0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70,
|
||||
0x73, 0x2f, 0x7b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f,
|
||||
0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x2f,
|
||||
0x7b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xaa, 0x01, 0x0a,
|
||||
0x07, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x2a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45,
|
||||
0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47,
|
||||
0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x6e, 0x71, 0x75, 0x65,
|
||||
0x75, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70,
|
||||
0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
||||
0x65, 0x22, 0x46, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x3a, 0x01, 0x2a, 0x22, 0x3b, 0x2f, 0x61,
|
||||
0x70, 0x69, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f,
|
||||
0x75, 0x70, 0x73, 0x2f, 0x7b, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x2e,
|
||||
0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f,
|
||||
0x69, 0x64, 0x7d, 0x2f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x0a, 0x46, 0x6c,
|
||||
0x75, 0x73, 0x68, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46,
|
||||
0x6c, 0x75, 0x73, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f,
|
||||
0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16,
|
||||
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
|
||||
0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x2a, 0x30,
|
||||
0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67,
|
||||
0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74,
|
||||
0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x71, 0x75, 0x65, 0x75, 0x65,
|
||||
0x12, 0x90, 0x01, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x23,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
|
||||
0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75,
|
||||
0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75,
|
||||
0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02,
|
||||
0x32, 0x12, 0x30, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73,
|
||||
0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x3a, 0x01,
|
||||
0x2a, 0x22, 0x33, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73,
|
||||
0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63,
|
||||
0x61, 0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x71, 0x75,
|
||||
0x65, 0x75, 0x65, 0x42, 0x6b, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73,
|
||||
0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x13, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63,
|
||||
0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a,
|
||||
0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72,
|
||||
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63,
|
||||
0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa,
|
||||
0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69,
|
||||
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x61, 0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, 0x61,
|
||||
0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x12, 0x9e, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76,
|
||||
0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52,
|
||||
0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x46, 0x72, 0x6f, 0x6d,
|
||||
0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x48, 0x82,
|
||||
0xd3, 0xe4, 0x93, 0x02, 0x42, 0x2a, 0x40, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75, 0x6c, 0x74,
|
||||
0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x6d, 0x75,
|
||||
0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64,
|
||||
0x7d, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x2f, 0x7b, 0x67, 0x61, 0x74, 0x65,
|
||||
0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xaa, 0x01, 0x0a, 0x07, 0x45, 0x6e, 0x71, 0x75,
|
||||
0x65, 0x75, 0x65, 0x12, 0x2a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75,
|
||||
0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51,
|
||||
0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
|
||||
0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x75, 0x6c,
|
||||
0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65,
|
||||
0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, 0x82, 0xd3,
|
||||
0xe4, 0x93, 0x02, 0x40, 0x3a, 0x01, 0x2a, 0x22, 0x3b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75,
|
||||
0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b,
|
||||
0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x2e, 0x6d, 0x75, 0x6c, 0x74, 0x69,
|
||||
0x63, 0x61, 0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x71,
|
||||
0x75, 0x65, 0x75, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x0a, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x51, 0x75,
|
||||
0x65, 0x75, 0x65, 0x12, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x4d,
|
||||
0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65,
|
||||
0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
|
||||
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
|
||||
0x79, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x2a, 0x30, 0x2f, 0x61, 0x70, 0x69, 0x2f,
|
||||
0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73,
|
||||
0x2f, 0x7b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75,
|
||||
0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x90, 0x01, 0x0a, 0x09,
|
||||
0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e,
|
||||
0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f,
|
||||
0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
|
||||
0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, 0x2f, 0x61,
|
||||
0x70, 0x69, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f,
|
||||
0x75, 0x70, 0x73, 0x2f, 0x7b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x67,
|
||||
0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x42, 0x99,
|
||||
0x01, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x42, 0x13, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47,
|
||||
0x72, 0x6f, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74,
|
||||
0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61,
|
||||
0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70,
|
||||
0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa, 0x02, 0x0e, 0x43, 0x68,
|
||||
0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69, 0xca, 0x02, 0x0e, 0x43,
|
||||
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0xe2, 0x02, 0x1a,
|
||||
0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5c, 0x43, 0x68, 0x69, 0x72,
|
||||
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
|
||||
0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
@ -1719,37 +1736,38 @@ var file_api_multicast_group_proto_depIdxs = []int32{
|
||||
23, // 10: api.GetMulticastGroupResponse.updated_at:type_name -> google.protobuf.Timestamp
|
||||
2, // 11: api.UpdateMulticastGroupRequest.multicast_group:type_name -> api.MulticastGroup
|
||||
3, // 12: api.ListMulticastGroupsResponse.result:type_name -> api.MulticastGroupListItem
|
||||
16, // 13: api.EnqueueMulticastGroupQueueItemRequest.queue_item:type_name -> api.MulticastGroupQueueItem
|
||||
16, // 14: api.ListMulticastGroupQueueResponse.items:type_name -> api.MulticastGroupQueueItem
|
||||
4, // 15: api.MulticastGroupService.Create:input_type -> api.CreateMulticastGroupRequest
|
||||
6, // 16: api.MulticastGroupService.Get:input_type -> api.GetMulticastGroupRequest
|
||||
8, // 17: api.MulticastGroupService.Update:input_type -> api.UpdateMulticastGroupRequest
|
||||
9, // 18: api.MulticastGroupService.Delete:input_type -> api.DeleteMulticastGroupRequest
|
||||
10, // 19: api.MulticastGroupService.List:input_type -> api.ListMulticastGroupsRequest
|
||||
12, // 20: api.MulticastGroupService.AddDevice:input_type -> api.AddDeviceToMulticastGroupRequest
|
||||
13, // 21: api.MulticastGroupService.RemoveDevice:input_type -> api.RemoveDeviceFromMulticastGroupRequest
|
||||
14, // 22: api.MulticastGroupService.AddGateway:input_type -> api.AddGatewayToMulticastGroupRequest
|
||||
15, // 23: api.MulticastGroupService.RemoveGateway:input_type -> api.RemoveGatewayFromMulticastGroupRequest
|
||||
17, // 24: api.MulticastGroupService.Enqueue:input_type -> api.EnqueueMulticastGroupQueueItemRequest
|
||||
19, // 25: api.MulticastGroupService.FlushQueue:input_type -> api.FlushMulticastGroupQueueRequest
|
||||
20, // 26: api.MulticastGroupService.ListQueue:input_type -> api.ListMulticastGroupQueueRequest
|
||||
5, // 27: api.MulticastGroupService.Create:output_type -> api.CreateMulticastGroupResponse
|
||||
7, // 28: api.MulticastGroupService.Get:output_type -> api.GetMulticastGroupResponse
|
||||
24, // 29: api.MulticastGroupService.Update:output_type -> google.protobuf.Empty
|
||||
24, // 30: api.MulticastGroupService.Delete:output_type -> google.protobuf.Empty
|
||||
11, // 31: api.MulticastGroupService.List:output_type -> api.ListMulticastGroupsResponse
|
||||
24, // 32: api.MulticastGroupService.AddDevice:output_type -> google.protobuf.Empty
|
||||
24, // 33: api.MulticastGroupService.RemoveDevice:output_type -> google.protobuf.Empty
|
||||
24, // 34: api.MulticastGroupService.AddGateway:output_type -> google.protobuf.Empty
|
||||
24, // 35: api.MulticastGroupService.RemoveGateway:output_type -> google.protobuf.Empty
|
||||
18, // 36: api.MulticastGroupService.Enqueue:output_type -> api.EnqueueMulticastGroupQueueItemResponse
|
||||
24, // 37: api.MulticastGroupService.FlushQueue:output_type -> google.protobuf.Empty
|
||||
21, // 38: api.MulticastGroupService.ListQueue:output_type -> api.ListMulticastGroupQueueResponse
|
||||
27, // [27:39] is the sub-list for method output_type
|
||||
15, // [15:27] is the sub-list for method input_type
|
||||
15, // [15:15] is the sub-list for extension type_name
|
||||
15, // [15:15] is the sub-list for extension extendee
|
||||
0, // [0:15] is the sub-list for field type_name
|
||||
23, // 13: api.MulticastGroupQueueItem.expires_at:type_name -> google.protobuf.Timestamp
|
||||
16, // 14: api.EnqueueMulticastGroupQueueItemRequest.queue_item:type_name -> api.MulticastGroupQueueItem
|
||||
16, // 15: api.ListMulticastGroupQueueResponse.items:type_name -> api.MulticastGroupQueueItem
|
||||
4, // 16: api.MulticastGroupService.Create:input_type -> api.CreateMulticastGroupRequest
|
||||
6, // 17: api.MulticastGroupService.Get:input_type -> api.GetMulticastGroupRequest
|
||||
8, // 18: api.MulticastGroupService.Update:input_type -> api.UpdateMulticastGroupRequest
|
||||
9, // 19: api.MulticastGroupService.Delete:input_type -> api.DeleteMulticastGroupRequest
|
||||
10, // 20: api.MulticastGroupService.List:input_type -> api.ListMulticastGroupsRequest
|
||||
12, // 21: api.MulticastGroupService.AddDevice:input_type -> api.AddDeviceToMulticastGroupRequest
|
||||
13, // 22: api.MulticastGroupService.RemoveDevice:input_type -> api.RemoveDeviceFromMulticastGroupRequest
|
||||
14, // 23: api.MulticastGroupService.AddGateway:input_type -> api.AddGatewayToMulticastGroupRequest
|
||||
15, // 24: api.MulticastGroupService.RemoveGateway:input_type -> api.RemoveGatewayFromMulticastGroupRequest
|
||||
17, // 25: api.MulticastGroupService.Enqueue:input_type -> api.EnqueueMulticastGroupQueueItemRequest
|
||||
19, // 26: api.MulticastGroupService.FlushQueue:input_type -> api.FlushMulticastGroupQueueRequest
|
||||
20, // 27: api.MulticastGroupService.ListQueue:input_type -> api.ListMulticastGroupQueueRequest
|
||||
5, // 28: api.MulticastGroupService.Create:output_type -> api.CreateMulticastGroupResponse
|
||||
7, // 29: api.MulticastGroupService.Get:output_type -> api.GetMulticastGroupResponse
|
||||
24, // 30: api.MulticastGroupService.Update:output_type -> google.protobuf.Empty
|
||||
24, // 31: api.MulticastGroupService.Delete:output_type -> google.protobuf.Empty
|
||||
11, // 32: api.MulticastGroupService.List:output_type -> api.ListMulticastGroupsResponse
|
||||
24, // 33: api.MulticastGroupService.AddDevice:output_type -> google.protobuf.Empty
|
||||
24, // 34: api.MulticastGroupService.RemoveDevice:output_type -> google.protobuf.Empty
|
||||
24, // 35: api.MulticastGroupService.AddGateway:output_type -> google.protobuf.Empty
|
||||
24, // 36: api.MulticastGroupService.RemoveGateway:output_type -> google.protobuf.Empty
|
||||
18, // 37: api.MulticastGroupService.Enqueue:output_type -> api.EnqueueMulticastGroupQueueItemResponse
|
||||
24, // 38: api.MulticastGroupService.FlushQueue:output_type -> google.protobuf.Empty
|
||||
21, // 39: api.MulticastGroupService.ListQueue:output_type -> api.ListMulticastGroupQueueResponse
|
||||
28, // [28:40] is the sub-list for method output_type
|
||||
16, // [16:28] is the sub-list for method input_type
|
||||
16, // [16:16] is the sub-list for extension type_name
|
||||
16, // [16:16] is the sub-list for extension extendee
|
||||
0, // [0:16] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_api_multicast_group_proto_init() }
|
||||
|
21
api/go/api/relay.pb.go
vendored
21
api/go/api/relay.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: api/relay.proto
|
||||
|
||||
@ -595,14 +595,17 @@ var file_api_relay_proto_rawDesc = []byte{
|
||||
0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4,
|
||||
0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x73,
|
||||
0x2f, 0x7b, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d,
|
||||
0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x42, 0x62, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63,
|
||||
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x0a, 0x52,
|
||||
0x65, 0x6c, 0x61, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74,
|
||||
0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61,
|
||||
0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70,
|
||||
0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa, 0x02, 0x0e, 0x43, 0x68,
|
||||
0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x33,
|
||||
0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x42, 0x90, 0x01, 0x0a, 0x11, 0x69, 0x6f, 0x2e,
|
||||
0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x0a,
|
||||
0x52, 0x65, 0x6c, 0x61, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69,
|
||||
0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74,
|
||||
0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61,
|
||||
0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa, 0x02, 0x0e, 0x43,
|
||||
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69, 0xca, 0x02, 0x0e,
|
||||
0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0xe2, 0x02,
|
||||
0x1a, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5c, 0x43, 0x68, 0x69,
|
||||
0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f,
|
||||
0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
20
api/go/api/tenant.pb.go
vendored
20
api/go/api/tenant.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: api/tenant.proto
|
||||
|
||||
@ -1565,14 +1565,16 @@ var file_api_tenant_proto_rawDesc = []byte{
|
||||
0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3,
|
||||
0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, 0x6e, 0x61, 0x6e,
|
||||
0x74, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x75,
|
||||
0x73, 0x65, 0x72, 0x73, 0x42, 0x63, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70,
|
||||
0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x0b, 0x54, 0x65, 0x6e, 0x61, 0x6e,
|
||||
0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
|
||||
0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f,
|
||||
0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67,
|
||||
0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70,
|
||||
0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||
0x33,
|
||||
0x73, 0x65, 0x72, 0x73, 0x42, 0x91, 0x01, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72,
|
||||
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x0b, 0x54, 0x65, 0x6e, 0x61,
|
||||
0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75,
|
||||
0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b,
|
||||
0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f,
|
||||
0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72,
|
||||
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69, 0xca, 0x02, 0x0e, 0x43, 0x68, 0x69,
|
||||
0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0xe2, 0x02, 0x1a, 0x47, 0x50,
|
||||
0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5c, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73,
|
||||
0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
21
api/go/api/user.pb.go
vendored
21
api/go/api/user.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: api/user.proto
|
||||
|
||||
@ -891,14 +891,17 @@ var file_api_user_proto_rawDesc = []byte{
|
||||
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d,
|
||||
0x70, 0x74, 0x79, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x3a, 0x01, 0x2a, 0x22, 0x1d,
|
||||
0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72,
|
||||
0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x42, 0x61, 0x0a,
|
||||
0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61,
|
||||
0x70, 0x69, 0x42, 0x09, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a,
|
||||
0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72,
|
||||
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63,
|
||||
0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa,
|
||||
0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69,
|
||||
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x42, 0x8f, 0x01,
|
||||
0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x42, 0x09, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01,
|
||||
0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69,
|
||||
0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61,
|
||||
0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69,
|
||||
0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70,
|
||||
0x69, 0xca, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41,
|
||||
0x70, 0x69, 0xe2, 0x02, 0x1a, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
|
||||
0x5c, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0x62,
|
||||
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
82
api/go/common/common.pb.go
vendored
82
api/go/common/common.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: common/common.proto
|
||||
|
||||
@ -308,6 +308,7 @@ const (
|
||||
RegParamsRevision_RP002_1_0_1 RegParamsRevision = 3
|
||||
RegParamsRevision_RP002_1_0_2 RegParamsRevision = 4
|
||||
RegParamsRevision_RP002_1_0_3 RegParamsRevision = 5
|
||||
RegParamsRevision_RP002_1_0_4 RegParamsRevision = 6
|
||||
)
|
||||
|
||||
// Enum value maps for RegParamsRevision.
|
||||
@ -319,6 +320,7 @@ var (
|
||||
3: "RP002_1_0_1",
|
||||
4: "RP002_1_0_2",
|
||||
5: "RP002_1_0_3",
|
||||
6: "RP002_1_0_4",
|
||||
}
|
||||
RegParamsRevision_value = map[string]int32{
|
||||
"A": 0,
|
||||
@ -327,6 +329,7 @@ var (
|
||||
"RP002_1_0_1": 3,
|
||||
"RP002_1_0_2": 4,
|
||||
"RP002_1_0_3": 5,
|
||||
"RP002_1_0_4": 6,
|
||||
}
|
||||
)
|
||||
|
||||
@ -434,6 +437,8 @@ const (
|
||||
Aggregation_DAY Aggregation = 1
|
||||
// Month.
|
||||
Aggregation_MONTH Aggregation = 2
|
||||
// Minute.
|
||||
Aggregation_MINUTE Aggregation = 3
|
||||
)
|
||||
|
||||
// Enum value maps for Aggregation.
|
||||
@ -442,11 +447,13 @@ var (
|
||||
0: "HOUR",
|
||||
1: "DAY",
|
||||
2: "MONTH",
|
||||
3: "MINUTE",
|
||||
}
|
||||
Aggregation_value = map[string]int32{
|
||||
"HOUR": 0,
|
||||
"DAY": 1,
|
||||
"MONTH": 2,
|
||||
"HOUR": 0,
|
||||
"DAY": 1,
|
||||
"MONTH": 2,
|
||||
"MINUTE": 3,
|
||||
}
|
||||
)
|
||||
|
||||
@ -1039,42 +1046,47 @@ var file_common_common_proto_rawDesc = []byte{
|
||||
0x41, 0x4e, 0x5f, 0x31, 0x5f, 0x30, 0x5f, 0x33, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x4c, 0x4f,
|
||||
0x52, 0x41, 0x57, 0x41, 0x4e, 0x5f, 0x31, 0x5f, 0x30, 0x5f, 0x34, 0x10, 0x04, 0x12, 0x11, 0x0a,
|
||||
0x0d, 0x4c, 0x4f, 0x52, 0x41, 0x57, 0x41, 0x4e, 0x5f, 0x31, 0x5f, 0x31, 0x5f, 0x30, 0x10, 0x05,
|
||||
0x2a, 0x65, 0x0a, 0x11, 0x52, 0x65, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x76,
|
||||
0x2a, 0x76, 0x0a, 0x11, 0x52, 0x65, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x76,
|
||||
0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x05, 0x0a, 0x01, 0x41, 0x10, 0x00, 0x12, 0x05, 0x0a, 0x01,
|
||||
0x42, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x50, 0x30, 0x30, 0x32, 0x5f, 0x31, 0x5f, 0x30,
|
||||
0x5f, 0x30, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x50, 0x30, 0x30, 0x32, 0x5f, 0x31, 0x5f,
|
||||
0x30, 0x5f, 0x31, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x50, 0x30, 0x30, 0x32, 0x5f, 0x31,
|
||||
0x5f, 0x30, 0x5f, 0x32, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x50, 0x30, 0x30, 0x32, 0x5f,
|
||||
0x31, 0x5f, 0x30, 0x5f, 0x33, 0x10, 0x05, 0x2a, 0x8e, 0x01, 0x0a, 0x0e, 0x4c, 0x6f, 0x63, 0x61,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e,
|
||||
0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x47, 0x50, 0x53, 0x10, 0x01,
|
||||
0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11,
|
||||
0x47, 0x45, 0x4f, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x4c, 0x56, 0x45, 0x52, 0x5f, 0x54, 0x44, 0x4f,
|
||||
0x41, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x47, 0x45, 0x4f, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x4c,
|
||||
0x56, 0x45, 0x52, 0x5f, 0x52, 0x53, 0x53, 0x49, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x47, 0x45,
|
||||
0x4f, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x4c, 0x56, 0x45, 0x52, 0x5f, 0x47, 0x4e, 0x53, 0x53, 0x10,
|
||||
0x05, 0x12, 0x15, 0x0a, 0x11, 0x47, 0x45, 0x4f, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x4c, 0x56, 0x45,
|
||||
0x52, 0x5f, 0x57, 0x49, 0x46, 0x49, 0x10, 0x06, 0x2a, 0x2b, 0x0a, 0x0b, 0x41, 0x67, 0x67, 0x72,
|
||||
0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x4f, 0x55, 0x52, 0x10,
|
||||
0x00, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x41, 0x59, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x4f,
|
||||
0x4e, 0x54, 0x48, 0x10, 0x02, 0x2a, 0x32, 0x0a, 0x0a, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4b,
|
||||
0x69, 0x6e, 0x64, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x00,
|
||||
0x12, 0x0c, 0x0a, 0x08, 0x41, 0x42, 0x53, 0x4f, 0x4c, 0x55, 0x54, 0x45, 0x10, 0x01, 0x12, 0x09,
|
||||
0x0a, 0x05, 0x47, 0x41, 0x55, 0x47, 0x45, 0x10, 0x02, 0x2a, 0x39, 0x0a, 0x0a, 0x52, 0x65, 0x67,
|
||||
0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x45, 0x47, 0x55, 0x4c,
|
||||
0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12,
|
||||
0x13, 0x0a, 0x0f, 0x45, 0x54, 0x53, 0x49, 0x5f, 0x45, 0x4e, 0x5f, 0x33, 0x30, 0x30, 0x5f, 0x32,
|
||||
0x32, 0x30, 0x10, 0x01, 0x2a, 0x34, 0x0a, 0x0b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6c,
|
||||
0x61, 0x73, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x5f, 0x41, 0x10, 0x00,
|
||||
0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x5f, 0x42, 0x10, 0x01, 0x12, 0x0b, 0x0a,
|
||||
0x07, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x5f, 0x43, 0x10, 0x02, 0x42, 0x69, 0x0a, 0x11, 0x69, 0x6f,
|
||||
0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42,
|
||||
0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x31,
|
||||
0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70,
|
||||
0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b,
|
||||
0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
|
||||
0x6e, 0xaa, 0x02, 0x11, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43,
|
||||
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x31, 0x5f, 0x30, 0x5f, 0x33, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x50, 0x30, 0x30, 0x32,
|
||||
0x5f, 0x31, 0x5f, 0x30, 0x5f, 0x34, 0x10, 0x06, 0x2a, 0x8e, 0x01, 0x0a, 0x0e, 0x4c, 0x6f, 0x63,
|
||||
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55,
|
||||
0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x47, 0x50, 0x53, 0x10,
|
||||
0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x02, 0x12, 0x15, 0x0a,
|
||||
0x11, 0x47, 0x45, 0x4f, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x4c, 0x56, 0x45, 0x52, 0x5f, 0x54, 0x44,
|
||||
0x4f, 0x41, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x47, 0x45, 0x4f, 0x5f, 0x52, 0x45, 0x53, 0x4f,
|
||||
0x4c, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x53, 0x53, 0x49, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x47,
|
||||
0x45, 0x4f, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x4c, 0x56, 0x45, 0x52, 0x5f, 0x47, 0x4e, 0x53, 0x53,
|
||||
0x10, 0x05, 0x12, 0x15, 0x0a, 0x11, 0x47, 0x45, 0x4f, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x4c, 0x56,
|
||||
0x45, 0x52, 0x5f, 0x57, 0x49, 0x46, 0x49, 0x10, 0x06, 0x2a, 0x37, 0x0a, 0x0b, 0x41, 0x67, 0x67,
|
||||
0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x4f, 0x55, 0x52,
|
||||
0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x41, 0x59, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x4d,
|
||||
0x4f, 0x4e, 0x54, 0x48, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x49, 0x4e, 0x55, 0x54, 0x45,
|
||||
0x10, 0x03, 0x2a, 0x32, 0x0a, 0x0a, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4b, 0x69, 0x6e, 0x64,
|
||||
0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x00, 0x12, 0x0c, 0x0a,
|
||||
0x08, 0x41, 0x42, 0x53, 0x4f, 0x4c, 0x55, 0x54, 0x45, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x47,
|
||||
0x41, 0x55, 0x47, 0x45, 0x10, 0x02, 0x2a, 0x39, 0x0a, 0x0a, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x45, 0x47, 0x55, 0x4c, 0x41, 0x54, 0x49,
|
||||
0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f,
|
||||
0x45, 0x54, 0x53, 0x49, 0x5f, 0x45, 0x4e, 0x5f, 0x33, 0x30, 0x30, 0x5f, 0x32, 0x32, 0x30, 0x10,
|
||||
0x01, 0x2a, 0x34, 0x0a, 0x0b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73,
|
||||
0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x5f, 0x41, 0x10, 0x00, 0x12, 0x0b, 0x0a,
|
||||
0x07, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x5f, 0x42, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4c,
|
||||
0x41, 0x53, 0x53, 0x5f, 0x43, 0x10, 0x02, 0x42, 0x9d, 0x01, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63,
|
||||
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x0b, 0x43,
|
||||
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x69,
|
||||
0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74,
|
||||
0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61,
|
||||
0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0xaa,
|
||||
0x02, 0x11, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x6f, 0x6d,
|
||||
0x6d, 0x6f, 0x6e, 0xca, 0x02, 0x11, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b,
|
||||
0x5c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0xe2, 0x02, 0x1d, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74,
|
||||
0x61, 0x64, 0x61, 0x74, 0x61, 0x5c, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b,
|
||||
0x5c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
2
api/go/go.mod
vendored
2
api/go/go.mod
vendored
@ -10,7 +10,7 @@ require (
|
||||
|
||||
require (
|
||||
github.com/golang/protobuf v1.5.4 // indirect
|
||||
golang.org/x/net v0.22.0 // indirect
|
||||
golang.org/x/net v0.23.0 // indirect
|
||||
golang.org/x/sys v0.18.0 // indirect
|
||||
golang.org/x/text v0.14.0 // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240325203815-454cdb8f5daa // indirect
|
||||
|
5
api/go/go.sum
vendored
5
api/go/go.sum
vendored
@ -1,8 +1,9 @@
|
||||
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
|
||||
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
|
||||
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
|
||||
golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc=
|
||||
golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
|
||||
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||
golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs=
|
||||
golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
|
||||
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
|
||||
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
|
||||
|
1186
api/go/gw/gw.pb.go
vendored
1186
api/go/gw/gw.pb.go
vendored
File diff suppressed because it is too large
Load Diff
32
api/go/integration/integration.pb.go
vendored
32
api/go/integration/integration.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: integration/integration.proto
|
||||
|
||||
@ -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,
|
||||
}
|
||||
)
|
||||
|
||||
@ -1566,7 +1570,7 @@ var file_integration_integration_proto_rawDesc = []byte{
|
||||
0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2a, 0x2c, 0x0a,
|
||||
0x08, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x4e, 0x46,
|
||||
0x4f, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01,
|
||||
0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x2a, 0xea, 0x01, 0x0a, 0x07,
|
||||
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,
|
||||
@ -1581,16 +1585,20 @@ var file_integration_integration_proto_rawDesc = []byte{
|
||||
0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x47, 0x41, 0x54, 0x45, 0x57, 0x41, 0x59, 0x10, 0x08, 0x12, 0x18,
|
||||
0x0a, 0x14, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x45, 0x4e, 0x44, 0x5f,
|
||||
0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x46, 0x5f, 0x43, 0x4e,
|
||||
0x54, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x0a, 0x42, 0x81, 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, 0x62, 0x06, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x33,
|
||||
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 (
|
||||
|
23
api/go/stream/api_request.pb.go
vendored
23
api/go/stream/api_request.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: stream/api_request.proto
|
||||
|
||||
@ -110,15 +110,18 @@ var file_stream_api_request_proto_rawDesc = []byte{
|
||||
0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 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, 0x42, 0x74, 0x0a, 0x18, 0x69, 0x6f, 0x2e, 0x63, 0x68,
|
||||
0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x72,
|
||||
0x65, 0x61, 0x6d, 0x42, 0x0f, 0x41, 0x70, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
|
||||
0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68,
|
||||
0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f,
|
||||
0x76, 0x34, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xaa, 0x02, 0x11, 0x43, 0x68, 0x69, 0x72,
|
||||
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x06, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0xa8, 0x01, 0x0a, 0x18, 0x69, 0x6f, 0x2e, 0x63,
|
||||
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74,
|
||||
0x72, 0x65, 0x61, 0x6d, 0x42, 0x0f, 0x41, 0x70, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
|
||||
0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63,
|
||||
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f,
|
||||
0x2f, 0x76, 0x34, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xaa, 0x02, 0x11, 0x43, 0x68, 0x69,
|
||||
0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xca, 0x02,
|
||||
0x11, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x53, 0x74, 0x72, 0x65,
|
||||
0x61, 0x6d, 0xe2, 0x02, 0x1d, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
|
||||
0x5c, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x53, 0x74, 0x72, 0x65,
|
||||
0x61, 0x6d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
25
api/go/stream/backend_interfaces.pb.go
vendored
25
api/go/stream/backend_interfaces.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: stream/backend_interfaces.proto
|
||||
|
||||
@ -170,16 +170,19 @@ var file_stream_backend_interfaces_proto_rawDesc = []byte{
|
||||
0x72, 0x72, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x42, 0x7b, 0x0a,
|
||||
0x18, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61,
|
||||
0x70, 0x69, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x16, 0x42, 0x61, 0x63, 0x6b, 0x65,
|
||||
0x6e, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74,
|
||||
0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
|
||||
0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70,
|
||||
0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f,
|
||||
0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xaa, 0x02, 0x11, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74,
|
||||
0x61, 0x63, 0x6b, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
|
||||
0x6f, 0x33,
|
||||
0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x42, 0xaf, 0x01,
|
||||
0x0a, 0x18, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x16, 0x42, 0x61, 0x63, 0x6b,
|
||||
0x65, 0x6e, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x50, 0x72, 0x6f,
|
||||
0x74, 0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
|
||||
0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72,
|
||||
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34,
|
||||
0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xaa, 0x02, 0x11, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73,
|
||||
0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xca, 0x02, 0x11, 0x43, 0x68,
|
||||
0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xe2,
|
||||
0x02, 0x1d, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5c, 0x43, 0x68,
|
||||
0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x62,
|
||||
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
23
api/go/stream/frame.pb.go
vendored
23
api/go/stream/frame.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: stream/frame.proto
|
||||
|
||||
@ -328,15 +328,18 @@ var file_stream_frame_proto_rawDesc = []byte{
|
||||
0x65, 0x78, 0x74, 0x46, 0x4f, 0x70, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x6c, 0x61, 0x69,
|
||||
0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x66, 0x72, 0x6d, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61,
|
||||
0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65,
|
||||
0x78, 0x74, 0x46, 0x72, 0x6d, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x6f, 0x0a, 0x18,
|
||||
0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x0a, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x50,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
|
||||
0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68,
|
||||
0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f,
|
||||
0x76, 0x34, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xaa, 0x02, 0x11, 0x43, 0x68, 0x69, 0x72,
|
||||
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x06, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x78, 0x74, 0x46, 0x72, 0x6d, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0xa3, 0x01, 0x0a,
|
||||
0x18, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61,
|
||||
0x70, 0x69, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x0a, 0x46, 0x72, 0x61, 0x6d, 0x65,
|
||||
0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
|
||||
0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63,
|
||||
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f,
|
||||
0x2f, 0x76, 0x34, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xaa, 0x02, 0x11, 0x43, 0x68, 0x69,
|
||||
0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xca, 0x02,
|
||||
0x11, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x53, 0x74, 0x72, 0x65,
|
||||
0x61, 0x6d, 0xe2, 0x02, 0x1d, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
|
||||
0x5c, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x53, 0x74, 0x72, 0x65,
|
||||
0x61, 0x6d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
21
api/go/stream/meta.pb.go
vendored
21
api/go/stream/meta.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: stream/meta.proto
|
||||
|
||||
@ -288,14 +288,17 @@ var file_stream_meta_proto_rawDesc = []byte{
|
||||
0x4d, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79,
|
||||
0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64,
|
||||
0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49,
|
||||
0x64, 0x42, 0x6e, 0x0a, 0x18, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61,
|
||||
0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x09, 0x4d,
|
||||
0x65, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68,
|
||||
0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63,
|
||||
0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69,
|
||||
0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xaa, 0x02, 0x11,
|
||||
0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61,
|
||||
0x6d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x64, 0x42, 0xa2, 0x01, 0x0a, 0x18, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74,
|
||||
0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x09,
|
||||
0x4d, 0x65, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x69, 0x74,
|
||||
0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61,
|
||||
0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70,
|
||||
0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xaa, 0x02,
|
||||
0x11, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x74, 0x72, 0x65,
|
||||
0x61, 0x6d, 0xca, 0x02, 0x11, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c,
|
||||
0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xe2, 0x02, 0x1d, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61,
|
||||
0x64, 0x61, 0x74, 0x61, 0x5c, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c,
|
||||
0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
0
api/grpc-web/.npmignore
vendored
Normal file
0
api/grpc-web/.npmignore
vendored
Normal file
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.8.0-test.1",
|
||||
"version": "4.10.0",
|
||||
"description": "Chirpstack gRPC-web API",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
|
6
api/grpc-web/yarn.lock
vendored
6
api/grpc-web/yarn.lock
vendored
@ -353,9 +353,9 @@ strip-ansi@^6.0.1:
|
||||
ansi-regex "^5.0.1"
|
||||
|
||||
tar@^6.1.11:
|
||||
version "6.1.15"
|
||||
resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.15.tgz#c9738b0b98845a3b344d334b8fa3041aaba53a69"
|
||||
integrity sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==
|
||||
version "6.2.1"
|
||||
resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a"
|
||||
integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==
|
||||
dependencies:
|
||||
chownr "^2.0.0"
|
||||
fs-minipass "^2.0.0"
|
||||
|
10
api/java/build.gradle.kts
vendored
10
api/java/build.gradle.kts
vendored
@ -8,7 +8,7 @@ plugins {
|
||||
}
|
||||
|
||||
group = "io.chirpstack"
|
||||
version = "4.8.0-test.1"
|
||||
version = "4.10.0"
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
@ -21,10 +21,10 @@ buildscript {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
api("io.grpc:grpc-protobuf:1.51.0")
|
||||
api("io.grpc:grpc-api:1.51.0")
|
||||
api("io.grpc:grpc-stub:1.51.0")
|
||||
api("io.grpc:grpc-netty:1.51.0")
|
||||
api("io.grpc:grpc-protobuf:1.59.1")
|
||||
api("io.grpc:grpc-api:1.59.1")
|
||||
api("io.grpc:grpc-stub:1.59.1")
|
||||
api("io.grpc:grpc-netty:1.59.1")
|
||||
implementation("javax.annotation:javax.annotation-api:1.3.2")
|
||||
}
|
||||
|
||||
|
0
api/js/.npmignore
vendored
Normal file
0
api/js/.npmignore
vendored
Normal file
2
api/js/package.json
vendored
2
api/js/package.json
vendored
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@chirpstack/chirpstack-api",
|
||||
"version": "4.8.0-test.1",
|
||||
"version": "4.10.0",
|
||||
"description": "Chirpstack JS and TS API",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
|
32
api/js/yarn.lock
vendored
32
api/js/yarn.lock
vendored
@ -3,21 +3,21 @@
|
||||
|
||||
|
||||
"@grpc/grpc-js@^1.10.4":
|
||||
version "1.10.4"
|
||||
resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.10.4.tgz#a33f743f69ed531e917c9eafb4fd8bc3e5f2e617"
|
||||
integrity sha512-MqBisuxTkYvPFnEiu+dag3xG/NBUDzSbAFAWlzfkGnQkjVZ6by3h4atbBc+Ikqup1z5BfB4BN18gKWR1YyppNw==
|
||||
version "1.10.9"
|
||||
resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.10.9.tgz#468cc1549a3fe37b760a16745fb7685d91f4f10c"
|
||||
integrity sha512-5tcgUctCG0qoNyfChZifz2tJqbRbXVO9J7X6duFcOjY3HUNCxg5D0ZCK7EP9vIcZ0zRpLU9bWkyCqVCLZ46IbQ==
|
||||
dependencies:
|
||||
"@grpc/proto-loader" "^0.7.10"
|
||||
"@grpc/proto-loader" "^0.7.13"
|
||||
"@js-sdsl/ordered-map" "^4.4.2"
|
||||
|
||||
"@grpc/proto-loader@^0.7.10":
|
||||
version "0.7.12"
|
||||
resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.12.tgz#787b58e3e3771df30b1567c057b6ab89e3a42911"
|
||||
integrity sha512-DCVwMxqYzpUCiDMl7hQ384FqP4T3DbNpXU8pt681l3UWCip1WUiD5JrkImUwCB9a7f2cq4CUTmi5r/xIMRPY1Q==
|
||||
"@grpc/proto-loader@^0.7.13":
|
||||
version "0.7.13"
|
||||
resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.13.tgz#f6a44b2b7c9f7b609f5748c6eac2d420e37670cf"
|
||||
integrity sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==
|
||||
dependencies:
|
||||
lodash.camelcase "^4.3.0"
|
||||
long "^5.0.0"
|
||||
protobufjs "^7.2.4"
|
||||
protobufjs "^7.2.5"
|
||||
yargs "^17.7.2"
|
||||
|
||||
"@js-sdsl/ordered-map@^4.4.2":
|
||||
@ -410,10 +410,10 @@ path-is-absolute@^1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
||||
integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
|
||||
|
||||
protobufjs@^7.2.4:
|
||||
version "7.2.4"
|
||||
resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.4.tgz#3fc1ec0cdc89dd91aef9ba6037ba07408485c3ae"
|
||||
integrity sha512-AT+RJgD2sH8phPmCf7OUZR8xGdcJRga4+1cOaXJ64hvcSkVhNcRHOwIxUatPH15+nj59WAGTDv3LSGZPEQbJaQ==
|
||||
protobufjs@^7.2.5:
|
||||
version "7.3.0"
|
||||
resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.3.0.tgz#a32ec0422c039798c41a0700306a6e305b9cb32c"
|
||||
integrity sha512-YWD03n3shzV9ImZRX3ccbjqLxj7NokGN0V/ESiBV5xWqrommYHYiihuIyavq03pWSGqlyvYUFmfoMKd+1rPA/g==
|
||||
dependencies:
|
||||
"@protobufjs/aspromise" "^1.1.2"
|
||||
"@protobufjs/base64" "^1.1.2"
|
||||
@ -500,9 +500,9 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1:
|
||||
ansi-regex "^5.0.1"
|
||||
|
||||
tar@^6.1.11:
|
||||
version "6.1.15"
|
||||
resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.15.tgz#c9738b0b98845a3b344d334b8fa3041aaba53a69"
|
||||
integrity sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==
|
||||
version "6.2.1"
|
||||
resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a"
|
||||
integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==
|
||||
dependencies:
|
||||
chownr "^2.0.0"
|
||||
fs-minipass "^2.0.0"
|
||||
|
2
api/kotlin/build.gradle.kts
vendored
2
api/kotlin/build.gradle.kts
vendored
@ -9,7 +9,7 @@ plugins {
|
||||
}
|
||||
|
||||
group = "io.chirpstack"
|
||||
version = "4.8.0-test.1"
|
||||
version = "4.10.0"
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
|
1
api/php/.gitignore
vendored
Normal file
1
api/php/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/generated
|
40
api/php/Makefile
vendored
Normal file
40
api/php/Makefile
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
.PHONY: requirements common gw api integration stream google
|
||||
|
||||
PROTOC_ARGS := -I=../proto --grpc_out=./generated --plugin=protoc-gen-grpc=/usr/bin/grpc_php_plugin --php_out=./generated
|
||||
|
||||
all: requirements common gw api integration stream google
|
||||
|
||||
requirements:
|
||||
rm -rf generated
|
||||
mkdir generated
|
||||
|
||||
common:
|
||||
protoc ${PROTOC_ARGS} common/common.proto
|
||||
|
||||
gw:
|
||||
protoc ${PROTOC_ARGS} gw/gw.proto
|
||||
|
||||
api:
|
||||
protoc ${PROTOC_ARGS} api/internal.proto
|
||||
protoc ${PROTOC_ARGS} api/user.proto
|
||||
protoc ${PROTOC_ARGS} api/tenant.proto
|
||||
protoc ${PROTOC_ARGS} api/application.proto
|
||||
protoc ${PROTOC_ARGS} api/device_profile.proto
|
||||
protoc ${PROTOC_ARGS} api/device_profile_template.proto
|
||||
protoc ${PROTOC_ARGS} api/device.proto
|
||||
protoc ${PROTOC_ARGS} api/gateway.proto
|
||||
protoc ${PROTOC_ARGS} api/multicast_group.proto
|
||||
protoc ${PROTOC_ARGS} api/relay.proto
|
||||
|
||||
integration:
|
||||
protoc ${PROTOC_ARGS} integration/integration.proto
|
||||
|
||||
stream:
|
||||
protoc ${PROTOC_ARGS} stream/meta.proto
|
||||
protoc ${PROTOC_ARGS} stream/frame.proto
|
||||
protoc ${PROTOC_ARGS} stream/api_request.proto
|
||||
protoc ${PROTOC_ARGS} stream/backend_interfaces.proto
|
||||
|
||||
google:
|
||||
protoc ${PROTOC_ARGS} google/api/annotations.proto
|
||||
protoc ${PROTOC_ARGS} google/api/http.proto
|
44
api/php/README.md
vendored
Normal file
44
api/php/README.md
vendored
Normal file
@ -0,0 +1,44 @@
|
||||
# chirpstack-api
|
||||
|
||||
ChirpStack gRPC API message and service wrappers for PHP.
|
||||
|
||||
## Install
|
||||
|
||||
With composer:
|
||||
|
||||
```sh
|
||||
composer require chirpstack/chirpstack-api
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
All messages, services, constants, etc. are auto-generated from the ChirpStack protobuf definitions. The result is that
|
||||
this package structure matches that of the protobuf definitions.
|
||||
|
||||
The protobuf definitions can be found here: https://github.com/chirpstack/chirpstack/tree/master/api/proto
|
||||
|
||||
## Example
|
||||
|
||||
```php
|
||||
<?php
|
||||
|
||||
namespace Test;
|
||||
|
||||
use Chirpstack\API\ApplicationServiceClient;
|
||||
use Chirpstack\API\ListApplicationsRequest;
|
||||
use Grpc\Channel;
|
||||
use Grpc\ChannelCredentials;
|
||||
|
||||
require dirname(__FILE__) . '/vendor/autoload.php';
|
||||
|
||||
function main() {
|
||||
$channel = new Channel('url', ['credentials' => ChannelCredentials::createInsecure()]);
|
||||
$client = new ApplicationServiceClient('url', [], $channel);
|
||||
$request = new ListApplicationsRequest();
|
||||
$response = $client->List($request);
|
||||
$data = $response->wait();
|
||||
print_r($data);
|
||||
}
|
||||
|
||||
main();
|
||||
```
|
23
api/php/composer.json
vendored
Normal file
23
api/php/composer.json
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"name": "chirpstack/chirpstack-api",
|
||||
"description": "Chirpstack PHP API",
|
||||
"license": "MIT",
|
||||
"type": "library",
|
||||
"version": "4.10.0",
|
||||
"require": {
|
||||
"php": ">=7.0.0",
|
||||
"grpc/grpc": "^v1.57.0",
|
||||
"google/protobuf": "^v4.27.1"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-grpc": "To make it all work"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Chirpstack\\": "generated/Chirpstack/",
|
||||
"Google\\": "generated/Google/",
|
||||
"GPBMetadata\\Chirpstack\\": "generated/GPBMetadata/Chirpstack/",
|
||||
"GPBMetadata\\Google\\": "generated/GPBMetadata/Google/"
|
||||
}
|
||||
}
|
||||
}
|
2
api/proto/api/application.proto
vendored
2
api/proto/api/application.proto
vendored
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "ApplicationProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
option php_namespace = "Chirpstack\\Api";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
10
api/proto/api/device.proto
vendored
10
api/proto/api/device.proto
vendored
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "DeviceProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
option php_namespace = "Chirpstack\\Api";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Api";
|
||||
|
||||
import "common/common.proto";
|
||||
import "google/api/annotations.proto";
|
||||
@ -382,6 +384,8 @@ message DeviceActivation {
|
||||
string app_s_key = 3;
|
||||
|
||||
// Network session encryption key (HEX encoded).
|
||||
// Note: For ABP in LoRaWAN 1.0.x, use this, the serving and the forwarding
|
||||
// network session integrity key fields with the LoRaWAN 1.0.x 'NwkSKey`!
|
||||
string nwk_s_enc_key = 4;
|
||||
|
||||
// Serving network session integrity key (HEX encoded).
|
||||
@ -535,6 +539,10 @@ message DeviceQueueItem {
|
||||
// the data payload. In this case, the f_cnt_down field must be set to
|
||||
// the corresponding frame-counter which has been used during the encryption.
|
||||
bool is_encrypted = 9;
|
||||
|
||||
// Expires at (optional).
|
||||
// Expired queue-items will be automatically removed from the queue.
|
||||
google.protobuf.Timestamp expires_at = 10;
|
||||
}
|
||||
|
||||
message EnqueueDeviceQueueItemRequest { DeviceQueueItem queue_item = 1; }
|
||||
@ -578,4 +586,4 @@ message GetDeviceNextFCntDownRequest {
|
||||
message GetDeviceNextFCntDownResponse {
|
||||
// FCntDown.
|
||||
uint32 f_cnt_down = 1;
|
||||
}
|
||||
}
|
||||
|
11
api/proto/api/device_profile.proto
vendored
11
api/proto/api/device_profile.proto
vendored
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "DeviceProfileProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
option php_namespace = "Chirpstack\\Api";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
@ -410,6 +412,15 @@ message DeviceProfile {
|
||||
//
|
||||
// If set to true, it means that the device is allowed to use roaming.
|
||||
bool allow_roaming = 52;
|
||||
|
||||
// RX1 Delay.
|
||||
//
|
||||
// This makes it possible to override the system RX1 Delay. Please note that
|
||||
// this values only has effect in case it is higher than the system value.
|
||||
// In other words, it can be used to increase the RX1 Delay but not to decrease
|
||||
// it.
|
||||
// Valid options are 1 - 15 (0 = always use system RX1 Delay).
|
||||
uint32 rx1_delay = 53;
|
||||
}
|
||||
|
||||
message Measurement {
|
||||
|
2
api/proto/api/device_profile_template.proto
vendored
2
api/proto/api/device_profile_template.proto
vendored
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "DeviceProfileTemplateProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
option php_namespace = "Chirpstack\\Api";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
174
api/proto/api/gateway.proto
vendored
174
api/proto/api/gateway.proto
vendored
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "GatewayProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
option php_namespace = "Chirpstack\\Api";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
@ -65,6 +67,43 @@ service GatewayService {
|
||||
get: "/api/gateways/{gateway_id}/metrics"
|
||||
};
|
||||
}
|
||||
|
||||
// GetDutyCycleMetrics returns the duty-cycle metrics.
|
||||
// Note that only the last 2 hours of data are stored. Currently only per minute aggregation is available.
|
||||
rpc GetDutyCycleMetrics(GetGatewayDutyCycleMetricsRequest) returns (GetGatewayDutyCycleMetricsResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/gateways/{gateway_id}/duty-cycle-metrics"
|
||||
};
|
||||
}
|
||||
|
||||
// Get the given Relay Gateway.
|
||||
rpc GetRelayGateway(GetRelayGatewayRequest) returns (GetRelayGatewayResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/gateways/relay-gateways/{tenant_id}/{relay_id}"
|
||||
};
|
||||
}
|
||||
|
||||
// List the detected Relay Gateways.
|
||||
rpc ListRelayGateways(ListRelayGatewaysRequest) returns (ListRelayGatewaysResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/gateways/relay-gateways"
|
||||
};
|
||||
}
|
||||
|
||||
// Update the given Relay Gateway.
|
||||
rpc UpdateRelayGateway(UpdateRelayGatewayRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
put: "/api/gateways/relay-gateways/{relay_gateway.tenant_id}/{relay_gateway.relay_id}"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete the given Relay Gateway.
|
||||
rpc DeleteRelayGateway(DeleteRelayGatewayRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/gateways/relay-gateways/{tenant_id}/{relay_id}"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
enum GatewayState {
|
||||
@ -125,11 +164,11 @@ message GatewayListItem {
|
||||
// Gateway properties.
|
||||
map<string, string> properties = 6;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 7;
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 7;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 8;
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 8;
|
||||
|
||||
// Last seen at timestamp.
|
||||
google.protobuf.Timestamp last_seen_at = 9;
|
||||
@ -255,3 +294,130 @@ message GetGatewayMetricsResponse {
|
||||
// TX packets per status.
|
||||
common.Metric tx_packets_per_status = 7;
|
||||
}
|
||||
|
||||
message GetGatewayDutyCycleMetricsRequest {
|
||||
// Gateway ID (EUI64).
|
||||
string gateway_id = 1;
|
||||
|
||||
// Interval start timestamp.
|
||||
google.protobuf.Timestamp start = 2;
|
||||
|
||||
// Interval end timestamp.
|
||||
google.protobuf.Timestamp end = 3;
|
||||
}
|
||||
|
||||
message GetGatewayDutyCycleMetricsResponse {
|
||||
// Percentage relative to max load.
|
||||
common.Metric max_load_percentage = 1;
|
||||
|
||||
// Percentage relative to tracking window.
|
||||
common.Metric window_percentage = 2;
|
||||
}
|
||||
|
||||
message GetRelayGatewayRequest {
|
||||
// Tenant ID (UUID).
|
||||
string tenant_id = 1;
|
||||
|
||||
// Relay ID (4 byte HEX).
|
||||
string relay_id = 2;
|
||||
}
|
||||
|
||||
message GetRelayGatewayResponse {
|
||||
// Relay Gateway object.
|
||||
RelayGateway relay_gateway = 1;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 2;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 3;
|
||||
|
||||
// Last seen at timestamp.
|
||||
google.protobuf.Timestamp last_seen_at = 4;
|
||||
}
|
||||
|
||||
message ListRelayGatewaysRequest {
|
||||
// Max number of relay-gateways to return in the result-set.
|
||||
uint32 limit = 1;
|
||||
|
||||
// Offset in the result-set (for pagination).
|
||||
uint32 offset = 2;
|
||||
|
||||
// Tenant ID (UUID) to filter relay-gateways on.
|
||||
// To list all relay-gateways as a global admin user, this field can be left blank.
|
||||
string tenant_id = 3;
|
||||
}
|
||||
|
||||
message ListRelayGatewaysResponse {
|
||||
// Total number of relay-gateways.
|
||||
uint32 total_count = 1;
|
||||
|
||||
// Result-set.
|
||||
repeated RelayGatewayListItem result = 2;
|
||||
}
|
||||
|
||||
message RelayGatewayListItem {
|
||||
// Tenant ID.
|
||||
string tenant_id = 1;
|
||||
|
||||
// Relay ID (4 byte HEX).
|
||||
string relay_id = 2;
|
||||
|
||||
// Name.
|
||||
string name = 3;
|
||||
|
||||
// Description.
|
||||
string description = 4;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 5;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 6;
|
||||
|
||||
// Last seen at timestamp.
|
||||
google.protobuf.Timestamp last_seen_at = 7;
|
||||
|
||||
// Gateway state.
|
||||
// Please note that the state of the relay is driven by the last
|
||||
// received stats packet sent by the relay-gateway.
|
||||
GatewayState state = 10;
|
||||
|
||||
// Region configuration ID.
|
||||
string region_config_id = 11;
|
||||
}
|
||||
|
||||
message UpdateRelayGatewayRequest {
|
||||
// Relay Gateway object.
|
||||
RelayGateway relay_gateway = 1;
|
||||
}
|
||||
|
||||
message DeleteRelayGatewayRequest {
|
||||
// Tenant ID.
|
||||
string tenant_id = 1;
|
||||
|
||||
// Relay ID (4 byte HEX).
|
||||
string relay_id = 2;
|
||||
}
|
||||
|
||||
message RelayGateway {
|
||||
// Tenant ID.
|
||||
string tenant_id = 1;
|
||||
|
||||
// Relay ID (4 byte HEX).
|
||||
string relay_id = 2;
|
||||
|
||||
// Name.
|
||||
string name = 3;
|
||||
|
||||
// Description.
|
||||
string description = 4;
|
||||
|
||||
// Stats interval (seconds).
|
||||
// This defines the expected interval in which the gateway sends its
|
||||
// statistics.
|
||||
uint32 stats_interval = 5;
|
||||
|
||||
// Region configuration ID.
|
||||
string region_config_id = 6;
|
||||
}
|
||||
|
8
api/proto/api/internal.proto
vendored
8
api/proto/api/internal.proto
vendored
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "InternalProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
option php_namespace = "Chirpstack\\Api";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Api";
|
||||
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
@ -221,6 +223,12 @@ message SettingsResponse {
|
||||
|
||||
// OAuth2 settings.
|
||||
OAuth2 oauth2 = 2;
|
||||
|
||||
// Tileserver URL.
|
||||
string tileserver_url = 3;
|
||||
|
||||
// Map attribution.
|
||||
string map_attribution = 4;
|
||||
}
|
||||
|
||||
message OpenIdConnect {
|
||||
|
6
api/proto/api/multicast_group.proto
vendored
6
api/proto/api/multicast_group.proto
vendored
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "MulticastGroupProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
option php_namespace = "Chirpstack\\Api";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
@ -300,6 +302,10 @@ message MulticastGroupQueueItem {
|
||||
|
||||
// Payload.
|
||||
bytes data = 4;
|
||||
|
||||
// Expires at (optional).
|
||||
// Expired queue-items will be automatically removed from the queue.
|
||||
google.protobuf.Timestamp expires_at = 5;
|
||||
}
|
||||
|
||||
message EnqueueMulticastGroupQueueItemRequest {
|
||||
|
2
api/proto/api/relay.proto
vendored
2
api/proto/api/relay.proto
vendored
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "RelayProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
option php_namespace = "Chirpstack\\Api";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
2
api/proto/api/tenant.proto
vendored
2
api/proto/api/tenant.proto
vendored
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "TenantProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
option php_namespace = "Chirpstack\\Api";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
2
api/proto/api/user.proto
vendored
2
api/proto/api/user.proto
vendored
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "UserProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
option php_namespace = "Chirpstack\\Api";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
6
api/proto/common/common.proto
vendored
6
api/proto/common/common.proto
vendored
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "CommonProto";
|
||||
option csharp_namespace = "Chirpstack.Common";
|
||||
option php_namespace = "Chirpstack\\Common";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Common";
|
||||
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
||||
@ -107,6 +109,7 @@ enum RegParamsRevision {
|
||||
RP002_1_0_1 = 3;
|
||||
RP002_1_0_2 = 4;
|
||||
RP002_1_0_3 = 5;
|
||||
RP002_1_0_4 = 6;
|
||||
}
|
||||
|
||||
enum LocationSource {
|
||||
@ -141,6 +144,9 @@ enum Aggregation {
|
||||
|
||||
// Month.
|
||||
MONTH = 2;
|
||||
|
||||
// Minute.
|
||||
MINUTE = 3;
|
||||
}
|
||||
|
||||
enum MetricKind {
|
||||
|
33
api/proto/gw/gw.proto
vendored
33
api/proto/gw/gw.proto
vendored
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api.gw";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "GatewayProto";
|
||||
option csharp_namespace = "Chirpstack.Gateway";
|
||||
option php_namespace = "Chirpstack\\Gateway";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Gateway";
|
||||
|
||||
import "common/common.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
@ -269,8 +271,11 @@ message DutyCycleStats {
|
||||
// Implemented regulation.
|
||||
common.Regulation regulation = 1;
|
||||
|
||||
// Tracking window.
|
||||
google.protobuf.Duration window = 2;
|
||||
|
||||
// Bands.
|
||||
repeated DutyCycleBand bands = 2;
|
||||
repeated DutyCycleBand bands = 3;
|
||||
}
|
||||
|
||||
message DutyCycleBand {
|
||||
@ -744,3 +749,29 @@ message ConnState {
|
||||
|
||||
State state = 2;
|
||||
}
|
||||
|
||||
// Gateway Mesh heartbeat (sent periodically by the Relay Gateways).
|
||||
message MeshHeartbeat {
|
||||
// Gateway ID (of the Border Gateway).
|
||||
string gateway_id = 1;
|
||||
|
||||
// Relay ID.
|
||||
string relay_id = 2;
|
||||
|
||||
// Timestamp (second precision).
|
||||
google.protobuf.Timestamp time = 3;
|
||||
|
||||
// Relay path.
|
||||
repeated MeshHeartbeatRelayPath relay_path = 4;
|
||||
}
|
||||
|
||||
message MeshHeartbeatRelayPath {
|
||||
// Relay ID.
|
||||
string relay_id = 1;
|
||||
|
||||
// RSSI.
|
||||
int32 rssi = 2;
|
||||
|
||||
// SNR.
|
||||
int32 snr = 3;
|
||||
}
|
||||
|
5
api/proto/integration/integration.proto
vendored
5
api/proto/integration/integration.proto
vendored
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api.integration";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "IntegrationProto";
|
||||
option csharp_namespace = "Chirpstack.Integration";
|
||||
option php_namespace = "Chirpstack\\Integration";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Integration";
|
||||
|
||||
import "common/common.proto";
|
||||
import "gw/gw.proto";
|
||||
@ -58,6 +60,9 @@ enum LogCode {
|
||||
|
||||
// Downlink frame-counter.
|
||||
F_CNT_DOWN = 10;
|
||||
|
||||
// Downlink has expired.
|
||||
EXPIRED = 11;
|
||||
}
|
||||
|
||||
// Device information.
|
||||
|
2
api/proto/stream/api_request.proto
vendored
2
api/proto/stream/api_request.proto
vendored
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api.stream";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "ApiRequestProto";
|
||||
option csharp_namespace = "Chirpstack.Stream";
|
||||
option php_namespace = "Chirpstack\\Stream";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Stream";
|
||||
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "common/common.proto";
|
||||
|
2
api/proto/stream/backend_interfaces.proto
vendored
2
api/proto/stream/backend_interfaces.proto
vendored
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api.stream";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "BackendInterfacesProto";
|
||||
option csharp_namespace = "Chirpstack.Stream";
|
||||
option php_namespace = "Chirpstack\\Stream";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Stream";
|
||||
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
||||
|
2
api/proto/stream/frame.proto
vendored
2
api/proto/stream/frame.proto
vendored
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api.stream";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "FrameProto";
|
||||
option csharp_namespace = "Chirpstack.Stream";
|
||||
option php_namespace = "Chirpstack\\Stream";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Stream";
|
||||
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "common/common.proto";
|
||||
|
2
api/proto/stream/meta.proto
vendored
2
api/proto/stream/meta.proto
vendored
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api.stream";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "MetaProto";
|
||||
option csharp_namespace = "Chirpstack.Stream";
|
||||
option php_namespace = "Chirpstack\\Stream";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Stream";
|
||||
|
||||
import "common/common.proto";
|
||||
import "gw/gw.proto";
|
||||
|
@ -6,8 +6,6 @@ from .device_profile_pb2 import *
|
||||
from .device_profile_pb2_grpc import *
|
||||
from .device_profile_template_pb2 import *
|
||||
from .device_profile_template_pb2_grpc import *
|
||||
from .frame_log_pb2 import *
|
||||
from .frame_log_pb2_grpc import *
|
||||
from .gateway_pb2 import *
|
||||
from .gateway_pb2_grpc import *
|
||||
from .internal_pb2 import *
|
||||
|
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.8.0-test.1",
|
||||
version = "4.10.0",
|
||||
url='https://github.com/brocaar/chirpstack-api',
|
||||
author='Orne Brocaar',
|
||||
author_email='info@brocaar.com',
|
||||
|
1
api/rust/.gitignore
vendored
1
api/rust/.gitignore
vendored
@ -1 +0,0 @@
|
||||
/proto
|
53
api/rust/Cargo.toml
vendored
53
api/rust/Cargo.toml
vendored
@ -1,33 +1,36 @@
|
||||
[package]
|
||||
name = "chirpstack_api"
|
||||
description = "ChirpStack Protobuf / gRPC API definitions."
|
||||
version = "4.8.0-test.1"
|
||||
authors = ["Orne Brocaar <info@brocaar.com>"]
|
||||
license = "MIT"
|
||||
homepage = "https://www.chirpstack.io"
|
||||
repository = "https://github.com/chirpstack/chirpstack"
|
||||
edition = "2021"
|
||||
name = "chirpstack_api"
|
||||
description = "ChirpStack Protobuf / gRPC API definitions."
|
||||
version = "4.10.0"
|
||||
authors = ["Orne Brocaar <info@brocaar.com>"]
|
||||
license = "MIT"
|
||||
homepage = "https://www.chirpstack.io"
|
||||
repository = "https://github.com/chirpstack/chirpstack"
|
||||
edition = "2021"
|
||||
|
||||
[features]
|
||||
default = ["api", "json"]
|
||||
api = ["tonic/transport", "tonic-build/transport", "tokio"]
|
||||
json = ["pbjson", "pbjson-types", "serde"]
|
||||
diesel = ["dep:diesel"]
|
||||
internal = []
|
||||
default = ["api", "json"]
|
||||
api = ["tonic/transport", "tonic-build/transport", "tokio"]
|
||||
json = ["pbjson", "pbjson-types", "serde"]
|
||||
internal = []
|
||||
|
||||
[dependencies]
|
||||
prost = "0.12"
|
||||
prost-types = "0.12"
|
||||
hex = "0.4"
|
||||
rand = "0.8"
|
||||
prost = "0.13"
|
||||
prost-types = "0.13"
|
||||
hex = "0.4"
|
||||
rand = "0.8"
|
||||
|
||||
tonic = { version = "0.11", features = ["codegen", "prost"], default-features = false, optional = true }
|
||||
tokio = { version = "1.37", features = ["macros"], optional = true }
|
||||
pbjson = { version = "0.6", optional = true }
|
||||
pbjson-types = { version = "0.6", optional = true }
|
||||
serde = { version = "1.0", optional = true }
|
||||
diesel = { version = "2.1", features = ["postgres_backend"], optional = true }
|
||||
tonic = { version = "0.12", features = [
|
||||
"codegen",
|
||||
"prost",
|
||||
], default-features = false, 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 }
|
||||
|
||||
[build-dependencies]
|
||||
tonic-build = { version = "0.11", features = ["prost"], default-features = false }
|
||||
pbjson-build = "0.6"
|
||||
tonic-build = { version = "0.12", features = [
|
||||
"prost",
|
||||
], default-features = false }
|
||||
pbjson-build = "0.7"
|
||||
|
12
api/rust/build.rs
vendored
12
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(),
|
||||
@ -87,7 +87,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
builder = builder.message_attribute("internal.DeviceSession", "#[derive(diesel::expression::AsExpression, diesel::deserialize::FromSqlRow)] #[diesel(sql_type = diesel::sql_types::Binary)]");
|
||||
}
|
||||
|
||||
builder.compile(
|
||||
builder.compile_protos(
|
||||
&[cs_dir
|
||||
.join("internal")
|
||||
.join("internal.proto")
|
||||
@ -119,7 +119,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
.extern_path(".google.protobuf", well_known_types_path)
|
||||
.extern_path(".common", "crate::common")
|
||||
.extern_path(".gw", "crate::gw")
|
||||
.compile(
|
||||
.compile_protos(
|
||||
&[cs_dir
|
||||
.join("integration")
|
||||
.join("integration.proto")
|
||||
@ -153,7 +153,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
.extern_path(".google.protobuf", well_known_types_path)
|
||||
.extern_path(".common", "crate::common")
|
||||
.extern_path(".gw", "crate::gw")
|
||||
.compile(
|
||||
.compile_protos(
|
||||
&[
|
||||
cs_dir.join("stream").join("meta.proto").to_str().unwrap(),
|
||||
cs_dir.join("stream").join("frame.proto").to_str().unwrap(),
|
||||
@ -192,7 +192,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
.file_descriptor_set_path(out_dir.join("api").join("proto_descriptor.bin"))
|
||||
.extern_path(".common", "crate::common")
|
||||
.extern_path(".gw", "crate::gw")
|
||||
.compile(
|
||||
.compile_protos(
|
||||
&[
|
||||
cs_dir.join("api").join("internal.proto").to_str().unwrap(),
|
||||
cs_dir.join("api").join("user.proto").to_str().unwrap(),
|
||||
|
1100
api/rust/proto/chirpstack/api/application.proto
vendored
Normal file
1100
api/rust/proto/chirpstack/api/application.proto
vendored
Normal file
File diff suppressed because it is too large
Load Diff
589
api/rust/proto/chirpstack/api/device.proto
vendored
Normal file
589
api/rust/proto/chirpstack/api/device.proto
vendored
Normal file
@ -0,0 +1,589 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package api;
|
||||
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "DeviceProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
option php_namespace = "Chirpstack\\Api";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Api";
|
||||
|
||||
import "common/common.proto";
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/struct.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
|
||||
// DeviceService is the service providing API methods for managing devices.
|
||||
service DeviceService {
|
||||
// Create the given device.
|
||||
rpc Create(CreateDeviceRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
post : "/api/devices"
|
||||
body : "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Get returns the device for the given DevEUI.
|
||||
rpc Get(GetDeviceRequest) returns (GetDeviceResponse) {
|
||||
option (google.api.http) = {
|
||||
get : "/api/devices/{dev_eui}"
|
||||
};
|
||||
}
|
||||
|
||||
// Update the given device.
|
||||
rpc Update(UpdateDeviceRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
put : "/api/devices/{device.dev_eui}"
|
||||
body : "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete the device with the given DevEUI.
|
||||
rpc Delete(DeleteDeviceRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
delete : "/api/devices/{dev_eui}"
|
||||
};
|
||||
}
|
||||
|
||||
// Get the list of devices.
|
||||
rpc List(ListDevicesRequest) returns (ListDevicesResponse) {
|
||||
option (google.api.http) = {
|
||||
get : "/api/devices"
|
||||
};
|
||||
}
|
||||
|
||||
// Create the given device-keys.
|
||||
rpc CreateKeys(CreateDeviceKeysRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
post : "/api/devices/{device_keys.dev_eui}/keys"
|
||||
body : "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Get the device-keys for the given DevEUI.
|
||||
rpc GetKeys(GetDeviceKeysRequest) returns (GetDeviceKeysResponse) {
|
||||
option (google.api.http) = {
|
||||
get : "/api/devices/{dev_eui}/keys"
|
||||
};
|
||||
}
|
||||
|
||||
// Update the given device-keys.
|
||||
rpc UpdateKeys(UpdateDeviceKeysRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
put : "/api/devices/{device_keys.dev_eui}/keys"
|
||||
body : "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete the device-keys for the given DevEUI.
|
||||
rpc DeleteKeys(DeleteDeviceKeysRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
delete : "/api/devices/{dev_eui}/keys"
|
||||
};
|
||||
}
|
||||
|
||||
// FlushDevNonces flushes the OTAA device nonces.
|
||||
rpc FlushDevNonces(FlushDevNoncesRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
delete : "/api/devices/{dev_eui}/dev-nonces"
|
||||
};
|
||||
}
|
||||
|
||||
// Activate (re)activates the device with the given parameters (for ABP or for
|
||||
// importing OTAA activations).
|
||||
rpc Activate(ActivateDeviceRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
post : "/api/devices/{device_activation.dev_eui}/activate"
|
||||
body : "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Deactivate de-activates the device.
|
||||
rpc Deactivate(DeactivateDeviceRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
delete : "/api/devices/{dev_eui}/activation"
|
||||
};
|
||||
}
|
||||
|
||||
// GetActivation returns the current activation details of the device (OTAA or
|
||||
// ABP).
|
||||
rpc GetActivation(GetDeviceActivationRequest)
|
||||
returns (GetDeviceActivationResponse) {
|
||||
option (google.api.http) = {
|
||||
get : "/api/devices/{dev_eui}/activation"
|
||||
};
|
||||
}
|
||||
|
||||
// GetRandomDevAddr returns a random DevAddr taking the NwkID prefix into
|
||||
// account.
|
||||
rpc GetRandomDevAddr(GetRandomDevAddrRequest)
|
||||
returns (GetRandomDevAddrResponse) {
|
||||
option (google.api.http) = {
|
||||
post : "/api/devices/{dev_eui}/get-random-dev-addr"
|
||||
};
|
||||
}
|
||||
|
||||
// GetMetrics returns the device metrics.
|
||||
// Note that this requires a device-profile with codec and measurements
|
||||
// configured.
|
||||
rpc GetMetrics(GetDeviceMetricsRequest) returns (GetDeviceMetricsResponse) {
|
||||
option (google.api.http) = {
|
||||
get : "/api/devices/{dev_eui}/metrics"
|
||||
};
|
||||
}
|
||||
|
||||
// GetLinkMetrics returns the device link metrics.
|
||||
// This includes uplinks, downlinks, RSSI, SNR, etc...
|
||||
rpc GetLinkMetrics(GetDeviceLinkMetricsRequest)
|
||||
returns (GetDeviceLinkMetricsResponse) {
|
||||
option (google.api.http) = {
|
||||
get : "/api/devices/{dev_eui}/link-metrics"
|
||||
};
|
||||
}
|
||||
|
||||
// Enqueue adds the given item to the downlink queue.
|
||||
rpc Enqueue(EnqueueDeviceQueueItemRequest)
|
||||
returns (EnqueueDeviceQueueItemResponse) {
|
||||
option (google.api.http) = {
|
||||
post : "/api/devices/{queue_item.dev_eui}/queue"
|
||||
body : "*"
|
||||
};
|
||||
}
|
||||
|
||||
// FlushQueue flushes the downlink device-queue.
|
||||
rpc FlushQueue(FlushDeviceQueueRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
delete : "/api/devices/{dev_eui}/queue"
|
||||
};
|
||||
}
|
||||
|
||||
// GetQueue returns the downlink device-queue.
|
||||
rpc GetQueue(GetDeviceQueueItemsRequest)
|
||||
returns (GetDeviceQueueItemsResponse) {
|
||||
option (google.api.http) = {
|
||||
get : "/api/devices/{dev_eui}/queue"
|
||||
};
|
||||
}
|
||||
|
||||
// GetNextFCntDown returns the next FCntDown to use for enqueing encrypted
|
||||
// downlinks. The difference with the DeviceActivation f_cont_down is that
|
||||
// this method takes potential existing queue-items into account.
|
||||
rpc GetNextFCntDown(GetDeviceNextFCntDownRequest)
|
||||
returns (GetDeviceNextFCntDownResponse) {
|
||||
option (google.api.http) = {
|
||||
post : "/api/devices/{dev_eui}/get-next-f-cnt-down"
|
||||
body : "*"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
message Device {
|
||||
// DevEUI (EUI64).
|
||||
string dev_eui = 1;
|
||||
|
||||
// Name.
|
||||
string name = 2;
|
||||
|
||||
// Description.
|
||||
string description = 3;
|
||||
|
||||
// Application ID (UUID).
|
||||
string application_id = 4;
|
||||
|
||||
// Device-profile ID (UUID).
|
||||
string device_profile_id = 5;
|
||||
|
||||
// Skip frame-counter checks (this is insecure, but could be helpful for
|
||||
// debugging).
|
||||
bool skip_fcnt_check = 6;
|
||||
|
||||
// Device is disabled.
|
||||
bool is_disabled = 7;
|
||||
|
||||
// Variables (user defined).
|
||||
// These variables can be used together with integrations to store tokens /
|
||||
// secrets that must be configured per device. These variables are not
|
||||
// exposed in the event payloads.
|
||||
map<string, string> variables = 8;
|
||||
|
||||
// Tags (user defined).
|
||||
// These tags can be used to add additional information to the device.
|
||||
// These tags are exposed in all the integration events.
|
||||
map<string, string> tags = 9;
|
||||
|
||||
// JoinEUI (optional, EUI64).
|
||||
// This field will be automatically set / updated on OTAA. However, in some
|
||||
// cases it must be pre-configured. For example to allow OTAA using a Relay.
|
||||
// In this case the Relay needs to know the JoinEUI + DevEUI combinations
|
||||
// of the devices for which it needs to forward uplinks.
|
||||
string join_eui = 10;
|
||||
}
|
||||
|
||||
message DeviceStatus {
|
||||
// The device margin status
|
||||
// -32..32: The demodulation SNR ration in dB
|
||||
int32 margin = 1;
|
||||
|
||||
// Device is connected to an external power source.
|
||||
bool external_power_source = 2;
|
||||
|
||||
// Device battery level as a percentage.
|
||||
// -1 when the battery level is not available.
|
||||
float battery_level = 3;
|
||||
}
|
||||
|
||||
message DeviceListItem {
|
||||
// DevEUI (EUI64).
|
||||
string dev_eui = 1;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 2;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 3;
|
||||
|
||||
// Last seen at timestamp.
|
||||
google.protobuf.Timestamp last_seen_at = 4;
|
||||
|
||||
// Name.
|
||||
string name = 5;
|
||||
|
||||
// Description.
|
||||
string description = 6;
|
||||
|
||||
// Device-profile ID (UUID).
|
||||
string device_profile_id = 7;
|
||||
|
||||
// Device-profile name.
|
||||
string device_profile_name = 8;
|
||||
|
||||
// Device status.
|
||||
DeviceStatus device_status = 9;
|
||||
}
|
||||
|
||||
message DeviceKeys {
|
||||
// DevEUI (EUI64).
|
||||
string dev_eui = 1;
|
||||
|
||||
// Network root key (128 bit).
|
||||
// Note: For LoRaWAN 1.0.x, use this field for the LoRaWAN 1.0.x 'AppKey`!
|
||||
string nwk_key = 2;
|
||||
|
||||
// Application root key (128 bit).
|
||||
// Note: This field only needs to be set for LoRaWAN 1.1.x devices!
|
||||
string app_key = 3;
|
||||
}
|
||||
|
||||
message CreateDeviceRequest {
|
||||
// Device object.
|
||||
Device device = 1;
|
||||
}
|
||||
|
||||
message GetDeviceRequest {
|
||||
// DevEUI (EUI64).
|
||||
string dev_eui = 1;
|
||||
}
|
||||
|
||||
message GetDeviceResponse {
|
||||
// Device object.
|
||||
Device device = 1;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 2;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 3;
|
||||
|
||||
// Last seen at timestamp.
|
||||
google.protobuf.Timestamp last_seen_at = 4;
|
||||
|
||||
// Device status.
|
||||
DeviceStatus device_status = 5;
|
||||
|
||||
// Enabled device class.
|
||||
common.DeviceClass class_enabled = 6;
|
||||
}
|
||||
|
||||
message UpdateDeviceRequest {
|
||||
// Device object.
|
||||
Device device = 1;
|
||||
}
|
||||
|
||||
message DeleteDeviceRequest {
|
||||
// DevEUI (EUI64).
|
||||
string dev_eui = 1;
|
||||
}
|
||||
|
||||
message ListDevicesRequest {
|
||||
// Max number of devices to return in the result-set.
|
||||
uint32 limit = 1;
|
||||
|
||||
// Offset in the result-set (for pagination).
|
||||
uint32 offset = 2;
|
||||
|
||||
// If set, the given string will be used to search on name (optional).
|
||||
string search = 3;
|
||||
|
||||
// Application ID (UUID) to filter devices on.
|
||||
string application_id = 4;
|
||||
|
||||
// Multicst-group ID (UUID) to filter devices on.
|
||||
string multicast_group_id = 5;
|
||||
}
|
||||
|
||||
message ListDevicesResponse {
|
||||
// Total number of devices.
|
||||
uint32 total_count = 1;
|
||||
|
||||
// Result-set.
|
||||
repeated DeviceListItem result = 2;
|
||||
}
|
||||
|
||||
message CreateDeviceKeysRequest {
|
||||
// Device-keys object.
|
||||
DeviceKeys device_keys = 1;
|
||||
}
|
||||
|
||||
message GetDeviceKeysRequest {
|
||||
// DevEUI (EUI64).
|
||||
string dev_eui = 1;
|
||||
}
|
||||
|
||||
message GetDeviceKeysResponse {
|
||||
// Device-keys object.
|
||||
DeviceKeys device_keys = 1;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 2;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 3;
|
||||
}
|
||||
|
||||
message UpdateDeviceKeysRequest {
|
||||
// Device-keys object.
|
||||
DeviceKeys device_keys = 1;
|
||||
}
|
||||
|
||||
message DeleteDeviceKeysRequest {
|
||||
// DevEUI (EUI64).
|
||||
string dev_eui = 1;
|
||||
}
|
||||
|
||||
message DeviceActivation {
|
||||
// Device EUI (EUI64).
|
||||
string dev_eui = 1;
|
||||
|
||||
// Device address (HEX encoded).
|
||||
string dev_addr = 2;
|
||||
|
||||
// Application session key (HEX encoded).
|
||||
string app_s_key = 3;
|
||||
|
||||
// Network session encryption key (HEX encoded).
|
||||
// Note: For ABP in LoRaWAN 1.0.x, use this, the serving and the forwarding
|
||||
// network session integrity key fields with the LoRaWAN 1.0.x 'NwkSKey`!
|
||||
string nwk_s_enc_key = 4;
|
||||
|
||||
// Serving network session integrity key (HEX encoded).
|
||||
string s_nwk_s_int_key = 8;
|
||||
|
||||
// Forwarding network session integrity key (HEX encoded).
|
||||
string f_nwk_s_int_key = 9;
|
||||
|
||||
// Uplink frame-counter.
|
||||
uint32 f_cnt_up = 5;
|
||||
|
||||
// Downlink network frame-counter.
|
||||
uint32 n_f_cnt_down = 6;
|
||||
|
||||
// Downlink application frame-counter.
|
||||
uint32 a_f_cnt_down = 10;
|
||||
}
|
||||
|
||||
message ActivateDeviceRequest {
|
||||
// Device activation object.
|
||||
DeviceActivation device_activation = 1;
|
||||
}
|
||||
|
||||
message DeactivateDeviceRequest {
|
||||
// DevEUI (EUI64).
|
||||
string dev_eui = 1;
|
||||
}
|
||||
|
||||
message GetDeviceActivationRequest {
|
||||
// DevEUI (EUI64).
|
||||
string dev_eui = 1;
|
||||
}
|
||||
|
||||
message GetDeviceActivationResponse {
|
||||
// Device activation object.
|
||||
DeviceActivation device_activation = 1;
|
||||
|
||||
// Join-Server context.
|
||||
// A non-empty value indicatest that ChirpStack does not have access to
|
||||
// the AppSKey and that the encryption / decryption of the payloads is
|
||||
// the responsibility of the end-application.
|
||||
common.JoinServerContext join_server_context = 2;
|
||||
}
|
||||
|
||||
message GetRandomDevAddrRequest {
|
||||
// DevEUI (EUI64).
|
||||
string dev_eui = 1;
|
||||
}
|
||||
|
||||
message GetRandomDevAddrResponse {
|
||||
// DevAddr.
|
||||
string dev_addr = 1;
|
||||
}
|
||||
|
||||
message GetDeviceMetricsRequest {
|
||||
// DevEUI (EUI64).
|
||||
string dev_eui = 1;
|
||||
|
||||
// Interval start timestamp.
|
||||
google.protobuf.Timestamp start = 2;
|
||||
|
||||
// Interval end timestamp.
|
||||
google.protobuf.Timestamp end = 3;
|
||||
|
||||
// Aggregation.
|
||||
common.Aggregation aggregation = 4;
|
||||
}
|
||||
|
||||
message GetDeviceMetricsResponse {
|
||||
map<string, common.Metric> metrics = 1;
|
||||
|
||||
map<string, DeviceState> states = 2;
|
||||
}
|
||||
|
||||
message DeviceState {
|
||||
// Name.
|
||||
string name = 2;
|
||||
|
||||
// Value.
|
||||
string value = 3;
|
||||
}
|
||||
|
||||
message GetDeviceLinkMetricsRequest {
|
||||
// DevEUI (EUI64).
|
||||
string dev_eui = 1;
|
||||
|
||||
// Interval start timestamp.
|
||||
google.protobuf.Timestamp start = 2;
|
||||
|
||||
// Interval end timestamp.
|
||||
google.protobuf.Timestamp end = 3;
|
||||
|
||||
// Aggregation.
|
||||
common.Aggregation aggregation = 4;
|
||||
}
|
||||
|
||||
message GetDeviceLinkMetricsResponse {
|
||||
// Packets received from the device.
|
||||
common.Metric rx_packets = 1;
|
||||
|
||||
// RSSI (as reported by the gateway(s)).
|
||||
common.Metric gw_rssi = 2;
|
||||
|
||||
// SNR (as reported by the gateway(s)).
|
||||
common.Metric gw_snr = 3;
|
||||
|
||||
// Packets received by frequency.
|
||||
common.Metric rx_packets_per_freq = 4;
|
||||
|
||||
// Packets received by DR.
|
||||
common.Metric rx_packets_per_dr = 5;
|
||||
|
||||
// Errors.
|
||||
common.Metric errors = 6;
|
||||
}
|
||||
|
||||
message DeviceQueueItem {
|
||||
// ID (UUID).
|
||||
// This is automatically generated on enqueue.
|
||||
string id = 1;
|
||||
|
||||
// Device EUI (EUI64).
|
||||
string dev_eui = 2;
|
||||
|
||||
// Confirmed.
|
||||
bool confirmed = 3;
|
||||
|
||||
// FPort (must be > 0).
|
||||
uint32 f_port = 4;
|
||||
|
||||
// Data.
|
||||
// Or use the json_object field when a codec has been configured.
|
||||
bytes data = 5;
|
||||
|
||||
// Only use this when a codec has been configured that can encode this
|
||||
// object to bytes.
|
||||
google.protobuf.Struct object = 6;
|
||||
|
||||
// Is pending.
|
||||
// This is set by ChirpStack to true when the downlink is pending (e.g. it
|
||||
// has been sent, but a confirmation is still pending).
|
||||
bool is_pending = 7;
|
||||
|
||||
// Downlink frame-counter.
|
||||
// Do not set this for plain-text data payloads. It will be automatically set
|
||||
// by ChirpStack when the payload has been sent as downlink.
|
||||
uint32 f_cnt_down = 8;
|
||||
|
||||
// Is encrypted.
|
||||
// This must be set to true if the end-application has already encrypted
|
||||
// the data payload. In this case, the f_cnt_down field must be set to
|
||||
// the corresponding frame-counter which has been used during the encryption.
|
||||
bool is_encrypted = 9;
|
||||
|
||||
// Expires at (optional).
|
||||
// Expired queue-items will be automatically removed from the queue.
|
||||
google.protobuf.Timestamp expires_at = 10;
|
||||
}
|
||||
|
||||
message EnqueueDeviceQueueItemRequest { DeviceQueueItem queue_item = 1; }
|
||||
|
||||
message EnqueueDeviceQueueItemResponse {
|
||||
// ID (UUID).
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message FlushDeviceQueueRequest {
|
||||
// Device EUI (EUI64).
|
||||
string dev_eui = 1;
|
||||
}
|
||||
|
||||
message GetDeviceQueueItemsRequest {
|
||||
// Device EUI (EUI64).
|
||||
string dev_eui = 1;
|
||||
|
||||
// Return only the count, not the result-set.
|
||||
bool count_only = 2;
|
||||
}
|
||||
|
||||
message GetDeviceQueueItemsResponse {
|
||||
// Total number of queue items.
|
||||
uint32 total_count = 1;
|
||||
|
||||
// Result-set.
|
||||
repeated DeviceQueueItem result = 2;
|
||||
}
|
||||
|
||||
message FlushDevNoncesRequest {
|
||||
// Device EUI (EUI64).
|
||||
string dev_eui = 1;
|
||||
}
|
||||
|
||||
message GetDeviceNextFCntDownRequest {
|
||||
// Device EUI (EUI64).
|
||||
string dev_eui = 1;
|
||||
}
|
||||
|
||||
message GetDeviceNextFCntDownResponse {
|
||||
// FCntDown.
|
||||
uint32 f_cnt_down = 1;
|
||||
}
|
538
api/rust/proto/chirpstack/api/device_profile.proto
vendored
Normal file
538
api/rust/proto/chirpstack/api/device_profile.proto
vendored
Normal file
@ -0,0 +1,538 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package api;
|
||||
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "DeviceProfileProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
option php_namespace = "Chirpstack\\Api";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
import "common/common.proto";
|
||||
|
||||
enum CodecRuntime {
|
||||
// None.
|
||||
NONE = 0;
|
||||
|
||||
// Cayenne LPP.
|
||||
CAYENNE_LPP = 1;
|
||||
|
||||
// JavaScript.
|
||||
JS = 2;
|
||||
}
|
||||
|
||||
enum MeasurementKind {
|
||||
// Unknown (in which case it is not tracked).
|
||||
UNKNOWN = 0;
|
||||
|
||||
// Incrementing counters that never decrease (these are not reset on each
|
||||
// reading).
|
||||
COUNTER = 1;
|
||||
|
||||
// Counters that do get reset upon reading.
|
||||
ABSOLUTE = 2;
|
||||
|
||||
// E.g. a temperature value.
|
||||
GAUGE = 3;
|
||||
|
||||
// E.g. a firmware version, true / false value.
|
||||
STRING = 4;
|
||||
}
|
||||
|
||||
enum CadPeriodicity {
|
||||
// 1 second.
|
||||
SEC_1 = 0;
|
||||
|
||||
// 500 milliseconds
|
||||
MS_500 = 1;
|
||||
|
||||
// 250 milliseconds
|
||||
MS_250 = 2;
|
||||
|
||||
// 100 milliseconds
|
||||
MS_100 = 3;
|
||||
|
||||
// 50 milliseconds
|
||||
MS_50 = 4;
|
||||
|
||||
// 20 milliseconds
|
||||
MS_20 = 5;
|
||||
}
|
||||
|
||||
enum SecondChAckOffset {
|
||||
// 0 kHz.
|
||||
KHZ_0 = 0;
|
||||
|
||||
// 200 kHz.
|
||||
KHZ_200 = 1;
|
||||
|
||||
// 400 kHz.
|
||||
KHZ_400 = 2;
|
||||
|
||||
// 800 kHz.
|
||||
KHZ_800 = 3;
|
||||
|
||||
// 1600 kHz.
|
||||
KHZ_1600 = 4;
|
||||
|
||||
// 3200 kHz.
|
||||
KHZ_3200 = 5;
|
||||
}
|
||||
|
||||
enum RelayModeActivation {
|
||||
// Disable the relay mode.
|
||||
DISABLE_RELAY_MODE = 0;
|
||||
|
||||
// Enable the relay model.
|
||||
ENABLE_RELAY_MODE = 1;
|
||||
|
||||
// Dynamic.
|
||||
DYNAMIC = 2;
|
||||
|
||||
// End-device controlled.
|
||||
END_DEVICE_CONTROLLED = 3;
|
||||
}
|
||||
|
||||
// DeviceProfileService is the service providing API methods for managing
|
||||
// device-profiles.
|
||||
service DeviceProfileService {
|
||||
// Create the given device-profile.
|
||||
rpc Create(CreateDeviceProfileRequest) returns (CreateDeviceProfileResponse) {
|
||||
option (google.api.http) = {
|
||||
post : "/api/device-profiles"
|
||||
body : "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Get the device-profile for the given ID.
|
||||
rpc Get(GetDeviceProfileRequest) returns (GetDeviceProfileResponse) {
|
||||
option (google.api.http) = {
|
||||
get : "/api/device-profiles/{id}"
|
||||
};
|
||||
}
|
||||
|
||||
// Update the given device-profile.
|
||||
rpc Update(UpdateDeviceProfileRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
put : "/api/device-profiles/{device_profile.id}"
|
||||
body : "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete the device-profile with the given ID.
|
||||
rpc Delete(DeleteDeviceProfileRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
delete : "/api/device-profiles/{id}"
|
||||
};
|
||||
}
|
||||
|
||||
// List the available device-profiles.
|
||||
rpc List(ListDeviceProfilesRequest) returns (ListDeviceProfilesResponse) {
|
||||
option (google.api.http) = {
|
||||
get : "/api/device-profiles"
|
||||
};
|
||||
}
|
||||
|
||||
// List available ADR algorithms.
|
||||
rpc ListAdrAlgorithms(google.protobuf.Empty)
|
||||
returns (ListDeviceProfileAdrAlgorithmsResponse) {
|
||||
option (google.api.http) = {
|
||||
get : "/api/device-profiles/adr-algorithms"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
message DeviceProfile {
|
||||
// Device-profile ID (UUID).
|
||||
// Note: on create this will be automatically generated.
|
||||
string id = 1;
|
||||
|
||||
// Tenant ID (UUID).
|
||||
string tenant_id = 2;
|
||||
|
||||
// Name.
|
||||
string name = 3;
|
||||
|
||||
// Description.
|
||||
string description = 26;
|
||||
|
||||
// Region.
|
||||
common.Region region = 4;
|
||||
|
||||
// LoRaWAN mac-version.
|
||||
common.MacVersion mac_version = 5;
|
||||
|
||||
// Regional parameters revision.
|
||||
common.RegParamsRevision reg_params_revision = 6;
|
||||
|
||||
// ADR algorithm ID.
|
||||
string adr_algorithm_id = 7;
|
||||
|
||||
// Payload codec runtime.
|
||||
CodecRuntime payload_codec_runtime = 8;
|
||||
|
||||
// Payload codec script.
|
||||
string payload_codec_script = 9;
|
||||
|
||||
// Flush queue on device activation.
|
||||
bool flush_queue_on_activate = 10;
|
||||
|
||||
// Uplink interval (seconds).
|
||||
// This defines the expected uplink interval which the device uses for
|
||||
// communication. If the uplink interval has expired and no uplink has
|
||||
// been received, the device is considered inactive.
|
||||
uint32 uplink_interval = 11;
|
||||
|
||||
// Device-status request interval (times / day).
|
||||
// This defines the times per day that ChirpStack will request the
|
||||
// device-status from the device.
|
||||
uint32 device_status_req_interval = 12;
|
||||
|
||||
// Supports OTAA.
|
||||
bool supports_otaa = 13;
|
||||
|
||||
// Supports Class B.
|
||||
bool supports_class_b = 14;
|
||||
|
||||
// Supports Class-C.
|
||||
bool supports_class_c = 15;
|
||||
|
||||
// Class-B timeout (seconds).
|
||||
// This is the maximum time ChirpStack will wait to receive an acknowledgement
|
||||
// from the device (if requested).
|
||||
uint32 class_b_timeout = 16;
|
||||
|
||||
// Class-B ping-slots per beacon period.
|
||||
// Valid options are: 0 - 7.
|
||||
//
|
||||
// The actual number of ping-slots per beacon period equals to 2^k.
|
||||
uint32 class_b_ping_slot_nb_k = 17;
|
||||
|
||||
// Class-B ping-slot DR.
|
||||
uint32 class_b_ping_slot_dr = 18;
|
||||
|
||||
// Class-B ping-slot freq (Hz).
|
||||
uint32 class_b_ping_slot_freq = 19;
|
||||
|
||||
// Class-C timeout (seconds).
|
||||
// This is the maximum time ChirpStack will wait to receive an acknowledgement
|
||||
// from the device (if requested).
|
||||
uint32 class_c_timeout = 20;
|
||||
|
||||
// RX1 delay (for ABP).
|
||||
uint32 abp_rx1_delay = 21;
|
||||
|
||||
// RX1 DR offset (for ABP).
|
||||
uint32 abp_rx1_dr_offset = 22;
|
||||
|
||||
// RX2 DR (for ABP).
|
||||
uint32 abp_rx2_dr = 23;
|
||||
|
||||
// RX2 frequency (for ABP, Hz).
|
||||
uint32 abp_rx2_freq = 24;
|
||||
|
||||
// Tags (user defined).
|
||||
// These tags can be used to add additional information the the
|
||||
// device-profile. These tags are exposed in all the integration events of
|
||||
// devices using this device-profile.
|
||||
map<string, string> tags = 25;
|
||||
|
||||
// Measurements.
|
||||
// If defined, ChirpStack will visualize these metrics in the web-interface.
|
||||
map<string, Measurement> measurements = 27;
|
||||
|
||||
// Auto-detect measurements.
|
||||
// If set to true, measurements will be automatically added based on the
|
||||
// keys of the decoded payload. In cases where the decoded payload contains
|
||||
// random keys in the data, you want to set this to false.
|
||||
bool auto_detect_measurements = 28;
|
||||
|
||||
// Region configuration ID.
|
||||
// If set, devices will only use the associated region. If let blank, then
|
||||
// devices will use all regions matching the selected common-name. Note
|
||||
// that multiple region configurations can exist for the same common-name,
|
||||
// e.g. to provide an 8 channel and 16 channel configuration for the US915
|
||||
// band.
|
||||
string region_config_id = 29;
|
||||
|
||||
// Device is a Relay device.
|
||||
// Enable this in case the device is a Relay. A Relay device implements TS011
|
||||
// and is able to relay data from relay capable devices.
|
||||
// See for more information the TS011 specification.
|
||||
bool is_relay = 30;
|
||||
|
||||
// Device is a Relay end-device.
|
||||
// Enable this in case the device is an end-device that can operate under a
|
||||
// Relay. Please refer to the TS011 specification for more information.
|
||||
bool is_relay_ed = 31;
|
||||
|
||||
// End-device only accept data through relay.
|
||||
// Only accept data for this device through a relay. This setting is useful
|
||||
// for testing as in case of a test-setup, the end-device is usually within
|
||||
// range of the gateway.
|
||||
bool relay_ed_relay_only = 32;
|
||||
|
||||
// Relay must be enabled.
|
||||
bool relay_enabled = 33;
|
||||
|
||||
// Relay CAD periodicity.
|
||||
CadPeriodicity relay_cad_periodicity = 34;
|
||||
|
||||
// Relay default channel index.
|
||||
// Valid values are 0 and 1, please refer to the RP002 specification for
|
||||
// the meaning of these values.
|
||||
uint32 relay_default_channel_index = 35;
|
||||
|
||||
// Relay second channel frequency (Hz).
|
||||
uint32 relay_second_channel_freq = 36;
|
||||
|
||||
// Relay second channel DR.
|
||||
uint32 relay_second_channel_dr = 37;
|
||||
|
||||
// Relay second channel ACK offset.
|
||||
SecondChAckOffset relay_second_channel_ack_offset = 38;
|
||||
|
||||
// Relay end-device activation mode.
|
||||
RelayModeActivation relay_ed_activation_mode = 39;
|
||||
|
||||
// Relay end-device smart-enable level.
|
||||
uint32 relay_ed_smart_enable_level = 40;
|
||||
|
||||
// Relay end-device back-off (in case it does not receive WOR ACK frame).
|
||||
// 0 = Always send a LoRaWAN uplink
|
||||
// 1..63 = Send a LoRaWAN uplink after X WOR frames without a WOR ACK
|
||||
uint32 relay_ed_back_off = 41;
|
||||
|
||||
// Relay end-device uplink limit bucket size.
|
||||
//
|
||||
// This field indicates the multiplier to determine the bucket size
|
||||
// according to the following formula:
|
||||
// BucketSize TOKEN = _reload_rate x _bucket_size
|
||||
//
|
||||
// Valid values (0 - 3):
|
||||
// 0 = 1
|
||||
// 1 = 2
|
||||
// 2 = 4
|
||||
// 3 = 12
|
||||
uint32 relay_ed_uplink_limit_bucket_size = 42;
|
||||
|
||||
// Relay end-device uplink limit reload rate.
|
||||
//
|
||||
// Valid values:
|
||||
// * 0 - 62 = X tokens every hour
|
||||
// * 63 = no limitation
|
||||
uint32 relay_ed_uplink_limit_reload_rate = 43;
|
||||
|
||||
// Relay join-request limit reload rate.
|
||||
//
|
||||
// Valid values:
|
||||
// * 0 - 126 = X tokens every hour
|
||||
// * 127 = no limitation
|
||||
uint32 relay_join_req_limit_reload_rate = 44;
|
||||
|
||||
// Relay notify limit reload rate.
|
||||
//
|
||||
// Valid values:
|
||||
// * 0 - 126 = X tokens every hour
|
||||
// * 127 = no limitation
|
||||
uint32 relay_notify_limit_reload_rate = 45;
|
||||
|
||||
// Relay global uplink limit reload rate.
|
||||
//
|
||||
// Valid values:
|
||||
// * 0 - 126 = X tokens every hour
|
||||
// * 127 = no limitation
|
||||
uint32 relay_global_uplink_limit_reload_rate = 46;
|
||||
|
||||
// Relay overall limit reload rate.
|
||||
//
|
||||
// Valid values:
|
||||
// * 0 - 126 = X tokens every hour
|
||||
// * 127 = no limitation
|
||||
uint32 relay_overall_limit_reload_rate = 47;
|
||||
|
||||
// Relay join-request limit bucket size.
|
||||
//
|
||||
// This field indicates the multiplier to determine the bucket size
|
||||
// according to the following formula:
|
||||
// BucketSize TOKEN = _reload_rate x _bucket_size
|
||||
//
|
||||
// Valid values (0 - 3):
|
||||
// 0 = 1
|
||||
// 1 = 2
|
||||
// 2 = 4
|
||||
// 3 = 12
|
||||
uint32 relay_join_req_limit_bucket_size = 48;
|
||||
|
||||
// Relay notify limit bucket size.
|
||||
//
|
||||
// This field indicates the multiplier to determine the bucket size
|
||||
// according to the following formula:
|
||||
// BucketSize TOKEN = _reload_rate x _bucket_size
|
||||
//
|
||||
// Valid values (0 - 3):
|
||||
// 0 = 1
|
||||
// 1 = 2
|
||||
// 2 = 4
|
||||
// 3 = 12
|
||||
uint32 relay_notify_limit_bucket_size = 49;
|
||||
|
||||
// Relay globak uplink limit bucket size.
|
||||
//
|
||||
// This field indicates the multiplier to determine the bucket size
|
||||
// according to the following formula:
|
||||
// BucketSize TOKEN = _reload_rate x _bucket_size
|
||||
//
|
||||
// Valid values (0 - 3):
|
||||
// 0 = 1
|
||||
// 1 = 2
|
||||
// 2 = 4
|
||||
// 3 = 12
|
||||
uint32 relay_global_uplink_limit_bucket_size = 50;
|
||||
|
||||
// Relay overall limit bucket size.
|
||||
//
|
||||
// This field indicates the multiplier to determine the bucket size
|
||||
// according to the following formula:
|
||||
// BucketSize TOKEN = _reload_rate x _bucket_size
|
||||
//
|
||||
// Valid values (0 - 3):
|
||||
// 0 = 1
|
||||
// 1 = 2
|
||||
// 2 = 4
|
||||
// 3 = 12
|
||||
uint32 relay_overall_limit_bucket_size = 51;
|
||||
|
||||
// Allow roaming.
|
||||
//
|
||||
// If set to true, it means that the device is allowed to use roaming.
|
||||
bool allow_roaming = 52;
|
||||
|
||||
// RX1 Delay.
|
||||
//
|
||||
// This makes it possible to override the system RX1 Delay. Please note that
|
||||
// this values only has effect in case it is higher than the system value.
|
||||
// In other words, it can be used to increase the RX1 Delay but not to decrease
|
||||
// it.
|
||||
// Valid options are 1 - 15 (0 = always use system RX1 Delay).
|
||||
uint32 rx1_delay = 53;
|
||||
}
|
||||
|
||||
message Measurement {
|
||||
// Name (user defined).
|
||||
string name = 2;
|
||||
|
||||
// Kind.
|
||||
MeasurementKind kind = 3;
|
||||
}
|
||||
|
||||
message DeviceProfileListItem {
|
||||
// Device-profile ID (UUID).
|
||||
string id = 1;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 2;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 3;
|
||||
|
||||
// Name.
|
||||
string name = 4;
|
||||
|
||||
// Region.
|
||||
common.Region region = 5;
|
||||
|
||||
// LoRaWAN mac-version.
|
||||
common.MacVersion mac_version = 6;
|
||||
|
||||
// Regional parameters revision.
|
||||
common.RegParamsRevision reg_params_revision = 7;
|
||||
|
||||
// Supports OTAA.
|
||||
bool supports_otaa = 8;
|
||||
|
||||
// Supports Class-B.
|
||||
bool supports_class_b = 9;
|
||||
|
||||
// Supports Class-C.
|
||||
bool supports_class_c = 10;
|
||||
}
|
||||
|
||||
message CreateDeviceProfileRequest {
|
||||
// Object to create.
|
||||
DeviceProfile device_profile = 1;
|
||||
}
|
||||
|
||||
message CreateDeviceProfileResponse {
|
||||
// ID (UUID).
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message GetDeviceProfileRequest {
|
||||
// ID (UUID).
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message GetDeviceProfileResponse {
|
||||
// Device-profile object.
|
||||
DeviceProfile device_profile = 1;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 2;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 3;
|
||||
}
|
||||
|
||||
message UpdateDeviceProfileRequest {
|
||||
// Device-profile object.
|
||||
DeviceProfile device_profile = 1;
|
||||
}
|
||||
|
||||
message DeleteDeviceProfileRequest {
|
||||
// ID (UUID).
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message ListDeviceProfilesRequest {
|
||||
// Max number of device-profiles to return in the result-set.
|
||||
uint32 limit = 1;
|
||||
|
||||
// Offset in the result-set (for pagination).
|
||||
uint32 offset = 2;
|
||||
|
||||
// If set, the given string will be used to search on name.
|
||||
string search = 3;
|
||||
|
||||
// Tenant ID to list the device-profiles for.
|
||||
string tenant_id = 4;
|
||||
}
|
||||
|
||||
message ListDeviceProfilesResponse {
|
||||
// Total number of device-profiles.
|
||||
uint32 total_count = 1;
|
||||
|
||||
// Result-set.
|
||||
repeated DeviceProfileListItem result = 2;
|
||||
}
|
||||
|
||||
message ListDeviceProfileAdrAlgorithmsResponse {
|
||||
// Total number of algorithms.
|
||||
uint32 total_count = 1;
|
||||
|
||||
// Result-set.
|
||||
repeated AdrAlgorithmListItem result = 2;
|
||||
}
|
||||
|
||||
message AdrAlgorithmListItem {
|
||||
// Algorithm ID.
|
||||
string id = 1;
|
||||
|
||||
// Algorithm name.
|
||||
string name = 2;
|
||||
}
|
246
api/rust/proto/chirpstack/api/device_profile_template.proto
vendored
Normal file
246
api/rust/proto/chirpstack/api/device_profile_template.proto
vendored
Normal file
@ -0,0 +1,246 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package api;
|
||||
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "DeviceProfileTemplateProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
option php_namespace = "Chirpstack\\Api";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
import "common/common.proto";
|
||||
import "api/device_profile.proto";
|
||||
|
||||
// DeviceProfileTemplateService is the service providing API methods for managing device-profile templates.
|
||||
service DeviceProfileTemplateService {
|
||||
// Create the given device-profile template.
|
||||
rpc Create(CreateDeviceProfileTemplateRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/device-profile-templates"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Get the device-profile template for the given ID.
|
||||
rpc Get(GetDeviceProfileTemplateRequest) returns (GetDeviceProfileTemplateResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/device-profile-templates/{id}"
|
||||
};
|
||||
}
|
||||
|
||||
// Update the given device-profile template.
|
||||
rpc Update(UpdateDeviceProfileTemplateRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
put: "/api/device-profile-templates/{device_profile_template.id}"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete the device-profile template with the given ID.
|
||||
rpc Delete(DeleteDeviceProfileTemplateRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/device-profile-templates/{id}"
|
||||
};
|
||||
}
|
||||
|
||||
// List the available device-profile templates.
|
||||
rpc List(ListDeviceProfileTemplatesRequest) returns (ListDeviceProfileTemplatesResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/device-profile-templates"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
message DeviceProfileTemplate {
|
||||
// Device-profile template ID.
|
||||
string id = 1;
|
||||
|
||||
// Name.
|
||||
string name = 2;
|
||||
|
||||
// Description.
|
||||
string description = 3;
|
||||
|
||||
// Vendor.
|
||||
string vendor = 4;
|
||||
|
||||
// Firmware.
|
||||
string firmware = 5;
|
||||
|
||||
// Region.
|
||||
common.Region region = 6;
|
||||
|
||||
// LoRaWAN mac-version.
|
||||
common.MacVersion mac_version = 7;
|
||||
|
||||
// Regional parameters revision.
|
||||
common.RegParamsRevision reg_params_revision = 8;
|
||||
|
||||
// ADR algorithm ID.
|
||||
string adr_algorithm_id = 9;
|
||||
|
||||
// Payload codec runtime.
|
||||
CodecRuntime payload_codec_runtime = 10;
|
||||
|
||||
// Payload codec script.
|
||||
string payload_codec_script = 11;
|
||||
|
||||
// Flush queue on device activation.
|
||||
bool flush_queue_on_activate = 12;
|
||||
|
||||
// Uplink interval (seconds).
|
||||
// This defines the expected uplink interval which the device uses for
|
||||
// communication. When the uplink interval has expired and no uplink has
|
||||
// been received, the device is considered inactive.
|
||||
uint32 uplink_interval = 13;
|
||||
|
||||
// Device-status request interval (times / day).
|
||||
// This defines the times per day that ChirpStack will request the device-status
|
||||
// from the device.
|
||||
uint32 device_status_req_interval = 14;
|
||||
|
||||
// Supports OTAA.
|
||||
bool supports_otaa = 15;
|
||||
|
||||
// Supports Class B.
|
||||
bool supports_class_b = 16;
|
||||
|
||||
// Supports Class-C.
|
||||
bool supports_class_c = 17;
|
||||
|
||||
// Class-B timeout (seconds).
|
||||
// This is the maximum time ChirpStack will wait to receive an acknowledgement from the device (if requested).
|
||||
uint32 class_b_timeout = 18;
|
||||
|
||||
// Class-B ping-slots per beacon period.
|
||||
// Valid options are: 0 - 7.
|
||||
//
|
||||
// The actual number of ping-slots per beacon period equals to 2^k.
|
||||
uint32 class_b_ping_slot_nb_k = 19;
|
||||
|
||||
// Class-B ping-slot DR.
|
||||
uint32 class_b_ping_slot_dr = 20;
|
||||
|
||||
// Class-B ping-slot freq (Hz).
|
||||
uint32 class_b_ping_slot_freq = 21;
|
||||
|
||||
// Class-C timeout (seconds).
|
||||
// This is the maximum time ChirpStack will wait to receive an acknowledgement from the device (if requested).
|
||||
uint32 class_c_timeout = 22;
|
||||
|
||||
// RX1 delay (for ABP).
|
||||
uint32 abp_rx1_delay = 23;
|
||||
|
||||
// RX1 DR offset (for ABP).
|
||||
uint32 abp_rx1_dr_offset = 24;
|
||||
|
||||
// RX2 DR (for ABP).
|
||||
uint32 abp_rx2_dr = 25;
|
||||
|
||||
// RX2 frequency (for ABP, Hz).
|
||||
uint32 abp_rx2_freq = 26;
|
||||
|
||||
// User defined tags.
|
||||
map<string, string> tags = 27;
|
||||
|
||||
// Measurements.
|
||||
// If defined, ChirpStack will visualize these metrics in the web-interface.
|
||||
map<string, Measurement> measurements = 28;
|
||||
|
||||
// Auto-detect measurements.
|
||||
// If set to true, measurements will be automatically added based on the
|
||||
// keys of the decoded payload. In cases where the decoded payload contains
|
||||
// random keys in the data, you want to set this to false.
|
||||
bool auto_detect_measurements = 29;
|
||||
}
|
||||
|
||||
message DeviceProfileTemplateListItem {
|
||||
// Device-profile template ID.
|
||||
string id = 1;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 2;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 3;
|
||||
|
||||
// Name.
|
||||
string name = 4;
|
||||
|
||||
// Vendor.
|
||||
string vendor = 5;
|
||||
|
||||
// Firmware.
|
||||
string firmware = 6;
|
||||
|
||||
// Region.
|
||||
common.Region region = 7;
|
||||
|
||||
// LoRaWAN mac-version.
|
||||
common.MacVersion mac_version = 8;
|
||||
|
||||
// Regional parameters revision.
|
||||
common.RegParamsRevision reg_params_revision = 9;
|
||||
|
||||
// Supports OTAA.
|
||||
bool supports_otaa = 10;
|
||||
|
||||
// Supports Class-B.
|
||||
bool supports_class_b = 11;
|
||||
|
||||
// Supports Class-C.
|
||||
bool supports_class_c = 12;
|
||||
|
||||
}
|
||||
|
||||
message CreateDeviceProfileTemplateRequest {
|
||||
// Object to create.
|
||||
DeviceProfileTemplate device_profile_template = 1;
|
||||
}
|
||||
|
||||
message GetDeviceProfileTemplateRequest {
|
||||
// ID.
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message GetDeviceProfileTemplateResponse {
|
||||
// Device-profile template object.
|
||||
DeviceProfileTemplate device_profile_template = 1;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 2;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 3;
|
||||
}
|
||||
|
||||
message UpdateDeviceProfileTemplateRequest {
|
||||
// Object to update.
|
||||
DeviceProfileTemplate device_profile_template = 1;
|
||||
}
|
||||
|
||||
message DeleteDeviceProfileTemplateRequest {
|
||||
// ID.
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message ListDeviceProfileTemplatesRequest {
|
||||
// Max number of device-profile templates to return in the result-set.
|
||||
uint32 limit = 1;
|
||||
|
||||
// Offset in the result-set (for pagination).
|
||||
uint32 offset = 2;
|
||||
}
|
||||
|
||||
message ListDeviceProfileTemplatesResponse {
|
||||
// Total number of device-profile templates.
|
||||
uint32 total_count = 1;
|
||||
|
||||
// Result-set.
|
||||
repeated DeviceProfileTemplateListItem result = 2;
|
||||
}
|
423
api/rust/proto/chirpstack/api/gateway.proto
vendored
Normal file
423
api/rust/proto/chirpstack/api/gateway.proto
vendored
Normal file
@ -0,0 +1,423 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package api;
|
||||
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "GatewayProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
option php_namespace = "Chirpstack\\Api";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
import "common/common.proto";
|
||||
|
||||
// GatewayService is the service providing API methods for managing gateways.
|
||||
service GatewayService {
|
||||
// Create creates the given gateway.
|
||||
rpc Create(CreateGatewayRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/gateways"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Get returns the gateway for the given Gateway ID.
|
||||
rpc Get(GetGatewayRequest) returns (GetGatewayResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/gateways/{gateway_id}"
|
||||
};
|
||||
}
|
||||
|
||||
// Update updates the given gateway.
|
||||
rpc Update(UpdateGatewayRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
put: "/api/gateways/{gateway.gateway_id}"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete deletes the gateway matching the given Gateway ID.
|
||||
rpc Delete(DeleteGatewayRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/gateways/{gateway_id}"
|
||||
};
|
||||
}
|
||||
|
||||
// Get the list of gateways.
|
||||
rpc List(ListGatewaysRequest) returns (ListGatewaysResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/gateways"
|
||||
};
|
||||
}
|
||||
|
||||
// Generate client-certificate for the gateway.
|
||||
rpc GenerateClientCertificate(GenerateGatewayClientCertificateRequest) returns (GenerateGatewayClientCertificateResponse) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/gateways/{gateway_id}/generate-certificate"
|
||||
};
|
||||
}
|
||||
|
||||
// GetMetrics returns the gateway metrics.
|
||||
rpc GetMetrics(GetGatewayMetricsRequest) returns (GetGatewayMetricsResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/gateways/{gateway_id}/metrics"
|
||||
};
|
||||
}
|
||||
|
||||
// GetDutyCycleMetrics returns the duty-cycle metrics.
|
||||
// Note that only the last 2 hours of data are stored. Currently only per minute aggregation is available.
|
||||
rpc GetDutyCycleMetrics(GetGatewayDutyCycleMetricsRequest) returns (GetGatewayDutyCycleMetricsResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/gateways/{gateway_id}/duty-cycle-metrics"
|
||||
};
|
||||
}
|
||||
|
||||
// Get the given Relay Gateway.
|
||||
rpc GetRelayGateway(GetRelayGatewayRequest) returns (GetRelayGatewayResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/gateways/relay-gateways/{tenant_id}/{relay_id}"
|
||||
};
|
||||
}
|
||||
|
||||
// List the detected Relay Gateways.
|
||||
rpc ListRelayGateways(ListRelayGatewaysRequest) returns (ListRelayGatewaysResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/gateways/relay-gateways"
|
||||
};
|
||||
}
|
||||
|
||||
// Update the given Relay Gateway.
|
||||
rpc UpdateRelayGateway(UpdateRelayGatewayRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
put: "/api/gateways/relay-gateways/{relay_gateway.tenant_id}/{relay_gateway.relay_id}"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete the given Relay Gateway.
|
||||
rpc DeleteRelayGateway(DeleteRelayGatewayRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/gateways/relay-gateways/{tenant_id}/{relay_id}"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
enum GatewayState {
|
||||
// The gateway has never sent any stats.
|
||||
NEVER_SEEN = 0;
|
||||
|
||||
// Online.
|
||||
ONLINE = 1;
|
||||
|
||||
// Offline.
|
||||
OFFLINE = 2;
|
||||
}
|
||||
|
||||
message Gateway {
|
||||
// Gateway ID (EUI64).
|
||||
string gateway_id = 1;
|
||||
|
||||
// Name.
|
||||
string name = 2;
|
||||
|
||||
// Description.
|
||||
string description = 3;
|
||||
|
||||
// Gateway location.
|
||||
common.Location location = 4;
|
||||
|
||||
// Tenant ID (UUID).
|
||||
string tenant_id = 5;
|
||||
|
||||
// Tags.
|
||||
map<string, string> tags = 6;
|
||||
|
||||
// Metadata (provided by the gateway).
|
||||
map<string, string> metadata = 7;
|
||||
|
||||
// Stats interval (seconds).
|
||||
// This defines the expected interval in which the gateway sends its
|
||||
// statistics.
|
||||
uint32 stats_interval = 8;
|
||||
}
|
||||
|
||||
message GatewayListItem {
|
||||
// Tenant ID.
|
||||
string tenant_id = 1;
|
||||
|
||||
// Gateway ID (EUI64).
|
||||
string gateway_id = 2;
|
||||
|
||||
// Name.
|
||||
string name = 3;
|
||||
|
||||
// Description.
|
||||
string description = 4;
|
||||
|
||||
// Location.
|
||||
common.Location location = 5;
|
||||
|
||||
// Gateway properties.
|
||||
map<string, string> properties = 6;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 7;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 8;
|
||||
|
||||
// Last seen at timestamp.
|
||||
google.protobuf.Timestamp last_seen_at = 9;
|
||||
|
||||
// Gateway state.
|
||||
// Please note that the state of the gateway is driven by the stats
|
||||
// packages that are sent by the gateway.
|
||||
GatewayState state = 10;
|
||||
}
|
||||
|
||||
message CreateGatewayRequest {
|
||||
// Gateway object.
|
||||
Gateway gateway = 1;
|
||||
}
|
||||
|
||||
message GetGatewayRequest {
|
||||
// Gateway ID (EUI64).
|
||||
string gateway_id = 1;
|
||||
}
|
||||
|
||||
message GetGatewayResponse {
|
||||
// Gateway object.
|
||||
Gateway gateway = 1;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 2;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 3;
|
||||
|
||||
// Last seen at timestamp.
|
||||
google.protobuf.Timestamp last_seen_at = 4;
|
||||
}
|
||||
|
||||
message UpdateGatewayRequest {
|
||||
// Gateway object.
|
||||
Gateway gateway = 1;
|
||||
}
|
||||
|
||||
message DeleteGatewayRequest {
|
||||
// Gateway ID (EUI64).
|
||||
string gateway_id = 1;
|
||||
}
|
||||
|
||||
message ListGatewaysRequest {
|
||||
// Max number of gateways to return in the result-set.
|
||||
uint32 limit = 1;
|
||||
|
||||
// Offset in the result-set (for pagination).
|
||||
uint32 offset = 2;
|
||||
|
||||
// If set, the given string will be used to search on name (optional).
|
||||
string search = 3;
|
||||
|
||||
// Tenant ID (UUID) to filter gateways on.
|
||||
// To list all gateways as a global admin user, this field can be left blank.
|
||||
string tenant_id = 4;
|
||||
|
||||
// Multicast-group ID (UUID) to filter gateways on.
|
||||
string multicast_group_id = 5;
|
||||
}
|
||||
|
||||
message ListGatewaysResponse {
|
||||
// Total number of gateways.
|
||||
uint32 total_count = 1;
|
||||
|
||||
// Result-set.
|
||||
repeated GatewayListItem result = 2;
|
||||
}
|
||||
|
||||
message GenerateGatewayClientCertificateRequest {
|
||||
// Gateway ID (EUI64).
|
||||
string gateway_id = 1;
|
||||
}
|
||||
|
||||
message GenerateGatewayClientCertificateResponse {
|
||||
// TLS certificate.
|
||||
string tls_cert = 1;
|
||||
|
||||
// TLS key.
|
||||
string tls_key = 2;
|
||||
|
||||
// CA certificate.
|
||||
string ca_cert = 3;
|
||||
|
||||
// Expires at defines the expiration date of the certificate.
|
||||
google.protobuf.Timestamp expires_at = 4;
|
||||
}
|
||||
|
||||
message GetGatewayMetricsRequest {
|
||||
// Gateway ID (EUI64).
|
||||
string gateway_id = 1;
|
||||
|
||||
// Interval start timestamp.
|
||||
google.protobuf.Timestamp start = 2;
|
||||
|
||||
// Interval end timestamp.
|
||||
google.protobuf.Timestamp end = 3;
|
||||
|
||||
// Aggregation.
|
||||
common.Aggregation aggregation = 4;
|
||||
}
|
||||
|
||||
message GetGatewayMetricsResponse {
|
||||
// RX packets.
|
||||
common.Metric rx_packets = 1;
|
||||
|
||||
// TX packets.
|
||||
common.Metric tx_packets = 2;
|
||||
|
||||
// TX packets / frequency.
|
||||
common.Metric tx_packets_per_freq = 3;
|
||||
|
||||
// RX packets / frequency.
|
||||
common.Metric rx_packets_per_freq = 4;
|
||||
|
||||
// TX packets / DR.
|
||||
common.Metric tx_packets_per_dr = 5;
|
||||
|
||||
// RX packets / DR.
|
||||
common.Metric rx_packets_per_dr = 6;
|
||||
|
||||
// TX packets per status.
|
||||
common.Metric tx_packets_per_status = 7;
|
||||
}
|
||||
|
||||
message GetGatewayDutyCycleMetricsRequest {
|
||||
// Gateway ID (EUI64).
|
||||
string gateway_id = 1;
|
||||
|
||||
// Interval start timestamp.
|
||||
google.protobuf.Timestamp start = 2;
|
||||
|
||||
// Interval end timestamp.
|
||||
google.protobuf.Timestamp end = 3;
|
||||
}
|
||||
|
||||
message GetGatewayDutyCycleMetricsResponse {
|
||||
// Percentage relative to max load.
|
||||
common.Metric max_load_percentage = 1;
|
||||
|
||||
// Percentage relative to tracking window.
|
||||
common.Metric window_percentage = 2;
|
||||
}
|
||||
|
||||
message GetRelayGatewayRequest {
|
||||
// Tenant ID (UUID).
|
||||
string tenant_id = 1;
|
||||
|
||||
// Relay ID (4 byte HEX).
|
||||
string relay_id = 2;
|
||||
}
|
||||
|
||||
message GetRelayGatewayResponse {
|
||||
// Relay Gateway object.
|
||||
RelayGateway relay_gateway = 1;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 2;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 3;
|
||||
|
||||
// Last seen at timestamp.
|
||||
google.protobuf.Timestamp last_seen_at = 4;
|
||||
}
|
||||
|
||||
message ListRelayGatewaysRequest {
|
||||
// Max number of relay-gateways to return in the result-set.
|
||||
uint32 limit = 1;
|
||||
|
||||
// Offset in the result-set (for pagination).
|
||||
uint32 offset = 2;
|
||||
|
||||
// Tenant ID (UUID) to filter relay-gateways on.
|
||||
// To list all relay-gateways as a global admin user, this field can be left blank.
|
||||
string tenant_id = 3;
|
||||
}
|
||||
|
||||
message ListRelayGatewaysResponse {
|
||||
// Total number of relay-gateways.
|
||||
uint32 total_count = 1;
|
||||
|
||||
// Result-set.
|
||||
repeated RelayGatewayListItem result = 2;
|
||||
}
|
||||
|
||||
message RelayGatewayListItem {
|
||||
// Tenant ID.
|
||||
string tenant_id = 1;
|
||||
|
||||
// Relay ID (4 byte HEX).
|
||||
string relay_id = 2;
|
||||
|
||||
// Name.
|
||||
string name = 3;
|
||||
|
||||
// Description.
|
||||
string description = 4;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 5;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 6;
|
||||
|
||||
// Last seen at timestamp.
|
||||
google.protobuf.Timestamp last_seen_at = 7;
|
||||
|
||||
// Gateway state.
|
||||
// Please note that the state of the relay is driven by the last
|
||||
// received stats packet sent by the relay-gateway.
|
||||
GatewayState state = 10;
|
||||
|
||||
// Region configuration ID.
|
||||
string region_config_id = 11;
|
||||
}
|
||||
|
||||
message UpdateRelayGatewayRequest {
|
||||
// Relay Gateway object.
|
||||
RelayGateway relay_gateway = 1;
|
||||
}
|
||||
|
||||
message DeleteRelayGatewayRequest {
|
||||
// Tenant ID.
|
||||
string tenant_id = 1;
|
||||
|
||||
// Relay ID (4 byte HEX).
|
||||
string relay_id = 2;
|
||||
}
|
||||
|
||||
message RelayGateway {
|
||||
// Tenant ID.
|
||||
string tenant_id = 1;
|
||||
|
||||
// Relay ID (4 byte HEX).
|
||||
string relay_id = 2;
|
||||
|
||||
// Name.
|
||||
string name = 3;
|
||||
|
||||
// Description.
|
||||
string description = 4;
|
||||
|
||||
// Stats interval (seconds).
|
||||
// This defines the expected interval in which the gateway sends its
|
||||
// statistics.
|
||||
uint32 stats_interval = 5;
|
||||
|
||||
// Region configuration ID.
|
||||
string region_config_id = 6;
|
||||
}
|
432
api/rust/proto/chirpstack/api/internal.proto
vendored
Normal file
432
api/rust/proto/chirpstack/api/internal.proto
vendored
Normal file
@ -0,0 +1,432 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package api;
|
||||
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "InternalProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
option php_namespace = "Chirpstack\\Api";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Api";
|
||||
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
import "common/common.proto";
|
||||
import "api/user.proto";
|
||||
|
||||
// InternalService is the service providing API endpoints for internal usage.
|
||||
service InternalService {
|
||||
// Log in a user
|
||||
rpc Login(LoginRequest) returns (LoginResponse) {}
|
||||
|
||||
// Get the current user's profile
|
||||
rpc Profile(google.protobuf.Empty) returns (ProfileResponse) {}
|
||||
|
||||
// Perform a global search.
|
||||
rpc GlobalSearch(GlobalSearchRequest) returns (GlobalSearchResponse) {}
|
||||
|
||||
// CreateApiKey creates the given API key.
|
||||
rpc CreateApiKey(CreateApiKeyRequest) returns (CreateApiKeyResponse) {}
|
||||
|
||||
// DeleteApiKey deletes the API key.
|
||||
rpc DeleteApiKey(DeleteApiKeyRequest) returns (google.protobuf.Empty) {}
|
||||
|
||||
// ListApiKeys lists the available API keys.
|
||||
rpc ListApiKeys(ListApiKeysRequest) returns (ListApiKeysResponse) {}
|
||||
|
||||
// Get the global settings.
|
||||
rpc Settings(google.protobuf.Empty) returns (SettingsResponse) {}
|
||||
|
||||
// OpenId Connect login.
|
||||
rpc OpenIdConnectLogin(OpenIdConnectLoginRequest)
|
||||
returns (OpenIdConnectLoginResponse) {}
|
||||
|
||||
// OAuth2 login.
|
||||
rpc OAuth2Login(OAuth2LoginRequest) returns (OAuth2LoginResponse) {}
|
||||
|
||||
// GetDevicesSummary returns an aggregated summary of the devices.
|
||||
rpc GetDevicesSummary(GetDevicesSummaryRequest)
|
||||
returns (GetDevicesSummaryResponse) {}
|
||||
|
||||
// GetGatewaysSummary returns an aggregated summary of the gateways.
|
||||
rpc GetGatewaysSummary(GetGatewaysSummaryRequest)
|
||||
returns (GetGatewaysSummaryResponse) {}
|
||||
|
||||
// Stream frame for the given Gateway ID.
|
||||
rpc StreamGatewayFrames(StreamGatewayFramesRequest) returns (stream LogItem) {
|
||||
}
|
||||
|
||||
// Stream frames for the given Device EUI.
|
||||
rpc StreamDeviceFrames(StreamDeviceFramesRequest) returns (stream LogItem) {}
|
||||
|
||||
// Stream events for the given Device EUI.
|
||||
rpc StreamDeviceEvents(StreamDeviceEventsRequest) returns (stream LogItem) {}
|
||||
|
||||
// ListRegions lists the available (configured) regions.
|
||||
rpc ListRegions(google.protobuf.Empty) returns (ListRegionsResponse) {}
|
||||
|
||||
// GetRegion returns the region details for the given region.
|
||||
rpc GetRegion(GetRegionRequest) returns (GetRegionResponse) {}
|
||||
|
||||
// GetVersion returns the ChirpStack version.
|
||||
rpc GetVersion(google.protobuf.Empty) returns (GetVersionResponse) {}
|
||||
}
|
||||
|
||||
message ApiKey {
|
||||
// API key ID.
|
||||
// This value will be automatically generated on create.
|
||||
string id = 1;
|
||||
|
||||
// Name.
|
||||
string name = 2;
|
||||
|
||||
// Is global admin key.
|
||||
bool is_admin = 3;
|
||||
|
||||
// Tenant ID.
|
||||
// In case the API key is intended to manage resources under a single tenant.
|
||||
string tenant_id = 4;
|
||||
}
|
||||
|
||||
message CreateApiKeyRequest {
|
||||
// The API key to create.
|
||||
ApiKey api_key = 1;
|
||||
}
|
||||
|
||||
message CreateApiKeyResponse {
|
||||
// API key ID.
|
||||
string id = 1;
|
||||
|
||||
// API token for authentication API requests.
|
||||
string token = 2;
|
||||
}
|
||||
|
||||
message DeleteApiKeyRequest {
|
||||
// API key ID.
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message ListApiKeysRequest {
|
||||
// Max number of items to return.
|
||||
uint32 limit = 1;
|
||||
|
||||
// Offset in the result-set (for pagination).
|
||||
uint32 offset = 2;
|
||||
|
||||
// Return only admin keys.
|
||||
bool is_admin = 3;
|
||||
|
||||
// Filter on tenant ID.
|
||||
string tenant_id = 4;
|
||||
}
|
||||
|
||||
message ListApiKeysResponse {
|
||||
// Total number of API keys.
|
||||
uint32 total_count = 1;
|
||||
|
||||
repeated ApiKey result = 2;
|
||||
}
|
||||
|
||||
// Defines a tenant to which the user is associated.
|
||||
message UserTenantLink {
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 1;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 2;
|
||||
|
||||
// Tenant ID.
|
||||
string tenant_id = 3;
|
||||
|
||||
// User is admin within the context of this tenant.
|
||||
// There is no need to set the is_device_admin and is_gateway_admin flags.
|
||||
bool is_admin = 4;
|
||||
|
||||
// User is able to modify device related resources (applications,
|
||||
// device-profiles, devices, multicast-groups).
|
||||
bool is_device_admin = 5;
|
||||
|
||||
// User is able to modify gateways.
|
||||
bool is_gateway_admin = 6;
|
||||
}
|
||||
|
||||
message LoginRequest {
|
||||
// Email of the user.
|
||||
string email = 1;
|
||||
|
||||
// Password of the user.
|
||||
string password = 2;
|
||||
}
|
||||
|
||||
message LoginResponse {
|
||||
// The JWT tag to be used to access chirpstack-application-server interfaces.
|
||||
string jwt = 1;
|
||||
}
|
||||
|
||||
message ProfileResponse {
|
||||
// User object.
|
||||
User user = 1;
|
||||
|
||||
// Tenants to which the user is associated.
|
||||
repeated UserTenantLink tenants = 3;
|
||||
}
|
||||
|
||||
message GlobalSearchRequest {
|
||||
// Search query.
|
||||
string search = 1;
|
||||
|
||||
// Max number of results to return.
|
||||
int64 limit = 2;
|
||||
|
||||
// Offset offset of the result-set (for pagination).
|
||||
int64 offset = 3;
|
||||
}
|
||||
|
||||
message GlobalSearchResponse { repeated GlobalSearchResult result = 1; }
|
||||
|
||||
message GlobalSearchResult {
|
||||
// Record kind.
|
||||
string kind = 1;
|
||||
|
||||
// Search score.
|
||||
float score = 2;
|
||||
|
||||
// Organization id.
|
||||
string tenant_id = 3;
|
||||
|
||||
// Organization name.
|
||||
string tenant_name = 4;
|
||||
|
||||
// Application id.
|
||||
string application_id = 5;
|
||||
|
||||
// Application name.
|
||||
string application_name = 6;
|
||||
|
||||
// Device DevEUI (hex encoded).
|
||||
string device_dev_eui = 7;
|
||||
|
||||
// Device name.
|
||||
string device_name = 8;
|
||||
|
||||
// Gateway MAC (hex encoded).
|
||||
string gateway_id = 9;
|
||||
|
||||
// Gateway name.
|
||||
string gateway_name = 10;
|
||||
}
|
||||
|
||||
message SettingsResponse {
|
||||
// OpenId Connect settings.
|
||||
OpenIdConnect openid_connect = 1;
|
||||
|
||||
// OAuth2 settings.
|
||||
OAuth2 oauth2 = 2;
|
||||
|
||||
// Tileserver URL.
|
||||
string tileserver_url = 3;
|
||||
|
||||
// Map attribution.
|
||||
string map_attribution = 4;
|
||||
}
|
||||
|
||||
message OpenIdConnect {
|
||||
// Enable OpenId Connect authentication.
|
||||
bool enabled = 1;
|
||||
|
||||
// Login url.
|
||||
string login_url = 2;
|
||||
|
||||
// Login label.
|
||||
string login_label = 3;
|
||||
|
||||
// Logout url.
|
||||
string logout_url = 4;
|
||||
|
||||
// Login redirect.
|
||||
bool login_redirect = 5;
|
||||
}
|
||||
|
||||
message OAuth2 {
|
||||
// OAuth2 is enabled.
|
||||
bool enabled = 1;
|
||||
|
||||
// Login url.
|
||||
string login_url = 2;
|
||||
|
||||
// Login label.
|
||||
string login_label = 3;
|
||||
|
||||
// Logout url.
|
||||
string logout_url = 4;
|
||||
|
||||
// Login redirect.
|
||||
bool login_redirect = 5;
|
||||
}
|
||||
|
||||
message OpenIdConnectLoginRequest {
|
||||
// OpenId Connect callback code.
|
||||
string code = 1;
|
||||
|
||||
// OpenId Connect callback state.
|
||||
string state = 2;
|
||||
}
|
||||
|
||||
message OpenIdConnectLoginResponse {
|
||||
// Token to use for authentication.
|
||||
string token = 1;
|
||||
}
|
||||
|
||||
message OAuth2LoginRequest {
|
||||
// OAuth2 callback code.
|
||||
string code = 1;
|
||||
|
||||
// OAuth2 callback state.
|
||||
string state = 2;
|
||||
}
|
||||
|
||||
message OAuth2LoginResponse {
|
||||
// Token to use for authentication.
|
||||
string token = 1;
|
||||
}
|
||||
|
||||
message GetDevicesSummaryRequest {
|
||||
// Tenant ID (UUID).
|
||||
string tenant_id = 1;
|
||||
}
|
||||
|
||||
message GetDevicesSummaryResponse {
|
||||
// Active count.
|
||||
uint32 active_count = 1;
|
||||
|
||||
// Inactive count.
|
||||
uint32 inactive_count = 2;
|
||||
|
||||
// per data-rate count.
|
||||
// Devices that have never been seen are excluded.
|
||||
map<uint32, uint32> dr_count = 3;
|
||||
|
||||
// Never seen count.
|
||||
uint32 never_seen_count = 4;
|
||||
}
|
||||
|
||||
message GetGatewaysSummaryRequest {
|
||||
// Tenant ID (UUID).
|
||||
string tenant_id = 1;
|
||||
}
|
||||
|
||||
message GetGatewaysSummaryResponse {
|
||||
// Online count.
|
||||
uint32 online_count = 1;
|
||||
|
||||
// Offline count.
|
||||
uint32 offline_count = 2;
|
||||
|
||||
// Never seen count.
|
||||
uint32 never_seen_count = 3;
|
||||
}
|
||||
|
||||
message LogItem {
|
||||
// ID.
|
||||
string id = 1;
|
||||
|
||||
// Timestamp.
|
||||
google.protobuf.Timestamp time = 2;
|
||||
|
||||
// Message.
|
||||
string description = 3;
|
||||
|
||||
// Body.
|
||||
string body = 4;
|
||||
|
||||
// Properties.
|
||||
map<string, string> properties = 5;
|
||||
}
|
||||
|
||||
message StreamGatewayFramesRequest {
|
||||
// Gateway ID (EUI64).
|
||||
string gateway_id = 1;
|
||||
}
|
||||
|
||||
message StreamDeviceFramesRequest {
|
||||
// Device EUI.
|
||||
string dev_eui = 1;
|
||||
}
|
||||
|
||||
message StreamDeviceEventsRequest {
|
||||
// Device EUI.
|
||||
string dev_eui = 1;
|
||||
}
|
||||
|
||||
message ListRegionsResponse {
|
||||
// Configured regions.
|
||||
repeated RegionListItem regions = 1;
|
||||
}
|
||||
|
||||
message RegionListItem {
|
||||
// ID.
|
||||
string id = 1;
|
||||
|
||||
// Region.
|
||||
common.Region region = 2;
|
||||
|
||||
// Description.
|
||||
string description = 3;
|
||||
}
|
||||
|
||||
message GetRegionRequest {
|
||||
// Region ID.
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message GetRegionResponse {
|
||||
// ID.
|
||||
string id = 1;
|
||||
|
||||
// Region.
|
||||
common.Region region = 2;
|
||||
|
||||
// User information.
|
||||
string user_info = 3;
|
||||
|
||||
// Uplink channels.
|
||||
repeated RegionChannel uplink_channels = 4;
|
||||
|
||||
// RX1 delay.
|
||||
uint32 rx1_delay = 5;
|
||||
|
||||
// RX1 data-rate offset.
|
||||
uint32 rx1_dr_offset = 6;
|
||||
|
||||
// RX2 DR.
|
||||
uint32 rx2_dr = 7;
|
||||
|
||||
// RX2 frequency.
|
||||
uint32 rx2_frequency = 8;
|
||||
|
||||
// Class-B ping-slot DR.
|
||||
uint32 class_b_ping_slot_dr = 9;
|
||||
|
||||
// Class-B ping-slot frequency.
|
||||
uint32 class_b_ping_slot_frequency = 10;
|
||||
|
||||
// Region description.
|
||||
string description = 11;
|
||||
}
|
||||
|
||||
message RegionChannel {
|
||||
// Frequency (Hz).
|
||||
uint32 frequency = 1;
|
||||
|
||||
// Min DR.
|
||||
uint32 dr_min = 2;
|
||||
|
||||
// Max DR.
|
||||
uint32 dr_max = 3;
|
||||
}
|
||||
|
||||
message GetVersionResponse {
|
||||
// version
|
||||
string version = 1;
|
||||
}
|
333
api/rust/proto/chirpstack/api/multicast_group.proto
vendored
Normal file
333
api/rust/proto/chirpstack/api/multicast_group.proto
vendored
Normal file
@ -0,0 +1,333 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package api;
|
||||
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "MulticastGroupProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
option php_namespace = "Chirpstack\\Api";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
import "common/common.proto";
|
||||
|
||||
|
||||
// MulticastGroupService is the service managing multicast-groups.
|
||||
service MulticastGroupService {
|
||||
// Create the given multicast group.
|
||||
rpc Create(CreateMulticastGroupRequest) returns (CreateMulticastGroupResponse) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/multicast-groups"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Get returns the multicast group for the given ID.
|
||||
rpc Get(GetMulticastGroupRequest) returns (GetMulticastGroupResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/multicast-groups/{id}"
|
||||
};
|
||||
}
|
||||
|
||||
// Update the given multicast group.
|
||||
rpc Update(UpdateMulticastGroupRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
put: "/api/multicast-groups/{multicast_group.id}"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete the multicast-group with the given ID.
|
||||
rpc Delete(DeleteMulticastGroupRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/multicast-groups/{id}"
|
||||
};
|
||||
}
|
||||
|
||||
// List the available multicast groups.
|
||||
rpc List(ListMulticastGroupsRequest) returns (ListMulticastGroupsResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/multicast-groups"
|
||||
};
|
||||
}
|
||||
|
||||
// Add a device to the multicast group.
|
||||
rpc AddDevice(AddDeviceToMulticastGroupRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/multicast-groups/{multicast_group_id}/devices"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Remove a device from the multicast group.
|
||||
rpc RemoveDevice(RemoveDeviceFromMulticastGroupRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/multicast-groups/{multicast_group_id}/devices/{dev_eui}"
|
||||
};
|
||||
}
|
||||
|
||||
// Add a gateway to the multicast group.
|
||||
rpc AddGateway(AddGatewayToMulticastGroupRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/multicast-groups/{multicast_group_id}/gateways"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Remove a gateway from the multicast group.
|
||||
rpc RemoveGateway(RemoveGatewayFromMulticastGroupRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/multicast-groups/{multicast_group_id}/gateways/{gateway_id}"
|
||||
};
|
||||
}
|
||||
|
||||
// Add the given item to the multicast group queue.
|
||||
rpc Enqueue(EnqueueMulticastGroupQueueItemRequest) returns (EnqueueMulticastGroupQueueItemResponse) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/multicast-groups/{queue_item.multicast_group_id}/queue"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Flush the queue for the given multicast group.
|
||||
rpc FlushQueue(FlushMulticastGroupQueueRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/multicast-groups/{multicast_group_id}/queue"
|
||||
};
|
||||
}
|
||||
|
||||
// List the items in the multicast group queue.
|
||||
rpc ListQueue(ListMulticastGroupQueueRequest) returns (ListMulticastGroupQueueResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/multicast-groups/{multicast_group_id}/queue"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
enum MulticastGroupType {
|
||||
// Class C.
|
||||
CLASS_C = 0;
|
||||
|
||||
// Class-B.
|
||||
CLASS_B = 1;
|
||||
}
|
||||
|
||||
enum MulticastGroupSchedulingType {
|
||||
// Delay.
|
||||
// If multicast downlinks must be sent through multiple gateways, then
|
||||
// these will be sent one by one with a delay between each gateway.
|
||||
DELAY = 0;
|
||||
|
||||
// Time.
|
||||
// If multicast downlinks must be sent through multiple gateways, then
|
||||
// these will be sent simultaneously using GPS time synchronization.
|
||||
// Note that this does require GPS time-synchronized LoRa gateways.
|
||||
GPS_TIME = 1;
|
||||
}
|
||||
|
||||
message MulticastGroup {
|
||||
// ID (UUID).
|
||||
// This will be generated automatically on create.
|
||||
string id = 1;
|
||||
|
||||
// Name.
|
||||
string name = 2;
|
||||
|
||||
// Application ID.
|
||||
// After creation, this can not be updated.
|
||||
string application_id = 3;
|
||||
|
||||
// Region.
|
||||
common.Region region = 4;
|
||||
|
||||
// Multicast address (HEX encoded DevAddr).
|
||||
string mc_addr = 5;
|
||||
|
||||
// Multicast network session key (HEX encoded AES128 key).
|
||||
string mc_nwk_s_key = 6;
|
||||
|
||||
// Multicast application session key (HEX encoded AES128 key).
|
||||
string mc_app_s_key = 7;
|
||||
|
||||
// Frame-counter.
|
||||
uint32 f_cnt = 8;
|
||||
|
||||
// Multicast group type.
|
||||
MulticastGroupType group_type = 9;
|
||||
|
||||
// Data-rate.
|
||||
uint32 dr = 10;
|
||||
|
||||
// Frequency (Hz).
|
||||
uint32 frequency = 11;
|
||||
|
||||
// Ping-slot period (only for Class-B).
|
||||
// Deprecated: use class_b_ping_slot_nb_k.
|
||||
uint32 class_b_ping_slot_period = 12;
|
||||
|
||||
// Class-B ping-slots per beacon period (only for Class-B).
|
||||
// Valid options are: 0 - 7;
|
||||
//
|
||||
// The actual number of ping-slots per beacon period equals to 2^k.
|
||||
uint32 class_b_ping_slot_nb_k = 14;
|
||||
|
||||
// Scheduling type (only for Class-C).
|
||||
MulticastGroupSchedulingType class_c_scheduling_type = 13;
|
||||
}
|
||||
|
||||
message MulticastGroupListItem {
|
||||
// ID.
|
||||
string id = 1;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 2;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 3;
|
||||
|
||||
// Name.
|
||||
string name = 4;
|
||||
|
||||
// Region.
|
||||
common.Region region = 5;
|
||||
|
||||
// Multicast group type.
|
||||
MulticastGroupType group_type = 6;
|
||||
}
|
||||
|
||||
message CreateMulticastGroupRequest {
|
||||
// Multicast group to create.
|
||||
MulticastGroup multicast_group = 1;
|
||||
}
|
||||
|
||||
message CreateMulticastGroupResponse {
|
||||
// ID of created multicast group (UUID).
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message GetMulticastGroupRequest {
|
||||
// Multicast group ID.
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message GetMulticastGroupResponse {
|
||||
// Multicast group object.
|
||||
MulticastGroup multicast_group = 1;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 2;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 3;
|
||||
}
|
||||
|
||||
message UpdateMulticastGroupRequest {
|
||||
// Multicast group object to update.
|
||||
MulticastGroup multicast_group = 1;
|
||||
}
|
||||
|
||||
message DeleteMulticastGroupRequest {
|
||||
// Multicast group iD.
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message ListMulticastGroupsRequest {
|
||||
// Max number of multicast groups to return in the result-set.
|
||||
uint32 limit = 1;
|
||||
|
||||
// Offset in the result-set (for pagination).
|
||||
uint32 offset = 2;
|
||||
|
||||
// If set, the given string will be used to search on name.
|
||||
string search = 3;
|
||||
|
||||
// Application ID to list the multicast groups for.
|
||||
string application_id = 4;
|
||||
}
|
||||
|
||||
message ListMulticastGroupsResponse {
|
||||
// Total number of multicast groups.
|
||||
uint32 total_count = 1;
|
||||
|
||||
// Result-test.
|
||||
repeated MulticastGroupListItem result = 2;
|
||||
}
|
||||
|
||||
message AddDeviceToMulticastGroupRequest {
|
||||
// Multicast group ID.
|
||||
string multicast_group_id = 1;
|
||||
|
||||
// Device EUI (HEX encoded).
|
||||
string dev_eui = 2;
|
||||
}
|
||||
|
||||
message RemoveDeviceFromMulticastGroupRequest {
|
||||
// Multicast group ID.
|
||||
string multicast_group_id = 1;
|
||||
|
||||
// Device EUI (HEX encoded).
|
||||
string dev_eui = 2;
|
||||
}
|
||||
|
||||
message AddGatewayToMulticastGroupRequest {
|
||||
// Multicast group ID.
|
||||
string multicast_group_id = 1;
|
||||
|
||||
// Gateway ID (HEX encoded).
|
||||
string gateway_id = 2;
|
||||
}
|
||||
|
||||
message RemoveGatewayFromMulticastGroupRequest {
|
||||
// Multicast group ID.
|
||||
string multicast_group_id = 1;
|
||||
|
||||
// Gateway ID (HEX encoded).
|
||||
string gateway_id = 2;
|
||||
}
|
||||
|
||||
message MulticastGroupQueueItem {
|
||||
// Multicast group ID.
|
||||
string multicast_group_id = 1;
|
||||
|
||||
// Downlink frame-counter.
|
||||
// This will be automatically set on enqueue.
|
||||
uint32 f_cnt = 2;
|
||||
|
||||
// FPort (must be > 0).
|
||||
uint32 f_port = 3;
|
||||
|
||||
// Payload.
|
||||
bytes data = 4;
|
||||
|
||||
// Expires at (optional).
|
||||
// Expired queue-items will be automatically removed from the queue.
|
||||
google.protobuf.Timestamp expires_at = 5;
|
||||
}
|
||||
|
||||
message EnqueueMulticastGroupQueueItemRequest {
|
||||
// Multicast queue-item to enqueue.
|
||||
MulticastGroupQueueItem queue_item = 1;
|
||||
}
|
||||
|
||||
message EnqueueMulticastGroupQueueItemResponse {
|
||||
// Frame-counter of the enqueued payload.
|
||||
uint32 f_cnt = 1;
|
||||
}
|
||||
|
||||
message FlushMulticastGroupQueueRequest {
|
||||
// Multicast group ID.
|
||||
string multicast_group_id = 1;
|
||||
}
|
||||
|
||||
message ListMulticastGroupQueueRequest {
|
||||
// Multicast group ID.
|
||||
string multicast_group_id = 1;
|
||||
}
|
||||
|
||||
message ListMulticastGroupQueueResponse {
|
||||
repeated MulticastGroupQueueItem items = 1;
|
||||
}
|
121
api/rust/proto/chirpstack/api/relay.proto
vendored
Normal file
121
api/rust/proto/chirpstack/api/relay.proto
vendored
Normal file
@ -0,0 +1,121 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package api;
|
||||
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "RelayProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
option php_namespace = "Chirpstack\\Api";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
|
||||
// RelayService is the service providing API methos for managing relays.
|
||||
service RelayService {
|
||||
// List lists the relays for the given application id.
|
||||
rpc List(ListRelaysRequest) returns (ListRelaysResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/relays"
|
||||
};
|
||||
}
|
||||
|
||||
// AddDevice adds the given device to the relay.
|
||||
rpc AddDevice(AddRelayDeviceRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/relays/{relay_dev_eui}/devices"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// RemoveDevice removes the given device from the relay.
|
||||
rpc RemoveDevice(RemoveRelayDeviceRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/relays/{relay_dev_eui}/devices/{dev_eui}"
|
||||
};
|
||||
};
|
||||
|
||||
// ListDevices lists the devices for the given relay.
|
||||
rpc ListDevices(ListRelayDevicesRequest) returns (ListRelayDevicesResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/relays/{relay_dev_eui}/devices"
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
message RelayListItem {
|
||||
// DevEUI (EUI64).
|
||||
string dev_eui = 1;
|
||||
|
||||
// Name.
|
||||
string name = 2;
|
||||
}
|
||||
|
||||
message ListRelaysRequest {
|
||||
// Max number of devices to return in the result-set.
|
||||
uint32 limit = 1;
|
||||
|
||||
// Offset in the result-set (for pagination).
|
||||
uint32 offset = 2;
|
||||
|
||||
// Application ID (UUID).
|
||||
string application_id = 3;
|
||||
}
|
||||
|
||||
message ListRelaysResponse {
|
||||
// Total number of relays.
|
||||
uint32 total_count = 1;
|
||||
|
||||
// Result-set.
|
||||
repeated RelayListItem result = 2;
|
||||
}
|
||||
|
||||
message AddRelayDeviceRequest {
|
||||
// Relay DevEUI (EUI64).
|
||||
string relay_dev_eui = 1;
|
||||
|
||||
// Device DevEUI (EUI64).
|
||||
string device_dev_eui = 2;
|
||||
|
||||
}
|
||||
|
||||
message RemoveRelayDeviceRequest {
|
||||
// Relay DevEUI (EUI64).
|
||||
string relay_dev_eui = 1;
|
||||
|
||||
// Device DevEUI (EUI64).
|
||||
string device_dev_eui = 2;
|
||||
}
|
||||
|
||||
message ListRelayDevicesRequest {
|
||||
// Max number of multicast groups to return in the result-set.
|
||||
uint32 limit = 1;
|
||||
|
||||
// Offset in the result-set (for pagination).
|
||||
uint32 offset = 2;
|
||||
|
||||
// Relay DevEUI (EUI64).
|
||||
string relay_dev_eui = 3;
|
||||
}
|
||||
|
||||
message RelayDeviceListItem {
|
||||
// DevEUI (EUI64).
|
||||
string dev_eui = 1;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 2;
|
||||
|
||||
// Device name.
|
||||
string name = 3;
|
||||
}
|
||||
|
||||
message ListRelayDevicesResponse {
|
||||
// Total number of devices.
|
||||
uint32 total_count = 1;
|
||||
|
||||
// Result-set.
|
||||
repeated RelayDeviceListItem result = 2;
|
||||
}
|
328
api/rust/proto/chirpstack/api/tenant.proto
vendored
Normal file
328
api/rust/proto/chirpstack/api/tenant.proto
vendored
Normal file
@ -0,0 +1,328 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package api;
|
||||
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "TenantProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
option php_namespace = "Chirpstack\\Api";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
|
||||
// TenantService is the service providing API methods for managing tenants.
|
||||
service TenantService {
|
||||
// Create a new tenant.
|
||||
rpc Create(CreateTenantRequest) returns (CreateTenantResponse) {
|
||||
option (google.api.http) = {
|
||||
post : "/api/tenants"
|
||||
body : "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Get the tenant for the given ID.
|
||||
rpc Get(GetTenantRequest) returns (GetTenantResponse) {
|
||||
option (google.api.http) = {
|
||||
get : "/api/tenants/{id}"
|
||||
};
|
||||
}
|
||||
|
||||
// Update the given tenant.
|
||||
rpc Update(UpdateTenantRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
put : "/api/tenants/{tenant.id}"
|
||||
body : "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete the tenant with the given ID.
|
||||
rpc Delete(DeleteTenantRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
delete : "/api/tenants/{id}"
|
||||
};
|
||||
}
|
||||
|
||||
// Get the list of tenants.
|
||||
rpc List(ListTenantsRequest) returns (ListTenantsResponse) {
|
||||
option (google.api.http) = {
|
||||
get : "/api/tenants"
|
||||
};
|
||||
}
|
||||
|
||||
// Add an user to the tenant.
|
||||
// Note: the user must already exist.
|
||||
rpc AddUser(AddTenantUserRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
post : "/api/tenants/{tenant_user.tenant_id}/users"
|
||||
body : "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Get the the tenant user for the given tenant and user IDs.
|
||||
rpc GetUser(GetTenantUserRequest) returns (GetTenantUserResponse) {
|
||||
option (google.api.http) = {
|
||||
get : "/api/tenants/{tenant_id}/users/{user_id}"
|
||||
};
|
||||
}
|
||||
|
||||
// Update the given tenant user.
|
||||
rpc UpdateUser(UpdateTenantUserRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
put : "/api/tenants/{tenant_user.tenant_id}/users/{tenant_user.user_id}"
|
||||
body : "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete the given tenant user.
|
||||
rpc DeleteUser(DeleteTenantUserRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
delete : "/api/tenants/{tenant_id}/users/{user_id}"
|
||||
};
|
||||
}
|
||||
|
||||
// Get the list of tenant users.
|
||||
rpc ListUsers(ListTenantUsersRequest) returns (ListTenantUsersResponse) {
|
||||
option (google.api.http) = {
|
||||
get : "/api/tenants/{tenant_id}/users"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
message Tenant {
|
||||
// Tenant ID (UUID).
|
||||
// Note: this value will be automatically generated on create.
|
||||
string id = 1;
|
||||
|
||||
// Tenant name,
|
||||
string name = 2;
|
||||
|
||||
// Tenant description.
|
||||
string description = 3;
|
||||
|
||||
// Can the tenant create and "own" Gateways?
|
||||
bool can_have_gateways = 4;
|
||||
|
||||
// Max. gateway count for tenant.
|
||||
// When set to 0, the tenant can have unlimited gateways.
|
||||
uint32 max_gateway_count = 5;
|
||||
|
||||
// Max. device count for tenant.
|
||||
// When set to 0, the tenant can have unlimited devices.
|
||||
uint32 max_device_count = 6;
|
||||
|
||||
// Private gateways (uplink).
|
||||
// If enabled, then uplink messages will not be shared with other tenants.
|
||||
bool private_gateways_up = 7;
|
||||
|
||||
// Private gateways (downlink).
|
||||
// If enabled, then other tenants will not be able to schedule downlink
|
||||
// messages through the gateways of this tenant. For example, in case you
|
||||
// do want to share uplinks with other tenants (private_gateways_up=false),
|
||||
// but you want to prevent other tenants from using gateway airtime.
|
||||
bool private_gateways_down = 8;
|
||||
|
||||
// Tags (user defined).
|
||||
// These tags can be used to add additional information to the tenant. These
|
||||
// tags are NOT exposed in the integration events.
|
||||
map<string, string> tags = 9;
|
||||
}
|
||||
|
||||
message TenantListItem {
|
||||
// Tenant ID (UUID).
|
||||
string id = 1;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 2;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 3;
|
||||
|
||||
// Tenant name.
|
||||
string name = 4;
|
||||
|
||||
// Can the tenant create and "own" Gateways?
|
||||
bool can_have_gateways = 5;
|
||||
|
||||
// Private gateways (uplink).
|
||||
bool private_gateways_up = 6;
|
||||
|
||||
// Private gateways (downlink).
|
||||
bool private_gateways_down = 9;
|
||||
|
||||
// Max gateway count.
|
||||
// 0 = unlimited.
|
||||
uint32 max_gateway_count = 7;
|
||||
|
||||
// Max device count.
|
||||
// 0 = unlimited.
|
||||
uint32 max_device_count = 8;
|
||||
}
|
||||
|
||||
message CreateTenantRequest {
|
||||
// Tenant object to create.
|
||||
Tenant tenant = 1;
|
||||
}
|
||||
|
||||
message CreateTenantResponse {
|
||||
// Tenant ID.
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message GetTenantRequest {
|
||||
// Tenant ID.
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message GetTenantResponse {
|
||||
// Tenant object.
|
||||
Tenant tenant = 1;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 2;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 3;
|
||||
}
|
||||
|
||||
message UpdateTenantRequest {
|
||||
// Tenant object.
|
||||
Tenant tenant = 1;
|
||||
}
|
||||
|
||||
message DeleteTenantRequest {
|
||||
// Tenant ID.
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message ListTenantsRequest {
|
||||
// Max number of tenants to return in the result-set.
|
||||
uint32 limit = 1;
|
||||
|
||||
// Offset in the result-set (for pagination).
|
||||
uint32 offset = 2;
|
||||
|
||||
// If set, the given string will be used to search on name.
|
||||
string search = 3;
|
||||
|
||||
// If set, filters the result set to the tenants of the user.
|
||||
// Only global API keys are able to filter by this field.
|
||||
string user_id = 4;
|
||||
}
|
||||
|
||||
message ListTenantsResponse {
|
||||
// Total number of tenants.
|
||||
uint32 total_count = 1;
|
||||
|
||||
// Result-set.
|
||||
repeated TenantListItem result = 2;
|
||||
}
|
||||
|
||||
message TenantUser {
|
||||
// Tenant ID (UUID).
|
||||
string tenant_id = 1;
|
||||
|
||||
// User ID (UUID).
|
||||
string user_id = 2;
|
||||
|
||||
// User is admin within the context of the tenant.
|
||||
// There is no need to set the is_device_admin and is_gateway_admin flags.
|
||||
bool is_admin = 3;
|
||||
|
||||
// User is able to modify device related resources (applications,
|
||||
// device-profiles, devices, multicast-groups).
|
||||
bool is_device_admin = 4;
|
||||
|
||||
// User is able to modify gateways.
|
||||
bool is_gateway_admin = 5;
|
||||
|
||||
// Email (only used on get and when adding a user to a tenant).
|
||||
string email = 6;
|
||||
}
|
||||
|
||||
message TenantUserListItem {
|
||||
// Tenant ID (UUID).
|
||||
string tenant_id = 1;
|
||||
|
||||
// User ID (UUID).
|
||||
string user_id = 2;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 3;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 4;
|
||||
|
||||
// Email.
|
||||
string email = 5;
|
||||
|
||||
// User is admin within the context of the tenant.
|
||||
// There is no need to set the is_device_admin and is_gateway_admin flags.
|
||||
bool is_admin = 6;
|
||||
|
||||
// User is able to modify device related resources (applications,
|
||||
// device-profiles, devices, multicast-groups).
|
||||
bool is_device_admin = 7;
|
||||
|
||||
// User is able to modify gateways.
|
||||
bool is_gateway_admin = 8;
|
||||
}
|
||||
|
||||
message AddTenantUserRequest {
|
||||
// Tenant user object.
|
||||
TenantUser tenant_user = 1;
|
||||
}
|
||||
|
||||
message GetTenantUserRequest {
|
||||
// Tenant ID (UUID).
|
||||
string tenant_id = 1;
|
||||
|
||||
// User ID (UUID).
|
||||
string user_id = 2;
|
||||
}
|
||||
|
||||
message GetTenantUserResponse {
|
||||
// Tenant user object.
|
||||
TenantUser tenant_user = 1;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 2;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 3;
|
||||
}
|
||||
|
||||
message UpdateTenantUserRequest {
|
||||
// Tenant user object.
|
||||
TenantUser tenant_user = 1;
|
||||
}
|
||||
|
||||
message DeleteTenantUserRequest {
|
||||
// Tenant ID (UUID).
|
||||
string tenant_id = 1;
|
||||
|
||||
// User ID (UUID).
|
||||
string user_id = 2;
|
||||
}
|
||||
|
||||
message ListTenantUsersRequest {
|
||||
// Tenant ID (UUID).
|
||||
string tenant_id = 1;
|
||||
|
||||
// Max number of tenants to return in the result-set.
|
||||
uint32 limit = 2;
|
||||
|
||||
// Offset in the result-set (for pagination).
|
||||
uint32 offset = 3;
|
||||
}
|
||||
|
||||
message ListTenantUsersResponse {
|
||||
// Total number of tenants.
|
||||
uint32 total_count = 1;
|
||||
|
||||
// Result-set.
|
||||
repeated TenantUserListItem result = 2;
|
||||
}
|
184
api/rust/proto/chirpstack/api/user.proto
vendored
Normal file
184
api/rust/proto/chirpstack/api/user.proto
vendored
Normal file
@ -0,0 +1,184 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package api;
|
||||
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "UserProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
option php_namespace = "Chirpstack\\Api";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
|
||||
|
||||
// UserService is the service providing API methods for managing users.
|
||||
service UserService {
|
||||
// Create a new user.
|
||||
rpc Create(CreateUserRequest) returns (CreateUserResponse) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/users"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Get the user for the given ID.
|
||||
rpc Get(GetUserRequest) returns (GetUserResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/users/{id}"
|
||||
};
|
||||
}
|
||||
|
||||
// Update the given user.
|
||||
rpc Update(UpdateUserRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
put: "/api/users/{user.id}"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete the user with the given ID.
|
||||
rpc Delete(DeleteUserRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/users/{id}"
|
||||
};
|
||||
}
|
||||
|
||||
// Get the list of users.
|
||||
rpc List(ListUsersRequest) returns (ListUsersResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/users"
|
||||
};
|
||||
}
|
||||
|
||||
// Update the password for the given user.
|
||||
rpc UpdatePassword(UpdateUserPasswordRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/users/{user_id}/password"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
message User {
|
||||
// User ID (UUID).
|
||||
// Will be set automatically on create.
|
||||
string id = 1;
|
||||
|
||||
// Set to true to make the user a global administrator.
|
||||
bool is_admin = 4;
|
||||
|
||||
// Set to false to disable the user.
|
||||
bool is_active = 5;
|
||||
|
||||
// E-mail of the user.
|
||||
string email = 6;
|
||||
|
||||
// Optional note to store with the user.
|
||||
string note = 7;
|
||||
}
|
||||
|
||||
message UserListItem {
|
||||
// User ID (UUID).
|
||||
string id = 1;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 2;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 3;
|
||||
|
||||
// Email of the user.
|
||||
string email = 4;
|
||||
|
||||
// Set to true to make the user a global administrator.
|
||||
bool is_admin = 5;
|
||||
|
||||
// Set to false to disable the user.
|
||||
bool is_active = 6;
|
||||
}
|
||||
|
||||
message UserTenant {
|
||||
// Tenant ID.
|
||||
string tenant_id = 1;
|
||||
|
||||
// User is admin within the context of the tenant.
|
||||
// There is no need to set the is_device_admin and is_gateway_admin flags.
|
||||
bool is_admin = 2;
|
||||
|
||||
// User is able to modify device related resources (applications,
|
||||
// device-profiles, devices, multicast-groups).
|
||||
bool is_device_admin = 3;
|
||||
|
||||
// User is able to modify gateways.
|
||||
bool is_gateway_admin = 4;
|
||||
}
|
||||
|
||||
message CreateUserRequest {
|
||||
// User object to create.
|
||||
User user = 1;
|
||||
|
||||
// Password to set for the user.
|
||||
string password = 2;
|
||||
|
||||
// Add the user to the following tenants.
|
||||
repeated UserTenant tenants = 3;
|
||||
}
|
||||
|
||||
message CreateUserResponse {
|
||||
// User ID.
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message GetUserRequest {
|
||||
// User ID.
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message GetUserResponse {
|
||||
// User object.
|
||||
User user = 1;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 2;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 3;
|
||||
}
|
||||
|
||||
message UpdateUserRequest {
|
||||
// User object.
|
||||
User user = 1;
|
||||
}
|
||||
|
||||
message DeleteUserRequest {
|
||||
// User ID.
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message ListUsersRequest {
|
||||
// Max number of tenants to return in the result-set.
|
||||
uint32 limit = 1;
|
||||
|
||||
// Offset in the result-set (for pagination).
|
||||
uint32 offset = 2;
|
||||
}
|
||||
|
||||
message ListUsersResponse {
|
||||
// Total number of users.
|
||||
uint32 total_count = 1;
|
||||
|
||||
// Result-set.
|
||||
repeated UserListItem result = 2;
|
||||
}
|
||||
|
||||
message UpdateUserPasswordRequest {
|
||||
// User ID.
|
||||
string user_id = 1;
|
||||
|
||||
// Password to set.
|
||||
string password = 2;
|
||||
}
|
238
api/rust/proto/chirpstack/common/common.proto
vendored
Normal file
238
api/rust/proto/chirpstack/common/common.proto
vendored
Normal file
@ -0,0 +1,238 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package common;
|
||||
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/common";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "CommonProto";
|
||||
option csharp_namespace = "Chirpstack.Common";
|
||||
option php_namespace = "Chirpstack\\Common";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Common";
|
||||
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
||||
enum Modulation {
|
||||
// LoRa
|
||||
LORA = 0;
|
||||
|
||||
// FSK
|
||||
FSK = 1;
|
||||
|
||||
// LR-FHSS
|
||||
LR_FHSS = 2;
|
||||
}
|
||||
|
||||
enum Region {
|
||||
// EU868
|
||||
EU868 = 0;
|
||||
|
||||
// US915
|
||||
US915 = 2;
|
||||
|
||||
// CN779
|
||||
CN779 = 3;
|
||||
|
||||
// EU433
|
||||
EU433 = 4;
|
||||
|
||||
// AU915
|
||||
AU915 = 5;
|
||||
|
||||
// CN470
|
||||
CN470 = 6;
|
||||
|
||||
// AS923
|
||||
AS923 = 7;
|
||||
|
||||
// AS923 with -1.80 MHz frequency offset
|
||||
AS923_2 = 12;
|
||||
|
||||
// AS923 with -6.60 MHz frequency offset
|
||||
AS923_3 = 13;
|
||||
|
||||
// (AS923 with -5.90 MHz frequency offset).
|
||||
AS923_4 = 14;
|
||||
|
||||
// KR920
|
||||
KR920 = 8;
|
||||
|
||||
// IN865
|
||||
IN865 = 9;
|
||||
|
||||
// RU864
|
||||
RU864 = 10;
|
||||
|
||||
// ISM2400 (LoRaWAN 2.4 GHz)
|
||||
ISM2400 = 11;
|
||||
}
|
||||
|
||||
enum MType {
|
||||
// JoinRequest.
|
||||
JOIN_REQUEST = 0;
|
||||
|
||||
// JoinAccept.
|
||||
JOIN_ACCEPT = 1;
|
||||
|
||||
// UnconfirmedDataUp.
|
||||
UNCONFIRMED_DATA_UP = 2;
|
||||
|
||||
// UnconfirmedDataDown.
|
||||
UNCONFIRMED_DATA_DOWN = 3;
|
||||
|
||||
// ConfirmedDataUp.
|
||||
CONFIRMED_DATA_UP = 4;
|
||||
|
||||
// ConfirmedDataDown.
|
||||
CONFIRMED_DATA_DOWN = 5;
|
||||
|
||||
// RejoinRequest.
|
||||
REJOIN_REQUEST = 6;
|
||||
|
||||
// Proprietary.
|
||||
PROPRIETARY = 7;
|
||||
}
|
||||
|
||||
enum MacVersion {
|
||||
LORAWAN_1_0_0 = 0;
|
||||
LORAWAN_1_0_1 = 1;
|
||||
LORAWAN_1_0_2 = 2;
|
||||
LORAWAN_1_0_3 = 3;
|
||||
LORAWAN_1_0_4 = 4;
|
||||
LORAWAN_1_1_0 = 5;
|
||||
}
|
||||
|
||||
enum RegParamsRevision {
|
||||
A = 0;
|
||||
B = 1;
|
||||
RP002_1_0_0 = 2;
|
||||
RP002_1_0_1 = 3;
|
||||
RP002_1_0_2 = 4;
|
||||
RP002_1_0_3 = 5;
|
||||
RP002_1_0_4 = 6;
|
||||
}
|
||||
|
||||
enum LocationSource {
|
||||
// Unknown.
|
||||
UNKNOWN = 0;
|
||||
|
||||
// GPS.
|
||||
GPS = 1;
|
||||
|
||||
// Manually configured.
|
||||
CONFIG = 2;
|
||||
|
||||
// Geo resolver (TDOA).
|
||||
GEO_RESOLVER_TDOA = 3;
|
||||
|
||||
// Geo resolver (RSSI).
|
||||
GEO_RESOLVER_RSSI = 4;
|
||||
|
||||
// Geo resolver (GNSS).
|
||||
GEO_RESOLVER_GNSS = 5;
|
||||
|
||||
// Geo resolver (WIFI).
|
||||
GEO_RESOLVER_WIFI = 6;
|
||||
}
|
||||
|
||||
enum Aggregation {
|
||||
// Hour.
|
||||
HOUR = 0;
|
||||
|
||||
// Day.
|
||||
DAY = 1;
|
||||
|
||||
// Month.
|
||||
MONTH = 2;
|
||||
|
||||
// Minute.
|
||||
MINUTE = 3;
|
||||
}
|
||||
|
||||
enum MetricKind {
|
||||
// Incrementing counters that never decrease (these are not reset on each
|
||||
// reading).
|
||||
COUNTER = 0;
|
||||
|
||||
// Counters that do get reset upon reading.
|
||||
ABSOLUTE = 1;
|
||||
|
||||
// E.g. a temperature value.
|
||||
GAUGE = 2;
|
||||
}
|
||||
|
||||
enum Regulation {
|
||||
// Unknown.
|
||||
REGULATION_UNKNOWN = 0;
|
||||
|
||||
// ETSI EN 300 220.
|
||||
ETSI_EN_300_220 = 1;
|
||||
}
|
||||
|
||||
message Location {
|
||||
// Latitude.
|
||||
double latitude = 1;
|
||||
|
||||
// Longitude.
|
||||
double longitude = 2;
|
||||
|
||||
// Altitude.
|
||||
double altitude = 3;
|
||||
|
||||
// Location source.
|
||||
LocationSource source = 4;
|
||||
|
||||
// Accuracy.
|
||||
float accuracy = 5;
|
||||
}
|
||||
|
||||
message KeyEnvelope {
|
||||
// KEK label.
|
||||
string kek_label = 1;
|
||||
|
||||
// AES key (when the kek_label is set, this value must first be decrypted).
|
||||
bytes aes_key = 2;
|
||||
}
|
||||
|
||||
message Metric {
|
||||
// Name.
|
||||
string name = 1;
|
||||
|
||||
// Timestamps.
|
||||
repeated google.protobuf.Timestamp timestamps = 2;
|
||||
|
||||
// Datasets.
|
||||
repeated MetricDataset datasets = 3;
|
||||
|
||||
// Kind.
|
||||
MetricKind kind = 4;
|
||||
}
|
||||
|
||||
message MetricDataset {
|
||||
// Label.
|
||||
string label = 1;
|
||||
|
||||
// Data.
|
||||
// Each value index corresponds with the same timestamp index of the Metric.
|
||||
repeated float data = 2;
|
||||
}
|
||||
|
||||
enum DeviceClass {
|
||||
// Class-A.
|
||||
CLASS_A = 0;
|
||||
|
||||
// Class-B.
|
||||
CLASS_B = 1;
|
||||
|
||||
// Class-C.
|
||||
CLASS_C = 2;
|
||||
}
|
||||
|
||||
// Join-Server context.
|
||||
message JoinServerContext {
|
||||
// Session-key ID.
|
||||
string session_key_id = 1;
|
||||
|
||||
// AppSKey envelope.
|
||||
KeyEnvelope app_s_key = 2;
|
||||
}
|
777
api/rust/proto/chirpstack/gw/gw.proto
vendored
Normal file
777
api/rust/proto/chirpstack/gw/gw.proto
vendored
Normal file
@ -0,0 +1,777 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package gw;
|
||||
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/gw";
|
||||
option java_package = "io.chirpstack.api.gw";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "GatewayProto";
|
||||
option csharp_namespace = "Chirpstack.Gateway";
|
||||
option php_namespace = "Chirpstack\\Gateway";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Gateway";
|
||||
|
||||
import "common/common.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/duration.proto";
|
||||
import "google/protobuf/struct.proto";
|
||||
|
||||
enum CodeRate {
|
||||
CR_UNDEFINED = 0;
|
||||
CR_4_5 = 1; // LoRa
|
||||
CR_4_6 = 2;
|
||||
CR_4_7 = 3;
|
||||
CR_4_8 = 4;
|
||||
CR_3_8 = 5; // LR-FHSS
|
||||
CR_2_6 = 6;
|
||||
CR_1_4 = 7;
|
||||
CR_1_6 = 8;
|
||||
CR_5_6 = 9;
|
||||
CR_LI_4_5 = 10; // LoRa 2.4 gHz
|
||||
CR_LI_4_6 = 11;
|
||||
CR_LI_4_8 = 12;
|
||||
}
|
||||
|
||||
enum DownlinkTiming {
|
||||
// Send the downlink immediately.
|
||||
IMMEDIATELY = 0;
|
||||
|
||||
// Send downlink at the given delay (based on provided context).
|
||||
DELAY = 1;
|
||||
|
||||
// Send at given GPS epoch value.
|
||||
GPS_EPOCH = 2;
|
||||
}
|
||||
|
||||
enum FineTimestampType {
|
||||
// No fine-timestamp available.
|
||||
NONE = 0;
|
||||
|
||||
// Encrypted fine-timestamp.
|
||||
ENCRYPTED = 1;
|
||||
|
||||
// Plain fine-timestamp.
|
||||
PLAIN = 2;
|
||||
}
|
||||
|
||||
enum CRCStatus {
|
||||
// No CRC.
|
||||
NO_CRC = 0;
|
||||
|
||||
// Bad CRC.
|
||||
BAD_CRC = 1;
|
||||
|
||||
// CRC OK.
|
||||
CRC_OK = 2;
|
||||
}
|
||||
|
||||
enum TxAckStatus {
|
||||
// Ignored (when a previous item was already emitted).
|
||||
IGNORED = 0;
|
||||
|
||||
// Packet has been programmed for downlink.
|
||||
OK = 1;
|
||||
|
||||
// Rejected because it was already too late to program this packet for
|
||||
// downlink.
|
||||
TOO_LATE = 2;
|
||||
|
||||
// Rejected because downlink packet timestamp is too much in advance.
|
||||
TOO_EARLY = 3;
|
||||
|
||||
// Rejected because there was already a packet programmed in requested
|
||||
// timeframe.
|
||||
COLLISION_PACKET = 4;
|
||||
|
||||
// Rejected because there was already a beacon planned in requested timeframe.
|
||||
COLLISION_BEACON = 5;
|
||||
|
||||
// Rejected because requested frequency is not supported by TX RF chain.
|
||||
TX_FREQ = 6;
|
||||
|
||||
// Rejected because requested power is not supported by gateway.
|
||||
TX_POWER = 7;
|
||||
|
||||
// Rejected because GPS is unlocked, so GPS timestamp cannot be used.
|
||||
GPS_UNLOCKED = 8;
|
||||
|
||||
// Downlink queue is full.
|
||||
QUEUE_FULL = 9;
|
||||
|
||||
// Internal error.
|
||||
INTERNAL_ERROR = 10;
|
||||
|
||||
// Duty-cycle overflow.
|
||||
DUTY_CYCLE_OVERFLOW = 11;
|
||||
}
|
||||
|
||||
message Modulation {
|
||||
oneof parameters {
|
||||
// LoRa modulation information.
|
||||
LoraModulationInfo lora = 3;
|
||||
|
||||
// FSK modulation information.
|
||||
FskModulationInfo fsk = 4;
|
||||
|
||||
// LR-FHSS modulation information.
|
||||
LrFhssModulationInfo lr_fhss = 5;
|
||||
}
|
||||
}
|
||||
|
||||
message UplinkTxInfoLegacy {
|
||||
// Frequency (Hz).
|
||||
uint32 frequency = 1;
|
||||
|
||||
// Modulation.
|
||||
common.Modulation modulation = 2;
|
||||
|
||||
oneof modulation_info {
|
||||
// LoRa modulation information.
|
||||
LoraModulationInfo lora_modulation_info = 3;
|
||||
|
||||
// FSK modulation information.
|
||||
FskModulationInfo fsk_modulation_info = 4;
|
||||
|
||||
// LR-FHSS modulation information.
|
||||
LrFhssModulationInfo lr_fhss_modulation_info = 5;
|
||||
}
|
||||
}
|
||||
|
||||
message UplinkTxInfo {
|
||||
// Frequency (Hz).
|
||||
uint32 frequency = 1;
|
||||
|
||||
// Modulation.
|
||||
Modulation modulation = 2;
|
||||
}
|
||||
|
||||
message LoraModulationInfo {
|
||||
// Bandwidth.
|
||||
uint32 bandwidth = 1;
|
||||
|
||||
// Speading-factor.
|
||||
uint32 spreading_factor = 2;
|
||||
|
||||
// Code-rate.
|
||||
string code_rate_legacy = 3;
|
||||
|
||||
// Code-rate.
|
||||
CodeRate code_rate = 5;
|
||||
|
||||
// Polarization inversion.
|
||||
bool polarization_inversion = 4;
|
||||
|
||||
// Preamble length (for TX).
|
||||
uint32 preamble = 6;
|
||||
|
||||
// No CRC (for TX).
|
||||
// If true, do not send a CRC in the packet.
|
||||
bool no_crc = 7;
|
||||
}
|
||||
|
||||
message FskModulationInfo {
|
||||
// Frequency deviation.
|
||||
uint32 frequency_deviation = 1;
|
||||
|
||||
// FSK datarate (bits / sec).
|
||||
uint32 datarate = 2;
|
||||
}
|
||||
|
||||
message LrFhssModulationInfo {
|
||||
// Operating channel width (OCW) in Hz.
|
||||
uint32 operating_channel_width = 1;
|
||||
|
||||
// Code-rate.
|
||||
// Deprecated: use code_rate.
|
||||
string code_rate_legacy = 2;
|
||||
|
||||
// Code-rate.
|
||||
CodeRate code_rate = 4;
|
||||
|
||||
// Hopping grid number of steps.
|
||||
uint32 grid_steps = 3;
|
||||
}
|
||||
|
||||
message EncryptedFineTimestamp {
|
||||
// AES key index used for encrypting the fine timestamp.
|
||||
uint32 aes_key_index = 1;
|
||||
|
||||
// Encrypted 'main' fine-timestamp (ns precision part of the timestamp).
|
||||
bytes encrypted_ns = 2;
|
||||
|
||||
// FPGA ID.
|
||||
bytes fpga_id = 3;
|
||||
}
|
||||
|
||||
message PlainFineTimestamp {
|
||||
// Full timestamp.
|
||||
google.protobuf.Timestamp time = 1;
|
||||
}
|
||||
|
||||
message GatewayStats {
|
||||
// Gateway ID.
|
||||
// Deprecated: use gateway_id.
|
||||
bytes gateway_id_legacy = 1;
|
||||
|
||||
// Gateway ID.
|
||||
string gateway_id = 17;
|
||||
|
||||
// Gateway time.
|
||||
google.protobuf.Timestamp time = 2;
|
||||
|
||||
// Gateway location.
|
||||
common.Location location = 3;
|
||||
|
||||
// Gateway configuration version (this maps to the config_version sent
|
||||
// by ChirpStack to the gateway).
|
||||
string config_version = 4;
|
||||
|
||||
// Number of radio packets received.
|
||||
uint32 rx_packets_received = 5;
|
||||
|
||||
// Number of radio packets received with valid PHY CRC.
|
||||
uint32 rx_packets_received_ok = 6;
|
||||
|
||||
// Number of downlink packets received for transmission.
|
||||
uint32 tx_packets_received = 7;
|
||||
|
||||
// Number of downlink packets emitted.
|
||||
uint32 tx_packets_emitted = 8;
|
||||
|
||||
// Additional gateway meta-data.
|
||||
map<string, string> metadata = 10;
|
||||
|
||||
// Tx packets per frequency.
|
||||
map<uint32, uint32> tx_packets_per_frequency = 12;
|
||||
|
||||
// Rx packets per frequency.
|
||||
map<uint32, uint32> rx_packets_per_frequency = 13;
|
||||
|
||||
// Tx packets per modulation parameters.
|
||||
repeated PerModulationCount tx_packets_per_modulation = 14;
|
||||
|
||||
// Rx packets per modulation parameters.
|
||||
repeated PerModulationCount rx_packets_per_modulation = 15;
|
||||
|
||||
// Tx packets per status.
|
||||
map<string, uint32> tx_packets_per_status = 16;
|
||||
|
||||
// Duty-cycle statistics (Concentratord only).
|
||||
DutyCycleStats duty_cycle_stats = 18;
|
||||
}
|
||||
|
||||
message PerModulationCount {
|
||||
// Modulation.
|
||||
Modulation modulation = 1;
|
||||
|
||||
// Count.
|
||||
uint32 count = 2;
|
||||
}
|
||||
|
||||
message DutyCycleStats {
|
||||
// Implemented regulation.
|
||||
common.Regulation regulation = 1;
|
||||
|
||||
// Tracking window.
|
||||
google.protobuf.Duration window = 2;
|
||||
|
||||
// Bands.
|
||||
repeated DutyCycleBand bands = 3;
|
||||
}
|
||||
|
||||
message DutyCycleBand {
|
||||
// Band name.
|
||||
string name = 1;
|
||||
|
||||
// Min frequency for this band.
|
||||
uint32 frequency_min = 2;
|
||||
|
||||
// Max frequency for this band.
|
||||
uint32 frequency_max = 3;
|
||||
|
||||
// Max. allowed load.
|
||||
google.protobuf.Duration load_max = 4;
|
||||
|
||||
// Tracked load (within the window of the regionlation).
|
||||
google.protobuf.Duration load_tracked = 5;
|
||||
}
|
||||
|
||||
message UplinkRxInfoLegacy {
|
||||
// Gateway ID.
|
||||
bytes gateway_id = 1;
|
||||
|
||||
// RX time (only set when the gateway has a GPS module).
|
||||
google.protobuf.Timestamp time = 2;
|
||||
|
||||
// RX time since GPS epoch (only set when the gateway has a GPS module).
|
||||
google.protobuf.Duration time_since_gps_epoch = 3;
|
||||
|
||||
// RSSI.
|
||||
int32 rssi = 5;
|
||||
|
||||
// LoRa SNR.
|
||||
double lora_snr = 6;
|
||||
|
||||
// Channel.
|
||||
uint32 channel = 7;
|
||||
|
||||
// RF Chain.
|
||||
uint32 rf_chain = 8;
|
||||
|
||||
// Board.
|
||||
uint32 board = 9;
|
||||
|
||||
// Antenna.
|
||||
uint32 antenna = 10;
|
||||
|
||||
// Location.
|
||||
common.Location location = 11;
|
||||
|
||||
// Fine-timestamp type.
|
||||
FineTimestampType fine_timestamp_type = 12;
|
||||
|
||||
// Fine-timestamp data.
|
||||
oneof fine_timestamp {
|
||||
// Encrypted fine-timestamp data.
|
||||
EncryptedFineTimestamp encrypted_fine_timestamp = 13;
|
||||
|
||||
// Plain fine-timestamp data.
|
||||
PlainFineTimestamp plain_fine_timestamp = 14;
|
||||
}
|
||||
|
||||
// Gateway specific context.
|
||||
bytes context = 15;
|
||||
|
||||
// Uplink ID (UUID bytes).
|
||||
// Unique and random ID which can be used to correlate the uplink across
|
||||
// multiple logs.
|
||||
bytes uplink_id = 16;
|
||||
|
||||
// CRC status.
|
||||
CRCStatus crc_status = 17;
|
||||
|
||||
// Optional meta-data map.
|
||||
map<string, string> metadata = 18;
|
||||
}
|
||||
|
||||
message UplinkRxInfo {
|
||||
// Gateway ID.
|
||||
string gateway_id = 1;
|
||||
|
||||
// Uplink ID.
|
||||
uint32 uplink_id = 2;
|
||||
|
||||
// Gateway RX time (set if the gateway has a GNSS module).
|
||||
google.protobuf.Timestamp gw_time = 3;
|
||||
|
||||
// Network Server RX time (set by the NS on receiving the uplink).
|
||||
google.protobuf.Timestamp ns_time = 17;
|
||||
|
||||
// RX time as time since GPS epoch (set if the gateway has a GNSS module).
|
||||
google.protobuf.Duration time_since_gps_epoch = 4;
|
||||
|
||||
// Fine-timestamp.
|
||||
// This timestamp can be used for TDOA based geolocation.
|
||||
google.protobuf.Duration fine_time_since_gps_epoch = 5;
|
||||
|
||||
// RSSI.
|
||||
int32 rssi = 6;
|
||||
|
||||
// SNR.
|
||||
// Note: only available for LoRa modulation.
|
||||
float snr = 7;
|
||||
|
||||
// Channel.
|
||||
uint32 channel = 8;
|
||||
|
||||
// RF chain.
|
||||
uint32 rf_chain = 9;
|
||||
|
||||
// Board.
|
||||
uint32 board = 10;
|
||||
|
||||
// Antenna.
|
||||
uint32 antenna = 11;
|
||||
|
||||
// Location.
|
||||
common.Location location = 12;
|
||||
|
||||
// Gateway specific context.
|
||||
// This value must be returned to the gateway on (Class-A) downlink.
|
||||
bytes context = 13;
|
||||
|
||||
// Additional gateway meta-data.
|
||||
map<string, string> metadata = 15;
|
||||
|
||||
// CRC status.
|
||||
CRCStatus crc_status = 16;
|
||||
}
|
||||
|
||||
message DownlinkTxInfoLegacy {
|
||||
// Gateway ID.
|
||||
// Deprecated: replaced by gateway_id in DownlinkFrame.
|
||||
bytes gateway_id = 1;
|
||||
|
||||
// TX frequency (in Hz).
|
||||
uint32 frequency = 5;
|
||||
|
||||
// TX power (in dBm EIRP).
|
||||
int32 power = 6;
|
||||
|
||||
// Modulation.
|
||||
common.Modulation modulation = 7;
|
||||
|
||||
oneof modulation_info {
|
||||
// LoRa modulation information.
|
||||
LoraModulationInfo lora_modulation_info = 8;
|
||||
|
||||
// FSK modulation information.
|
||||
FskModulationInfo fsk_modulation_info = 9;
|
||||
}
|
||||
|
||||
// The board identifier for emitting the frame.
|
||||
uint32 board = 10;
|
||||
|
||||
// The antenna identifier for emitting the frame.
|
||||
uint32 antenna = 11;
|
||||
|
||||
// Timing defines the downlink timing to use.
|
||||
DownlinkTiming timing = 12;
|
||||
|
||||
oneof timing_info {
|
||||
// Immediately timing information.
|
||||
ImmediatelyTimingInfo immediately_timing_info = 13;
|
||||
|
||||
// Context based delay timing information.
|
||||
DelayTimingInfo delay_timing_info = 14;
|
||||
|
||||
// GPS Epoch timing information.
|
||||
GPSEpochTimingInfo gps_epoch_timing_info = 15;
|
||||
}
|
||||
|
||||
// Gateway specific context.
|
||||
// In case of a Class-A downlink, this contains a copy of the uplink context.
|
||||
bytes context = 16;
|
||||
}
|
||||
|
||||
message DownlinkTxInfo {
|
||||
// TX frequency (in Hz).
|
||||
uint32 frequency = 1;
|
||||
|
||||
// TX power (in dBm EIRP).
|
||||
int32 power = 2;
|
||||
|
||||
// Modulation.
|
||||
Modulation modulation = 3;
|
||||
|
||||
// The board identifier for emitting the frame.
|
||||
uint32 board = 4;
|
||||
|
||||
// The antenna identifier for emitting the frame.
|
||||
uint32 antenna = 5;
|
||||
|
||||
// Timing.
|
||||
Timing timing = 6;
|
||||
|
||||
// Gateway specific context.
|
||||
// In case of a Class-A downlink, this contains a copy of the uplink context.
|
||||
bytes context = 7;
|
||||
}
|
||||
|
||||
message Timing {
|
||||
oneof parameters {
|
||||
// Immediately timing information.
|
||||
ImmediatelyTimingInfo immediately = 1;
|
||||
|
||||
// Context based delay timing information.
|
||||
DelayTimingInfo delay = 2;
|
||||
|
||||
// GPS Epoch timing information.
|
||||
GPSEpochTimingInfo gps_epoch = 3;
|
||||
}
|
||||
}
|
||||
|
||||
message ImmediatelyTimingInfo {
|
||||
// Not implemented yet.
|
||||
}
|
||||
|
||||
message DelayTimingInfo {
|
||||
// Delay (duration).
|
||||
// The delay will be added to the gateway internal timing, provided by the
|
||||
// context object.
|
||||
google.protobuf.Duration delay = 1;
|
||||
}
|
||||
|
||||
message GPSEpochTimingInfo {
|
||||
// Duration since GPS Epoch.
|
||||
google.protobuf.Duration time_since_gps_epoch = 1;
|
||||
}
|
||||
|
||||
message UplinkFrame {
|
||||
// PHYPayload.
|
||||
bytes phy_payload = 1;
|
||||
|
||||
// TX meta-data (deprecated).
|
||||
UplinkTxInfoLegacy tx_info_legacy = 2;
|
||||
|
||||
// RX meta-data (deprecated).
|
||||
UplinkRxInfoLegacy rx_info_legacy = 3;
|
||||
|
||||
// Tx meta-data.
|
||||
UplinkTxInfo tx_info = 4;
|
||||
|
||||
// Rx meta-data.
|
||||
UplinkRxInfo rx_info = 5;
|
||||
}
|
||||
|
||||
message UplinkFrameSet {
|
||||
// PHYPayload.
|
||||
bytes phy_payload = 1;
|
||||
|
||||
// TX meta-data.
|
||||
UplinkTxInfo tx_info = 2;
|
||||
|
||||
// RX meta-data set.
|
||||
repeated UplinkRxInfo rx_info = 3;
|
||||
}
|
||||
|
||||
message DownlinkFrame {
|
||||
// Downlink ID.
|
||||
uint32 downlink_id = 3;
|
||||
|
||||
// Downlink ID (UUID).
|
||||
// Deprecated: use downlink_id.
|
||||
bytes downlink_id_legacy = 4;
|
||||
|
||||
// Downlink frame items.
|
||||
// This makes it possible to send multiple downlink opportunities to the
|
||||
// gateway at once (e.g. RX1 and RX2 in LoRaWAN). The first item has the
|
||||
// highest priority, the last the lowest. The gateway will emit at most
|
||||
// one item.
|
||||
repeated DownlinkFrameItem items = 5;
|
||||
|
||||
// Gateway ID.
|
||||
// Deprecated: use gateway_id
|
||||
bytes gateway_id_legacy = 6;
|
||||
|
||||
// Gateway ID.
|
||||
string gateway_id = 7;
|
||||
}
|
||||
|
||||
message DownlinkFrameItem {
|
||||
// PHYPayload.
|
||||
bytes phy_payload = 1;
|
||||
|
||||
// TX meta-data (deprecated).
|
||||
DownlinkTxInfoLegacy tx_info_legacy = 2;
|
||||
|
||||
// Tx meta-data.
|
||||
DownlinkTxInfo tx_info = 3;
|
||||
}
|
||||
|
||||
message DownlinkTxAck {
|
||||
// Gateway ID (deprecated).
|
||||
bytes gateway_id_legacy = 1;
|
||||
|
||||
// Gateway ID.
|
||||
string gateway_id = 6;
|
||||
|
||||
// Downlink ID.
|
||||
uint32 downlink_id = 2;
|
||||
|
||||
// Downlink ID (deprecated).
|
||||
bytes downlink_id_legacy = 4;
|
||||
|
||||
// Downlink frame items.
|
||||
// This list has the same length as the request and indicates which
|
||||
// downlink frame has been emitted of the requested list (or why it failed).
|
||||
// Note that at most one item has a positive acknowledgement.
|
||||
repeated DownlinkTxAckItem items = 5;
|
||||
}
|
||||
|
||||
message DownlinkTxAckItem {
|
||||
// The Ack status of this item.
|
||||
TxAckStatus status = 1;
|
||||
}
|
||||
|
||||
message GatewayConfiguration {
|
||||
// Gateway ID.
|
||||
// Deprecated: use gateway_id.
|
||||
bytes gateway_id_legacy = 1;
|
||||
|
||||
// Gateway ID.
|
||||
string gateway_id = 5;
|
||||
|
||||
// Configuration version.
|
||||
string version = 2;
|
||||
|
||||
// Channels.
|
||||
repeated ChannelConfiguration channels = 3;
|
||||
|
||||
// Stats interval.
|
||||
google.protobuf.Duration stats_interval = 4;
|
||||
}
|
||||
|
||||
message ChannelConfiguration {
|
||||
// Frequency (Hz).
|
||||
uint32 frequency = 1;
|
||||
|
||||
// Modulation (deprecated).
|
||||
common.Modulation modulation_legacy = 2;
|
||||
|
||||
oneof modulation_config {
|
||||
// LoRa modulation config.
|
||||
LoraModulationConfig lora_modulation_config = 3;
|
||||
|
||||
// FSK modulation config.
|
||||
FskModulationConfig fsk_modulation_config = 4;
|
||||
}
|
||||
|
||||
// Board index.
|
||||
uint32 board = 5;
|
||||
|
||||
// Demodulator index (of the given board).
|
||||
uint32 demodulator = 6;
|
||||
}
|
||||
|
||||
message LoraModulationConfig {
|
||||
// Bandwidth (kHz).
|
||||
// Deprecated: use bandwidth.
|
||||
uint32 bandwidth_legacy = 1;
|
||||
|
||||
// Bandwidth (Hz).
|
||||
uint32 bandwidth = 3;
|
||||
|
||||
// Spreading-factors.
|
||||
repeated uint32 spreading_factors = 2;
|
||||
}
|
||||
|
||||
message FskModulationConfig {
|
||||
// Bandwidth (kHz).
|
||||
// Deprecated: use bandwidth.
|
||||
uint32 bandwidth_legacy = 1;
|
||||
|
||||
// Bandwidth (Hz).
|
||||
uint32 bandwidth = 3;
|
||||
|
||||
// Bitrate.
|
||||
uint32 bitrate = 2;
|
||||
}
|
||||
|
||||
message GatewayCommandExecRequest {
|
||||
// Gateway ID.
|
||||
// Deprecated: use gateway_id.
|
||||
bytes gateway_id_legacy = 1;
|
||||
|
||||
// Gateway ID.
|
||||
string gateway_id = 6;
|
||||
|
||||
// Command to execute.
|
||||
// This command must be pre-configured in the LoRa Gateway Bridge
|
||||
// configuration.
|
||||
string command = 2;
|
||||
|
||||
// Execution request ID.
|
||||
// The same will be returned when the execution of the command has
|
||||
// completed.
|
||||
uint32 exec_id = 7;
|
||||
|
||||
// Standard input.
|
||||
bytes stdin = 4;
|
||||
|
||||
// Environment variables.
|
||||
map<string, string> environment = 5;
|
||||
}
|
||||
|
||||
message GatewayCommandExecResponse {
|
||||
// Gateway ID.
|
||||
// Deprecated: use gateway_id.
|
||||
bytes gateway_id_legacy = 1;
|
||||
|
||||
// Gateway ID.
|
||||
string gateway_id = 6;
|
||||
|
||||
// Execution request ID.
|
||||
uint32 exec_id = 7;
|
||||
|
||||
// Standard output.
|
||||
bytes stdout = 3;
|
||||
|
||||
// Standard error.
|
||||
bytes stderr = 4;
|
||||
|
||||
// Error message.
|
||||
string error = 5;
|
||||
}
|
||||
|
||||
// RawPacketForwarderEvent contains a raw packet-forwarder event.
|
||||
// It can be used to access packet-forwarder features that are not (fully)
|
||||
// integrated with the ChirpStack Gateway Bridge.
|
||||
message RawPacketForwarderEvent {
|
||||
// Gateway ID.
|
||||
// Deprecated: use gateway_id.
|
||||
bytes gateway_id_legacy = 1;
|
||||
|
||||
// Gateway ID.
|
||||
string gateway_id = 4;
|
||||
|
||||
// Payload contains the raw payload.
|
||||
bytes payload = 3;
|
||||
}
|
||||
|
||||
// RawPacketForwarderEvent contains a raw packet-forwarder command.
|
||||
// It can be used to access packet-forwarder features that are not (fully)
|
||||
// integrated with the ChirpStack Gateway Bridge.
|
||||
message RawPacketForwarderCommand {
|
||||
// Gateway ID.
|
||||
// Deprecated: use gateway_id.
|
||||
bytes gateway_id_legacy = 1;
|
||||
|
||||
// Gateway ID.
|
||||
string gateway_id = 4;
|
||||
|
||||
// Payload contains the raw payload.
|
||||
bytes payload = 3;
|
||||
}
|
||||
|
||||
// ConnState contains the connection state of a gateway.
|
||||
message ConnState {
|
||||
// Gateway ID.
|
||||
// Deprecated: use gateway_id.
|
||||
bytes gateway_id_legacy = 1;
|
||||
|
||||
// Gateway ID.
|
||||
string gateway_id = 3;
|
||||
|
||||
enum State {
|
||||
OFFLINE = 0;
|
||||
ONLINE = 1;
|
||||
}
|
||||
|
||||
State state = 2;
|
||||
}
|
||||
|
||||
// Gateway Mesh heartbeat (sent periodically by the Relay Gateways).
|
||||
message MeshHeartbeat {
|
||||
// Gateway ID (of the Border Gateway).
|
||||
string gateway_id = 1;
|
||||
|
||||
// Relay ID.
|
||||
string relay_id = 2;
|
||||
|
||||
// Timestamp (second precision).
|
||||
google.protobuf.Timestamp time = 3;
|
||||
|
||||
// Relay path.
|
||||
repeated MeshHeartbeatRelayPath relay_path = 4;
|
||||
}
|
||||
|
||||
message MeshHeartbeatRelayPath {
|
||||
// Relay ID.
|
||||
string relay_id = 1;
|
||||
|
||||
// RSSI.
|
||||
int32 rssi = 2;
|
||||
|
||||
// SNR.
|
||||
int32 snr = 3;
|
||||
}
|
355
api/rust/proto/chirpstack/integration/integration.proto
vendored
Normal file
355
api/rust/proto/chirpstack/integration/integration.proto
vendored
Normal file
@ -0,0 +1,355 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package integration;
|
||||
|
||||
option go_package = "github.com/brocaar/chirpstack/api/go/v4/integration";
|
||||
option java_package = "io.chirpstack.api.integration";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "IntegrationProto";
|
||||
option csharp_namespace = "Chirpstack.Integration";
|
||||
option php_namespace = "Chirpstack\\Integration";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Integration";
|
||||
|
||||
import "common/common.proto";
|
||||
import "gw/gw.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/struct.proto";
|
||||
|
||||
enum LogLevel {
|
||||
// Info.
|
||||
INFO = 0;
|
||||
|
||||
// Warning.
|
||||
WARNING = 1;
|
||||
|
||||
// Error.
|
||||
ERROR = 2;
|
||||
}
|
||||
|
||||
enum LogCode {
|
||||
// Unknown type.
|
||||
UNKNOWN = 0;
|
||||
|
||||
// Error related to the downlink payload size.
|
||||
// Usually seen when the payload exceeded the maximum allowed payload size.
|
||||
DOWNLINK_PAYLOAD_SIZE = 1;
|
||||
|
||||
// Uplink codec error.
|
||||
UPLINK_CODEC = 2;
|
||||
|
||||
// Downlink codec error.
|
||||
DOWNLINK_CODEC = 3;
|
||||
|
||||
// OTAA error.
|
||||
OTAA = 4;
|
||||
|
||||
// Uplink frame-counter was reset.
|
||||
UPLINK_F_CNT_RESET = 5;
|
||||
|
||||
// Uplink MIC error.
|
||||
UPLINK_MIC = 6;
|
||||
|
||||
// Uplink frame-counter retransmission.
|
||||
UPLINK_F_CNT_RETRANSMISSION = 7;
|
||||
|
||||
// Downlink gateway error.
|
||||
DOWNLINK_GATEWAY = 8;
|
||||
|
||||
// Relay new end-device.
|
||||
RELAY_NEW_END_DEVICE = 9;
|
||||
|
||||
// Downlink frame-counter.
|
||||
F_CNT_DOWN = 10;
|
||||
|
||||
// Downlink has expired.
|
||||
EXPIRED = 11;
|
||||
}
|
||||
|
||||
// Device information.
|
||||
message DeviceInfo {
|
||||
// Tenant ID (UUID).
|
||||
string tenant_id = 1;
|
||||
|
||||
// Tenant name.
|
||||
string tenant_name = 2;
|
||||
|
||||
// Application ID (UUID).
|
||||
string application_id = 3;
|
||||
|
||||
// Application name.
|
||||
string application_name = 4;
|
||||
|
||||
// Device-profile ID (UUID).
|
||||
string device_profile_id = 5;
|
||||
|
||||
// Device-profile name.
|
||||
string device_profile_name = 6;
|
||||
|
||||
// Device name.
|
||||
string device_name = 7;
|
||||
|
||||
// Device EUI.
|
||||
string dev_eui = 8;
|
||||
|
||||
// Device class.
|
||||
common.DeviceClass device_class_enabled = 10;
|
||||
|
||||
// Device-profile and device tags.
|
||||
map<string, string> tags = 9;
|
||||
}
|
||||
|
||||
// Uplink relay RX information.
|
||||
message UplinkRelayRxInfo {
|
||||
// Relay DevEUI.
|
||||
string dev_eui = 1;
|
||||
|
||||
// Frequency.
|
||||
uint32 frequency = 2;
|
||||
|
||||
// Data-rate.
|
||||
uint32 dr = 3;
|
||||
|
||||
// SNR.
|
||||
int32 snr = 4;
|
||||
|
||||
// RSSI.
|
||||
int32 rssi = 5;
|
||||
|
||||
// WOR channel.
|
||||
uint32 wor_channel = 6;
|
||||
}
|
||||
|
||||
// UplinkEvent is the message sent when an uplink payload has been received.
|
||||
message UplinkEvent {
|
||||
// Deduplication ID (UUID).
|
||||
string deduplication_id = 1;
|
||||
|
||||
// Timestamp.
|
||||
google.protobuf.Timestamp time = 2;
|
||||
|
||||
// Device information.
|
||||
DeviceInfo device_info = 3;
|
||||
|
||||
// Device address.
|
||||
string dev_addr = 4;
|
||||
|
||||
// Device has ADR bit set.
|
||||
bool adr = 5;
|
||||
|
||||
// Data-rate.
|
||||
uint32 dr = 6;
|
||||
|
||||
// Frame counter.
|
||||
uint32 f_cnt = 7;
|
||||
|
||||
// Frame port.
|
||||
uint32 f_port = 8;
|
||||
|
||||
// Uplink was of type confirmed.
|
||||
bool confirmed = 9;
|
||||
|
||||
// FRMPayload data.
|
||||
bytes data = 10;
|
||||
|
||||
// Note that this is only set when a codec is configured in the Device
|
||||
// Profile.
|
||||
google.protobuf.Struct object = 11;
|
||||
|
||||
// Receiving gateway RX info.
|
||||
repeated gw.UplinkRxInfo rx_info = 12;
|
||||
|
||||
// TX info.
|
||||
gw.UplinkTxInfo tx_info = 13;
|
||||
|
||||
// Relay info.
|
||||
UplinkRelayRxInfo relay_rx_info = 14;
|
||||
|
||||
// Join-Server context.
|
||||
// A non-empty value indicatest that ChirpStack does not have access to
|
||||
// the AppSKey and that the encryption / decryption of the payloads is
|
||||
// the responsibility of the end-application.
|
||||
common.JoinServerContext join_server_context = 15;
|
||||
}
|
||||
|
||||
// JoinEvent is the message sent when a device joined the network.
|
||||
// Note: this event is sent at the first uplink after OTAA.
|
||||
message JoinEvent {
|
||||
// Deduplication ID (UUID).
|
||||
string deduplication_id = 1;
|
||||
|
||||
// Timestamp.
|
||||
google.protobuf.Timestamp time = 2;
|
||||
|
||||
// Device info.
|
||||
DeviceInfo device_info = 3;
|
||||
|
||||
// Device address.
|
||||
string dev_addr = 4;
|
||||
|
||||
// Relay info.
|
||||
UplinkRelayRxInfo relay_rx_info = 5;
|
||||
|
||||
// Join-Server context.
|
||||
// A non-empty value indicatest that ChirpStack does not have access to
|
||||
// the AppSKey and that the encryption / decryption of the payloads is
|
||||
// the responsibility of the end-application.
|
||||
common.JoinServerContext join_server_context = 6;
|
||||
}
|
||||
|
||||
// AckEvent is the message sent when a confirmation on a confirmed downlink
|
||||
// has been received -or- when the downlink timed out.
|
||||
message AckEvent {
|
||||
// Deduplication ID (UUID).
|
||||
string deduplication_id = 1;
|
||||
|
||||
// Timestamp.
|
||||
google.protobuf.Timestamp time = 2;
|
||||
|
||||
// Device info.
|
||||
DeviceInfo device_info = 3;
|
||||
|
||||
// Downlink queue item ID (UUID).
|
||||
string queue_item_id = 4;
|
||||
|
||||
// Frame was acknowledged.
|
||||
bool acknowledged = 5;
|
||||
|
||||
// Downlink frame counter to which the acknowledgement relates.
|
||||
uint32 f_cnt_down = 6;
|
||||
}
|
||||
|
||||
// TxAckEvent is the message sent when a downlink was acknowledged by the
|
||||
// gateway for transmission. As a downlink can be scheduled in the future, this
|
||||
// event does not confirm that the message has already been transmitted.
|
||||
message TxAckEvent {
|
||||
// Downlink ID.
|
||||
uint32 downlink_id = 1;
|
||||
|
||||
// Timestamp.
|
||||
google.protobuf.Timestamp time = 2;
|
||||
|
||||
// Device info.
|
||||
DeviceInfo device_info = 3;
|
||||
|
||||
// Downlink queue item ID (UUID).
|
||||
string queue_item_id = 4;
|
||||
|
||||
// Downlink frame-counter.
|
||||
uint32 f_cnt_down = 5;
|
||||
|
||||
// Gateway ID.
|
||||
string gateway_id = 6;
|
||||
|
||||
// TX info.
|
||||
gw.DownlinkTxInfo tx_info = 7;
|
||||
}
|
||||
|
||||
// LogEvent is the message sent when a device-related log was sent.
|
||||
message LogEvent {
|
||||
// Timestamp.
|
||||
google.protobuf.Timestamp time = 1;
|
||||
|
||||
// Device info.
|
||||
DeviceInfo device_info = 2;
|
||||
|
||||
// Log level.
|
||||
LogLevel level = 3;
|
||||
|
||||
// Log code.
|
||||
LogCode code = 4;
|
||||
|
||||
// Description message.
|
||||
string description = 5;
|
||||
|
||||
// Context map.
|
||||
map<string, string> context = 6;
|
||||
}
|
||||
|
||||
// StatusEvent is the message sent when a device-status mac-command was sent
|
||||
// by the device.
|
||||
message StatusEvent {
|
||||
// Deduplication ID (UUID).
|
||||
string deduplication_id = 1;
|
||||
|
||||
// Timestamp.
|
||||
google.protobuf.Timestamp time = 2;
|
||||
|
||||
// Device info.
|
||||
DeviceInfo device_info = 3;
|
||||
|
||||
// The demodulation signal-to-noise ratio in dB for the last successfully
|
||||
// received device-status request by the Network Server.
|
||||
int32 margin = 5;
|
||||
|
||||
// Device is connected to an external power source.
|
||||
bool external_power_source = 6;
|
||||
|
||||
// Battery level is not available.
|
||||
bool battery_level_unavailable = 7;
|
||||
|
||||
// Battery level.
|
||||
float battery_level = 8;
|
||||
}
|
||||
|
||||
// LocationEvent is the message sent when a geolocation resolve was returned.
|
||||
message LocationEvent {
|
||||
// Deduplication ID (UUID).
|
||||
string deduplication_id = 1;
|
||||
|
||||
// Timestamp.
|
||||
google.protobuf.Timestamp time = 2;
|
||||
|
||||
// Device info.
|
||||
DeviceInfo device_info = 3;
|
||||
|
||||
// Location.
|
||||
common.Location location = 4;
|
||||
}
|
||||
|
||||
// IntegrationEvent is the message that can be sent by an integration.
|
||||
// It allows for sending events which are provided by an external integration
|
||||
// which are "not native" to ChirpStack.
|
||||
message IntegrationEvent {
|
||||
// Deduplication ID (UUID).
|
||||
string deduplication_id = 1;
|
||||
|
||||
// Timestamp.
|
||||
google.protobuf.Timestamp time = 2;
|
||||
|
||||
// Device info.
|
||||
DeviceInfo device_info = 3;
|
||||
|
||||
// Integration name.
|
||||
string integration_name = 4;
|
||||
|
||||
// Event type.
|
||||
string event_type = 5;
|
||||
|
||||
// Struct containing the event object.
|
||||
google.protobuf.Struct object = 6;
|
||||
}
|
||||
|
||||
// DownlinkCommand is the command to enqueue a downlink payload for the given
|
||||
// device.
|
||||
message DownlinkCommand {
|
||||
// ID (UUID).
|
||||
// If left blank, a random UUID will be generated.
|
||||
string id = 1;
|
||||
|
||||
// Device EUI (EUI64).
|
||||
string dev_eui = 2;
|
||||
|
||||
// Confirmed.
|
||||
bool confirmed = 3;
|
||||
|
||||
// FPort (must be > 0).
|
||||
uint32 f_port = 4;
|
||||
|
||||
// Data.
|
||||
// Or use the json_object field when a codec has been configured.
|
||||
bytes data = 5;
|
||||
|
||||
// Only use this when a codec has been configured that can encode this
|
||||
// object to bytes.
|
||||
google.protobuf.Struct object = 6;
|
||||
}
|
410
api/rust/proto/chirpstack/internal/internal.proto
vendored
Normal file
410
api/rust/proto/chirpstack/internal/internal.proto
vendored
Normal file
@ -0,0 +1,410 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package internal;
|
||||
|
||||
import "common/common.proto";
|
||||
import "gw/gw.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
||||
message DeviceSession {
|
||||
// Device address.
|
||||
bytes dev_addr = 2;
|
||||
|
||||
// LoRaWAN mac-version.
|
||||
common.MacVersion mac_version = 4;
|
||||
|
||||
// FNwkSIntKey.
|
||||
bytes f_nwk_s_int_key = 5;
|
||||
|
||||
// SNwkSIntKey.
|
||||
bytes s_nwk_s_int_key = 6;
|
||||
|
||||
// NwkSEncKey.
|
||||
bytes nwk_s_enc_key = 7;
|
||||
|
||||
// AppSKey envelope.
|
||||
common.KeyEnvelope app_s_key = 8;
|
||||
|
||||
// JS Session Key ID.
|
||||
bytes js_session_key_id = 42;
|
||||
|
||||
// Uplink frame-counter.
|
||||
uint32 f_cnt_up = 9;
|
||||
|
||||
// Downlink frame-counter (ns).
|
||||
uint32 n_f_cnt_down = 10;
|
||||
|
||||
// Downlink frame-counter (as).
|
||||
uint32 a_f_cnt_down = 11;
|
||||
|
||||
// Frame-counter holding the last confirmed downlink frame (n_f_cnt_down or
|
||||
// a_f_cnt_down).
|
||||
uint32 conf_f_cnt = 12;
|
||||
|
||||
// Skip uplink frame-counter validation.
|
||||
bool skip_f_cnt_check = 13;
|
||||
|
||||
// RX1 delay.
|
||||
uint32 rx1_delay = 14;
|
||||
|
||||
// RX1 data-rate offset.
|
||||
uint32 rx1_dr_offset = 15;
|
||||
|
||||
// RX2 data-rate.
|
||||
uint32 rx2_dr = 16;
|
||||
|
||||
// RX2 frequency.
|
||||
uint32 rx2_frequency = 17;
|
||||
|
||||
// Enabled uplink channels.
|
||||
repeated uint32 enabled_uplink_channel_indices = 18;
|
||||
|
||||
// Extra user-defined uplink channels.
|
||||
map<uint32, DeviceSessionChannel> extra_uplink_channels = 19;
|
||||
|
||||
// Class-B ping-slot data-rate.
|
||||
uint32 class_b_ping_slot_dr = 20;
|
||||
|
||||
// Class-B ping-slot frequency.
|
||||
uint32 class_b_ping_slot_freq = 21;
|
||||
|
||||
// Class-B ping-slot nb.
|
||||
uint32 class_b_ping_slot_nb = 22;
|
||||
|
||||
// Nb. transmissions.
|
||||
uint32 nb_trans = 23;
|
||||
|
||||
// TXPowerIndex which the node is using. The possible values are defined
|
||||
// by the lorawan/band package and are region specific. By default it is
|
||||
// assumed that the node is using TXPower 0. This value is controlled by
|
||||
// the ADR engine.
|
||||
uint32 tx_power_index = 24;
|
||||
|
||||
// DR defines the (last known) data-rate at which the node is operating.
|
||||
// This value is controlled by the ADR engine.
|
||||
uint32 dr = 25;
|
||||
|
||||
// ADR defines if the device has ADR enabled.
|
||||
bool adr = 26;
|
||||
|
||||
// MaxSupportedTXPowerIndex defines the maximum supported tx-power index
|
||||
// by the node, or 0 when not set.
|
||||
uint32 max_supported_tx_power_index = 27;
|
||||
|
||||
// MinSupportedTXPowerIndex defines the minimum supported tx-power index
|
||||
// by the node (default 0).
|
||||
uint32 min_supported_tx_power_index = 28;
|
||||
|
||||
// Pending rejoin device-session contains a device-session which has not
|
||||
// yet been activated by the device (by sending a first uplink).
|
||||
DeviceSession pending_rejoin_device_session = 29;
|
||||
|
||||
// Uplink history for ADR (last 20 uplink transmissions).
|
||||
// This table is reset in case one of parameters has changed:
|
||||
// * DR
|
||||
// * TxPower
|
||||
// * NbTrans
|
||||
repeated UplinkAdrHistory uplink_adr_history = 30;
|
||||
|
||||
// Mac-command error count.
|
||||
map<uint32, uint32> mac_command_error_count = 31;
|
||||
|
||||
// Last device-status request.
|
||||
google.protobuf.Timestamp last_device_status_request = 32;
|
||||
|
||||
// RejoinRequestEnabled defines if the rejoin-request is enabled on the
|
||||
// device.
|
||||
bool rejoin_request_enabled = 33;
|
||||
|
||||
// RejoinRequestMaxCountN defines the 2^(C+4) uplink message interval for
|
||||
// the rejoin-request.
|
||||
uint32 rejoin_request_max_count_n = 34;
|
||||
|
||||
// RejoinRequestMaxTimeN defines the 2^(T+10) time interval (seconds)
|
||||
// for the rejoin-request.
|
||||
uint32 rejoin_request_max_time_n = 35;
|
||||
|
||||
// Rejoin counter (RJCount0).
|
||||
// This counter is reset to 0 after each successful join-accept.
|
||||
uint32 rejoin_count_0 = 36;
|
||||
|
||||
// Uplink dwell time.
|
||||
bool uplink_dwell_time_400ms = 37;
|
||||
|
||||
// Downlink dwell time.
|
||||
bool downlink_dwell_time_400ms = 38;
|
||||
|
||||
// Uplink max. EIRP index.
|
||||
uint32 uplink_max_eirp_index = 39;
|
||||
|
||||
// Region configuration ID.
|
||||
string region_config_id = 40;
|
||||
|
||||
// Relay state.
|
||||
Relay relay = 41;
|
||||
}
|
||||
|
||||
message UplinkAdrHistory {
|
||||
// Uplink frame-counter.
|
||||
uint32 f_cnt = 1;
|
||||
|
||||
// Max SNR (of deduplicated frames received by one or multiple gateways).
|
||||
float max_snr = 2;
|
||||
|
||||
// Max RSSI.
|
||||
int32 max_rssi = 5;
|
||||
|
||||
// TX Power (as known by the network-server).
|
||||
uint32 tx_power_index = 3;
|
||||
|
||||
// Number of receiving gateways.
|
||||
uint32 gateway_count = 4;
|
||||
}
|
||||
|
||||
message Relay {
|
||||
// Devices provisioned on the relay.
|
||||
repeated RelayDevice devices = 1;
|
||||
|
||||
// Filter list.
|
||||
repeated RelayFilter filters = 2;
|
||||
|
||||
// Relay is enabled.
|
||||
bool enabled = 3;
|
||||
|
||||
// CAD periodicity.
|
||||
uint32 cad_periodicity = 4;
|
||||
|
||||
// Default channel index.
|
||||
uint32 default_channel_index = 5;
|
||||
|
||||
// Second channel freq.
|
||||
uint32 second_channel_freq = 6;
|
||||
|
||||
// Second channel DR.
|
||||
uint32 second_channel_dr = 7;
|
||||
|
||||
// Second channel ACK offset.
|
||||
uint32 second_channel_ack_offset = 8;
|
||||
|
||||
// End-device activation mode.
|
||||
uint32 ed_activation_mode = 9;
|
||||
|
||||
// End-device smart-enable level.
|
||||
uint32 ed_smart_enable_level = 10;
|
||||
|
||||
// End-device back-off.
|
||||
uint32 ed_back_off = 11;
|
||||
|
||||
// Join-request limit reload rate.
|
||||
uint32 join_req_limit_reload_rate = 12;
|
||||
|
||||
// Notify limit reload rate.
|
||||
uint32 notify_limit_reload_rate = 13;
|
||||
|
||||
// Global uplink limit reload rate.
|
||||
uint32 global_uplink_limit_reload_rate = 14;
|
||||
|
||||
// Overall limit reload rate.
|
||||
uint32 overall_limit_reload_rate = 15;
|
||||
|
||||
// Join-request limit bucket size.
|
||||
uint32 join_req_limit_bucket_size = 16;
|
||||
|
||||
// Notify limit bucket size.
|
||||
uint32 notify_limit_bucket_size = 17;
|
||||
|
||||
// Global uplink limit bucket size.
|
||||
uint32 global_uplink_limit_bucket_size = 18;
|
||||
|
||||
// Overall limit bucket size.
|
||||
uint32 overall_limit_bucket_size = 19;
|
||||
|
||||
// End-device must communicate through relay only.
|
||||
// This is stored in the device-session as we need to validate on retrieving
|
||||
// the device-session.
|
||||
bool ed_relay_only = 20;
|
||||
|
||||
// End-device WFCnt.
|
||||
// This holds the last known WFCnt value. ChirpStack will periodically read
|
||||
// this value from the Relay.
|
||||
uint32 w_f_cnt = 21;
|
||||
}
|
||||
|
||||
message RelayDevice {
|
||||
// Index (used for filter and uplink filters).
|
||||
// This must be between 0 - 15.
|
||||
uint32 index = 1;
|
||||
|
||||
// JoinEUI (EUI64).
|
||||
bytes join_eui = 2;
|
||||
|
||||
// DevEUI (EUI64).
|
||||
bytes dev_eui = 3;
|
||||
|
||||
// DevAddr.
|
||||
bytes dev_addr = 4;
|
||||
|
||||
// RootWorSKey.
|
||||
bytes root_wor_s_key = 5;
|
||||
|
||||
// Provisioned.
|
||||
bool provisioned = 6;
|
||||
|
||||
// Uplink limit bucket size.
|
||||
uint32 uplink_limit_bucket_size = 7;
|
||||
|
||||
// Uplink limit reload rate.
|
||||
uint32 uplink_limit_reload_rate = 8;
|
||||
|
||||
// Timestamp of the last WFCnt request.
|
||||
// Note that ChirpStack periodically requests the WFCnt from the relay.
|
||||
google.protobuf.Timestamp w_f_cnt_last_request = 9;
|
||||
}
|
||||
|
||||
message RelayFilter {
|
||||
// Index.
|
||||
// This must be between 0 - 15.
|
||||
uint32 index = 1;
|
||||
|
||||
// Action.
|
||||
// * 0: No Rule
|
||||
// * 1: Forward
|
||||
// * 2: Filter
|
||||
uint32 action = 2;
|
||||
|
||||
// DevEUI (EUI64).
|
||||
bytes dev_eui = 3;
|
||||
|
||||
// JoinEUI (EUI64).
|
||||
bytes join_eui = 4;
|
||||
|
||||
// Provisioned.
|
||||
bool provisioned = 5;
|
||||
}
|
||||
|
||||
message DeviceSessionChannel {
|
||||
// Frequency Hz.
|
||||
uint32 frequency = 1;
|
||||
|
||||
// Min. data-rate.
|
||||
uint32 min_dr = 2;
|
||||
|
||||
// Max. data-rate.
|
||||
uint32 max_dr = 3;
|
||||
}
|
||||
|
||||
message DeviceGatewayRxInfo {
|
||||
// DevEUI (EUI64).
|
||||
bytes dev_eui = 1;
|
||||
|
||||
// Data-rate.
|
||||
uint32 dr = 2;
|
||||
|
||||
// Gateway RxInfo elements.
|
||||
repeated DeviceGatewayRxInfoItem items = 3;
|
||||
}
|
||||
|
||||
message DeviceGatewayRxInfoItem {
|
||||
// Gateway ID (EUI64).
|
||||
bytes gateway_id = 1;
|
||||
|
||||
// RSSI.
|
||||
int32 rssi = 2;
|
||||
|
||||
// LoRa SNR.
|
||||
float lora_snr = 3;
|
||||
|
||||
// Antenna.
|
||||
uint32 antenna = 4;
|
||||
|
||||
// Board.
|
||||
uint32 board = 5;
|
||||
|
||||
// Context blob.
|
||||
bytes context = 6;
|
||||
|
||||
// Gateway is private (uplink).
|
||||
bool is_private_up = 7;
|
||||
|
||||
// Gateway is private (downlink).
|
||||
bool is_private_down = 8;
|
||||
|
||||
// Tenant ID (UUID).
|
||||
bytes tenant_id = 9;
|
||||
}
|
||||
|
||||
message DownlinkFrame {
|
||||
// Downlink ID.
|
||||
uint32 downlink_id = 1;
|
||||
|
||||
// DevEUI.
|
||||
bytes dev_eui = 2;
|
||||
|
||||
// Device queue item ID.
|
||||
bytes device_queue_item_id = 3;
|
||||
|
||||
// Multicast Group ID.
|
||||
bytes multicast_group_id = 4;
|
||||
|
||||
// Multicast queue item ID.
|
||||
bytes multicast_group_queue_item_id = 5;
|
||||
|
||||
// Downlink frames.
|
||||
gw.DownlinkFrame downlink_frame = 6;
|
||||
|
||||
// Encrypted FOpts (LoRaWAN 1.1).
|
||||
bool encrypted_fopts = 8;
|
||||
|
||||
// Network session encryption key (for FOpts and FRMPayload mac-commands).
|
||||
bytes nwk_s_enc_key = 9;
|
||||
|
||||
// NFCntDown (for decrypting mac-commands).
|
||||
uint32 n_f_cnt_down = 10;
|
||||
|
||||
// AFCntDown (for decrypting FRMPayload in case of Relay).
|
||||
uint32 a_f_cnt_down = 11;
|
||||
|
||||
// DevEUI of relayed device.
|
||||
bytes dev_eui_relayed = 12;
|
||||
}
|
||||
|
||||
message LoraCloudGeolocBuffer {
|
||||
// Uplinks in buffer.
|
||||
repeated LoraCloudGeolocBufferUplink uplinks = 1;
|
||||
}
|
||||
|
||||
message LoraCloudGeolocBufferUplink {
|
||||
// RxInfo set for a single uplink.
|
||||
repeated gw.UplinkRxInfo rx_info = 1;
|
||||
}
|
||||
|
||||
message PassiveRoamingDeviceSession {
|
||||
// Session ID (UUID).
|
||||
// Unfortunately we can not use the DevEUI as unique identifier
|
||||
// as the PRStartAns DevEUI field is optional.
|
||||
bytes session_id = 1;
|
||||
|
||||
// NetID of the hNS.
|
||||
bytes net_id = 2;
|
||||
|
||||
// DevAddr of the device.
|
||||
bytes dev_addr = 3;
|
||||
|
||||
// DevEUI of the device (optional).
|
||||
bytes dev_eui = 4;
|
||||
|
||||
// LoRaWAN 1.1.
|
||||
bool lorawan_1_1 = 5;
|
||||
|
||||
// LoRaWAN 1.0 NwkSKey / LoRaWAN 1.1 FNwkSIntKey.
|
||||
bytes f_nwk_s_int_key = 6;
|
||||
|
||||
// Lifetime.
|
||||
google.protobuf.Timestamp lifetime = 7;
|
||||
|
||||
// Uplink frame-counter.
|
||||
uint32 f_cnt_up = 8;
|
||||
|
||||
// Validate MIC.
|
||||
bool validate_mic = 9;
|
||||
}
|
26
api/rust/proto/chirpstack/stream/api_request.proto
vendored
Normal file
26
api/rust/proto/chirpstack/stream/api_request.proto
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package stream;
|
||||
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/stream";
|
||||
option java_package = "io.chirpstack.api.stream";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "ApiRequestProto";
|
||||
option csharp_namespace = "Chirpstack.Stream";
|
||||
option php_namespace = "Chirpstack\\Stream";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Stream";
|
||||
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "common/common.proto";
|
||||
import "gw/gw.proto";
|
||||
|
||||
message ApiRequestLog {
|
||||
// API service name.
|
||||
string service = 1;
|
||||
|
||||
// API method name.
|
||||
string method = 2;
|
||||
|
||||
// Metadata.
|
||||
map<string, string> metadata = 3;
|
||||
}
|
42
api/rust/proto/chirpstack/stream/backend_interfaces.proto
vendored
Normal file
42
api/rust/proto/chirpstack/stream/backend_interfaces.proto
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package stream;
|
||||
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/stream";
|
||||
option java_package = "io.chirpstack.api.stream";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "BackendInterfacesProto";
|
||||
option csharp_namespace = "Chirpstack.Stream";
|
||||
option php_namespace = "Chirpstack\\Stream";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Stream";
|
||||
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
||||
message BackendInterfacesRequest {
|
||||
// Sender ID.
|
||||
string sender_id = 1;
|
||||
|
||||
// Receiver ID.
|
||||
string receiver_id = 2;
|
||||
|
||||
// Timestamp.
|
||||
google.protobuf.Timestamp time = 3;
|
||||
|
||||
// Transaction ID.
|
||||
uint32 transaction_id = 4;
|
||||
|
||||
// Message-type.
|
||||
string message_type = 5;
|
||||
|
||||
// Result code.
|
||||
string result_code = 6;
|
||||
|
||||
// Request body.
|
||||
string request_body = 7;
|
||||
|
||||
// Request error.
|
||||
string request_error = 8;
|
||||
|
||||
// Response body.
|
||||
string response_body = 9;
|
||||
}
|
76
api/rust/proto/chirpstack/stream/frame.proto
vendored
Normal file
76
api/rust/proto/chirpstack/stream/frame.proto
vendored
Normal file
@ -0,0 +1,76 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package stream;
|
||||
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/stream";
|
||||
option java_package = "io.chirpstack.api.stream";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "FrameProto";
|
||||
option csharp_namespace = "Chirpstack.Stream";
|
||||
option php_namespace = "Chirpstack\\Stream";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Stream";
|
||||
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "common/common.proto";
|
||||
import "gw/gw.proto";
|
||||
|
||||
message UplinkFrameLog {
|
||||
// PHYPayload.
|
||||
bytes phy_payload = 1;
|
||||
|
||||
// TX meta-data.
|
||||
gw.UplinkTxInfo tx_info = 2;
|
||||
|
||||
// RX meta-data.
|
||||
repeated gw.UplinkRxInfo rx_info = 3;
|
||||
|
||||
// Message type.
|
||||
common.MType m_type = 4;
|
||||
|
||||
// Device address (optional).
|
||||
string dev_addr = 5;
|
||||
|
||||
// Device EUI (optional).
|
||||
string dev_eui = 6;
|
||||
|
||||
// Time.
|
||||
google.protobuf.Timestamp time = 7;
|
||||
|
||||
// Plaintext f_opts mac-commands.
|
||||
bool plaintext_f_opts = 8;
|
||||
|
||||
// Plaintext frm_payload.
|
||||
bool plaintext_frm_payload = 9;
|
||||
}
|
||||
|
||||
message DownlinkFrameLog {
|
||||
// Time.
|
||||
google.protobuf.Timestamp time = 1;
|
||||
|
||||
// PHYPayload.
|
||||
bytes phy_payload = 2;
|
||||
|
||||
// TX meta-data.
|
||||
gw.DownlinkTxInfo tx_info = 3;
|
||||
|
||||
// Downlink ID.
|
||||
uint32 downlink_id = 4;
|
||||
|
||||
// Gateway ID (EUI64).
|
||||
string gateway_id = 5;
|
||||
|
||||
// Message type.
|
||||
common.MType m_type = 6;
|
||||
|
||||
// Device address (optional).
|
||||
string dev_addr = 7;
|
||||
|
||||
// Device EUI (optional).
|
||||
string dev_eui = 8;
|
||||
|
||||
// Plaintext f_opts mac-commands.
|
||||
bool plaintext_f_opts = 9;
|
||||
|
||||
// Plaintext frm_payload.
|
||||
bool plaintext_frm_payload = 10;
|
||||
}
|
63
api/rust/proto/chirpstack/stream/meta.proto
vendored
Normal file
63
api/rust/proto/chirpstack/stream/meta.proto
vendored
Normal file
@ -0,0 +1,63 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package stream;
|
||||
|
||||
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/stream";
|
||||
option java_package = "io.chirpstack.api.stream";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "MetaProto";
|
||||
option csharp_namespace = "Chirpstack.Stream";
|
||||
option php_namespace = "Chirpstack\\Stream";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Stream";
|
||||
|
||||
import "common/common.proto";
|
||||
import "gw/gw.proto";
|
||||
|
||||
message UplinkMeta {
|
||||
// Device EUI (EUI64).
|
||||
string dev_eui = 1;
|
||||
|
||||
// TX meta-data.
|
||||
gw.UplinkTxInfo tx_info = 2;
|
||||
|
||||
// RX meta-data.
|
||||
repeated gw.UplinkRxInfo rx_info = 3;
|
||||
|
||||
// PHYPayload byte count.
|
||||
uint32 phy_payload_byte_count = 4;
|
||||
|
||||
// MAC-Command byte count.
|
||||
uint32 mac_command_byte_count = 5;
|
||||
|
||||
// Application payload byte count.
|
||||
uint32 application_payload_byte_count = 6;
|
||||
|
||||
// Message type.
|
||||
common.MType message_type = 7;
|
||||
}
|
||||
|
||||
message DownlinkMeta {
|
||||
// Device EUI (EUI64).
|
||||
string dev_eui = 1;
|
||||
|
||||
// Multicast Group ID (UUID).
|
||||
string multicast_group_id = 2;
|
||||
|
||||
// TX meta-data.
|
||||
gw.DownlinkTxInfo tx_info = 3;
|
||||
|
||||
// PHYPayload byte count.
|
||||
uint32 phy_payload_byte_count = 4;
|
||||
|
||||
// MAC-Command byte count.
|
||||
uint32 mac_command_byte_count = 5;
|
||||
|
||||
// Application payload byte count.
|
||||
uint32 application_payload_byte_count = 6;
|
||||
|
||||
// Message type.
|
||||
common.MType message_type = 7;
|
||||
|
||||
// Gateway ID (EUI64).
|
||||
string gateway_id = 8;
|
||||
}
|
31
api/rust/proto/google/google/api/annotations.proto
vendored
Normal file
31
api/rust/proto/google/google/api/annotations.proto
vendored
Normal file
@ -0,0 +1,31 @@
|
||||
// Copyright 2015 Google LLC
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.api;
|
||||
|
||||
import "google/api/http.proto";
|
||||
import "google/protobuf/descriptor.proto";
|
||||
|
||||
option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "AnnotationsProto";
|
||||
option java_package = "com.google.api";
|
||||
option objc_class_prefix = "GAPI";
|
||||
|
||||
extend google.protobuf.MethodOptions {
|
||||
// See `HttpRule`.
|
||||
HttpRule http = 72295728;
|
||||
}
|
379
api/rust/proto/google/google/api/http.proto
vendored
Normal file
379
api/rust/proto/google/google/api/http.proto
vendored
Normal file
@ -0,0 +1,379 @@
|
||||
// Copyright 2023 Google LLC
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.api;
|
||||
|
||||
option cc_enable_arenas = true;
|
||||
option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "HttpProto";
|
||||
option java_package = "com.google.api";
|
||||
option objc_class_prefix = "GAPI";
|
||||
|
||||
// Defines the HTTP configuration for an API service. It contains a list of
|
||||
// [HttpRule][google.api.HttpRule], each specifying the mapping of an RPC method
|
||||
// to one or more HTTP REST API methods.
|
||||
message Http {
|
||||
// A list of HTTP configuration rules that apply to individual API methods.
|
||||
//
|
||||
// **NOTE:** All service configuration rules follow "last one wins" order.
|
||||
repeated HttpRule rules = 1;
|
||||
|
||||
// When set to true, URL path parameters will be fully URI-decoded except in
|
||||
// cases of single segment matches in reserved expansion, where "%2F" will be
|
||||
// left encoded.
|
||||
//
|
||||
// The default behavior is to not decode RFC 6570 reserved characters in multi
|
||||
// segment matches.
|
||||
bool fully_decode_reserved_expansion = 2;
|
||||
}
|
||||
|
||||
// # gRPC Transcoding
|
||||
//
|
||||
// gRPC Transcoding is a feature for mapping between a gRPC method and one or
|
||||
// more HTTP REST endpoints. It allows developers to build a single API service
|
||||
// that supports both gRPC APIs and REST APIs. Many systems, including [Google
|
||||
// APIs](https://github.com/googleapis/googleapis),
|
||||
// [Cloud Endpoints](https://cloud.google.com/endpoints), [gRPC
|
||||
// Gateway](https://github.com/grpc-ecosystem/grpc-gateway),
|
||||
// and [Envoy](https://github.com/envoyproxy/envoy) proxy support this feature
|
||||
// and use it for large scale production services.
|
||||
//
|
||||
// `HttpRule` defines the schema of the gRPC/REST mapping. The mapping specifies
|
||||
// how different portions of the gRPC request message are mapped to the URL
|
||||
// path, URL query parameters, and HTTP request body. It also controls how the
|
||||
// gRPC response message is mapped to the HTTP response body. `HttpRule` is
|
||||
// typically specified as an `google.api.http` annotation on the gRPC method.
|
||||
//
|
||||
// Each mapping specifies a URL path template and an HTTP method. The path
|
||||
// template may refer to one or more fields in the gRPC request message, as long
|
||||
// as each field is a non-repeated field with a primitive (non-message) type.
|
||||
// The path template controls how fields of the request message are mapped to
|
||||
// the URL path.
|
||||
//
|
||||
// Example:
|
||||
//
|
||||
// service Messaging {
|
||||
// rpc GetMessage(GetMessageRequest) returns (Message) {
|
||||
// option (google.api.http) = {
|
||||
// get: "/v1/{name=messages/*}"
|
||||
// };
|
||||
// }
|
||||
// }
|
||||
// message GetMessageRequest {
|
||||
// string name = 1; // Mapped to URL path.
|
||||
// }
|
||||
// message Message {
|
||||
// string text = 1; // The resource content.
|
||||
// }
|
||||
//
|
||||
// This enables an HTTP REST to gRPC mapping as below:
|
||||
//
|
||||
// HTTP | gRPC
|
||||
// -----|-----
|
||||
// `GET /v1/messages/123456` | `GetMessage(name: "messages/123456")`
|
||||
//
|
||||
// Any fields in the request message which are not bound by the path template
|
||||
// automatically become HTTP query parameters if there is no HTTP request body.
|
||||
// For example:
|
||||
//
|
||||
// service Messaging {
|
||||
// rpc GetMessage(GetMessageRequest) returns (Message) {
|
||||
// option (google.api.http) = {
|
||||
// get:"/v1/messages/{message_id}"
|
||||
// };
|
||||
// }
|
||||
// }
|
||||
// message GetMessageRequest {
|
||||
// message SubMessage {
|
||||
// string subfield = 1;
|
||||
// }
|
||||
// string message_id = 1; // Mapped to URL path.
|
||||
// int64 revision = 2; // Mapped to URL query parameter `revision`.
|
||||
// SubMessage sub = 3; // Mapped to URL query parameter `sub.subfield`.
|
||||
// }
|
||||
//
|
||||
// This enables a HTTP JSON to RPC mapping as below:
|
||||
//
|
||||
// HTTP | gRPC
|
||||
// -----|-----
|
||||
// `GET /v1/messages/123456?revision=2&sub.subfield=foo` |
|
||||
// `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield:
|
||||
// "foo"))`
|
||||
//
|
||||
// Note that fields which are mapped to URL query parameters must have a
|
||||
// primitive type or a repeated primitive type or a non-repeated message type.
|
||||
// In the case of a repeated type, the parameter can be repeated in the URL
|
||||
// as `...?param=A¶m=B`. In the case of a message type, each field of the
|
||||
// message is mapped to a separate parameter, such as
|
||||
// `...?foo.a=A&foo.b=B&foo.c=C`.
|
||||
//
|
||||
// For HTTP methods that allow a request body, the `body` field
|
||||
// specifies the mapping. Consider a REST update method on the
|
||||
// message resource collection:
|
||||
//
|
||||
// service Messaging {
|
||||
// rpc UpdateMessage(UpdateMessageRequest) returns (Message) {
|
||||
// option (google.api.http) = {
|
||||
// patch: "/v1/messages/{message_id}"
|
||||
// body: "message"
|
||||
// };
|
||||
// }
|
||||
// }
|
||||
// message UpdateMessageRequest {
|
||||
// string message_id = 1; // mapped to the URL
|
||||
// Message message = 2; // mapped to the body
|
||||
// }
|
||||
//
|
||||
// The following HTTP JSON to RPC mapping is enabled, where the
|
||||
// representation of the JSON in the request body is determined by
|
||||
// protos JSON encoding:
|
||||
//
|
||||
// HTTP | gRPC
|
||||
// -----|-----
|
||||
// `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id:
|
||||
// "123456" message { text: "Hi!" })`
|
||||
//
|
||||
// The special name `*` can be used in the body mapping to define that
|
||||
// every field not bound by the path template should be mapped to the
|
||||
// request body. This enables the following alternative definition of
|
||||
// the update method:
|
||||
//
|
||||
// service Messaging {
|
||||
// rpc UpdateMessage(Message) returns (Message) {
|
||||
// option (google.api.http) = {
|
||||
// patch: "/v1/messages/{message_id}"
|
||||
// body: "*"
|
||||
// };
|
||||
// }
|
||||
// }
|
||||
// message Message {
|
||||
// string message_id = 1;
|
||||
// string text = 2;
|
||||
// }
|
||||
//
|
||||
//
|
||||
// The following HTTP JSON to RPC mapping is enabled:
|
||||
//
|
||||
// HTTP | gRPC
|
||||
// -----|-----
|
||||
// `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id:
|
||||
// "123456" text: "Hi!")`
|
||||
//
|
||||
// Note that when using `*` in the body mapping, it is not possible to
|
||||
// have HTTP parameters, as all fields not bound by the path end in
|
||||
// the body. This makes this option more rarely used in practice when
|
||||
// defining REST APIs. The common usage of `*` is in custom methods
|
||||
// which don't use the URL at all for transferring data.
|
||||
//
|
||||
// It is possible to define multiple HTTP methods for one RPC by using
|
||||
// the `additional_bindings` option. Example:
|
||||
//
|
||||
// service Messaging {
|
||||
// rpc GetMessage(GetMessageRequest) returns (Message) {
|
||||
// option (google.api.http) = {
|
||||
// get: "/v1/messages/{message_id}"
|
||||
// additional_bindings {
|
||||
// get: "/v1/users/{user_id}/messages/{message_id}"
|
||||
// }
|
||||
// };
|
||||
// }
|
||||
// }
|
||||
// message GetMessageRequest {
|
||||
// string message_id = 1;
|
||||
// string user_id = 2;
|
||||
// }
|
||||
//
|
||||
// This enables the following two alternative HTTP JSON to RPC mappings:
|
||||
//
|
||||
// HTTP | gRPC
|
||||
// -----|-----
|
||||
// `GET /v1/messages/123456` | `GetMessage(message_id: "123456")`
|
||||
// `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id:
|
||||
// "123456")`
|
||||
//
|
||||
// ## Rules for HTTP mapping
|
||||
//
|
||||
// 1. Leaf request fields (recursive expansion nested messages in the request
|
||||
// message) are classified into three categories:
|
||||
// - Fields referred by the path template. They are passed via the URL path.
|
||||
// - Fields referred by the [HttpRule.body][google.api.HttpRule.body]. They
|
||||
// are passed via the HTTP
|
||||
// request body.
|
||||
// - All other fields are passed via the URL query parameters, and the
|
||||
// parameter name is the field path in the request message. A repeated
|
||||
// field can be represented as multiple query parameters under the same
|
||||
// name.
|
||||
// 2. If [HttpRule.body][google.api.HttpRule.body] is "*", there is no URL
|
||||
// query parameter, all fields
|
||||
// are passed via URL path and HTTP request body.
|
||||
// 3. If [HttpRule.body][google.api.HttpRule.body] is omitted, there is no HTTP
|
||||
// request body, all
|
||||
// fields are passed via URL path and URL query parameters.
|
||||
//
|
||||
// ### Path template syntax
|
||||
//
|
||||
// Template = "/" Segments [ Verb ] ;
|
||||
// Segments = Segment { "/" Segment } ;
|
||||
// Segment = "*" | "**" | LITERAL | Variable ;
|
||||
// Variable = "{" FieldPath [ "=" Segments ] "}" ;
|
||||
// FieldPath = IDENT { "." IDENT } ;
|
||||
// Verb = ":" LITERAL ;
|
||||
//
|
||||
// The syntax `*` matches a single URL path segment. The syntax `**` matches
|
||||
// zero or more URL path segments, which must be the last part of the URL path
|
||||
// except the `Verb`.
|
||||
//
|
||||
// The syntax `Variable` matches part of the URL path as specified by its
|
||||
// template. A variable template must not contain other variables. If a variable
|
||||
// matches a single path segment, its template may be omitted, e.g. `{var}`
|
||||
// is equivalent to `{var=*}`.
|
||||
//
|
||||
// The syntax `LITERAL` matches literal text in the URL path. If the `LITERAL`
|
||||
// contains any reserved character, such characters should be percent-encoded
|
||||
// before the matching.
|
||||
//
|
||||
// If a variable contains exactly one path segment, such as `"{var}"` or
|
||||
// `"{var=*}"`, when such a variable is expanded into a URL path on the client
|
||||
// side, all characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The
|
||||
// server side does the reverse decoding. Such variables show up in the
|
||||
// [Discovery
|
||||
// Document](https://developers.google.com/discovery/v1/reference/apis) as
|
||||
// `{var}`.
|
||||
//
|
||||
// If a variable contains multiple path segments, such as `"{var=foo/*}"`
|
||||
// or `"{var=**}"`, when such a variable is expanded into a URL path on the
|
||||
// client side, all characters except `[-_.~/0-9a-zA-Z]` are percent-encoded.
|
||||
// The server side does the reverse decoding, except "%2F" and "%2f" are left
|
||||
// unchanged. Such variables show up in the
|
||||
// [Discovery
|
||||
// Document](https://developers.google.com/discovery/v1/reference/apis) as
|
||||
// `{+var}`.
|
||||
//
|
||||
// ## Using gRPC API Service Configuration
|
||||
//
|
||||
// gRPC API Service Configuration (service config) is a configuration language
|
||||
// for configuring a gRPC service to become a user-facing product. The
|
||||
// service config is simply the YAML representation of the `google.api.Service`
|
||||
// proto message.
|
||||
//
|
||||
// As an alternative to annotating your proto file, you can configure gRPC
|
||||
// transcoding in your service config YAML files. You do this by specifying a
|
||||
// `HttpRule` that maps the gRPC method to a REST endpoint, achieving the same
|
||||
// effect as the proto annotation. This can be particularly useful if you
|
||||
// have a proto that is reused in multiple services. Note that any transcoding
|
||||
// specified in the service config will override any matching transcoding
|
||||
// configuration in the proto.
|
||||
//
|
||||
// Example:
|
||||
//
|
||||
// http:
|
||||
// rules:
|
||||
// # Selects a gRPC method and applies HttpRule to it.
|
||||
// - selector: example.v1.Messaging.GetMessage
|
||||
// get: /v1/messages/{message_id}/{sub.subfield}
|
||||
//
|
||||
// ## Special notes
|
||||
//
|
||||
// When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the
|
||||
// proto to JSON conversion must follow the [proto3
|
||||
// specification](https://developers.google.com/protocol-buffers/docs/proto3#json).
|
||||
//
|
||||
// While the single segment variable follows the semantics of
|
||||
// [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String
|
||||
// Expansion, the multi segment variable **does not** follow RFC 6570 Section
|
||||
// 3.2.3 Reserved Expansion. The reason is that the Reserved Expansion
|
||||
// does not expand special characters like `?` and `#`, which would lead
|
||||
// to invalid URLs. As the result, gRPC Transcoding uses a custom encoding
|
||||
// for multi segment variables.
|
||||
//
|
||||
// The path variables **must not** refer to any repeated or mapped field,
|
||||
// because client libraries are not capable of handling such variable expansion.
|
||||
//
|
||||
// The path variables **must not** capture the leading "/" character. The reason
|
||||
// is that the most common use case "{var}" does not capture the leading "/"
|
||||
// character. For consistency, all path variables must share the same behavior.
|
||||
//
|
||||
// Repeated message fields must not be mapped to URL query parameters, because
|
||||
// no client library can support such complicated mapping.
|
||||
//
|
||||
// If an API needs to use a JSON array for request or response body, it can map
|
||||
// the request or response body to a repeated field. However, some gRPC
|
||||
// Transcoding implementations may not support this feature.
|
||||
message HttpRule {
|
||||
// Selects a method to which this rule applies.
|
||||
//
|
||||
// Refer to [selector][google.api.DocumentationRule.selector] for syntax
|
||||
// details.
|
||||
string selector = 1;
|
||||
|
||||
// Determines the URL pattern is matched by this rules. This pattern can be
|
||||
// used with any of the {get|put|post|delete|patch} methods. A custom method
|
||||
// can be defined using the 'custom' field.
|
||||
oneof pattern {
|
||||
// Maps to HTTP GET. Used for listing and getting information about
|
||||
// resources.
|
||||
string get = 2;
|
||||
|
||||
// Maps to HTTP PUT. Used for replacing a resource.
|
||||
string put = 3;
|
||||
|
||||
// Maps to HTTP POST. Used for creating a resource or performing an action.
|
||||
string post = 4;
|
||||
|
||||
// Maps to HTTP DELETE. Used for deleting a resource.
|
||||
string delete = 5;
|
||||
|
||||
// Maps to HTTP PATCH. Used for updating a resource.
|
||||
string patch = 6;
|
||||
|
||||
// The custom pattern is used for specifying an HTTP method that is not
|
||||
// included in the `pattern` field, such as HEAD, or "*" to leave the
|
||||
// HTTP method unspecified for this rule. The wild-card rule is useful
|
||||
// for services that provide content to Web (HTML) clients.
|
||||
CustomHttpPattern custom = 8;
|
||||
}
|
||||
|
||||
// The name of the request field whose value is mapped to the HTTP request
|
||||
// body, or `*` for mapping all request fields not captured by the path
|
||||
// pattern to the HTTP body, or omitted for not having any HTTP request body.
|
||||
//
|
||||
// NOTE: the referred field must be present at the top-level of the request
|
||||
// message type.
|
||||
string body = 7;
|
||||
|
||||
// Optional. The name of the response field whose value is mapped to the HTTP
|
||||
// response body. When omitted, the entire response message will be used
|
||||
// as the HTTP response body.
|
||||
//
|
||||
// NOTE: The referred field must be present at the top-level of the response
|
||||
// message type.
|
||||
string response_body = 12;
|
||||
|
||||
// Additional HTTP bindings for the selector. Nested bindings must
|
||||
// not contain an `additional_bindings` field themselves (that is,
|
||||
// the nesting may only be one level deep).
|
||||
repeated HttpRule additional_bindings = 11;
|
||||
}
|
||||
|
||||
// A custom pattern is used for defining custom HTTP verb.
|
||||
message CustomHttpPattern {
|
||||
// The name of this custom HTTP verb.
|
||||
string kind = 1;
|
||||
|
||||
// The path matched by this custom verb.
|
||||
string path = 2;
|
||||
}
|
2
api/rust/src/common.rs
vendored
2
api/rust/src/common.rs
vendored
@ -122,6 +122,7 @@ impl Into<String> for RegParamsRevision {
|
||||
RegParamsRevision::Rp002101 => "RP002_1.0.1",
|
||||
RegParamsRevision::Rp002102 => "RP002_1.0.2",
|
||||
RegParamsRevision::Rp002103 => "RP002_1.0.3",
|
||||
RegParamsRevision::Rp002104 => "RP002_1.0.4",
|
||||
}
|
||||
.to_string()
|
||||
}
|
||||
@ -138,6 +139,7 @@ impl FromStr for RegParamsRevision {
|
||||
"RP002_1.0.1" => RegParamsRevision::Rp002101,
|
||||
"RP002_1.0.2" => RegParamsRevision::Rp002102,
|
||||
"RP002_1.0.3" => RegParamsRevision::Rp002103,
|
||||
"RP002_1.0.4" => RegParamsRevision::Rp002104,
|
||||
_ => {
|
||||
return Err("invalid reg param revision".into());
|
||||
}
|
||||
|
24
api/rust/src/gw.rs
vendored
24
api/rust/src/gw.rs
vendored
@ -95,7 +95,7 @@ impl UplinkFrame {
|
||||
})
|
||||
}
|
||||
uplink_tx_info_legacy::ModulationInfo::FskModulationInfo(info) => {
|
||||
modulation::Parameters::Fsk(info.clone())
|
||||
modulation::Parameters::Fsk(*info)
|
||||
}
|
||||
uplink_tx_info_legacy::ModulationInfo::LrFhssModulationInfo(info) => {
|
||||
modulation::Parameters::LrFhss(LrFhssModulationInfo {
|
||||
@ -120,9 +120,9 @@ impl UplinkFrame {
|
||||
self.rx_info = Some(UplinkRxInfo {
|
||||
gateway_id: hex::encode(&rx_info.gateway_id),
|
||||
uplink_id: rng.gen::<u32>(),
|
||||
gw_time: rx_info.time.clone(),
|
||||
gw_time: rx_info.time,
|
||||
ns_time: None,
|
||||
time_since_gps_epoch: rx_info.time_since_gps_epoch.clone(),
|
||||
time_since_gps_epoch: rx_info.time_since_gps_epoch,
|
||||
fine_time_since_gps_epoch: None,
|
||||
rssi: rx_info.rssi,
|
||||
snr: rx_info.lora_snr as f32,
|
||||
@ -130,7 +130,7 @@ impl UplinkFrame {
|
||||
rf_chain: rx_info.rf_chain,
|
||||
board: rx_info.board,
|
||||
antenna: rx_info.antenna,
|
||||
location: rx_info.location.clone(),
|
||||
location: rx_info.location,
|
||||
context: rx_info.context.clone(),
|
||||
metadata: rx_info.metadata.clone(),
|
||||
crc_status: rx_info.crc_status,
|
||||
@ -195,23 +195,19 @@ impl DownlinkFrame {
|
||||
Some(timing::Parameters::Immediately(v)) => {
|
||||
tx_info_legacy.timing = DownlinkTiming::Immediately.into();
|
||||
tx_info_legacy.timing_info = Some(
|
||||
downlink_tx_info_legacy::TimingInfo::ImmediatelyTimingInfo(
|
||||
v.clone(),
|
||||
),
|
||||
downlink_tx_info_legacy::TimingInfo::ImmediatelyTimingInfo(*v),
|
||||
);
|
||||
}
|
||||
Some(timing::Parameters::Delay(v)) => {
|
||||
tx_info_legacy.timing = DownlinkTiming::Delay.into();
|
||||
tx_info_legacy.timing_info = Some(
|
||||
downlink_tx_info_legacy::TimingInfo::DelayTimingInfo(v.clone()),
|
||||
);
|
||||
tx_info_legacy.timing_info =
|
||||
Some(downlink_tx_info_legacy::TimingInfo::DelayTimingInfo(*v));
|
||||
}
|
||||
Some(timing::Parameters::GpsEpoch(v)) => {
|
||||
tx_info_legacy.timing = DownlinkTiming::GpsEpoch.into();
|
||||
tx_info_legacy.timing_info =
|
||||
Some(downlink_tx_info_legacy::TimingInfo::GpsEpochTimingInfo(
|
||||
v.clone(),
|
||||
));
|
||||
tx_info_legacy.timing_info = Some(
|
||||
downlink_tx_info_legacy::TimingInfo::GpsEpochTimingInfo(*v),
|
||||
);
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
|
1
api/rust/src/integration.rs
vendored
1
api/rust/src/integration.rs
vendored
@ -32,6 +32,7 @@ impl Into<String> for LogCode {
|
||||
LogCode::DownlinkGateway => "DOWNLINK_GATEWAY",
|
||||
LogCode::RelayNewEndDevice => "RELAY_NEW_END_DEVICE",
|
||||
LogCode::FCntDown => "F_CNT_DOWN",
|
||||
LogCode::Expired => "EXPIRED",
|
||||
}
|
||||
.to_string()
|
||||
}
|
||||
|
32
api/rust/src/internal.rs
vendored
32
api/rust/src/internal.rs
vendored
@ -2,13 +2,6 @@ include!(concat!(env!("OUT_DIR"), "/internal/internal.rs"));
|
||||
#[cfg(feature = "json")]
|
||||
include!(concat!(env!("OUT_DIR"), "/internal/internal.serde.rs"));
|
||||
|
||||
#[cfg(feature = "diesel")]
|
||||
use diesel::{backend::Backend, deserialize, serialize, sql_types::Binary};
|
||||
#[cfg(feature = "diesel")]
|
||||
use prost::Message;
|
||||
#[cfg(feature = "diesel")]
|
||||
use std::io::Cursor;
|
||||
|
||||
impl DeviceSession {
|
||||
pub fn get_a_f_cnt_down(&self) -> u32 {
|
||||
if self.mac_version().to_string().starts_with("1.0") {
|
||||
@ -30,28 +23,3 @@ impl DeviceSession {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "diesel")]
|
||||
impl<ST, DB> deserialize::FromSql<ST, DB> for DeviceSession
|
||||
where
|
||||
DB: Backend,
|
||||
*const [u8]: deserialize::FromSql<ST, DB>,
|
||||
{
|
||||
fn from_sql(value: DB::RawValue<'_>) -> deserialize::Result<Self> {
|
||||
let bytes = <Vec<u8> as deserialize::FromSql<ST, DB>>::from_sql(value)?;
|
||||
Ok(DeviceSession::decode(&mut Cursor::new(bytes))?)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "diesel")]
|
||||
impl serialize::ToSql<Binary, diesel::pg::Pg> for DeviceSession
|
||||
where
|
||||
[u8]: serialize::ToSql<Binary, diesel::pg::Pg>,
|
||||
{
|
||||
fn to_sql(&self, out: &mut serialize::Output<'_, '_, diesel::pg::Pg>) -> serialize::Result {
|
||||
<[u8] as serialize::ToSql<Binary, diesel::pg::Pg>>::to_sql(
|
||||
&self.encode_to_vec(),
|
||||
&mut out.reborrow(),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
5
api/rust/src/lib.rs
vendored
5
api/rust/src/lib.rs
vendored
@ -1,4 +1,9 @@
|
||||
#[cfg(feature = "json")]
|
||||
pub use pbjson_types;
|
||||
pub use prost;
|
||||
#[cfg(feature = "api")]
|
||||
pub use tonic;
|
||||
|
||||
#[cfg(feature = "api")]
|
||||
pub mod api;
|
||||
pub mod common;
|
||||
|
@ -1,24 +1,29 @@
|
||||
[package]
|
||||
name = "backend"
|
||||
version = "4.8.0-test.1"
|
||||
authors = ["Orne Brocaar <info@brocaar.com>"]
|
||||
edition = "2018"
|
||||
publish = false
|
||||
name = "backend"
|
||||
version = "4.10.0"
|
||||
authors = ["Orne Brocaar <info@brocaar.com>"]
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
[dependencies]
|
||||
serde = { version = "1.0", features = ["derive", "rc"] }
|
||||
serde_json = "1.0"
|
||||
thiserror = "1.0"
|
||||
anyhow = "1.0"
|
||||
tracing = "0.1"
|
||||
hex = "0.4"
|
||||
rand = "0.8"
|
||||
aes-kw = "0.2"
|
||||
reqwest = { version = "0.12", features = ["json", "rustls-tls"], default-features = false }
|
||||
chrono = { version = "0.4", features = ["serde"] }
|
||||
tokio = { version = "1.36", features = ["macros" ] }
|
||||
chirpstack_api = { path = "../api/rust", default-features = false, features = ["json"] }
|
||||
serde = { version = "1.0", features = ["derive", "rc"] }
|
||||
serde_json = "1.0"
|
||||
thiserror = "1.0"
|
||||
anyhow = "1.0"
|
||||
tracing = "0.1"
|
||||
hex = "0.4"
|
||||
rand = "0.8"
|
||||
aes-kw = "0.2"
|
||||
reqwest = { version = "0.12", features = [
|
||||
"json",
|
||||
"rustls-tls",
|
||||
], default-features = false }
|
||||
chrono = { version = "0.4", features = ["serde"] }
|
||||
tokio = { version = "1.41", features = ["macros"] }
|
||||
chirpstack_api = { path = "../api/rust", default-features = false, features = [
|
||||
"json",
|
||||
] }
|
||||
|
||||
# Development and testing
|
||||
[dev-dependencies]
|
||||
httpmock = "0.7.0"
|
||||
httpmock = "0.7.0"
|
||||
|
@ -160,7 +160,7 @@ impl Client {
|
||||
pl: &mut JoinReqPayload,
|
||||
async_resp: Option<Receiver<Vec<u8>>>,
|
||||
) -> Result<JoinAnsPayload> {
|
||||
pl.base.sender_id = self.config.sender_id.clone();
|
||||
pl.base.sender_id.clone_from(&self.config.sender_id);
|
||||
pl.base.receiver_id = receiver_id;
|
||||
pl.base.message_type = MessageType::JoinReq;
|
||||
|
||||
@ -174,8 +174,8 @@ impl Client {
|
||||
pl: &mut RejoinReqPayload,
|
||||
async_resp: Option<Receiver<Vec<u8>>>,
|
||||
) -> Result<RejoinAnsPayload> {
|
||||
pl.base.sender_id = self.config.sender_id.clone();
|
||||
pl.base.receiver_id = self.config.receiver_id.clone();
|
||||
pl.base.sender_id.clone_from(&self.config.sender_id);
|
||||
pl.base.receiver_id.clone_from(&self.config.receiver_id);
|
||||
pl.base.message_type = MessageType::RejoinReq;
|
||||
|
||||
let mut ans: RejoinAnsPayload = Default::default();
|
||||
@ -188,8 +188,8 @@ impl Client {
|
||||
pl: &mut AppSKeyReqPayload,
|
||||
async_resp: Option<Receiver<Vec<u8>>>,
|
||||
) -> Result<AppSKeyAnsPayload> {
|
||||
pl.base.sender_id = self.config.sender_id.clone();
|
||||
pl.base.receiver_id = self.config.receiver_id.clone();
|
||||
pl.base.sender_id.clone_from(&self.config.sender_id);
|
||||
pl.base.receiver_id.clone_from(&self.config.receiver_id);
|
||||
pl.base.message_type = MessageType::AppSKeyReq;
|
||||
|
||||
let mut ans: AppSKeyAnsPayload = Default::default();
|
||||
@ -203,8 +203,8 @@ impl Client {
|
||||
pl: &mut PRStartReqPayload,
|
||||
async_resp: Option<Receiver<Vec<u8>>>,
|
||||
) -> Result<PRStartAnsPayload> {
|
||||
pl.base.sender_id = self.config.sender_id.clone();
|
||||
pl.base.receiver_id = self.config.receiver_id.clone();
|
||||
pl.base.sender_id.clone_from(&self.config.sender_id);
|
||||
pl.base.receiver_id.clone_from(&self.config.receiver_id);
|
||||
pl.base.message_type = MessageType::PRStartReq;
|
||||
|
||||
let mut ans: PRStartAnsPayload = Default::default();
|
||||
@ -223,8 +223,8 @@ impl Client {
|
||||
pl: &mut PRStopReqPayload,
|
||||
async_resp: Option<Receiver<Vec<u8>>>,
|
||||
) -> Result<PRStopAnsPayload> {
|
||||
pl.base.sender_id = self.config.sender_id.clone();
|
||||
pl.base.receiver_id = self.config.receiver_id.clone();
|
||||
pl.base.sender_id.clone_from(&self.config.sender_id);
|
||||
pl.base.receiver_id.clone_from(&self.config.receiver_id);
|
||||
pl.base.message_type = MessageType::PRStopReq;
|
||||
|
||||
let mut ans: PRStopAnsPayload = Default::default();
|
||||
@ -243,7 +243,7 @@ impl Client {
|
||||
pl: &mut HomeNSReqPayload,
|
||||
async_resp: Option<Receiver<Vec<u8>>>,
|
||||
) -> Result<HomeNSAnsPayload> {
|
||||
pl.base.sender_id = self.config.sender_id.clone();
|
||||
pl.base.sender_id.clone_from(&self.config.sender_id);
|
||||
pl.base.receiver_id = receiver_id;
|
||||
pl.base.message_type = MessageType::HomeNSReq;
|
||||
|
||||
@ -252,14 +252,18 @@ impl Client {
|
||||
Ok(ans)
|
||||
}
|
||||
|
||||
pub async fn home_ns_ans(&self, target_role: Role, pl: &HomeNSAnsPayload) -> Result<()> {
|
||||
self.response_request(Some(target_role), pl).await
|
||||
}
|
||||
|
||||
pub async fn xmit_data_req(
|
||||
&self,
|
||||
target_role: Role,
|
||||
pl: &mut XmitDataReqPayload,
|
||||
async_resp: Option<Receiver<Vec<u8>>>,
|
||||
) -> Result<XmitDataAnsPayload> {
|
||||
pl.base.sender_id = self.config.sender_id.clone();
|
||||
pl.base.receiver_id = self.config.receiver_id.clone();
|
||||
pl.base.sender_id.clone_from(&self.config.sender_id);
|
||||
pl.base.receiver_id.clone_from(&self.config.receiver_id);
|
||||
pl.base.message_type = MessageType::XmitDataReq;
|
||||
|
||||
let mut ans: XmitDataAnsPayload = Default::default();
|
||||
@ -372,7 +376,7 @@ impl Client {
|
||||
};
|
||||
|
||||
let body = serde_json::to_string(&pl)?;
|
||||
be_req_log.request_body = body.clone();
|
||||
be_req_log.request_body.clone_from(&body);
|
||||
|
||||
info!(server = %server, async_interface = %async_resp.is_some(), "Making request");
|
||||
|
||||
@ -403,7 +407,7 @@ impl Client {
|
||||
None => res.text().await?,
|
||||
};
|
||||
|
||||
be_req_log.response_body = resp_json.clone();
|
||||
be_req_log.response_body.clone_from(&resp_json);
|
||||
|
||||
let base: BasePayloadResult = serde_json::from_str(&resp_json)?;
|
||||
be_req_log.result_code = format!("{:?}", base.result.result_code);
|
||||
@ -518,6 +522,7 @@ impl BasePayload {
|
||||
MessageType::PRStartReq => MessageType::PRStartAns,
|
||||
MessageType::PRStopReq => MessageType::PRStopAns,
|
||||
MessageType::XmitDataReq => MessageType::XmitDataAns,
|
||||
MessageType::HomeNSReq => MessageType::HomeNSAns,
|
||||
_ => self.message_type,
|
||||
},
|
||||
sender_token: self.receiver_token.clone(),
|
||||
|
@ -3,14 +3,14 @@
|
||||
description = "Library for building external ChirpStack integrations"
|
||||
homepage = "https://www.chirpstack.io/"
|
||||
license = "MIT"
|
||||
version = "4.6.0"
|
||||
version = "4.10.0"
|
||||
authors = ["Orne Brocaar <info@brocaar.com>"]
|
||||
edition = "2021"
|
||||
repository = "https://github.com/chirpstack/chirpstack"
|
||||
|
||||
[dependencies]
|
||||
chirpstack_api = { path = "../api/rust", version = "4.8.0-test.1" }
|
||||
redis = { version = "0.25", features = [
|
||||
chirpstack_api = { path = "../api/rust", version = "4.10.0" }
|
||||
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.41", features = ["macros", "rt-multi-thread"] }
|
||||
lazy_static = "1.5"
|
||||
serde_json = "1.0"
|
||||
toml = "0.8"
|
||||
|
@ -215,7 +215,7 @@ impl Integration {
|
||||
info!(key = %k, "Event received from Redis stream");
|
||||
match k.as_ref() {
|
||||
"up" => {
|
||||
if let redis::Value::Data(b) = v {
|
||||
if let redis::Value::BulkString(b) = v {
|
||||
let pl = integration_pb::UplinkEvent::decode(
|
||||
&mut Cursor::new(b),
|
||||
)?;
|
||||
@ -223,21 +223,21 @@ impl Integration {
|
||||
}
|
||||
}
|
||||
"join" => {
|
||||
if let redis::Value::Data(b) = v {
|
||||
if let redis::Value::BulkString(b) = v {
|
||||
let pl =
|
||||
integration_pb::JoinEvent::decode(&mut Cursor::new(b))?;
|
||||
tokio::spawn(join_event(pl));
|
||||
}
|
||||
}
|
||||
"ack" => {
|
||||
if let redis::Value::Data(b) = v {
|
||||
if let redis::Value::BulkString(b) = v {
|
||||
let pl =
|
||||
integration_pb::AckEvent::decode(&mut Cursor::new(b))?;
|
||||
tokio::spawn(ack_event(pl));
|
||||
}
|
||||
}
|
||||
"txack" => {
|
||||
if let redis::Value::Data(b) = v {
|
||||
if let redis::Value::BulkString(b) = v {
|
||||
let pl = integration_pb::TxAckEvent::decode(
|
||||
&mut Cursor::new(b),
|
||||
)?;
|
||||
@ -245,7 +245,7 @@ impl Integration {
|
||||
}
|
||||
}
|
||||
"status" => {
|
||||
if let redis::Value::Data(b) = v {
|
||||
if let redis::Value::BulkString(b) = v {
|
||||
let pl = integration_pb::StatusEvent::decode(
|
||||
&mut Cursor::new(b),
|
||||
)?;
|
||||
@ -253,14 +253,14 @@ impl Integration {
|
||||
}
|
||||
}
|
||||
"log" => {
|
||||
if let redis::Value::Data(b) = v {
|
||||
if let redis::Value::BulkString(b) = v {
|
||||
let pl =
|
||||
integration_pb::LogEvent::decode(&mut Cursor::new(b))?;
|
||||
tokio::spawn(log_event(pl));
|
||||
}
|
||||
}
|
||||
"location" => {
|
||||
if let redis::Value::Data(b) = v {
|
||||
if let redis::Value::BulkString(b) = v {
|
||||
let pl = integration_pb::LocationEvent::decode(
|
||||
&mut Cursor::new(b),
|
||||
)?;
|
||||
@ -268,7 +268,7 @@ impl Integration {
|
||||
}
|
||||
}
|
||||
"integration" => {
|
||||
if let redis::Value::Data(b) = v {
|
||||
if let redis::Value::BulkString(b) = v {
|
||||
let pl = integration_pb::IntegrationEvent::decode(
|
||||
&mut Cursor::new(b),
|
||||
)?;
|
||||
|
@ -1,220 +1,282 @@
|
||||
[package]
|
||||
name = "chirpstack"
|
||||
description = "ChirpStack is an open-source LoRaWAN(TM) Network Server"
|
||||
repository = "https://github.com/chirpstack/chirpstack"
|
||||
homepage = "https://www.chirpstack.io/"
|
||||
version = "4.8.0-test.1"
|
||||
authors = ["Orne Brocaar <info@brocaar.com>"]
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "MIT"
|
||||
name = "chirpstack"
|
||||
description = "ChirpStack is an open-source LoRaWAN(TM) Network Server"
|
||||
repository = "https://github.com/chirpstack/chirpstack"
|
||||
homepage = "https://www.chirpstack.io/"
|
||||
version = "4.10.0"
|
||||
authors = ["Orne Brocaar <info@brocaar.com>"]
|
||||
edition = "2021"
|
||||
publish = false
|
||||
license = "MIT"
|
||||
|
||||
[dependencies]
|
||||
# CLI interface
|
||||
clap = { version = "4.5", features = ["derive"] }
|
||||
# CLI interface
|
||||
clap = { version = "4.5", features = ["derive"] }
|
||||
|
||||
# Configuration
|
||||
serde = { version = "1.0", features = ["derive", "rc"] }
|
||||
serde_yaml = "0.9"
|
||||
serde_json = "1.0"
|
||||
serde_urlencoded = "0.7"
|
||||
humantime-serde = "1.1"
|
||||
toml = "0.8"
|
||||
handlebars = "5.1"
|
||||
# Configuration
|
||||
serde = { version = "1.0", features = ["derive", "rc"] }
|
||||
serde_yaml = "0.9"
|
||||
serde_json = "1.0"
|
||||
serde_urlencoded = "0.7"
|
||||
humantime-serde = "1.1"
|
||||
toml = "0.8"
|
||||
handlebars = "6.2"
|
||||
|
||||
# Database
|
||||
email_address = "0.2"
|
||||
diesel = { version = "2.1", features = [
|
||||
"chrono",
|
||||
"uuid",
|
||||
"serde_json",
|
||||
"numeric",
|
||||
"64-column-tables",
|
||||
"postgres_backend",
|
||||
] }
|
||||
diesel_migrations = { version = "2.1" }
|
||||
diesel-async = { version = "0.4", features = ["deadpool", "postgres", "async-connection-wrapper"] }
|
||||
tokio-postgres = "0.7"
|
||||
tokio-postgres-rustls = "0.11"
|
||||
bigdecimal = "0.4"
|
||||
redis = { version = "0.25.2", features = [ "tls-rustls", "tokio-rustls-comp"] }
|
||||
deadpool-redis = { version = "0.15", features = ["cluster"] }
|
||||
# Database
|
||||
email_address = "0.2"
|
||||
diesel = { version = "2.2", features = [
|
||||
"chrono",
|
||||
"numeric",
|
||||
"64-column-tables",
|
||||
] }
|
||||
diesel_migrations = { version = "2.2" }
|
||||
diesel-async = { version = "0.5", features = [
|
||||
"deadpool",
|
||||
"async-connection-wrapper",
|
||||
] }
|
||||
tokio-postgres = { version = "0.7", optional = true }
|
||||
tokio-postgres-rustls = { version = "0.13", optional = true }
|
||||
bigdecimal = "0.4"
|
||||
redis = { version = "0.27", features = ["tls-rustls", "tokio-rustls-comp"] }
|
||||
deadpool-redis = { version = "0.18", features = ["cluster", "serde"] }
|
||||
|
||||
# Logging
|
||||
tracing = "0.1"
|
||||
tracing-subscriber = { version = "0.3", features = [
|
||||
"fmt",
|
||||
"ansi",
|
||||
"json",
|
||||
], default-features = true }
|
||||
# Logging
|
||||
tracing = "0.1"
|
||||
tracing-subscriber = { version = "0.3", features = [
|
||||
"fmt",
|
||||
"ansi",
|
||||
"json",
|
||||
], default-features = true }
|
||||
|
||||
# ChirpStack API definitions
|
||||
chirpstack_api = { path = "../api/rust", features = ["default", "internal", "diesel"] }
|
||||
lrwn = { path = "../lrwn", features = ["serde", "diesel", "regions", "crypto"] }
|
||||
backend = { path = "../backend" }
|
||||
# ChirpStack API definitions
|
||||
chirpstack_api = { path = "../api/rust", features = ["default", "internal"] }
|
||||
lrwn = { path = "../lrwn", features = [
|
||||
"serde",
|
||||
"diesel",
|
||||
"regions",
|
||||
"crypto",
|
||||
] }
|
||||
backend = { path = "../backend" }
|
||||
|
||||
# HTTP
|
||||
reqwest = { version = "0.12", features = [
|
||||
"json",
|
||||
"rustls-tls-native-roots",
|
||||
], default-features = false }
|
||||
# HTTP
|
||||
reqwest = { version = "0.12", features = [
|
||||
"json",
|
||||
"rustls-tls-native-roots",
|
||||
], default-features = false }
|
||||
|
||||
# Integrations
|
||||
aws-sign-v4 = "0.3"
|
||||
hmac = "0.12"
|
||||
sha2 = "0.10"
|
||||
urlencoding = "2.1"
|
||||
geohash = "0.13"
|
||||
gcp_auth = "0.11"
|
||||
lapin = "2.3"
|
||||
tokio-executor-trait = "2.1"
|
||||
tokio-reactor-trait = "1.1"
|
||||
rdkafka = { version = "0.36", default-features = false, features = ["tokio", "cmake-build"] }
|
||||
# Integrations
|
||||
aws-sign-v4 = "0.3"
|
||||
hmac = "0.12"
|
||||
sha2 = "0.10"
|
||||
urlencoding = "2.1"
|
||||
geohash = "0.13"
|
||||
gcp_auth = "0.12"
|
||||
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 = [
|
||||
"tokio",
|
||||
"cmake-build",
|
||||
] }
|
||||
|
||||
# gRPC and Protobuf
|
||||
tonic = "0.11"
|
||||
tonic-web = "0.11"
|
||||
tonic-reflection = "0.11"
|
||||
tokio = { version = "1.36", features = ["macros", "rt-multi-thread"] }
|
||||
tokio-stream = "0.1"
|
||||
prost-types = "0.12"
|
||||
prost = "0.12"
|
||||
pbjson-types = "0.6"
|
||||
# gRPC and Protobuf
|
||||
tonic = "0.12"
|
||||
tonic-web = "0.12"
|
||||
tonic-reflection = "0.12"
|
||||
tokio = { version = "1.41", features = ["macros", "rt-multi-thread"] }
|
||||
tokio-stream = "0.1"
|
||||
prost-types = "0.13"
|
||||
prost = "0.13"
|
||||
pbjson-types = "0.7"
|
||||
|
||||
# gRPC and HTTP multiplexing
|
||||
warp = { version = "0.3", features = ["tls"], default-features = false }
|
||||
hyper = "0.14"
|
||||
tower = "0.4"
|
||||
futures = "0.3"
|
||||
futures-util = "0.3"
|
||||
http = "0.2"
|
||||
http-body = "0.4"
|
||||
rust-embed = "8.3"
|
||||
mime_guess = "2.0"
|
||||
tower-http = { version = "0.4", features = ["trace", "auth"] }
|
||||
# gRPC and HTTP multiplexing
|
||||
axum = "0.7"
|
||||
axum-server = { version = "0.7.1", features = ["tls-rustls-no-provider"] }
|
||||
tower = { version = "0.5", features = ["util"] }
|
||||
futures = "0.3"
|
||||
futures-util = "0.3"
|
||||
http = "1.1"
|
||||
http-body = "1.0"
|
||||
rust-embed = "8.5"
|
||||
mime_guess = "2.0"
|
||||
tower-http = { version = "0.6", features = ["trace", "auth"] }
|
||||
|
||||
# Error handling
|
||||
thiserror = "1.0"
|
||||
anyhow = "1.0"
|
||||
# Error handling
|
||||
thiserror = "1.0"
|
||||
anyhow = "1.0"
|
||||
|
||||
# Authentication
|
||||
pbkdf2 = { version = "0.12", features = ["simple"] }
|
||||
rand_core = { version = "0.6", features = ["std"] }
|
||||
jsonwebtoken = "9.2"
|
||||
rustls = "0.22"
|
||||
rustls-native-certs = "0.7"
|
||||
rustls-pemfile = "2.1"
|
||||
rsa = "0.9"
|
||||
elliptic-curve = { version = "0.13", features = ["pem"] }
|
||||
p256 = "0.13"
|
||||
rcgen = { version = "0.12", features = [ "x509-parser" ] }
|
||||
openidconnect = { version = "3.5", features = ["accept-rfc3339-timestamps"] }
|
||||
oauth2 = "4.4"
|
||||
# Authentication
|
||||
pbkdf2 = { version = "0.12", features = ["simple"] }
|
||||
rand_core = { version = "0.6", features = ["std"] }
|
||||
jsonwebtoken = "9.3"
|
||||
rustls = { version = "0.23", default-features = false, features = [
|
||||
"logging",
|
||||
"std",
|
||||
"tls12",
|
||||
"ring",
|
||||
] }
|
||||
rustls-native-certs = "0.8"
|
||||
rustls-pemfile = "2.2"
|
||||
pem = "3.0"
|
||||
x509-parser = "0.16"
|
||||
rsa = "0.9"
|
||||
elliptic-curve = { version = "0.13", features = ["pem"] }
|
||||
p256 = "0.13"
|
||||
rcgen = { version = "0.13.1", features = ["x509-parser"] }
|
||||
oauth2 = "5.0.0-alpha.4"
|
||||
openidconnect = { version = "4.0.0-alpha.2", features = [
|
||||
"accept-rfc3339-timestamps",
|
||||
] }
|
||||
|
||||
# MQTT
|
||||
rumqttc = { version = "0.24", features = ["url"] }
|
||||
hex = "0.4"
|
||||
# MQTT
|
||||
rumqttc = { version = "0.24", features = ["url"] }
|
||||
hex = "0.4"
|
||||
|
||||
# Codecs
|
||||
rquickjs = { version = "0.5", features = [
|
||||
"bindgen",
|
||||
"loader",
|
||||
"array-buffer",
|
||||
"chrono",
|
||||
] }
|
||||
# Codecs
|
||||
rquickjs = { version = "0.6", features = [
|
||||
"bindgen",
|
||||
"loader",
|
||||
"array-buffer",
|
||||
"chrono",
|
||||
] }
|
||||
|
||||
# Misc
|
||||
lazy_static = "1.4"
|
||||
uuid = { version = "1.8", features = ["v4", "serde"] }
|
||||
chrono = "0.4"
|
||||
async-trait = "0.1"
|
||||
aes = "0.8"
|
||||
rand = "0.8"
|
||||
base64 = "0.22"
|
||||
async-recursion = "1.0"
|
||||
regex = "1.10"
|
||||
petgraph = "0.6"
|
||||
prometheus-client = "0.22"
|
||||
pin-project = "1.1"
|
||||
# Misc
|
||||
lazy_static = "1.5"
|
||||
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.11"
|
||||
petgraph = "0.6"
|
||||
prometheus-client = "0.22"
|
||||
pin-project = "1.1"
|
||||
scoped-futures = { version = "0.1", features = ["std"] }
|
||||
signal-hook = "0.3"
|
||||
signal-hook-tokio = { version = "0.3", features = ["futures-v0_3"] }
|
||||
|
||||
# Development and testing
|
||||
[dev-dependencies]
|
||||
httpmock = "0.7.0"
|
||||
bytes = "1.5"
|
||||
dotenv = "0.15"
|
||||
httpmock = "0.7.0"
|
||||
bytes = "1.8"
|
||||
dotenv = "0.15"
|
||||
|
||||
[features]
|
||||
test-all-integrations = ["test-integration-amqp", "test-integration-kafka", "test-integration-mqtt"]
|
||||
test-integration-amqp = []
|
||||
test-integration-kafka = []
|
||||
test-integration-mqtt = []
|
||||
default = ["postgres"]
|
||||
postgres = [
|
||||
"tokio-postgres",
|
||||
"tokio-postgres-rustls",
|
||||
"diesel/postgres_backend",
|
||||
"diesel/serde_json",
|
||||
"diesel/uuid",
|
||||
"diesel-async/postgres",
|
||||
"lrwn/postgres",
|
||||
]
|
||||
sqlite = [
|
||||
"diesel/sqlite",
|
||||
"diesel/returning_clauses_for_sqlite_3_35",
|
||||
"lrwn/sqlite",
|
||||
"diesel-async/sync-connection-wrapper",
|
||||
"diesel-async/sqlite",
|
||||
]
|
||||
test-all-integrations = [
|
||||
"test-integration-amqp",
|
||||
"test-integration-kafka",
|
||||
"test-integration-mqtt",
|
||||
]
|
||||
test-integration-amqp = []
|
||||
test-integration-kafka = []
|
||||
test-integration-mqtt = []
|
||||
|
||||
# Debian packaging.
|
||||
[package.metadata.deb]
|
||||
assets = [
|
||||
[
|
||||
"target/release/chirpstack",
|
||||
"usr/bin/",
|
||||
"755",
|
||||
],
|
||||
[
|
||||
"configuration/*.toml",
|
||||
"etc/chirpstack/",
|
||||
"640",
|
||||
],
|
||||
]
|
||||
conf-files = [
|
||||
"/etc/chirpstack/chirpstack.toml",
|
||||
"/etc/chirpstack/region_as923.toml",
|
||||
"/etc/chirpstack/region_as923_2.toml",
|
||||
"/etc/chirpstack/region_as923_3.toml",
|
||||
"/etc/chirpstack/region_as923_4.toml",
|
||||
"/etc/chirpstack/region_au915_0.toml",
|
||||
"/etc/chirpstack/region_au915_1.toml",
|
||||
"/etc/chirpstack/region_au915_2.toml",
|
||||
"/etc/chirpstack/region_au915_3.toml",
|
||||
"/etc/chirpstack/region_au915_4.toml",
|
||||
"/etc/chirpstack/region_au915_5.toml",
|
||||
"/etc/chirpstack/region_au915_6.toml",
|
||||
"/etc/chirpstack/region_au915_7.toml",
|
||||
"/etc/chirpstack/region_cn779.toml",
|
||||
"/etc/chirpstack/region_eu433.toml",
|
||||
"/etc/chirpstack/region_eu868.toml",
|
||||
"/etc/chirpstack/region_in865.toml",
|
||||
"/etc/chirpstack/region_ism2400.toml",
|
||||
"/etc/chirpstack/region_kr920.toml",
|
||||
"/etc/chirpstack/region_ru864.toml",
|
||||
"/etc/chirpstack/region_us915_0.toml",
|
||||
"/etc/chirpstack/region_us915_1.toml",
|
||||
"/etc/chirpstack/region_us915_2.toml",
|
||||
"/etc/chirpstack/region_us915_3.toml",
|
||||
"/etc/chirpstack/region_us915_4.toml",
|
||||
"/etc/chirpstack/region_us915_5.toml",
|
||||
"/etc/chirpstack/region_us915_6.toml",
|
||||
"/etc/chirpstack/region_us915_7.toml",
|
||||
]
|
||||
suggests = "postgresql, mosquitto, redis"
|
||||
maintainer-scripts = "debian/"
|
||||
systemd-units = { enable = true }
|
||||
# Debian packaging.
|
||||
[package.metadata.deb]
|
||||
assets = [
|
||||
[
|
||||
"target/release/chirpstack",
|
||||
"usr/bin/",
|
||||
"755",
|
||||
],
|
||||
[
|
||||
"configuration/*.toml",
|
||||
"etc/chirpstack/",
|
||||
"640",
|
||||
],
|
||||
]
|
||||
conf-files = [
|
||||
"/etc/chirpstack/chirpstack.toml",
|
||||
"/etc/chirpstack/region_as923.toml",
|
||||
"/etc/chirpstack/region_as923_2.toml",
|
||||
"/etc/chirpstack/region_as923_3.toml",
|
||||
"/etc/chirpstack/region_as923_4.toml",
|
||||
"/etc/chirpstack/region_au915_0.toml",
|
||||
"/etc/chirpstack/region_au915_1.toml",
|
||||
"/etc/chirpstack/region_au915_2.toml",
|
||||
"/etc/chirpstack/region_au915_3.toml",
|
||||
"/etc/chirpstack/region_au915_4.toml",
|
||||
"/etc/chirpstack/region_au915_5.toml",
|
||||
"/etc/chirpstack/region_au915_6.toml",
|
||||
"/etc/chirpstack/region_au915_7.toml",
|
||||
"/etc/chirpstack/region_cn779.toml",
|
||||
"/etc/chirpstack/region_eu433.toml",
|
||||
"/etc/chirpstack/region_eu868.toml",
|
||||
"/etc/chirpstack/region_in865.toml",
|
||||
"/etc/chirpstack/region_ism2400.toml",
|
||||
"/etc/chirpstack/region_kr920.toml",
|
||||
"/etc/chirpstack/region_ru864.toml",
|
||||
"/etc/chirpstack/region_us915_0.toml",
|
||||
"/etc/chirpstack/region_us915_1.toml",
|
||||
"/etc/chirpstack/region_us915_2.toml",
|
||||
"/etc/chirpstack/region_us915_3.toml",
|
||||
"/etc/chirpstack/region_us915_4.toml",
|
||||
"/etc/chirpstack/region_us915_5.toml",
|
||||
"/etc/chirpstack/region_us915_6.toml",
|
||||
"/etc/chirpstack/region_us915_7.toml",
|
||||
]
|
||||
suggests = "postgresql, mosquitto, redis"
|
||||
maintainer-scripts = "debian/"
|
||||
systemd-units = { enable = true }
|
||||
|
||||
[package.metadata.generate-rpm]
|
||||
auto-req = "no"
|
||||
[package.metadata.deb.variants.postgres]
|
||||
name = "chirpstack"
|
||||
suggests = "postgresql, mosquitto, redis"
|
||||
conflicts = "chirpstack-sqlite"
|
||||
|
||||
pre_install_script = '''
|
||||
[package.metadata.deb.variants.sqlite]
|
||||
default-features = false
|
||||
features = ["sqlite"]
|
||||
suggests = "mosquitto, redis"
|
||||
conflicts = "chirpstack"
|
||||
|
||||
[package.metadata.generate-rpm]
|
||||
auto-req = "no"
|
||||
|
||||
pre_install_script = '''
|
||||
id chirpstack &>/dev/null
|
||||
if [[ $? -ne 0 ]]; then
|
||||
useradd --system -U -M chirpstack -s /bin/false -d /etc/chirpstack
|
||||
fi
|
||||
'''
|
||||
|
||||
post_install_script = '''
|
||||
post_install_script = '''
|
||||
chown -R chirpstack:chirpstack /etc/chirpstack
|
||||
chmod 750 /etc/chirpstack
|
||||
chmod 640 /etc/chirpstack/*.toml
|
||||
'''
|
||||
|
||||
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.service"},
|
||||
]
|
||||
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.service" },
|
||||
]
|
||||
|
||||
[package.metadata.generate-rpm.variants.postgres]
|
||||
name = "chirpstack"
|
||||
[package.metadata.generate-rpm.variants.postgres.conflicts]
|
||||
chirpstack-sqlite = "*"
|
||||
|
||||
[package.metadata.generate-rpm.variants.sqlite]
|
||||
name = "chirpstack-sqlite"
|
||||
[package.metadata.generate-rpm.variants.sqlite.conflicts]
|
||||
chirpstack = "*"
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user