mirror of
https://github.com/chirpstack/chirpstack.git
synced 2025-04-17 20:50:14 +00:00
Compare commits
74 Commits
v4.0.0-tes
...
v4.0.2
Author | SHA1 | Date | |
---|---|---|---|
a91fb1f73e | |||
b19038e664 | |||
0940260541 | |||
51b622e8e2 | |||
ea0f84b93d | |||
091e3b0f97 | |||
4d000b92e9 | |||
2abc85afa6 | |||
1867140272 | |||
e81e57a020 | |||
709731ab6e | |||
700a7de19f | |||
3466ec47df | |||
bb188949df | |||
f17250c37f | |||
69b3d4a38e | |||
84a1c6e1be | |||
a43ef72fb2 | |||
331f4bce40 | |||
90c5af20df | |||
b0e61b50d2 | |||
0fc548d6b4 | |||
62f981fefe | |||
cba8da2d05 | |||
97a235cc80 | |||
8a4b537645 | |||
32889d7052 | |||
4dd441e85d | |||
0fa40717e8 | |||
7e6552df5e | |||
4f08f7ddcb | |||
0a5c38d322 | |||
3cf05e8fb9 | |||
46bc4d6038 | |||
75f67f8c5c | |||
ca2961c7b6 | |||
63b0af6cf3 | |||
d97da8ed50 | |||
3b297ef221 | |||
e917f8ea49 | |||
424306ab41 | |||
613f4562a2 | |||
bf6df9c845 | |||
d4337b10ab | |||
77dc247f66 | |||
ca567ca562 | |||
1a68080ac0 | |||
ba7fc75ee6 | |||
7868629533 | |||
2b1bf3b96f | |||
fd62076e02 | |||
cfb4290334 | |||
6d62cdb27c | |||
92a710fd1e | |||
d31113d61c | |||
e680db3be0 | |||
620ff1a8f9 | |||
a14adfe20b | |||
672511c696 | |||
3348ccf67d | |||
7890dc7539 | |||
341ac828b0 | |||
d7a4334b77 | |||
54d582504f | |||
edff985ad8 | |||
10d75a1744 | |||
eee1c4b4b0 | |||
3ab830f5a0 | |||
f58e39e503 | |||
ffa8aa9518 | |||
a53a90b646 | |||
35b2f4112d | |||
7a7d3dbd4e | |||
73d581fc4c |
6
.gitignore
vendored
6
.gitignore
vendored
@ -13,11 +13,7 @@
|
||||
**/target
|
||||
|
||||
# Certificates
|
||||
/chirpstack/configuration/certs/*.crt
|
||||
/chirpstack/configuration/certs/*.key
|
||||
/chirpstack/configuration/certs/*.trust
|
||||
/chirpstack/configuration/certs/*.pem
|
||||
/chirpstack/configuration/certs/*.csr
|
||||
/chirpstack/configuration/certs/*
|
||||
/chirpstack/configuration/private_*.toml
|
||||
|
||||
# UI
|
||||
|
1203
Cargo.lock
generated
1203
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@ -15,7 +15,7 @@ RUN cd $PROJECT_PATH/ui && \
|
||||
|
||||
|
||||
# ChirpStack build stage
|
||||
FROM --platform=$BUILDPLATFORM rust:1.62.0-buster AS rust-build
|
||||
FROM --platform=$BUILDPLATFORM rust:1.64.0-buster AS rust-build
|
||||
|
||||
ENV PROJECT_PATH=/chirpstack
|
||||
RUN mkdir -p $PROJECT_PATH
|
||||
@ -30,8 +30,9 @@ RUN apt-get update && \
|
||||
git \
|
||||
libpq-dev \
|
||||
clang \
|
||||
libclang-3.9-dev \
|
||||
libclang-dev \
|
||||
jq \
|
||||
protobuf-compiler \
|
||||
gcc-arm-linux-gnueabihf \
|
||||
g++-arm-linux-gnueabihf \
|
||||
gcc-aarch64-linux-gnu \
|
||||
|
@ -1,4 +1,4 @@
|
||||
FROM rust:1.62.0-buster
|
||||
FROM rust:1.64.0-buster
|
||||
|
||||
ENV PROJECT_PATH=/chirpstack
|
||||
RUN mkdir -p $PROJECT_PATH
|
||||
@ -19,9 +19,10 @@ RUN apt-get update && \
|
||||
redis-tools \
|
||||
rpm \
|
||||
clang \
|
||||
libclang-3.9-dev \
|
||||
libclang-dev \
|
||||
golang-cfssl \
|
||||
jq \
|
||||
protobuf-compiler \
|
||||
gcc-arm-linux-gnueabihf \
|
||||
g++-arm-linux-gnueabihf \
|
||||
gcc-aarch64-linux-gnu \
|
||||
@ -33,8 +34,9 @@ RUN rustup component add rustfmt clippy
|
||||
RUN rustup target add armv7-unknown-linux-gnueabihf
|
||||
RUN rustup target add aarch64-unknown-linux-gnu
|
||||
|
||||
RUN cargo install diesel_cli --version 2.0.0-rc.1 --no-default-features --features postgres
|
||||
RUN cargo install diesel_cli --version 2.0.0 --no-default-features --features postgres
|
||||
RUN cargo install cargo-deb
|
||||
RUN cargo install cargo-rpm
|
||||
RUN cargo install cargo-bitbake
|
||||
|
||||
WORKDIR $PROJECT_PATH/chirpstack
|
||||
|
11
Makefile
11
Makefile
@ -15,6 +15,13 @@ version:
|
||||
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
|
||||
cd api && make
|
||||
make build-ui
|
||||
make test
|
||||
git add .
|
||||
git commit -v -m "Bump version to $(VERSION)"
|
||||
git tag -a v$(VERSION) -m "v$(VERSION)"
|
||||
git tag -a api/go/v$(VERSION) -m "api/go/v$(VERSION)"
|
||||
|
||||
api: version
|
||||
cd api && make
|
||||
@ -25,11 +32,11 @@ build-ui:
|
||||
|
||||
# Enters the devshell for ChirpStack development.
|
||||
devshell:
|
||||
docker-compose run --rm --service-ports chirpstack bash
|
||||
docker-compose run --rm --service-ports --name chirpstack chirpstack bash
|
||||
|
||||
# Enters the devshell for ChirpStack UI development.
|
||||
devshell-ui:
|
||||
docker-compose run --rm --service-ports chirpstack-ui bash
|
||||
docker-compose run --rm --service-ports --name chirpstack-ui chirpstack-ui bash
|
||||
|
||||
# Runs the tests
|
||||
test:
|
||||
|
23
README.md
23
README.md
@ -5,25 +5,14 @@
|
||||
ChirpStack is an open-source LoRaWAN Network Server, part of the
|
||||
[ChirpStack](https://www.chirpstack.io/) project.
|
||||
|
||||
**Note:** this repository contains the source of what is going to be
|
||||
ChirpStack v4. This release merges the ChirpStack Network Server and
|
||||
ChirpStack Application Server components into a single service, making
|
||||
it a lot easier to setup a multi-region ChirpStack instance. This is
|
||||
still work in progress.
|
||||
This repository contains the source-code of ChirpStack v4, which merges the
|
||||
ChirpStack Application Server (v3) and ChirpStack Network Server (v3) into a
|
||||
single binary, making it easier to setup and use.
|
||||
|
||||
Please refer to the forum announcement for background information:
|
||||
https://forum.chirpstack.io/t/changes-coming-to-chirpstack/13101
|
||||
## Documentation
|
||||
|
||||
## Testing / building from source
|
||||
|
||||
To build ChirpStack from source, run the following command:
|
||||
|
||||
```bash
|
||||
make test-server
|
||||
```
|
||||
|
||||
Note: this requires a Linux environment With Docker and Docker Compose
|
||||
setup. Pre-compiled (test) binaries will be provided soon.
|
||||
Please refer to the [ChirpStack](https://www.chirpstack.io/) website for
|
||||
documentation.
|
||||
|
||||
## License
|
||||
|
||||
|
4
api/Dockerfile-rust
vendored
4
api/Dockerfile-rust
vendored
@ -1,8 +1,8 @@
|
||||
FROM rust:1.56
|
||||
FROM rust:1.64
|
||||
|
||||
ENV PROJECT_PATH=/chirpstack/api
|
||||
RUN apt-get update && \
|
||||
apt-get install -y make cmake git bash && \
|
||||
apt-get install -y make cmake git bash protobuf-compiler && \
|
||||
apt-get clean
|
||||
|
||||
RUN git clone https://github.com/googleapis/googleapis.git /googleapis
|
||||
|
2
api/Makefile
vendored
2
api/Makefile
vendored
@ -1,4 +1,4 @@
|
||||
.PHONY: rust grpc-web go js python
|
||||
.PHONY: rust grpc-web go js python md
|
||||
|
||||
all:
|
||||
docker-compose up
|
||||
|
77
api/go/api/frame_log.pb.go
vendored
77
api/go/api/frame_log.pb.go
vendored
@ -42,6 +42,8 @@ type UplinkFrameLog struct {
|
||||
DevEui string `protobuf:"bytes,6,opt,name=dev_eui,json=devEui,proto3" json:"dev_eui,omitempty"`
|
||||
// Time.
|
||||
Time *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=time,proto3" json:"time,omitempty"`
|
||||
// Plaintext mac-commands.
|
||||
PlaintextMacCommands bool `protobuf:"varint,8,opt,name=plaintext_mac_commands,json=plaintextMacCommands,proto3" json:"plaintext_mac_commands,omitempty"`
|
||||
}
|
||||
|
||||
func (x *UplinkFrameLog) Reset() {
|
||||
@ -125,6 +127,13 @@ func (x *UplinkFrameLog) GetTime() *timestamppb.Timestamp {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *UplinkFrameLog) GetPlaintextMacCommands() bool {
|
||||
if x != nil {
|
||||
return x.PlaintextMacCommands
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
type DownlinkFrameLog struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@ -146,6 +155,8 @@ type DownlinkFrameLog struct {
|
||||
DevAddr string `protobuf:"bytes,7,opt,name=dev_addr,json=devAddr,proto3" json:"dev_addr,omitempty"`
|
||||
// Device EUI (optional).
|
||||
DevEui string `protobuf:"bytes,8,opt,name=dev_eui,json=devEui,proto3" json:"dev_eui,omitempty"`
|
||||
// Plaintext mac-commands.
|
||||
PlaintextMacCommands bool `protobuf:"varint,9,opt,name=plaintext_mac_commands,json=plaintextMacCommands,proto3" json:"plaintext_mac_commands,omitempty"`
|
||||
}
|
||||
|
||||
func (x *DownlinkFrameLog) Reset() {
|
||||
@ -236,6 +247,13 @@ func (x *DownlinkFrameLog) GetDevEui() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *DownlinkFrameLog) GetPlaintextMacCommands() bool {
|
||||
if x != nil {
|
||||
return x.PlaintextMacCommands
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
var File_api_frame_log_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_api_frame_log_proto_rawDesc = []byte{
|
||||
@ -244,7 +262,7 @@ var file_api_frame_log_proto_rawDesc = []byte{
|
||||
0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65,
|
||||
0x73, 0x74, 0x61, 0x6d, 0x70, 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,
|
||||
0x1a, 0x0b, 0x67, 0x77, 0x2f, 0x67, 0x77, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x91, 0x02,
|
||||
0x1a, 0x0b, 0x67, 0x77, 0x2f, 0x67, 0x77, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc7, 0x02,
|
||||
0x0a, 0x0e, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x4c, 0x6f, 0x67,
|
||||
0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x68, 0x79, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x70, 0x68, 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61,
|
||||
@ -262,31 +280,38 @@ var file_api_frame_log_proto_rawDesc = []byte{
|
||||
0x69, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 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, 0x22, 0xaa, 0x02, 0x0a, 0x10, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x46, 0x72,
|
||||
0x61, 0x6d, 0x65, 0x4c, 0x6f, 0x67, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
|
||||
0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x68, 0x79, 0x5f, 0x70, 0x61,
|
||||
0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x70, 0x68, 0x79,
|
||||
0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2b, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x69, 0x6e,
|
||||
0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x77, 0x2e, 0x44, 0x6f,
|
||||
0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x74, 0x78,
|
||||
0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b,
|
||||
0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x6f, 0x77, 0x6e, 0x6c,
|
||||
0x69, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
|
||||
0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77,
|
||||
0x61, 0x79, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x06, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06,
|
||||
0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x54,
|
||||
0x79, 0x70, 0x65, 0x52, 0x05, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x65,
|
||||
0x76, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65,
|
||||
0x76, 0x41, 0x64, 0x64, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69,
|
||||
0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x45, 0x75, 0x69, 0x42, 0x54,
|
||||
0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x42, 0x0d, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x4c, 0x6f, 0x67, 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, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x65, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x6d,
|
||||
0x61, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28,
|
||||
0x08, 0x52, 0x14, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x4d, 0x61, 0x63, 0x43,
|
||||
0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x22, 0xe0, 0x02, 0x0a, 0x10, 0x44, 0x6f, 0x77, 0x6e,
|
||||
0x6c, 0x69, 0x6e, 0x6b, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x4c, 0x6f, 0x67, 0x12, 0x2e, 0x0a, 0x04,
|
||||
0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
|
||||
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
|
||||
0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b,
|
||||
0x70, 0x68, 0x79, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||
0x0c, 0x52, 0x0a, 0x70, 0x68, 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2b, 0x0a,
|
||||
0x07, 0x74, 0x78, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
|
||||
0x2e, 0x67, 0x77, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x78, 0x49, 0x6e,
|
||||
0x66, 0x6f, 0x52, 0x06, 0x74, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x6f,
|
||||
0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52,
|
||||
0x0a, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x67,
|
||||
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x06, 0x6d, 0x5f,
|
||||
0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x63, 0x6f, 0x6d,
|
||||
0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x6d, 0x54, 0x79, 0x70, 0x65,
|
||||
0x12, 0x19, 0x0a, 0x08, 0x64, 0x65, 0x76, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x07, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x76, 0x41, 0x64, 0x64, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x64,
|
||||
0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65,
|
||||
0x76, 0x45, 0x75, 0x69, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78,
|
||||
0x74, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x09,
|
||||
0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x4d,
|
||||
0x61, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x42, 0x54, 0x0a, 0x11, 0x69, 0x6f,
|
||||
0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42,
|
||||
0x0d, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x4c, 0x6f, 0x67, 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,
|
||||
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
1040
api/go/api/internal.pb.go
vendored
1040
api/go/api/internal.pb.go
vendored
File diff suppressed because it is too large
Load Diff
76
api/go/api/internal_grpc.pb.go
vendored
76
api/go/api/internal_grpc.pb.go
vendored
@ -49,6 +49,10 @@ type InternalServiceClient interface {
|
||||
StreamDeviceFrames(ctx context.Context, in *StreamDeviceFramesRequest, opts ...grpc.CallOption) (InternalService_StreamDeviceFramesClient, error)
|
||||
// Stream events for the given Device EUI.
|
||||
StreamDeviceEvents(ctx context.Context, in *StreamDeviceEventsRequest, opts ...grpc.CallOption) (InternalService_StreamDeviceEventsClient, error)
|
||||
// ListRegions lists the available (configured) regions.
|
||||
ListRegions(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*ListRegionsResponse, error)
|
||||
// GetRegion returns the region details for the given region.
|
||||
GetRegion(ctx context.Context, in *GetRegionRequest, opts ...grpc.CallOption) (*GetRegionResponse, error)
|
||||
}
|
||||
|
||||
type internalServiceClient struct {
|
||||
@ -245,6 +249,24 @@ func (x *internalServiceStreamDeviceEventsClient) Recv() (*LogItem, error) {
|
||||
return m, nil
|
||||
}
|
||||
|
||||
func (c *internalServiceClient) ListRegions(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*ListRegionsResponse, error) {
|
||||
out := new(ListRegionsResponse)
|
||||
err := c.cc.Invoke(ctx, "/api.InternalService/ListRegions", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *internalServiceClient) GetRegion(ctx context.Context, in *GetRegionRequest, opts ...grpc.CallOption) (*GetRegionResponse, error) {
|
||||
out := new(GetRegionResponse)
|
||||
err := c.cc.Invoke(ctx, "/api.InternalService/GetRegion", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// InternalServiceServer is the server API for InternalService service.
|
||||
// All implementations must embed UnimplementedInternalServiceServer
|
||||
// for forward compatibility
|
||||
@ -275,6 +297,10 @@ type InternalServiceServer interface {
|
||||
StreamDeviceFrames(*StreamDeviceFramesRequest, InternalService_StreamDeviceFramesServer) error
|
||||
// Stream events for the given Device EUI.
|
||||
StreamDeviceEvents(*StreamDeviceEventsRequest, InternalService_StreamDeviceEventsServer) error
|
||||
// ListRegions lists the available (configured) regions.
|
||||
ListRegions(context.Context, *emptypb.Empty) (*ListRegionsResponse, error)
|
||||
// GetRegion returns the region details for the given region.
|
||||
GetRegion(context.Context, *GetRegionRequest) (*GetRegionResponse, error)
|
||||
mustEmbedUnimplementedInternalServiceServer()
|
||||
}
|
||||
|
||||
@ -321,6 +347,12 @@ func (UnimplementedInternalServiceServer) StreamDeviceFrames(*StreamDeviceFrames
|
||||
func (UnimplementedInternalServiceServer) StreamDeviceEvents(*StreamDeviceEventsRequest, InternalService_StreamDeviceEventsServer) error {
|
||||
return status.Errorf(codes.Unimplemented, "method StreamDeviceEvents not implemented")
|
||||
}
|
||||
func (UnimplementedInternalServiceServer) ListRegions(context.Context, *emptypb.Empty) (*ListRegionsResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method ListRegions not implemented")
|
||||
}
|
||||
func (UnimplementedInternalServiceServer) GetRegion(context.Context, *GetRegionRequest) (*GetRegionResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method GetRegion not implemented")
|
||||
}
|
||||
func (UnimplementedInternalServiceServer) mustEmbedUnimplementedInternalServiceServer() {}
|
||||
|
||||
// UnsafeInternalServiceServer may be embedded to opt out of forward compatibility for this service.
|
||||
@ -577,6 +609,42 @@ func (x *internalServiceStreamDeviceEventsServer) Send(m *LogItem) error {
|
||||
return x.ServerStream.SendMsg(m)
|
||||
}
|
||||
|
||||
func _InternalService_ListRegions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(emptypb.Empty)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(InternalServiceServer).ListRegions(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/api.InternalService/ListRegions",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(InternalServiceServer).ListRegions(ctx, req.(*emptypb.Empty))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _InternalService_GetRegion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(GetRegionRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(InternalServiceServer).GetRegion(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/api.InternalService/GetRegion",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(InternalServiceServer).GetRegion(ctx, req.(*GetRegionRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
// InternalService_ServiceDesc is the grpc.ServiceDesc for InternalService service.
|
||||
// It's only intended for direct use with grpc.RegisterService,
|
||||
// and not to be introspected or modified (even as a copy)
|
||||
@ -624,6 +692,14 @@ var InternalService_ServiceDesc = grpc.ServiceDesc{
|
||||
MethodName: "GetGatewaysSummary",
|
||||
Handler: _InternalService_GetGatewaysSummary_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "ListRegions",
|
||||
Handler: _InternalService_ListRegions_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "GetRegion",
|
||||
Handler: _InternalService_GetRegion_Handler,
|
||||
},
|
||||
},
|
||||
Streams: []grpc.StreamDesc{
|
||||
{
|
||||
|
325
api/go/api/tenant.pb.go
vendored
325
api/go/api/tenant.pb.go
vendored
@ -559,6 +559,9 @@ type ListTenantsRequest struct {
|
||||
Offset uint32 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"`
|
||||
// If set, the given string will be used to search on name.
|
||||
Search string `protobuf:"bytes,3,opt,name=search,proto3" json:"search,omitempty"`
|
||||
// If set, filters the result set to the tenants of the user.
|
||||
// Only global API keys are able to filter by this field.
|
||||
UserId string `protobuf:"bytes,4,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
|
||||
}
|
||||
|
||||
func (x *ListTenantsRequest) Reset() {
|
||||
@ -614,6 +617,13 @@ func (x *ListTenantsRequest) GetSearch() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *ListTenantsRequest) GetUserId() string {
|
||||
if x != nil {
|
||||
return x.UserId
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type ListTenantsResponse struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@ -1351,169 +1361,170 @@ var file_api_tenant_proto_rawDesc = []byte{
|
||||
0x69, 0x2e, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52, 0x06, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74,
|
||||
0x22, 0x25, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74,
|
||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x5a, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x54,
|
||||
0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x73, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x54,
|
||||
0x65, 0x6e, 0x61, 0x6e, 0x74, 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, 0x22, 0x63, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e,
|
||||
0x74, 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, 0x2b, 0x0a, 0x06, 0x72,
|
||||
0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d,
|
||||
0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xc5, 0x01, 0x0a, 0x0a, 0x54, 0x65, 0x6e,
|
||||
0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 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, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
|
||||
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x19, 0x0a,
|
||||
0x08, 0x69, 0x73, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52,
|
||||
0x07, 0x69, 0x73, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x73, 0x5f, 0x64,
|
||||
0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28,
|
||||
0x08, 0x52, 0x0d, 0x69, 0x73, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e,
|
||||
0x12, 0x28, 0x0a, 0x10, 0x69, 0x73, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x61,
|
||||
0x64, 0x6d, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x47, 0x61,
|
||||
0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d,
|
||||
0x61, 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c,
|
||||
0x22, 0xc3, 0x02, 0x0a, 0x12, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c,
|
||||
0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 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, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
|
||||
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x39, 0x0a,
|
||||
0x0a, 0x63, 0x72, 0x65, 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, 0x63,
|
||||
0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61,
|
||||
0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 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, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f,
|
||||
0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x41,
|
||||
0x64, 0x6d, 0x69, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69,
|
||||
0x73, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x10,
|
||||
0x69, 0x73, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e,
|
||||
0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61,
|
||||
0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0x48, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x54, 0x65, 0x6e,
|
||||
0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30,
|
||||
0x0a, 0x0b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74,
|
||||
0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72,
|
||||
0x22, 0x4c, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65,
|
||||
0x72, 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, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0xbf,
|
||||
0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72,
|
||||
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x0b, 0x74, 0x65, 0x6e, 0x61,
|
||||
0x6e, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a,
|
||||
0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 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, 0x4b, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74,
|
||||
0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x0b, 0x74,
|
||||
0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
|
||||
0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65,
|
||||
0x72, 0x52, 0x0a, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x22, 0x4f, 0x0a,
|
||||
0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65,
|
||||
0x72, 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, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x63,
|
||||
0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72,
|
||||
0x73, 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, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02,
|
||||
0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f,
|
||||
0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x66, 0x66,
|
||||
0x73, 0x65, 0x74, 0x22, 0x6b, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e,
|
||||
0x74, 0x55, 0x73, 0x65, 0x72, 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,
|
||||
0x2f, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
||||
0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72,
|
||||
0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
|
||||
0x32, 0xa2, 0x08, 0x0a, 0x0d, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69,
|
||||
0x63, 0x65, 0x12, 0x56, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x61,
|
||||
0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65,
|
||||
0x61, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
||||
0x65, 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x22, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f,
|
||||
0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x4f, 0x0a, 0x03, 0x47, 0x65,
|
||||
0x74, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e,
|
||||
0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47,
|
||||
0x65, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74,
|
||||
0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x5f, 0x0a, 0x06, 0x55,
|
||||
0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61,
|
||||
0x72, 0x63, 0x68, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04,
|
||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x63, 0x0a, 0x13,
|
||||
0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 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, 0x2b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02,
|
||||
0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x65, 0x6e, 0x61, 0x6e,
|
||||
0x74, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c,
|
||||
0x74, 0x22, 0xc5, 0x01, 0x0a, 0x0a, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72,
|
||||
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, 0x12, 0x17, 0x0a,
|
||||
0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
|
||||
0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x61, 0x64, 0x6d,
|
||||
0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x41, 0x64, 0x6d, 0x69,
|
||||
0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61,
|
||||
0x64, 0x6d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x44, 0x65,
|
||||
0x76, 0x69, 0x63, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x73, 0x5f,
|
||||
0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x05, 0x20,
|
||||
0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64,
|
||||
0x6d, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0xc3, 0x02, 0x0a, 0x12, 0x54, 0x65,
|
||||
0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d,
|
||||
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, 0x12, 0x17, 0x0a,
|
||||
0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
|
||||
0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41,
|
||||
0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18,
|
||||
0x04, 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, 0x14, 0x0a, 0x05,
|
||||
0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61,
|
||||
0x69, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x06,
|
||||
0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x26, 0x0a,
|
||||
0x0f, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e,
|
||||
0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x73, 0x5f, 0x67, 0x61, 0x74, 0x65,
|
||||
0x77, 0x61, 0x79, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52,
|
||||
0x0e, 0x69, 0x73, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x22,
|
||||
0x48, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72,
|
||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x0b, 0x74, 0x65, 0x6e, 0x61, 0x6e,
|
||||
0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61,
|
||||
0x70, 0x69, 0x2e, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x74,
|
||||
0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x22, 0x4c, 0x0a, 0x14, 0x47, 0x65, 0x74,
|
||||
0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 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, 0x12, 0x17,
|
||||
0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0xbf, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x54,
|
||||
0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
||||
0x65, 0x12, 0x30, 0x0a, 0x0b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x65, 0x6e,
|
||||
0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55,
|
||||
0x73, 0x65, 0x72, 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, 0x4b, 0x0a, 0x17, 0x55, 0x70, 0x64,
|
||||
0x61, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x0b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x75,
|
||||
0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e,
|
||||
0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x74, 0x65, 0x6e, 0x61,
|
||||
0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x22, 0x4f, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
|
||||
0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 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, 0x12, 0x17,
|
||||
0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x63, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x54,
|
||||
0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 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, 0x12, 0x14,
|
||||
0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c,
|
||||
0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03,
|
||||
0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x6b, 0x0a, 0x17,
|
||||
0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 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, 0x2f, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75,
|
||||
0x6c, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54,
|
||||
0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65,
|
||||
0x6d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x32, 0xa2, 0x08, 0x0a, 0x0d, 0x54, 0x65,
|
||||
0x6e, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x56, 0x0a, 0x06, 0x43,
|
||||
0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61,
|
||||
0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 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, 0x1a,
|
||||
0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x74,
|
||||
0x65, 0x6e, 0x61, 0x6e, 0x74, 0x2e, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x55, 0x0a, 0x06,
|
||||
0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x6c,
|
||||
0x65, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 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, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13,
|
||||
0x2a, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x7b,
|
||||
0x69, 0x64, 0x7d, 0x12, 0x4f, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54,
|
||||
0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14,
|
||||
0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, 0x6e,
|
||||
0x61, 0x6e, 0x74, 0x73, 0x12, 0x73, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12,
|
||||
0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55,
|
||||
0x73, 0x65, 0x72, 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, 0x22, 0x2a, 0x2f, 0x61, 0x70, 0x69,
|
||||
0x2f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74,
|
||||
0x5f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d,
|
||||
0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x72, 0x0a, 0x07, 0x47, 0x65, 0x74,
|
||||
0x55, 0x73, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x65,
|
||||
0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
|
||||
0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55,
|
||||
0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4,
|
||||
0x93, 0x02, 0x2a, 0x12, 0x28, 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, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x8f, 0x01,
|
||||
0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x61,
|
||||
0x70, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55,
|
||||
0x73, 0x65, 0x72, 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, 0x4b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x1a, 0x40, 0x2f, 0x61, 0x70, 0x69,
|
||||
0x2f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74,
|
||||
0x5f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d,
|
||||
0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x75,
|
||||
0x73, 0x65, 0x72, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12,
|
||||
0x74, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74,
|
||||
0x55, 0x73, 0x65, 0x72, 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, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x2a, 0x28, 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, 0x2f, 0x7b, 0x75, 0x73, 0x65,
|
||||
0x72, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x6e, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65,
|
||||
0x72, 0x73, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6e,
|
||||
0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
|
||||
0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74,
|
||||
0x55, 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, 0x54, 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, 0x62, 0x06, 0x70, 0x72, 0x6f,
|
||||
0x74, 0x6f, 0x33,
|
||||
0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61,
|
||||
0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93,
|
||||
0x02, 0x11, 0x22, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73,
|
||||
0x3a, 0x01, 0x2a, 0x12, 0x4f, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x69,
|
||||
0x2e, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e,
|
||||
0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02,
|
||||
0x13, 0x12, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x2f,
|
||||
0x7b, 0x69, 0x64, 0x7d, 0x12, 0x5f, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x18,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e,
|
||||
0x74, 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, 0x1a, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74,
|
||||
0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x2e, 0x69,
|
||||
0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x55, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12,
|
||||
0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61,
|
||||
0x6e, 0x74, 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, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x2a, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f,
|
||||
0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x4f, 0x0a, 0x04,
|
||||
0x4c, 0x69, 0x73, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54,
|
||||
0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x52,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12,
|
||||
0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x73, 0x0a,
|
||||
0x07, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41,
|
||||
0x64, 0x64, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 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, 0x22, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74,
|
||||
0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x74,
|
||||
0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x3a,
|
||||
0x01, 0x2a, 0x12, 0x72, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x19, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65,
|
||||
0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47,
|
||||
0x65, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 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, 0x2f, 0x7b, 0x75, 0x73,
|
||||
0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x8f, 0x01, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74,
|
||||
0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61,
|
||||
0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 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, 0x4b, 0x82, 0xd3, 0xe4,
|
||||
0x93, 0x02, 0x45, 0x1a, 0x40, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74,
|
||||
0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x74,
|
||||
0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f,
|
||||
0x7b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x75, 0x73, 0x65,
|
||||
0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x74, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65,
|
||||
0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x6c,
|
||||
0x65, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 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, 0x30, 0x82, 0xd3,
|
||||
0xe4, 0x93, 0x02, 0x2a, 0x2a, 0x28, 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, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x6e,
|
||||
0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x1b, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72,
|
||||
0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c,
|
||||
0x69, 0x73, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 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, 0x54,
|
||||
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, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
221
api/go/common/common.pb.go
vendored
221
api/go/common/common.pb.go
vendored
@ -477,6 +477,58 @@ func (Aggregation) EnumDescriptor() ([]byte, []int) {
|
||||
return file_common_common_proto_rawDescGZIP(), []int{6}
|
||||
}
|
||||
|
||||
type MetricKind int32
|
||||
|
||||
const (
|
||||
// Incrementing counters that never decrease (these are not reset on each reading).
|
||||
MetricKind_COUNTER MetricKind = 0
|
||||
// Counters that do get reset upon reading.
|
||||
MetricKind_ABSOLUTE MetricKind = 1
|
||||
// E.g. a temperature value.
|
||||
MetricKind_GAUGE MetricKind = 2
|
||||
)
|
||||
|
||||
// Enum value maps for MetricKind.
|
||||
var (
|
||||
MetricKind_name = map[int32]string{
|
||||
0: "COUNTER",
|
||||
1: "ABSOLUTE",
|
||||
2: "GAUGE",
|
||||
}
|
||||
MetricKind_value = map[string]int32{
|
||||
"COUNTER": 0,
|
||||
"ABSOLUTE": 1,
|
||||
"GAUGE": 2,
|
||||
}
|
||||
)
|
||||
|
||||
func (x MetricKind) Enum() *MetricKind {
|
||||
p := new(MetricKind)
|
||||
*p = x
|
||||
return p
|
||||
}
|
||||
|
||||
func (x MetricKind) String() string {
|
||||
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
||||
}
|
||||
|
||||
func (MetricKind) Descriptor() protoreflect.EnumDescriptor {
|
||||
return file_common_common_proto_enumTypes[7].Descriptor()
|
||||
}
|
||||
|
||||
func (MetricKind) Type() protoreflect.EnumType {
|
||||
return &file_common_common_proto_enumTypes[7]
|
||||
}
|
||||
|
||||
func (x MetricKind) Number() protoreflect.EnumNumber {
|
||||
return protoreflect.EnumNumber(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use MetricKind.Descriptor instead.
|
||||
func (MetricKind) EnumDescriptor() ([]byte, []int) {
|
||||
return file_common_common_proto_rawDescGZIP(), []int{7}
|
||||
}
|
||||
|
||||
type Location struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@ -629,6 +681,8 @@ type Metric struct {
|
||||
Timestamps []*timestamppb.Timestamp `protobuf:"bytes,2,rep,name=timestamps,proto3" json:"timestamps,omitempty"`
|
||||
// Datasets.
|
||||
Datasets []*MetricDataset `protobuf:"bytes,3,rep,name=datasets,proto3" json:"datasets,omitempty"`
|
||||
// Kind.
|
||||
Kind MetricKind `protobuf:"varint,4,opt,name=kind,proto3,enum=common.MetricKind" json:"kind,omitempty"`
|
||||
}
|
||||
|
||||
func (x *Metric) Reset() {
|
||||
@ -684,6 +738,13 @@ func (x *Metric) GetDatasets() []*MetricDataset {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *Metric) GetKind() MetricKind {
|
||||
if x != nil {
|
||||
return x.Kind
|
||||
}
|
||||
return MetricKind_COUNTER
|
||||
}
|
||||
|
||||
type MetricDataset struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@ -764,7 +825,7 @@ var file_common_common_proto_rawDesc = []byte{
|
||||
0x6b, 0x65, 0x6b, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x08, 0x6b, 0x65, 0x6b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x65, 0x73,
|
||||
0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x61, 0x65, 0x73, 0x4b,
|
||||
0x65, 0x79, 0x22, 0x8b, 0x01, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x12, 0x0a,
|
||||
0x65, 0x79, 0x22, 0xb3, 0x01, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x12, 0x0a,
|
||||
0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
|
||||
0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18,
|
||||
0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
|
||||
@ -773,67 +834,73 @@ var file_common_common_proto_rawDesc = []byte{
|
||||
0x08, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
||||
0x15, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x44,
|
||||
0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73,
|
||||
0x22, 0x39, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65,
|
||||
0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
|
||||
0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18,
|
||||
0x02, 0x20, 0x03, 0x28, 0x02, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x2a, 0x2c, 0x0a, 0x0a, 0x4d,
|
||||
0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x4f, 0x52,
|
||||
0x41, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x46, 0x53, 0x4b, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07,
|
||||
0x4c, 0x52, 0x5f, 0x46, 0x48, 0x53, 0x53, 0x10, 0x02, 0x2a, 0xaa, 0x01, 0x0a, 0x06, 0x52, 0x65,
|
||||
0x67, 0x69, 0x6f, 0x6e, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x55, 0x38, 0x36, 0x38, 0x10, 0x00, 0x12,
|
||||
0x09, 0x0a, 0x05, 0x55, 0x53, 0x39, 0x31, 0x35, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x4e,
|
||||
0x37, 0x37, 0x39, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x55, 0x34, 0x33, 0x33, 0x10, 0x04,
|
||||
0x12, 0x09, 0x0a, 0x05, 0x41, 0x55, 0x39, 0x31, 0x35, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x43,
|
||||
0x4e, 0x34, 0x37, 0x30, 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x53, 0x39, 0x32, 0x33, 0x10,
|
||||
0x07, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x53, 0x39, 0x32, 0x33, 0x5f, 0x32, 0x10, 0x0c, 0x12, 0x0b,
|
||||
0x0a, 0x07, 0x41, 0x53, 0x39, 0x32, 0x33, 0x5f, 0x33, 0x10, 0x0d, 0x12, 0x0b, 0x0a, 0x07, 0x41,
|
||||
0x53, 0x39, 0x32, 0x33, 0x5f, 0x34, 0x10, 0x0e, 0x12, 0x09, 0x0a, 0x05, 0x4b, 0x52, 0x39, 0x32,
|
||||
0x30, 0x10, 0x08, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4e, 0x38, 0x36, 0x35, 0x10, 0x09, 0x12, 0x09,
|
||||
0x0a, 0x05, 0x52, 0x55, 0x38, 0x36, 0x34, 0x10, 0x0a, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x53, 0x4d,
|
||||
0x32, 0x34, 0x30, 0x30, 0x10, 0x0b, 0x2a, 0xb3, 0x01, 0x0a, 0x05, 0x4d, 0x54, 0x79, 0x70, 0x65,
|
||||
0x12, 0x10, 0x0a, 0x0c, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54,
|
||||
0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x50,
|
||||
0x54, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x4e, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d,
|
||||
0x45, 0x44, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x55, 0x50, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15,
|
||||
0x55, 0x4e, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x45, 0x44, 0x5f, 0x44, 0x41, 0x54, 0x41,
|
||||
0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x4f, 0x4e, 0x46, 0x49,
|
||||
0x52, 0x4d, 0x45, 0x44, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x55, 0x50, 0x10, 0x04, 0x12, 0x17,
|
||||
0x0a, 0x13, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x45, 0x44, 0x5f, 0x44, 0x41, 0x54, 0x41,
|
||||
0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x45, 0x4a, 0x4f, 0x49,
|
||||
0x4e, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x50,
|
||||
0x52, 0x4f, 0x50, 0x52, 0x49, 0x45, 0x54, 0x41, 0x52, 0x59, 0x10, 0x07, 0x2a, 0x7e, 0x0a, 0x0a,
|
||||
0x4d, 0x61, 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x11, 0x0a, 0x0d, 0x4c, 0x4f,
|
||||
0x52, 0x41, 0x57, 0x41, 0x4e, 0x5f, 0x31, 0x5f, 0x30, 0x5f, 0x30, 0x10, 0x00, 0x12, 0x11, 0x0a,
|
||||
0x0d, 0x4c, 0x4f, 0x52, 0x41, 0x57, 0x41, 0x4e, 0x5f, 0x31, 0x5f, 0x30, 0x5f, 0x31, 0x10, 0x01,
|
||||
0x12, 0x11, 0x0a, 0x0d, 0x4c, 0x4f, 0x52, 0x41, 0x57, 0x41, 0x4e, 0x5f, 0x31, 0x5f, 0x30, 0x5f,
|
||||
0x32, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x4c, 0x4f, 0x52, 0x41, 0x57, 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, 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, 0x42, 0x55, 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, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x12, 0x26, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12,
|
||||
0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4b, 0x69,
|
||||
0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x39, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x72,
|
||||
0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62,
|
||||
0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12,
|
||||
0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x02, 0x52, 0x04, 0x64,
|
||||
0x61, 0x74, 0x61, 0x2a, 0x2c, 0x0a, 0x0a, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x4f, 0x52, 0x41, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x46,
|
||||
0x53, 0x4b, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x4c, 0x52, 0x5f, 0x46, 0x48, 0x53, 0x53, 0x10,
|
||||
0x02, 0x2a, 0xaa, 0x01, 0x0a, 0x06, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x09, 0x0a, 0x05,
|
||||
0x45, 0x55, 0x38, 0x36, 0x38, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x53, 0x39, 0x31, 0x35,
|
||||
0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x4e, 0x37, 0x37, 0x39, 0x10, 0x03, 0x12, 0x09, 0x0a,
|
||||
0x05, 0x45, 0x55, 0x34, 0x33, 0x33, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x55, 0x39, 0x31,
|
||||
0x35, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x4e, 0x34, 0x37, 0x30, 0x10, 0x06, 0x12, 0x09,
|
||||
0x0a, 0x05, 0x41, 0x53, 0x39, 0x32, 0x33, 0x10, 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x53, 0x39,
|
||||
0x32, 0x33, 0x5f, 0x32, 0x10, 0x0c, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x53, 0x39, 0x32, 0x33, 0x5f,
|
||||
0x33, 0x10, 0x0d, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x53, 0x39, 0x32, 0x33, 0x5f, 0x34, 0x10, 0x0e,
|
||||
0x12, 0x09, 0x0a, 0x05, 0x4b, 0x52, 0x39, 0x32, 0x30, 0x10, 0x08, 0x12, 0x09, 0x0a, 0x05, 0x49,
|
||||
0x4e, 0x38, 0x36, 0x35, 0x10, 0x09, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x55, 0x38, 0x36, 0x34, 0x10,
|
||||
0x0a, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x53, 0x4d, 0x32, 0x34, 0x30, 0x30, 0x10, 0x0b, 0x2a, 0xb3,
|
||||
0x01, 0x0a, 0x05, 0x4d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x4a, 0x4f, 0x49, 0x4e,
|
||||
0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x4a, 0x4f,
|
||||
0x49, 0x4e, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x55,
|
||||
0x4e, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x45, 0x44, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f,
|
||||
0x55, 0x50, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x4e, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x52,
|
||||
0x4d, 0x45, 0x44, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x03, 0x12,
|
||||
0x15, 0x0a, 0x11, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x45, 0x44, 0x5f, 0x44, 0x41, 0x54,
|
||||
0x41, 0x5f, 0x55, 0x50, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x52,
|
||||
0x4d, 0x45, 0x44, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x05, 0x12,
|
||||
0x12, 0x0a, 0x0e, 0x52, 0x45, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53,
|
||||
0x54, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x52, 0x4f, 0x50, 0x52, 0x49, 0x45, 0x54, 0x41,
|
||||
0x52, 0x59, 0x10, 0x07, 0x2a, 0x7e, 0x0a, 0x0a, 0x4d, 0x61, 0x63, 0x56, 0x65, 0x72, 0x73, 0x69,
|
||||
0x6f, 0x6e, 0x12, 0x11, 0x0a, 0x0d, 0x4c, 0x4f, 0x52, 0x41, 0x57, 0x41, 0x4e, 0x5f, 0x31, 0x5f,
|
||||
0x30, 0x5f, 0x30, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x4c, 0x4f, 0x52, 0x41, 0x57, 0x41, 0x4e,
|
||||
0x5f, 0x31, 0x5f, 0x30, 0x5f, 0x31, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x4c, 0x4f, 0x52, 0x41,
|
||||
0x57, 0x41, 0x4e, 0x5f, 0x31, 0x5f, 0x30, 0x5f, 0x32, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x4c,
|
||||
0x4f, 0x52, 0x41, 0x57, 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, 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, 0x42, 0x55, 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, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
@ -848,7 +915,7 @@ func file_common_common_proto_rawDescGZIP() []byte {
|
||||
return file_common_common_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_common_common_proto_enumTypes = make([]protoimpl.EnumInfo, 7)
|
||||
var file_common_common_proto_enumTypes = make([]protoimpl.EnumInfo, 8)
|
||||
var file_common_common_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
|
||||
var file_common_common_proto_goTypes = []interface{}{
|
||||
(Modulation)(0), // 0: common.Modulation
|
||||
@ -858,21 +925,23 @@ var file_common_common_proto_goTypes = []interface{}{
|
||||
(RegParamsRevision)(0), // 4: common.RegParamsRevision
|
||||
(LocationSource)(0), // 5: common.LocationSource
|
||||
(Aggregation)(0), // 6: common.Aggregation
|
||||
(*Location)(nil), // 7: common.Location
|
||||
(*KeyEnvelope)(nil), // 8: common.KeyEnvelope
|
||||
(*Metric)(nil), // 9: common.Metric
|
||||
(*MetricDataset)(nil), // 10: common.MetricDataset
|
||||
(*timestamppb.Timestamp)(nil), // 11: google.protobuf.Timestamp
|
||||
(MetricKind)(0), // 7: common.MetricKind
|
||||
(*Location)(nil), // 8: common.Location
|
||||
(*KeyEnvelope)(nil), // 9: common.KeyEnvelope
|
||||
(*Metric)(nil), // 10: common.Metric
|
||||
(*MetricDataset)(nil), // 11: common.MetricDataset
|
||||
(*timestamppb.Timestamp)(nil), // 12: google.protobuf.Timestamp
|
||||
}
|
||||
var file_common_common_proto_depIdxs = []int32{
|
||||
5, // 0: common.Location.source:type_name -> common.LocationSource
|
||||
11, // 1: common.Metric.timestamps:type_name -> google.protobuf.Timestamp
|
||||
10, // 2: common.Metric.datasets:type_name -> common.MetricDataset
|
||||
3, // [3:3] is the sub-list for method output_type
|
||||
3, // [3:3] is the sub-list for method input_type
|
||||
3, // [3:3] is the sub-list for extension type_name
|
||||
3, // [3:3] is the sub-list for extension extendee
|
||||
0, // [0:3] is the sub-list for field type_name
|
||||
12, // 1: common.Metric.timestamps:type_name -> google.protobuf.Timestamp
|
||||
11, // 2: common.Metric.datasets:type_name -> common.MetricDataset
|
||||
7, // 3: common.Metric.kind:type_name -> common.MetricKind
|
||||
4, // [4:4] is the sub-list for method output_type
|
||||
4, // [4:4] is the sub-list for method input_type
|
||||
4, // [4:4] is the sub-list for extension type_name
|
||||
4, // [4:4] is the sub-list for extension extendee
|
||||
0, // [0:4] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_common_common_proto_init() }
|
||||
@ -935,7 +1004,7 @@ func file_common_common_proto_init() {
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_common_common_proto_rawDesc,
|
||||
NumEnums: 7,
|
||||
NumEnums: 8,
|
||||
NumMessages: 4,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
|
667
api/go/gw/gw.pb.go
vendored
667
api/go/gw/gw.pb.go
vendored
@ -37,21 +37,27 @@ const (
|
||||
CodeRate_CR_1_4 CodeRate = 7
|
||||
CodeRate_CR_1_6 CodeRate = 8
|
||||
CodeRate_CR_5_6 CodeRate = 9
|
||||
CodeRate_CR_LI_4_5 CodeRate = 10 // LoRa 2.4 gHz
|
||||
CodeRate_CR_LI_4_6 CodeRate = 11
|
||||
CodeRate_CR_LI_4_8 CodeRate = 12
|
||||
)
|
||||
|
||||
// Enum value maps for CodeRate.
|
||||
var (
|
||||
CodeRate_name = map[int32]string{
|
||||
0: "CR_UNDEFINED",
|
||||
1: "CR_4_5",
|
||||
2: "CR_4_6",
|
||||
3: "CR_4_7",
|
||||
4: "CR_4_8",
|
||||
5: "CR_3_8",
|
||||
6: "CR_2_6",
|
||||
7: "CR_1_4",
|
||||
8: "CR_1_6",
|
||||
9: "CR_5_6",
|
||||
0: "CR_UNDEFINED",
|
||||
1: "CR_4_5",
|
||||
2: "CR_4_6",
|
||||
3: "CR_4_7",
|
||||
4: "CR_4_8",
|
||||
5: "CR_3_8",
|
||||
6: "CR_2_6",
|
||||
7: "CR_1_4",
|
||||
8: "CR_1_6",
|
||||
9: "CR_5_6",
|
||||
10: "CR_LI_4_5",
|
||||
11: "CR_LI_4_6",
|
||||
12: "CR_LI_4_8",
|
||||
}
|
||||
CodeRate_value = map[string]int32{
|
||||
"CR_UNDEFINED": 0,
|
||||
@ -64,6 +70,9 @@ var (
|
||||
"CR_1_4": 7,
|
||||
"CR_1_6": 8,
|
||||
"CR_5_6": 9,
|
||||
"CR_LI_4_5": 10,
|
||||
"CR_LI_4_6": 11,
|
||||
"CR_LI_4_8": 12,
|
||||
}
|
||||
)
|
||||
|
||||
@ -1454,17 +1463,21 @@ type UplinkRxInfo struct {
|
||||
// SNR.
|
||||
// Note: only available for LoRa modulation.
|
||||
Snr float32 `protobuf:"fixed32,7,opt,name=snr,proto3" json:"snr,omitempty"`
|
||||
// Channel.
|
||||
Channel uint32 `protobuf:"varint,8,opt,name=channel,proto3" json:"channel,omitempty"`
|
||||
// RF chain.
|
||||
RfChain uint32 `protobuf:"varint,9,opt,name=rf_chain,json=rfChain,proto3" json:"rf_chain,omitempty"`
|
||||
// Board.
|
||||
Board uint32 `protobuf:"varint,8,opt,name=board,proto3" json:"board,omitempty"`
|
||||
Board uint32 `protobuf:"varint,10,opt,name=board,proto3" json:"board,omitempty"`
|
||||
// Antenna.
|
||||
Antenna uint32 `protobuf:"varint,9,opt,name=antenna,proto3" json:"antenna,omitempty"`
|
||||
Antenna uint32 `protobuf:"varint,11,opt,name=antenna,proto3" json:"antenna,omitempty"`
|
||||
// Location.
|
||||
Location *common.Location `protobuf:"bytes,10,opt,name=location,proto3" json:"location,omitempty"`
|
||||
Location *common.Location `protobuf:"bytes,12,opt,name=location,proto3" json:"location,omitempty"`
|
||||
// Gateway specific context.
|
||||
// This value must be returned to the gateway on (Class-A) downlink.
|
||||
Context []byte `protobuf:"bytes,11,opt,name=context,proto3" json:"context,omitempty"`
|
||||
Context []byte `protobuf:"bytes,13,opt,name=context,proto3" json:"context,omitempty"`
|
||||
// Properties.
|
||||
Metadata *structpb.Struct `protobuf:"bytes,12,opt,name=metadata,proto3" json:"metadata,omitempty"`
|
||||
Metadata *structpb.Struct `protobuf:"bytes,14,opt,name=metadata,proto3" json:"metadata,omitempty"`
|
||||
}
|
||||
|
||||
func (x *UplinkRxInfo) Reset() {
|
||||
@ -1548,6 +1561,20 @@ func (x *UplinkRxInfo) GetSnr() float32 {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *UplinkRxInfo) GetChannel() uint32 {
|
||||
if x != nil {
|
||||
return x.Channel
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *UplinkRxInfo) GetRfChain() uint32 {
|
||||
if x != nil {
|
||||
return x.RfChain
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *UplinkRxInfo) GetBoard() uint32 {
|
||||
if x != nil {
|
||||
return x.Board
|
||||
@ -3538,8 +3565,8 @@ var file_gw_gw_proto_rawDesc = []byte{
|
||||
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, 0x10, 0x0a, 0x0e,
|
||||
0x66, 0x69, 0x6e, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xee,
|
||||
0x03, 0x0a, 0x0c, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x52, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12,
|
||||
0x66, 0x69, 0x6e, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xa3,
|
||||
0x04, 0x0a, 0x0c, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x52, 0x78, 0x49, 0x6e, 0x66, 0x6f, 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, 0x12, 0x1b,
|
||||
0x0a, 0x09, 0x75, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||
@ -3559,315 +3586,321 @@ var file_gw_gw_proto_rawDesc = []byte{
|
||||
0x69, 0x6e, 0x63, 0x65, 0x47, 0x70, 0x73, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x12, 0x0a, 0x04,
|
||||
0x72, 0x73, 0x73, 0x69, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x72, 0x73, 0x73, 0x69,
|
||||
0x12, 0x10, 0x0a, 0x03, 0x73, 0x6e, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x73,
|
||||
0x6e, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28,
|
||||
0x0d, 0x52, 0x05, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x6e, 0x74, 0x65,
|
||||
0x6e, 0x6e, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x61, 0x6e, 0x74, 0x65, 0x6e,
|
||||
0x6e, 0x61, 0x12, 0x2c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a,
|
||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x6f,
|
||||
0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28,
|
||||
0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x33, 0x0a, 0x08, 0x6d, 0x65,
|
||||
0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67,
|
||||
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53,
|
||||
0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22,
|
||||
0xaf, 0x05, 0x0a, 0x14, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x78, 0x49, 0x6e,
|
||||
0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65,
|
||||
0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x67, 0x61,
|
||||
0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x65, 0x71, 0x75,
|
||||
0x65, 0x6e, 0x63, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x66, 0x72, 0x65, 0x71,
|
||||
0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x06,
|
||||
0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x0a, 0x6d,
|
||||
0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32,
|
||||
0x12, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
|
||||
0x4a, 0x0a, 0x14, 0x6c, 0x6f, 0x72, 0x61, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e,
|
||||
0x67, 0x77, 0x2e, 0x4c, 0x6f, 0x72, 0x61, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x12, 0x6c, 0x6f, 0x72, 0x61, 0x4d, 0x6f, 0x64,
|
||||
0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x47, 0x0a, 0x13, 0x66,
|
||||
0x73, 0x6b, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e,
|
||||
0x66, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x77, 0x2e, 0x46, 0x73,
|
||||
0x6b, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x48,
|
||||
0x00, 0x52, 0x11, 0x66, 0x73, 0x6b, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x18, 0x0a, 0x20,
|
||||
0x01, 0x28, 0x0d, 0x52, 0x05, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x6e,
|
||||
0x74, 0x65, 0x6e, 0x6e, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x61, 0x6e, 0x74,
|
||||
0x65, 0x6e, 0x6e, 0x61, 0x12, 0x2a, 0x0a, 0x06, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x0c,
|
||||
0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x67, 0x77, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x69,
|
||||
0x6e, 0x6b, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67,
|
||||
0x12, 0x53, 0x0a, 0x17, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x5f,
|
||||
0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x01, 0x28,
|
||||
0x0b, 0x32, 0x19, 0x2e, 0x67, 0x77, 0x2e, 0x49, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65,
|
||||
0x6c, 0x79, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x01, 0x52, 0x15,
|
||||
0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x69, 0x6e,
|
||||
0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x41, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x74,
|
||||
0x69, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b,
|
||||
0x32, 0x13, 0x2e, 0x67, 0x77, 0x2e, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x69, 0x6e,
|
||||
0x67, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x01, 0x52, 0x0f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x54, 0x69,
|
||||
0x6d, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4b, 0x0a, 0x15, 0x67, 0x70, 0x73, 0x5f,
|
||||
0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x66,
|
||||
0x6f, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x77, 0x2e, 0x47, 0x50, 0x53,
|
||||
0x45, 0x70, 0x6f, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x48,
|
||||
0x01, 0x52, 0x12, 0x67, 0x70, 0x73, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x69, 0x6e,
|
||||
0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74,
|
||||
0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x42,
|
||||
0x11, 0x0a, 0x0f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e,
|
||||
0x66, 0x6f, 0x42, 0x0d, 0x0a, 0x0b, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x66,
|
||||
0x6f, 0x22, 0xe2, 0x01, 0x0a, 0x0e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x78,
|
||||
0x49, 0x6e, 0x66, 0x6f, 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, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||
0x05, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x75,
|
||||
0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x67,
|
||||
0x77, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x6d, 0x6f,
|
||||
0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6f, 0x61, 0x72,
|
||||
0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x12, 0x18,
|
||||
0x0a, 0x07, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52,
|
||||
0x07, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x69, 0x6d, 0x69,
|
||||
0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x67, 0x77, 0x2e, 0x54, 0x69,
|
||||
0x6d, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07,
|
||||
0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63,
|
||||
0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0xb9, 0x01, 0x0a, 0x06, 0x54, 0x69, 0x6d, 0x69, 0x6e,
|
||||
0x67, 0x12, 0x3d, 0x0a, 0x0b, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x77, 0x2e, 0x49, 0x6d, 0x6d, 0x65,
|
||||
0x6e, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x08, 0x20,
|
||||
0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x08,
|
||||
0x72, 0x66, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07,
|
||||
0x72, 0x66, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6f, 0x61, 0x72, 0x64,
|
||||
0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a,
|
||||
0x07, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07,
|
||||
0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x12, 0x2c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
|
||||
0x6f, 0x6e, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63,
|
||||
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74,
|
||||
0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12,
|
||||
0x33, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0e, 0x20, 0x01, 0x28,
|
||||
0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||
0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61,
|
||||
0x64, 0x61, 0x74, 0x61, 0x22, 0xaf, 0x05, 0x0a, 0x14, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e,
|
||||
0x6b, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x1d, 0x0a,
|
||||
0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x0c, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09,
|
||||
0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52,
|
||||
0x09, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f,
|
||||
0x77, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72,
|
||||
0x12, 0x32, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07,
|
||||
0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x6f,
|
||||
0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x61,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x14, 0x6c, 0x6f, 0x72, 0x61, 0x5f, 0x6d, 0x6f, 0x64,
|
||||
0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01,
|
||||
0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x77, 0x2e, 0x4c, 0x6f, 0x72, 0x61, 0x4d, 0x6f, 0x64, 0x75,
|
||||
0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x12, 0x6c, 0x6f,
|
||||
0x72, 0x61, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f,
|
||||
0x12, 0x47, 0x0a, 0x13, 0x66, 0x73, 0x6b, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e,
|
||||
0x67, 0x77, 0x2e, 0x46, 0x73, 0x6b, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x11, 0x66, 0x73, 0x6b, 0x4d, 0x6f, 0x64, 0x75, 0x6c,
|
||||
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6f, 0x61,
|
||||
0x72, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x12,
|
||||
0x18, 0x0a, 0x07, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d,
|
||||
0x52, 0x07, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x12, 0x2a, 0x0a, 0x06, 0x74, 0x69, 0x6d,
|
||||
0x69, 0x6e, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x67, 0x77, 0x2e, 0x44,
|
||||
0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x74,
|
||||
0x69, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x53, 0x0a, 0x17, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61,
|
||||
0x74, 0x65, 0x6c, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f,
|
||||
0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x77, 0x2e, 0x49, 0x6d, 0x6d, 0x65,
|
||||
0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66,
|
||||
0x6f, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79,
|
||||
0x12, 0x2b, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||
0x13, 0x2e, 0x67, 0x77, 0x2e, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67,
|
||||
0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x35, 0x0a,
|
||||
0x09, 0x67, 0x70, 0x73, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
|
||||
0x32, 0x16, 0x2e, 0x67, 0x77, 0x2e, 0x47, 0x50, 0x53, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x54, 0x69,
|
||||
0x6d, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x08, 0x67, 0x70, 0x73, 0x45,
|
||||
0x70, 0x6f, 0x63, 0x68, 0x42, 0x0c, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,
|
||||
0x72, 0x73, 0x22, 0x17, 0x0a, 0x15, 0x49, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c,
|
||||
0x79, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x42, 0x0a, 0x0f, 0x44,
|
||||
0x65, 0x6c, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2f,
|
||||
0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
|
||||
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
|
||||
0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x22,
|
||||
0x60, 0x0a, 0x12, 0x47, 0x50, 0x53, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x69, 0x6e,
|
||||
0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4a, 0x0a, 0x14, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x69,
|
||||
0x6e, 0x63, 0x65, 0x5f, 0x67, 0x70, 0x73, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
|
||||
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11,
|
||||
0x74, 0x69, 0x6d, 0x65, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x47, 0x70, 0x73, 0x45, 0x70, 0x6f, 0x63,
|
||||
0x68, 0x22, 0x80, 0x02, 0x0a, 0x0b, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x46, 0x72, 0x61, 0x6d,
|
||||
0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x68, 0x79, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x70, 0x68, 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f,
|
||||
0x61, 0x64, 0x12, 0x3c, 0x0a, 0x0e, 0x74, 0x78, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x6c, 0x65,
|
||||
0x67, 0x61, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x77, 0x2e,
|
||||
0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61,
|
||||
0x63, 0x79, 0x52, 0x0c, 0x74, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79,
|
||||
0x12, 0x3c, 0x0a, 0x0e, 0x72, 0x78, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x6c, 0x65, 0x67, 0x61,
|
||||
0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x77, 0x2e, 0x55, 0x70,
|
||||
0x6c, 0x69, 0x6e, 0x6b, 0x52, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79,
|
||||
0x52, 0x0c, 0x72, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x29,
|
||||
0x0a, 0x07, 0x74, 0x78, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||
0x10, 0x2e, 0x67, 0x77, 0x2e, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x78, 0x49, 0x6e, 0x66,
|
||||
0x6f, 0x52, 0x06, 0x74, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29, 0x0a, 0x07, 0x72, 0x78, 0x5f,
|
||||
0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x77, 0x2e,
|
||||
0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x52, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x72, 0x78,
|
||||
0x49, 0x6e, 0x66, 0x6f, 0x22, 0x87, 0x01, 0x0a, 0x0e, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x46,
|
||||
0x72, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x68, 0x79, 0x5f, 0x70,
|
||||
0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x70, 0x68,
|
||||
0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x29, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x69,
|
||||
0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x77, 0x2e, 0x55,
|
||||
0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x74, 0x78, 0x49,
|
||||
0x6e, 0x66, 0x6f, 0x12, 0x29, 0x0a, 0x07, 0x72, 0x78, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03,
|
||||
0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x77, 0x2e, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b,
|
||||
0x52, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x72, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xd6,
|
||||
0x01, 0x0a, 0x0d, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x46, 0x72, 0x61, 0x6d, 0x65,
|
||||
0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x69, 0x64, 0x18,
|
||||
0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x49,
|
||||
0x64, 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x69, 0x64,
|
||||
0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x64,
|
||||
0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12,
|
||||
0x2b, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15,
|
||||
0x2e, 0x67, 0x77, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x46, 0x72, 0x61, 0x6d,
|
||||
0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2a, 0x0a, 0x11,
|
||||
0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63,
|
||||
0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
|
||||
0x49, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65,
|
||||
0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61,
|
||||
0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x22, 0xa1, 0x01, 0x0a, 0x11, 0x44, 0x6f, 0x77, 0x6e,
|
||||
0x6c, 0x69, 0x6e, 0x6b, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1f, 0x0a,
|
||||
0x0b, 0x70, 0x68, 0x79, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x0c, 0x52, 0x0a, 0x70, 0x68, 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x3e,
|
||||
0x0a, 0x0e, 0x74, 0x78, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x77, 0x2e, 0x44, 0x6f, 0x77, 0x6e,
|
||||
0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79,
|
||||
0x52, 0x0c, 0x74, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x2b,
|
||||
0x0a, 0x07, 0x74, 0x78, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||
0x12, 0x2e, 0x67, 0x77, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x78, 0x49,
|
||||
0x6e, 0x66, 0x6f, 0x52, 0x06, 0x74, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xd6, 0x01, 0x0a, 0x0d,
|
||||
0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x78, 0x41, 0x63, 0x6b, 0x12, 0x2a, 0x0a,
|
||||
0x11, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x5f, 0x6c, 0x65, 0x67, 0x61,
|
||||
0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61,
|
||||
0x79, 0x49, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74,
|
||||
0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67,
|
||||
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x6f, 0x77, 0x6e,
|
||||
0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64,
|
||||
0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x6f, 0x77,
|
||||
0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x69, 0x64, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x18,
|
||||
0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x49,
|
||||
0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73,
|
||||
0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x77, 0x2e, 0x44, 0x6f, 0x77, 0x6e,
|
||||
0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x78, 0x41, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69,
|
||||
0x74, 0x65, 0x6d, 0x73, 0x22, 0x3c, 0x0a, 0x11, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b,
|
||||
0x54, 0x78, 0x41, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x27, 0x0a, 0x06, 0x73, 0x74, 0x61,
|
||||
0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x67, 0x77, 0x2e, 0x54,
|
||||
0x78, 0x41, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
|
||||
0x75, 0x73, 0x22, 0xf3, 0x01, 0x0a, 0x14, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x6f,
|
||||
0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x67,
|
||||
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49,
|
||||
0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77,
|
||||
0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74,
|
||||
0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
|
||||
0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
|
||||
0x12, 0x34, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03,
|
||||
0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x77, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43,
|
||||
0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x63, 0x68,
|
||||
0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x40, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f,
|
||||
0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
|
||||
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
|
||||
0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x73,
|
||||
0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0xe3, 0x02, 0x0a, 0x14, 0x43, 0x68, 0x61,
|
||||
0x6f, 0x48, 0x01, 0x52, 0x15, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79,
|
||||
0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x41, 0x0a, 0x11, 0x64, 0x65,
|
||||
0x6c, 0x61, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18,
|
||||
0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x77, 0x2e, 0x44, 0x65, 0x6c, 0x61, 0x79,
|
||||
0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x01, 0x52, 0x0f, 0x64, 0x65,
|
||||
0x6c, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4b, 0x0a,
|
||||
0x15, 0x67, 0x70, 0x73, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x69, 0x6e,
|
||||
0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67,
|
||||
0x77, 0x2e, 0x47, 0x50, 0x53, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67,
|
||||
0x49, 0x6e, 0x66, 0x6f, 0x48, 0x01, 0x52, 0x12, 0x67, 0x70, 0x73, 0x45, 0x70, 0x6f, 0x63, 0x68,
|
||||
0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f,
|
||||
0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e,
|
||||
0x74, 0x65, 0x78, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x42, 0x0d, 0x0a, 0x0b, 0x74, 0x69, 0x6d, 0x69, 0x6e,
|
||||
0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0xe2, 0x01, 0x0a, 0x0e, 0x44, 0x6f, 0x77, 0x6e, 0x6c,
|
||||
0x69, 0x6e, 0x6b, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 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, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x2e, 0x0a,
|
||||
0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,
|
||||
0x0b, 0x32, 0x0e, 0x2e, 0x67, 0x77, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a,
|
||||
0x05, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x62, 0x6f,
|
||||
0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x18, 0x05,
|
||||
0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x12, 0x22, 0x0a,
|
||||
0x06, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e,
|
||||
0x67, 0x77, 0x2e, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x74, 0x69, 0x6d, 0x69, 0x6e,
|
||||
0x67, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x07, 0x20, 0x01,
|
||||
0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0xb9, 0x01, 0x0a, 0x06,
|
||||
0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x3d, 0x0a, 0x0b, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69,
|
||||
0x61, 0x74, 0x65, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x77,
|
||||
0x2e, 0x49, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x69,
|
||||
0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69,
|
||||
0x61, 0x74, 0x65, 0x6c, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x02,
|
||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x77, 0x2e, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x54,
|
||||
0x69, 0x6d, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x05, 0x64, 0x65, 0x6c,
|
||||
0x61, 0x79, 0x12, 0x35, 0x0a, 0x09, 0x67, 0x70, 0x73, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18,
|
||||
0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x77, 0x2e, 0x47, 0x50, 0x53, 0x45, 0x70,
|
||||
0x6f, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52,
|
||||
0x08, 0x67, 0x70, 0x73, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x42, 0x0c, 0x0a, 0x0a, 0x70, 0x61, 0x72,
|
||||
0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x17, 0x0a, 0x15, 0x49, 0x6d, 0x6d, 0x65, 0x64,
|
||||
0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f,
|
||||
0x22, 0x42, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x49,
|
||||
0x6e, 0x66, 0x6f, 0x12, 0x2f, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
|
||||
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x64,
|
||||
0x65, 0x6c, 0x61, 0x79, 0x22, 0x60, 0x0a, 0x12, 0x47, 0x50, 0x53, 0x45, 0x70, 0x6f, 0x63, 0x68,
|
||||
0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4a, 0x0a, 0x14, 0x74, 0x69,
|
||||
0x6d, 0x65, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x67, 0x70, 0x73, 0x5f, 0x65, 0x70, 0x6f,
|
||||
0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
|
||||
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x52, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x47, 0x70,
|
||||
0x73, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x22, 0x80, 0x02, 0x0a, 0x0b, 0x55, 0x70, 0x6c, 0x69, 0x6e,
|
||||
0x6b, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x68, 0x79, 0x5f, 0x70, 0x61,
|
||||
0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x70, 0x68, 0x79,
|
||||
0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x3c, 0x0a, 0x0e, 0x74, 0x78, 0x5f, 0x69, 0x6e,
|
||||
0x66, 0x6f, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||
0x16, 0x2e, 0x67, 0x77, 0x2e, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x78, 0x49, 0x6e, 0x66,
|
||||
0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x0c, 0x74, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x4c,
|
||||
0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x3c, 0x0a, 0x0e, 0x72, 0x78, 0x5f, 0x69, 0x6e, 0x66, 0x6f,
|
||||
0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e,
|
||||
0x67, 0x77, 0x2e, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x52, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x4c,
|
||||
0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x0c, 0x72, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67,
|
||||
0x61, 0x63, 0x79, 0x12, 0x29, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04,
|
||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x77, 0x2e, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b,
|
||||
0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x74, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29,
|
||||
0x0a, 0x07, 0x72, 0x78, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||
0x10, 0x2e, 0x67, 0x77, 0x2e, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x52, 0x78, 0x49, 0x6e, 0x66,
|
||||
0x6f, 0x52, 0x06, 0x72, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x87, 0x01, 0x0a, 0x0e, 0x55, 0x70,
|
||||
0x6c, 0x69, 0x6e, 0x6b, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x74, 0x12, 0x1f, 0x0a, 0x0b,
|
||||
0x70, 0x68, 0x79, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x0c, 0x52, 0x0a, 0x70, 0x68, 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x29, 0x0a,
|
||||
0x07, 0x74, 0x78, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10,
|
||||
0x2e, 0x67, 0x77, 0x2e, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f,
|
||||
0x52, 0x06, 0x74, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29, 0x0a, 0x07, 0x72, 0x78, 0x5f, 0x69,
|
||||
0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x77, 0x2e, 0x55,
|
||||
0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x52, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x72, 0x78, 0x49,
|
||||
0x6e, 0x66, 0x6f, 0x22, 0xd6, 0x01, 0x0a, 0x0d, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b,
|
||||
0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e,
|
||||
0x6b, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x6f, 0x77, 0x6e,
|
||||
0x6c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x69,
|
||||
0x6e, 0x6b, 0x5f, 0x69, 0x64, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01,
|
||||
0x28, 0x0c, 0x52, 0x10, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x4c, 0x65,
|
||||
0x67, 0x61, 0x63, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20,
|
||||
0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x77, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e,
|
||||
0x6b, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d,
|
||||
0x73, 0x12, 0x2a, 0x0a, 0x11, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x5f,
|
||||
0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x67, 0x61,
|
||||
0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x1d, 0x0a,
|
||||
0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x22, 0xa1, 0x01, 0x0a,
|
||||
0x11, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x74,
|
||||
0x65, 0x6d, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x68, 0x79, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61,
|
||||
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x70, 0x68, 0x79, 0x50, 0x61, 0x79, 0x6c,
|
||||
0x6f, 0x61, 0x64, 0x12, 0x3e, 0x0a, 0x0e, 0x74, 0x78, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x6c,
|
||||
0x65, 0x67, 0x61, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x77,
|
||||
0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x4c,
|
||||
0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x0c, 0x74, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67,
|
||||
0x61, 0x63, 0x79, 0x12, 0x2b, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03,
|
||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x77, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x69,
|
||||
0x6e, 0x6b, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x74, 0x78, 0x49, 0x6e, 0x66, 0x6f,
|
||||
0x22, 0xd6, 0x01, 0x0a, 0x0d, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x78, 0x41,
|
||||
0x63, 0x6b, 0x12, 0x2a, 0x0a, 0x11, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64,
|
||||
0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x67,
|
||||
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x1d,
|
||||
0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x12, 0x1f, 0x0a,
|
||||
0x0b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
|
||||
0x28, 0x0d, 0x52, 0x0a, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x2c,
|
||||
0x0a, 0x12, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x69, 0x64, 0x5f, 0x6c, 0x65,
|
||||
0x67, 0x61, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x64, 0x6f, 0x77, 0x6e,
|
||||
0x6c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x2b, 0x0a, 0x05,
|
||||
0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x77,
|
||||
0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x78, 0x41, 0x63, 0x6b, 0x49, 0x74,
|
||||
0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x3c, 0x0a, 0x11, 0x44, 0x6f, 0x77,
|
||||
0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x78, 0x41, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x27,
|
||||
0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f,
|
||||
0x2e, 0x67, 0x77, 0x2e, 0x54, 0x78, 0x41, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
|
||||
0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xf3, 0x01, 0x0a, 0x14, 0x47, 0x61, 0x74, 0x65,
|
||||
0x77, 0x61, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x12, 0x2a, 0x0a, 0x11, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x5f, 0x6c,
|
||||
0x65, 0x67, 0x61, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x67, 0x61, 0x74,
|
||||
0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x1d, 0x0a, 0x0a,
|
||||
0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
|
||||
0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76,
|
||||
0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65,
|
||||
0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
|
||||
0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x77, 0x2e, 0x43, 0x68, 0x61,
|
||||
0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
|
||||
0x6e, 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,
|
||||
0x3f, 0x0a, 0x11, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65,
|
||||
0x67, 0x61, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x6d,
|
||||
0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10,
|
||||
0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79,
|
||||
0x12, 0x50, 0x0a, 0x16, 0x6c, 0x6f, 0x72, 0x61, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
|
||||
0x32, 0x18, 0x2e, 0x67, 0x77, 0x2e, 0x4c, 0x6f, 0x72, 0x61, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x61,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x14, 0x6c, 0x6f,
|
||||
0x72, 0x61, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66,
|
||||
0x69, 0x67, 0x12, 0x4d, 0x0a, 0x15, 0x66, 0x73, 0x6b, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x61,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28,
|
||||
0x0b, 0x32, 0x17, 0x2e, 0x67, 0x77, 0x2e, 0x46, 0x73, 0x6b, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x61,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x13, 0x66, 0x73,
|
||||
0x6b, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69,
|
||||
0x67, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d,
|
||||
0x52, 0x05, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x6d, 0x6f, 0x64,
|
||||
0x75, 0x6c, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x64, 0x65,
|
||||
0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x13, 0x0a, 0x11, 0x6d, 0x6f, 0x64,
|
||||
0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x8c,
|
||||
0x01, 0x0a, 0x14, 0x4c, 0x6f, 0x72, 0x61, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x29, 0x0a, 0x10, 0x62, 0x61, 0x6e, 0x64, 0x77,
|
||||
0x69, 0x64, 0x74, 0x68, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x0d, 0x52, 0x0f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x4c, 0x65, 0x67, 0x61,
|
||||
0x63, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18,
|
||||
0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68,
|
||||
0x12, 0x2b, 0x0a, 0x11, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61,
|
||||
0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x10, 0x73, 0x70, 0x72,
|
||||
0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x22, 0x78, 0x0a,
|
||||
0x13, 0x46, 0x73, 0x6b, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f,
|
||||
0x6e, 0x66, 0x69, 0x67, 0x12, 0x29, 0x0a, 0x10, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74,
|
||||
0x68, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f,
|
||||
0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12,
|
||||
0x1c, 0x0a, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01,
|
||||
0x28, 0x0d, 0x52, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x18, 0x0a,
|
||||
0x07, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07,
|
||||
0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x22, 0xc1, 0x02, 0x0a, 0x19, 0x47, 0x61, 0x74, 0x65,
|
||||
0x77, 0x61, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
|
||||
0x5f, 0x69, 0x64, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c,
|
||||
0x52, 0x0f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63,
|
||||
0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18,
|
||||
0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64,
|
||||
0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x78,
|
||||
0x65, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x65, 0x78, 0x65,
|
||||
0x63, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x64, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01,
|
||||
0x28, 0x0c, 0x52, 0x05, 0x73, 0x74, 0x64, 0x69, 0x6e, 0x12, 0x50, 0x0a, 0x0b, 0x65, 0x6e, 0x76,
|
||||
0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e,
|
||||
0x2e, 0x67, 0x77, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x61,
|
||||
0x6e, 0x64, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6e,
|
||||
0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b,
|
||||
0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x3e, 0x0a, 0x10, 0x45,
|
||||
0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
|
||||
0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
|
||||
0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
|
||||
0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xc6, 0x01, 0x0a, 0x1a,
|
||||
0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x45, 0x78,
|
||||
0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x67, 0x61,
|
||||
0x6e, 0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x40, 0x0a, 0x0e, 0x73,
|
||||
0x74, 0x61, 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20,
|
||||
0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
|
||||
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d,
|
||||
0x73, 0x74, 0x61, 0x74, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0xe3, 0x02,
|
||||
0x0a, 0x14, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75,
|
||||
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x3f, 0x0a, 0x11, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32,
|
||||
0x12, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x52, 0x10, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c,
|
||||
0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x50, 0x0a, 0x16, 0x6c, 0x6f, 0x72, 0x61, 0x5f, 0x6d, 0x6f,
|
||||
0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18,
|
||||
0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x77, 0x2e, 0x4c, 0x6f, 0x72, 0x61, 0x4d,
|
||||
0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48,
|
||||
0x00, 0x52, 0x14, 0x6c, 0x6f, 0x72, 0x61, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4d, 0x0a, 0x15, 0x66, 0x73, 0x6b, 0x5f, 0x6d,
|
||||
0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
|
||||
0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x77, 0x2e, 0x46, 0x73, 0x6b, 0x4d,
|
||||
0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48,
|
||||
0x00, 0x52, 0x13, 0x66, 0x73, 0x6b, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x18,
|
||||
0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x12, 0x20, 0x0a, 0x0b,
|
||||
0x64, 0x65, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28,
|
||||
0x0d, 0x52, 0x0b, 0x64, 0x65, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x13,
|
||||
0x0a, 0x11, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e,
|
||||
0x66, 0x69, 0x67, 0x22, 0x8c, 0x01, 0x0a, 0x14, 0x4c, 0x6f, 0x72, 0x61, 0x4d, 0x6f, 0x64, 0x75,
|
||||
0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x29, 0x0a, 0x10,
|
||||
0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74,
|
||||
0x68, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77,
|
||||
0x69, 0x64, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x62, 0x61, 0x6e, 0x64,
|
||||
0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x69,
|
||||
0x6e, 0x67, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d,
|
||||
0x52, 0x10, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x63, 0x74, 0x6f,
|
||||
0x72, 0x73, 0x22, 0x78, 0x0a, 0x13, 0x46, 0x73, 0x6b, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x29, 0x0a, 0x10, 0x62, 0x61, 0x6e,
|
||||
0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x0d, 0x52, 0x0f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x4c, 0x65,
|
||||
0x67, 0x61, 0x63, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74,
|
||||
0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64,
|
||||
0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x0d, 0x52, 0x07, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x22, 0xc1, 0x02, 0x0a,
|
||||
0x19, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x45,
|
||||
0x78, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x67, 0x61,
|
||||
0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64,
|
||||
0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61,
|
||||
0x79, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65,
|
||||
0x77, 0x61, 0x79, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x69, 0x64,
|
||||
0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x65, 0x78, 0x65, 0x63, 0x49, 0x64, 0x12, 0x16,
|
||||
0x0a, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06,
|
||||
0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72,
|
||||
0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x12, 0x14,
|
||||
0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65,
|
||||
0x72, 0x72, 0x6f, 0x72, 0x22, 0x7e, 0x0a, 0x17, 0x52, 0x61, 0x77, 0x50, 0x61, 0x63, 0x6b, 0x65,
|
||||
0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12,
|
||||
0x77, 0x61, 0x79, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12,
|
||||
0x17, 0x0a, 0x07, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d,
|
||||
0x52, 0x06, 0x65, 0x78, 0x65, 0x63, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x64, 0x69,
|
||||
0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x73, 0x74, 0x64, 0x69, 0x6e, 0x12, 0x50,
|
||||
0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20,
|
||||
0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x77, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
|
||||
0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65,
|
||||
0x73, 0x74, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e,
|
||||
0x74, 0x72, 0x79, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74,
|
||||
0x1a, 0x3e, 0x0a, 0x10, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x45,
|
||||
0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
|
||||
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
|
||||
0x22, 0xc6, 0x01, 0x0a, 0x1a, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x6f, 0x6d, 0x6d,
|
||||
0x61, 0x6e, 0x64, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
|
||||
0x2a, 0x0a, 0x11, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x5f, 0x6c, 0x65,
|
||||
0x67, 0x61, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x67, 0x61, 0x74, 0x65,
|
||||
0x77, 0x61, 0x79, 0x49, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x67,
|
||||
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61,
|
||||
0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79,
|
||||
0x6c, 0x6f, 0x61, 0x64, 0x22, 0x80, 0x01, 0x0a, 0x19, 0x52, 0x61, 0x77, 0x50, 0x61, 0x63, 0x6b,
|
||||
0x65, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x61,
|
||||
0x6e, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64,
|
||||
0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x67,
|
||||
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x1d,
|
||||
0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x12, 0x18, 0x0a,
|
||||
0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07,
|
||||
0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xa3, 0x01, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x6e,
|
||||
0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
|
||||
0x5f, 0x69, 0x64, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c,
|
||||
0x52, 0x0f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63,
|
||||
0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18,
|
||||
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64,
|
||||
0x12, 0x29, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32,
|
||||
0x13, 0x2e, 0x67, 0x77, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53,
|
||||
0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x20, 0x0a, 0x05, 0x53,
|
||||
0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x4f, 0x46, 0x46, 0x4c, 0x49, 0x4e, 0x45, 0x10,
|
||||
0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x2a, 0x88, 0x01,
|
||||
0x0a, 0x08, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x52,
|
||||
0x5f, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06,
|
||||
0x43, 0x52, 0x5f, 0x34, 0x5f, 0x35, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x5f, 0x34,
|
||||
0x5f, 0x36, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x5f, 0x34, 0x5f, 0x37, 0x10, 0x03,
|
||||
0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x5f, 0x34, 0x5f, 0x38, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06,
|
||||
0x43, 0x52, 0x5f, 0x33, 0x5f, 0x38, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x5f, 0x32,
|
||||
0x5f, 0x36, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x5f, 0x31, 0x5f, 0x34, 0x10, 0x07,
|
||||
0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x5f, 0x31, 0x5f, 0x36, 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06,
|
||||
0x43, 0x52, 0x5f, 0x35, 0x5f, 0x36, 0x10, 0x09, 0x2a, 0x3b, 0x0a, 0x0e, 0x44, 0x6f, 0x77, 0x6e,
|
||||
0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x4d,
|
||||
0x4d, 0x45, 0x44, 0x49, 0x41, 0x54, 0x45, 0x4c, 0x59, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x44,
|
||||
0x45, 0x4c, 0x41, 0x59, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x47, 0x50, 0x53, 0x5f, 0x45, 0x50,
|
||||
0x4f, 0x43, 0x48, 0x10, 0x02, 0x2a, 0x37, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x65, 0x54, 0x69, 0x6d,
|
||||
0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f,
|
||||
0x4e, 0x45, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45,
|
||||
0x44, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x4c, 0x41, 0x49, 0x4e, 0x10, 0x02, 0x2a, 0x30,
|
||||
0x0a, 0x09, 0x43, 0x52, 0x43, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0a, 0x0a, 0x06, 0x4e,
|
||||
0x4f, 0x5f, 0x43, 0x52, 0x43, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x41, 0x44, 0x5f, 0x43,
|
||||
0x52, 0x43, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x43, 0x5f, 0x4f, 0x4b, 0x10, 0x02,
|
||||
0x2a, 0xbc, 0x01, 0x0a, 0x0b, 0x54, 0x78, 0x41, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
|
||||
0x12, 0x0b, 0x0a, 0x07, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x44, 0x10, 0x00, 0x12, 0x06, 0x0a,
|
||||
0x02, 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x4f, 0x4f, 0x5f, 0x4c, 0x41, 0x54,
|
||||
0x45, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x4f, 0x4f, 0x5f, 0x45, 0x41, 0x52, 0x4c, 0x59,
|
||||
0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f, 0x4c, 0x4c, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x5f,
|
||||
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f, 0x4c, 0x4c,
|
||||
0x49, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x10, 0x05, 0x12, 0x0b,
|
||||
0x0a, 0x07, 0x54, 0x58, 0x5f, 0x46, 0x52, 0x45, 0x51, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x54,
|
||||
0x58, 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x47, 0x50, 0x53,
|
||||
0x5f, 0x55, 0x4e, 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x51,
|
||||
0x55, 0x45, 0x55, 0x45, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x49,
|
||||
0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x0a, 0x42,
|
||||
0x55, 0x0a, 0x14, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x67, 0x77, 0x42, 0x0c, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
|
||||
0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2d, 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, 0x67, 0x77, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x78,
|
||||
0x65, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x65, 0x78, 0x65,
|
||||
0x63, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20,
|
||||
0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73,
|
||||
0x74, 0x64, 0x65, 0x72, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x74, 0x64,
|
||||
0x65, 0x72, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x7e, 0x0a, 0x17, 0x52, 0x61, 0x77,
|
||||
0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x72, 0x45,
|
||||
0x76, 0x65, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f,
|
||||
0x69, 0x64, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52,
|
||||
0x0f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79,
|
||||
0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x04,
|
||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x12,
|
||||
0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c,
|
||||
0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x80, 0x01, 0x0a, 0x19, 0x52, 0x61,
|
||||
0x77, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x72,
|
||||
0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x67, 0x61, 0x74, 0x65, 0x77,
|
||||
0x61, 0x79, 0x5f, 0x69, 0x64, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x0c, 0x52, 0x0f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x4c, 0x65, 0x67,
|
||||
0x61, 0x63, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69,
|
||||
0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
|
||||
0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20,
|
||||
0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xa3, 0x01, 0x0a,
|
||||
0x09, 0x43, 0x6f, 0x6e, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x67, 0x61,
|
||||
0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64,
|
||||
0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61,
|
||||
0x79, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65,
|
||||
0x77, 0x61, 0x79, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02,
|
||||
0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x67, 0x77, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x53, 0x74,
|
||||
0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
|
||||
0x22, 0x20, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x4f, 0x46, 0x46,
|
||||
0x4c, 0x49, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x4e, 0x4c, 0x49, 0x4e, 0x45,
|
||||
0x10, 0x01, 0x2a, 0xb5, 0x01, 0x0a, 0x08, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12,
|
||||
0x10, 0x0a, 0x0c, 0x43, 0x52, 0x5f, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10,
|
||||
0x00, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x5f, 0x34, 0x5f, 0x35, 0x10, 0x01, 0x12, 0x0a, 0x0a,
|
||||
0x06, 0x43, 0x52, 0x5f, 0x34, 0x5f, 0x36, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x5f,
|
||||
0x34, 0x5f, 0x37, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x5f, 0x34, 0x5f, 0x38, 0x10,
|
||||
0x04, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x5f, 0x33, 0x5f, 0x38, 0x10, 0x05, 0x12, 0x0a, 0x0a,
|
||||
0x06, 0x43, 0x52, 0x5f, 0x32, 0x5f, 0x36, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x5f,
|
||||
0x31, 0x5f, 0x34, 0x10, 0x07, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x5f, 0x31, 0x5f, 0x36, 0x10,
|
||||
0x08, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x5f, 0x35, 0x5f, 0x36, 0x10, 0x09, 0x12, 0x0d, 0x0a,
|
||||
0x09, 0x43, 0x52, 0x5f, 0x4c, 0x49, 0x5f, 0x34, 0x5f, 0x35, 0x10, 0x0a, 0x12, 0x0d, 0x0a, 0x09,
|
||||
0x43, 0x52, 0x5f, 0x4c, 0x49, 0x5f, 0x34, 0x5f, 0x36, 0x10, 0x0b, 0x12, 0x0d, 0x0a, 0x09, 0x43,
|
||||
0x52, 0x5f, 0x4c, 0x49, 0x5f, 0x34, 0x5f, 0x38, 0x10, 0x0c, 0x2a, 0x3b, 0x0a, 0x0e, 0x44, 0x6f,
|
||||
0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x0f, 0x0a, 0x0b,
|
||||
0x49, 0x4d, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x54, 0x45, 0x4c, 0x59, 0x10, 0x00, 0x12, 0x09, 0x0a,
|
||||
0x05, 0x44, 0x45, 0x4c, 0x41, 0x59, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x47, 0x50, 0x53, 0x5f,
|
||||
0x45, 0x50, 0x4f, 0x43, 0x48, 0x10, 0x02, 0x2a, 0x37, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x65, 0x54,
|
||||
0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04,
|
||||
0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50,
|
||||
0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x4c, 0x41, 0x49, 0x4e, 0x10, 0x02,
|
||||
0x2a, 0x30, 0x0a, 0x09, 0x43, 0x52, 0x43, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0a, 0x0a,
|
||||
0x06, 0x4e, 0x4f, 0x5f, 0x43, 0x52, 0x43, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x41, 0x44,
|
||||
0x5f, 0x43, 0x52, 0x43, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x43, 0x5f, 0x4f, 0x4b,
|
||||
0x10, 0x02, 0x2a, 0xbc, 0x01, 0x0a, 0x0b, 0x54, 0x78, 0x41, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74,
|
||||
0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x44, 0x10, 0x00, 0x12,
|
||||
0x06, 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x4f, 0x4f, 0x5f, 0x4c,
|
||||
0x41, 0x54, 0x45, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x4f, 0x4f, 0x5f, 0x45, 0x41, 0x52,
|
||||
0x4c, 0x59, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f, 0x4c, 0x4c, 0x49, 0x53, 0x49, 0x4f,
|
||||
0x4e, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f,
|
||||
0x4c, 0x4c, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x10, 0x05,
|
||||
0x12, 0x0b, 0x0a, 0x07, 0x54, 0x58, 0x5f, 0x46, 0x52, 0x45, 0x51, 0x10, 0x06, 0x12, 0x0c, 0x0a,
|
||||
0x08, 0x54, 0x58, 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x47,
|
||||
0x50, 0x53, 0x5f, 0x55, 0x4e, 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x08, 0x12, 0x0e, 0x0a,
|
||||
0x0a, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x09, 0x12, 0x12, 0x0a,
|
||||
0x0e, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10,
|
||||
0x0a, 0x42, 0x55, 0x0a, 0x14, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61,
|
||||
0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x67, 0x77, 0x42, 0x0c, 0x47, 0x61, 0x74, 0x65, 0x77,
|
||||
0x61, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2d, 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, 0x67, 0x77, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
8
api/grpc-web/api/frame_log_pb.d.ts
vendored
8
api/grpc-web/api/frame_log_pb.d.ts
vendored
@ -35,6 +35,9 @@ export class UplinkFrameLog extends jspb.Message {
|
||||
hasTime(): boolean;
|
||||
clearTime(): UplinkFrameLog;
|
||||
|
||||
getPlaintextMacCommands(): boolean;
|
||||
setPlaintextMacCommands(value: boolean): UplinkFrameLog;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): UplinkFrameLog.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: UplinkFrameLog): UplinkFrameLog.AsObject;
|
||||
@ -52,6 +55,7 @@ export namespace UplinkFrameLog {
|
||||
devAddr: string,
|
||||
devEui: string,
|
||||
time?: google_protobuf_timestamp_pb.Timestamp.AsObject,
|
||||
plaintextMacCommands: boolean,
|
||||
}
|
||||
}
|
||||
|
||||
@ -86,6 +90,9 @@ export class DownlinkFrameLog extends jspb.Message {
|
||||
getDevEui(): string;
|
||||
setDevEui(value: string): DownlinkFrameLog;
|
||||
|
||||
getPlaintextMacCommands(): boolean;
|
||||
setPlaintextMacCommands(value: boolean): DownlinkFrameLog;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): DownlinkFrameLog.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: DownlinkFrameLog): DownlinkFrameLog.AsObject;
|
||||
@ -104,6 +111,7 @@ export namespace DownlinkFrameLog {
|
||||
mType: common_common_pb.MType,
|
||||
devAddr: string,
|
||||
devEui: string,
|
||||
plaintextMacCommands: boolean,
|
||||
}
|
||||
}
|
||||
|
||||
|
64
api/grpc-web/api/frame_log_pb.js
vendored
64
api/grpc-web/api/frame_log_pb.js
vendored
@ -111,7 +111,8 @@ proto.api.UplinkFrameLog.toObject = function(includeInstance, msg) {
|
||||
mType: jspb.Message.getFieldWithDefault(msg, 4, 0),
|
||||
devAddr: jspb.Message.getFieldWithDefault(msg, 5, ""),
|
||||
devEui: jspb.Message.getFieldWithDefault(msg, 6, ""),
|
||||
time: (f = msg.getTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)
|
||||
time: (f = msg.getTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
|
||||
plaintextMacCommands: jspb.Message.getBooleanFieldWithDefault(msg, 8, false)
|
||||
};
|
||||
|
||||
if (includeInstance) {
|
||||
@ -179,6 +180,10 @@ proto.api.UplinkFrameLog.deserializeBinaryFromReader = function(msg, reader) {
|
||||
reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
|
||||
msg.setTime(value);
|
||||
break;
|
||||
case 8:
|
||||
var value = /** @type {boolean} */ (reader.readBool());
|
||||
msg.setPlaintextMacCommands(value);
|
||||
break;
|
||||
default:
|
||||
reader.skipField();
|
||||
break;
|
||||
@ -260,6 +265,13 @@ proto.api.UplinkFrameLog.serializeBinaryToWriter = function(message, writer) {
|
||||
google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
|
||||
);
|
||||
}
|
||||
f = message.getPlaintextMacCommands();
|
||||
if (f) {
|
||||
writer.writeBool(
|
||||
8,
|
||||
f
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -471,6 +483,24 @@ proto.api.UplinkFrameLog.prototype.hasTime = function() {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional bool plaintext_mac_commands = 8;
|
||||
* @return {boolean}
|
||||
*/
|
||||
proto.api.UplinkFrameLog.prototype.getPlaintextMacCommands = function() {
|
||||
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {boolean} value
|
||||
* @return {!proto.api.UplinkFrameLog} returns this
|
||||
*/
|
||||
proto.api.UplinkFrameLog.prototype.setPlaintextMacCommands = function(value) {
|
||||
return jspb.Message.setProto3BooleanField(this, 8, value);
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -510,7 +540,8 @@ proto.api.DownlinkFrameLog.toObject = function(includeInstance, msg) {
|
||||
gatewayId: jspb.Message.getFieldWithDefault(msg, 5, ""),
|
||||
mType: jspb.Message.getFieldWithDefault(msg, 6, 0),
|
||||
devAddr: jspb.Message.getFieldWithDefault(msg, 7, ""),
|
||||
devEui: jspb.Message.getFieldWithDefault(msg, 8, "")
|
||||
devEui: jspb.Message.getFieldWithDefault(msg, 8, ""),
|
||||
plaintextMacCommands: jspb.Message.getBooleanFieldWithDefault(msg, 9, false)
|
||||
};
|
||||
|
||||
if (includeInstance) {
|
||||
@ -581,6 +612,10 @@ proto.api.DownlinkFrameLog.deserializeBinaryFromReader = function(msg, reader) {
|
||||
var value = /** @type {string} */ (reader.readString());
|
||||
msg.setDevEui(value);
|
||||
break;
|
||||
case 9:
|
||||
var value = /** @type {boolean} */ (reader.readBool());
|
||||
msg.setPlaintextMacCommands(value);
|
||||
break;
|
||||
default:
|
||||
reader.skipField();
|
||||
break;
|
||||
@ -668,6 +703,13 @@ proto.api.DownlinkFrameLog.serializeBinaryToWriter = function(message, writer) {
|
||||
f
|
||||
);
|
||||
}
|
||||
f = message.getPlaintextMacCommands();
|
||||
if (f) {
|
||||
writer.writeBool(
|
||||
9,
|
||||
f
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -877,4 +919,22 @@ proto.api.DownlinkFrameLog.prototype.setDevEui = function(value) {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional bool plaintext_mac_commands = 9;
|
||||
* @return {boolean}
|
||||
*/
|
||||
proto.api.DownlinkFrameLog.prototype.getPlaintextMacCommands = function() {
|
||||
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 9, false));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {boolean} value
|
||||
* @return {!proto.api.DownlinkFrameLog} returns this
|
||||
*/
|
||||
proto.api.DownlinkFrameLog.prototype.setPlaintextMacCommands = function(value) {
|
||||
return jspb.Message.setProto3BooleanField(this, 9, value);
|
||||
};
|
||||
|
||||
|
||||
goog.object.extend(exports, proto.api);
|
||||
|
24
api/grpc-web/api/internal_grpc_web_pb.d.ts
vendored
24
api/grpc-web/api/internal_grpc_web_pb.d.ts
vendored
@ -94,6 +94,20 @@ export class InternalServiceClient {
|
||||
metadata?: grpcWeb.Metadata
|
||||
): grpcWeb.ClientReadableStream<api_internal_pb.LogItem>;
|
||||
|
||||
listRegions(
|
||||
request: google_protobuf_empty_pb.Empty,
|
||||
metadata: grpcWeb.Metadata | undefined,
|
||||
callback: (err: grpcWeb.Error,
|
||||
response: api_internal_pb.ListRegionsResponse) => void
|
||||
): grpcWeb.ClientReadableStream<api_internal_pb.ListRegionsResponse>;
|
||||
|
||||
getRegion(
|
||||
request: api_internal_pb.GetRegionRequest,
|
||||
metadata: grpcWeb.Metadata | undefined,
|
||||
callback: (err: grpcWeb.Error,
|
||||
response: api_internal_pb.GetRegionResponse) => void
|
||||
): grpcWeb.ClientReadableStream<api_internal_pb.GetRegionResponse>;
|
||||
|
||||
}
|
||||
|
||||
export class InternalServicePromiseClient {
|
||||
@ -166,5 +180,15 @@ export class InternalServicePromiseClient {
|
||||
metadata?: grpcWeb.Metadata
|
||||
): grpcWeb.ClientReadableStream<api_internal_pb.LogItem>;
|
||||
|
||||
listRegions(
|
||||
request: google_protobuf_empty_pb.Empty,
|
||||
metadata?: grpcWeb.Metadata
|
||||
): Promise<api_internal_pb.ListRegionsResponse>;
|
||||
|
||||
getRegion(
|
||||
request: api_internal_pb.GetRegionRequest,
|
||||
metadata?: grpcWeb.Metadata
|
||||
): Promise<api_internal_pb.GetRegionResponse>;
|
||||
|
||||
}
|
||||
|
||||
|
162
api/grpc-web/api/internal_grpc_web_pb.js
vendored
162
api/grpc-web/api/internal_grpc_web_pb.js
vendored
@ -20,6 +20,8 @@ var google_protobuf_timestamp_pb = require('google-protobuf/google/protobuf/time
|
||||
|
||||
var google_protobuf_empty_pb = require('google-protobuf/google/protobuf/empty_pb.js')
|
||||
|
||||
var common_common_pb = require('../common/common_pb.js')
|
||||
|
||||
var api_user_pb = require('../api/user_pb.js')
|
||||
const proto = {};
|
||||
proto.api = require('./internal_pb.js');
|
||||
@ -1101,5 +1103,165 @@ proto.api.InternalServicePromiseClient.prototype.streamDeviceEvents =
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @const
|
||||
* @type {!grpc.web.MethodDescriptor<
|
||||
* !proto.google.protobuf.Empty,
|
||||
* !proto.api.ListRegionsResponse>}
|
||||
*/
|
||||
const methodDescriptor_InternalService_ListRegions = new grpc.web.MethodDescriptor(
|
||||
'/api.InternalService/ListRegions',
|
||||
grpc.web.MethodType.UNARY,
|
||||
google_protobuf_empty_pb.Empty,
|
||||
proto.api.ListRegionsResponse,
|
||||
/**
|
||||
* @param {!proto.google.protobuf.Empty} request
|
||||
* @return {!Uint8Array}
|
||||
*/
|
||||
function(request) {
|
||||
return request.serializeBinary();
|
||||
},
|
||||
proto.api.ListRegionsResponse.deserializeBinary
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
* @const
|
||||
* @type {!grpc.web.AbstractClientBase.MethodInfo<
|
||||
* !proto.google.protobuf.Empty,
|
||||
* !proto.api.ListRegionsResponse>}
|
||||
*/
|
||||
const methodInfo_InternalService_ListRegions = new grpc.web.AbstractClientBase.MethodInfo(
|
||||
proto.api.ListRegionsResponse,
|
||||
/**
|
||||
* @param {!proto.google.protobuf.Empty} request
|
||||
* @return {!Uint8Array}
|
||||
*/
|
||||
function(request) {
|
||||
return request.serializeBinary();
|
||||
},
|
||||
proto.api.ListRegionsResponse.deserializeBinary
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
* @param {!proto.google.protobuf.Empty} request The
|
||||
* request proto
|
||||
* @param {?Object<string, string>} metadata User defined
|
||||
* call metadata
|
||||
* @param {function(?grpc.web.Error, ?proto.api.ListRegionsResponse)}
|
||||
* callback The callback function(error, response)
|
||||
* @return {!grpc.web.ClientReadableStream<!proto.api.ListRegionsResponse>|undefined}
|
||||
* The XHR Node Readable Stream
|
||||
*/
|
||||
proto.api.InternalServiceClient.prototype.listRegions =
|
||||
function(request, metadata, callback) {
|
||||
return this.client_.rpcCall(this.hostname_ +
|
||||
'/api.InternalService/ListRegions',
|
||||
request,
|
||||
metadata || {},
|
||||
methodDescriptor_InternalService_ListRegions,
|
||||
callback);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {!proto.google.protobuf.Empty} request The
|
||||
* request proto
|
||||
* @param {?Object<string, string>} metadata User defined
|
||||
* call metadata
|
||||
* @return {!Promise<!proto.api.ListRegionsResponse>}
|
||||
* Promise that resolves to the response
|
||||
*/
|
||||
proto.api.InternalServicePromiseClient.prototype.listRegions =
|
||||
function(request, metadata) {
|
||||
return this.client_.unaryCall(this.hostname_ +
|
||||
'/api.InternalService/ListRegions',
|
||||
request,
|
||||
metadata || {},
|
||||
methodDescriptor_InternalService_ListRegions);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @const
|
||||
* @type {!grpc.web.MethodDescriptor<
|
||||
* !proto.api.GetRegionRequest,
|
||||
* !proto.api.GetRegionResponse>}
|
||||
*/
|
||||
const methodDescriptor_InternalService_GetRegion = new grpc.web.MethodDescriptor(
|
||||
'/api.InternalService/GetRegion',
|
||||
grpc.web.MethodType.UNARY,
|
||||
proto.api.GetRegionRequest,
|
||||
proto.api.GetRegionResponse,
|
||||
/**
|
||||
* @param {!proto.api.GetRegionRequest} request
|
||||
* @return {!Uint8Array}
|
||||
*/
|
||||
function(request) {
|
||||
return request.serializeBinary();
|
||||
},
|
||||
proto.api.GetRegionResponse.deserializeBinary
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
* @const
|
||||
* @type {!grpc.web.AbstractClientBase.MethodInfo<
|
||||
* !proto.api.GetRegionRequest,
|
||||
* !proto.api.GetRegionResponse>}
|
||||
*/
|
||||
const methodInfo_InternalService_GetRegion = new grpc.web.AbstractClientBase.MethodInfo(
|
||||
proto.api.GetRegionResponse,
|
||||
/**
|
||||
* @param {!proto.api.GetRegionRequest} request
|
||||
* @return {!Uint8Array}
|
||||
*/
|
||||
function(request) {
|
||||
return request.serializeBinary();
|
||||
},
|
||||
proto.api.GetRegionResponse.deserializeBinary
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
* @param {!proto.api.GetRegionRequest} request The
|
||||
* request proto
|
||||
* @param {?Object<string, string>} metadata User defined
|
||||
* call metadata
|
||||
* @param {function(?grpc.web.Error, ?proto.api.GetRegionResponse)}
|
||||
* callback The callback function(error, response)
|
||||
* @return {!grpc.web.ClientReadableStream<!proto.api.GetRegionResponse>|undefined}
|
||||
* The XHR Node Readable Stream
|
||||
*/
|
||||
proto.api.InternalServiceClient.prototype.getRegion =
|
||||
function(request, metadata, callback) {
|
||||
return this.client_.rpcCall(this.hostname_ +
|
||||
'/api.InternalService/GetRegion',
|
||||
request,
|
||||
metadata || {},
|
||||
methodDescriptor_InternalService_GetRegion,
|
||||
callback);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {!proto.api.GetRegionRequest} request The
|
||||
* request proto
|
||||
* @param {?Object<string, string>} metadata User defined
|
||||
* call metadata
|
||||
* @return {!Promise<!proto.api.GetRegionResponse>}
|
||||
* Promise that resolves to the response
|
||||
*/
|
||||
proto.api.InternalServicePromiseClient.prototype.getRegion =
|
||||
function(request, metadata) {
|
||||
return this.client_.unaryCall(this.hostname_ +
|
||||
'/api.InternalService/GetRegion',
|
||||
request,
|
||||
metadata || {},
|
||||
methodDescriptor_InternalService_GetRegion);
|
||||
};
|
||||
|
||||
|
||||
module.exports = proto.api;
|
||||
|
||||
|
143
api/grpc-web/api/internal_pb.d.ts
vendored
143
api/grpc-web/api/internal_pb.d.ts
vendored
@ -2,6 +2,7 @@ import * as jspb from 'google-protobuf'
|
||||
|
||||
import * as google_protobuf_timestamp_pb from 'google-protobuf/google/protobuf/timestamp_pb';
|
||||
import * as google_protobuf_empty_pb from 'google-protobuf/google/protobuf/empty_pb';
|
||||
import * as common_common_pb from '../common/common_pb';
|
||||
import * as api_user_pb from '../api/user_pb';
|
||||
|
||||
|
||||
@ -629,3 +630,145 @@ export namespace StreamDeviceEventsRequest {
|
||||
}
|
||||
}
|
||||
|
||||
export class ListRegionsResponse extends jspb.Message {
|
||||
getRegionsList(): Array<RegionListItem>;
|
||||
setRegionsList(value: Array<RegionListItem>): ListRegionsResponse;
|
||||
clearRegionsList(): ListRegionsResponse;
|
||||
addRegions(value?: RegionListItem, index?: number): RegionListItem;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): ListRegionsResponse.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: ListRegionsResponse): ListRegionsResponse.AsObject;
|
||||
static serializeBinaryToWriter(message: ListRegionsResponse, writer: jspb.BinaryWriter): void;
|
||||
static deserializeBinary(bytes: Uint8Array): ListRegionsResponse;
|
||||
static deserializeBinaryFromReader(message: ListRegionsResponse, reader: jspb.BinaryReader): ListRegionsResponse;
|
||||
}
|
||||
|
||||
export namespace ListRegionsResponse {
|
||||
export type AsObject = {
|
||||
regionsList: Array<RegionListItem.AsObject>,
|
||||
}
|
||||
}
|
||||
|
||||
export class RegionListItem extends jspb.Message {
|
||||
getName(): string;
|
||||
setName(value: string): RegionListItem;
|
||||
|
||||
getRegion(): common_common_pb.Region;
|
||||
setRegion(value: common_common_pb.Region): RegionListItem;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): RegionListItem.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: RegionListItem): RegionListItem.AsObject;
|
||||
static serializeBinaryToWriter(message: RegionListItem, writer: jspb.BinaryWriter): void;
|
||||
static deserializeBinary(bytes: Uint8Array): RegionListItem;
|
||||
static deserializeBinaryFromReader(message: RegionListItem, reader: jspb.BinaryReader): RegionListItem;
|
||||
}
|
||||
|
||||
export namespace RegionListItem {
|
||||
export type AsObject = {
|
||||
name: string,
|
||||
region: common_common_pb.Region,
|
||||
}
|
||||
}
|
||||
|
||||
export class GetRegionRequest extends jspb.Message {
|
||||
getName(): string;
|
||||
setName(value: string): GetRegionRequest;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): GetRegionRequest.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: GetRegionRequest): GetRegionRequest.AsObject;
|
||||
static serializeBinaryToWriter(message: GetRegionRequest, writer: jspb.BinaryWriter): void;
|
||||
static deserializeBinary(bytes: Uint8Array): GetRegionRequest;
|
||||
static deserializeBinaryFromReader(message: GetRegionRequest, reader: jspb.BinaryReader): GetRegionRequest;
|
||||
}
|
||||
|
||||
export namespace GetRegionRequest {
|
||||
export type AsObject = {
|
||||
name: string,
|
||||
}
|
||||
}
|
||||
|
||||
export class GetRegionResponse extends jspb.Message {
|
||||
getName(): string;
|
||||
setName(value: string): GetRegionResponse;
|
||||
|
||||
getRegion(): common_common_pb.Region;
|
||||
setRegion(value: common_common_pb.Region): GetRegionResponse;
|
||||
|
||||
getUserInfo(): string;
|
||||
setUserInfo(value: string): GetRegionResponse;
|
||||
|
||||
getUplinkChannelsList(): Array<RegionChannel>;
|
||||
setUplinkChannelsList(value: Array<RegionChannel>): GetRegionResponse;
|
||||
clearUplinkChannelsList(): GetRegionResponse;
|
||||
addUplinkChannels(value?: RegionChannel, index?: number): RegionChannel;
|
||||
|
||||
getRx1Delay(): number;
|
||||
setRx1Delay(value: number): GetRegionResponse;
|
||||
|
||||
getRx1DrOffset(): number;
|
||||
setRx1DrOffset(value: number): GetRegionResponse;
|
||||
|
||||
getRx2Dr(): number;
|
||||
setRx2Dr(value: number): GetRegionResponse;
|
||||
|
||||
getRx2Frequency(): number;
|
||||
setRx2Frequency(value: number): GetRegionResponse;
|
||||
|
||||
getClassBPingSlotDr(): number;
|
||||
setClassBPingSlotDr(value: number): GetRegionResponse;
|
||||
|
||||
getClassBPingSlotFrequency(): number;
|
||||
setClassBPingSlotFrequency(value: number): GetRegionResponse;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): GetRegionResponse.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: GetRegionResponse): GetRegionResponse.AsObject;
|
||||
static serializeBinaryToWriter(message: GetRegionResponse, writer: jspb.BinaryWriter): void;
|
||||
static deserializeBinary(bytes: Uint8Array): GetRegionResponse;
|
||||
static deserializeBinaryFromReader(message: GetRegionResponse, reader: jspb.BinaryReader): GetRegionResponse;
|
||||
}
|
||||
|
||||
export namespace GetRegionResponse {
|
||||
export type AsObject = {
|
||||
name: string,
|
||||
region: common_common_pb.Region,
|
||||
userInfo: string,
|
||||
uplinkChannelsList: Array<RegionChannel.AsObject>,
|
||||
rx1Delay: number,
|
||||
rx1DrOffset: number,
|
||||
rx2Dr: number,
|
||||
rx2Frequency: number,
|
||||
classBPingSlotDr: number,
|
||||
classBPingSlotFrequency: number,
|
||||
}
|
||||
}
|
||||
|
||||
export class RegionChannel extends jspb.Message {
|
||||
getFrequency(): number;
|
||||
setFrequency(value: number): RegionChannel;
|
||||
|
||||
getDrMin(): number;
|
||||
setDrMin(value: number): RegionChannel;
|
||||
|
||||
getDrMax(): number;
|
||||
setDrMax(value: number): RegionChannel;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): RegionChannel.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: RegionChannel): RegionChannel.AsObject;
|
||||
static serializeBinaryToWriter(message: RegionChannel, writer: jspb.BinaryWriter): void;
|
||||
static deserializeBinary(bytes: Uint8Array): RegionChannel;
|
||||
static deserializeBinaryFromReader(message: RegionChannel, reader: jspb.BinaryReader): RegionChannel;
|
||||
}
|
||||
|
||||
export namespace RegionChannel {
|
||||
export type AsObject = {
|
||||
frequency: number,
|
||||
drMin: number,
|
||||
drMax: number,
|
||||
}
|
||||
}
|
||||
|
||||
|
1182
api/grpc-web/api/internal_pb.js
vendored
1182
api/grpc-web/api/internal_pb.js
vendored
File diff suppressed because it is too large
Load Diff
4
api/grpc-web/api/tenant_pb.d.ts
vendored
4
api/grpc-web/api/tenant_pb.d.ts
vendored
@ -233,6 +233,9 @@ export class ListTenantsRequest extends jspb.Message {
|
||||
getSearch(): string;
|
||||
setSearch(value: string): ListTenantsRequest;
|
||||
|
||||
getUserId(): string;
|
||||
setUserId(value: string): ListTenantsRequest;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): ListTenantsRequest.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: ListTenantsRequest): ListTenantsRequest.AsObject;
|
||||
@ -246,6 +249,7 @@ export namespace ListTenantsRequest {
|
||||
limit: number,
|
||||
offset: number,
|
||||
search: string,
|
||||
userId: string,
|
||||
}
|
||||
}
|
||||
|
||||
|
32
api/grpc-web/api/tenant_pb.js
vendored
32
api/grpc-web/api/tenant_pb.js
vendored
@ -2110,7 +2110,8 @@ proto.api.ListTenantsRequest.toObject = function(includeInstance, msg) {
|
||||
var f, obj = {
|
||||
limit: jspb.Message.getFieldWithDefault(msg, 1, 0),
|
||||
offset: jspb.Message.getFieldWithDefault(msg, 2, 0),
|
||||
search: jspb.Message.getFieldWithDefault(msg, 3, "")
|
||||
search: jspb.Message.getFieldWithDefault(msg, 3, ""),
|
||||
userId: jspb.Message.getFieldWithDefault(msg, 4, "")
|
||||
};
|
||||
|
||||
if (includeInstance) {
|
||||
@ -2159,6 +2160,10 @@ proto.api.ListTenantsRequest.deserializeBinaryFromReader = function(msg, reader)
|
||||
var value = /** @type {string} */ (reader.readString());
|
||||
msg.setSearch(value);
|
||||
break;
|
||||
case 4:
|
||||
var value = /** @type {string} */ (reader.readString());
|
||||
msg.setUserId(value);
|
||||
break;
|
||||
default:
|
||||
reader.skipField();
|
||||
break;
|
||||
@ -2209,6 +2214,13 @@ proto.api.ListTenantsRequest.serializeBinaryToWriter = function(message, writer)
|
||||
f
|
||||
);
|
||||
}
|
||||
f = message.getUserId();
|
||||
if (f.length > 0) {
|
||||
writer.writeString(
|
||||
4,
|
||||
f
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -2266,6 +2278,24 @@ proto.api.ListTenantsRequest.prototype.setSearch = function(value) {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional string user_id = 4;
|
||||
* @return {string}
|
||||
*/
|
||||
proto.api.ListTenantsRequest.prototype.getUserId = function() {
|
||||
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {string} value
|
||||
* @return {!proto.api.ListTenantsRequest} returns this
|
||||
*/
|
||||
proto.api.ListTenantsRequest.prototype.setUserId = function(value) {
|
||||
return jspb.Message.setProto3StringField(this, 4, value);
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* List of repeated fields within this message type.
|
||||
|
9
api/grpc-web/common/common_pb.d.ts
vendored
9
api/grpc-web/common/common_pb.d.ts
vendored
@ -75,6 +75,9 @@ export class Metric extends jspb.Message {
|
||||
clearDatasetsList(): Metric;
|
||||
addDatasets(value?: MetricDataset, index?: number): MetricDataset;
|
||||
|
||||
getKind(): MetricKind;
|
||||
setKind(value: MetricKind): Metric;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): Metric.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: Metric): Metric.AsObject;
|
||||
@ -88,6 +91,7 @@ export namespace Metric {
|
||||
name: string,
|
||||
timestampsList: Array<google_protobuf_timestamp_pb.Timestamp.AsObject>,
|
||||
datasetsList: Array<MetricDataset.AsObject>,
|
||||
kind: MetricKind,
|
||||
}
|
||||
}
|
||||
|
||||
@ -176,3 +180,8 @@ export enum Aggregation {
|
||||
DAY = 1,
|
||||
MONTH = 2,
|
||||
}
|
||||
export enum MetricKind {
|
||||
COUNTER = 0,
|
||||
ABSOLUTE = 1,
|
||||
GAUGE = 2,
|
||||
}
|
||||
|
42
api/grpc-web/common/common_pb.js
vendored
42
api/grpc-web/common/common_pb.js
vendored
@ -25,6 +25,7 @@ goog.exportSymbol('proto.common.MType', null, global);
|
||||
goog.exportSymbol('proto.common.MacVersion', null, global);
|
||||
goog.exportSymbol('proto.common.Metric', null, global);
|
||||
goog.exportSymbol('proto.common.MetricDataset', null, global);
|
||||
goog.exportSymbol('proto.common.MetricKind', null, global);
|
||||
goog.exportSymbol('proto.common.Modulation', null, global);
|
||||
goog.exportSymbol('proto.common.RegParamsRevision', null, global);
|
||||
goog.exportSymbol('proto.common.Region', null, global);
|
||||
@ -589,7 +590,8 @@ proto.common.Metric.toObject = function(includeInstance, msg) {
|
||||
timestampsList: jspb.Message.toObjectList(msg.getTimestampsList(),
|
||||
google_protobuf_timestamp_pb.Timestamp.toObject, includeInstance),
|
||||
datasetsList: jspb.Message.toObjectList(msg.getDatasetsList(),
|
||||
proto.common.MetricDataset.toObject, includeInstance)
|
||||
proto.common.MetricDataset.toObject, includeInstance),
|
||||
kind: jspb.Message.getFieldWithDefault(msg, 4, 0)
|
||||
};
|
||||
|
||||
if (includeInstance) {
|
||||
@ -640,6 +642,10 @@ proto.common.Metric.deserializeBinaryFromReader = function(msg, reader) {
|
||||
reader.readMessage(value,proto.common.MetricDataset.deserializeBinaryFromReader);
|
||||
msg.addDatasets(value);
|
||||
break;
|
||||
case 4:
|
||||
var value = /** @type {!proto.common.MetricKind} */ (reader.readEnum());
|
||||
msg.setKind(value);
|
||||
break;
|
||||
default:
|
||||
reader.skipField();
|
||||
break;
|
||||
@ -692,6 +698,13 @@ proto.common.Metric.serializeBinaryToWriter = function(message, writer) {
|
||||
proto.common.MetricDataset.serializeBinaryToWriter
|
||||
);
|
||||
}
|
||||
f = message.getKind();
|
||||
if (f !== 0.0) {
|
||||
writer.writeEnum(
|
||||
4,
|
||||
f
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -789,6 +802,24 @@ proto.common.Metric.prototype.clearDatasetsList = function() {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional MetricKind kind = 4;
|
||||
* @return {!proto.common.MetricKind}
|
||||
*/
|
||||
proto.common.Metric.prototype.getKind = function() {
|
||||
return /** @type {!proto.common.MetricKind} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {!proto.common.MetricKind} value
|
||||
* @return {!proto.common.Metric} returns this
|
||||
*/
|
||||
proto.common.Metric.prototype.setKind = function(value) {
|
||||
return jspb.Message.setProto3EnumField(this, 4, value);
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* List of repeated fields within this message type.
|
||||
@ -1066,4 +1097,13 @@ proto.common.Aggregation = {
|
||||
MONTH: 2
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
proto.common.MetricKind = {
|
||||
COUNTER: 0,
|
||||
ABSOLUTE: 1,
|
||||
GAUGE: 2
|
||||
};
|
||||
|
||||
goog.object.extend(exports, proto.common);
|
||||
|
1
api/grpc-web/google/api/billing_pb.d.ts
vendored
1
api/grpc-web/google/api/billing_pb.d.ts
vendored
@ -1,6 +1,5 @@
|
||||
import * as jspb from 'google-protobuf'
|
||||
|
||||
import * as google_api_metric_pb from '../../google/api/metric_pb';
|
||||
|
||||
|
||||
export class Billing extends jspb.Message {
|
||||
|
2
api/grpc-web/google/api/billing_pb.js
vendored
2
api/grpc-web/google/api/billing_pb.js
vendored
@ -15,8 +15,6 @@ var jspb = require('google-protobuf');
|
||||
var goog = jspb;
|
||||
var global = Function('return this')();
|
||||
|
||||
var google_api_metric_pb = require('../../google/api/metric_pb.js');
|
||||
goog.object.extend(proto, google_api_metric_pb);
|
||||
goog.exportSymbol('proto.google.api.Billing', null, global);
|
||||
goog.exportSymbol('proto.google.api.Billing.BillingDestination', null, global);
|
||||
/**
|
||||
|
3
api/grpc-web/google/api/service_pb.d.ts
vendored
3
api/grpc-web/google/api/service_pb.d.ts
vendored
@ -8,18 +8,15 @@ import * as google_api_control_pb from '../../google/api/control_pb';
|
||||
import * as google_api_documentation_pb from '../../google/api/documentation_pb';
|
||||
import * as google_api_endpoint_pb from '../../google/api/endpoint_pb';
|
||||
import * as google_api_http_pb from '../../google/api/http_pb';
|
||||
import * as google_api_label_pb from '../../google/api/label_pb';
|
||||
import * as google_api_log_pb from '../../google/api/log_pb';
|
||||
import * as google_api_logging_pb from '../../google/api/logging_pb';
|
||||
import * as google_api_metric_pb from '../../google/api/metric_pb';
|
||||
import * as google_api_monitored_resource_pb from '../../google/api/monitored_resource_pb';
|
||||
import * as google_api_monitoring_pb from '../../google/api/monitoring_pb';
|
||||
import * as google_api_quota_pb from '../../google/api/quota_pb';
|
||||
import * as google_api_resource_pb from '../../google/api/resource_pb';
|
||||
import * as google_api_source_info_pb from '../../google/api/source_info_pb';
|
||||
import * as google_api_system_parameter_pb from '../../google/api/system_parameter_pb';
|
||||
import * as google_api_usage_pb from '../../google/api/usage_pb';
|
||||
import * as google_protobuf_any_pb from 'google-protobuf/google/protobuf/any_pb';
|
||||
import * as google_protobuf_api_pb from 'google-protobuf/google/protobuf/api_pb';
|
||||
import * as google_protobuf_type_pb from 'google-protobuf/google/protobuf/type_pb';
|
||||
import * as google_protobuf_wrappers_pb from 'google-protobuf/google/protobuf/wrappers_pb';
|
||||
|
6
api/grpc-web/google/api/service_pb.js
vendored
6
api/grpc-web/google/api/service_pb.js
vendored
@ -31,8 +31,6 @@ var google_api_endpoint_pb = require('../../google/api/endpoint_pb.js');
|
||||
goog.object.extend(proto, google_api_endpoint_pb);
|
||||
var google_api_http_pb = require('../../google/api/http_pb.js');
|
||||
goog.object.extend(proto, google_api_http_pb);
|
||||
var google_api_label_pb = require('../../google/api/label_pb.js');
|
||||
goog.object.extend(proto, google_api_label_pb);
|
||||
var google_api_log_pb = require('../../google/api/log_pb.js');
|
||||
goog.object.extend(proto, google_api_log_pb);
|
||||
var google_api_logging_pb = require('../../google/api/logging_pb.js');
|
||||
@ -45,16 +43,12 @@ var google_api_monitoring_pb = require('../../google/api/monitoring_pb.js');
|
||||
goog.object.extend(proto, google_api_monitoring_pb);
|
||||
var google_api_quota_pb = require('../../google/api/quota_pb.js');
|
||||
goog.object.extend(proto, google_api_quota_pb);
|
||||
var google_api_resource_pb = require('../../google/api/resource_pb.js');
|
||||
goog.object.extend(proto, google_api_resource_pb);
|
||||
var google_api_source_info_pb = require('../../google/api/source_info_pb.js');
|
||||
goog.object.extend(proto, google_api_source_info_pb);
|
||||
var google_api_system_parameter_pb = require('../../google/api/system_parameter_pb.js');
|
||||
goog.object.extend(proto, google_api_system_parameter_pb);
|
||||
var google_api_usage_pb = require('../../google/api/usage_pb.js');
|
||||
goog.object.extend(proto, google_api_usage_pb);
|
||||
var google_protobuf_any_pb = require('google-protobuf/google/protobuf/any_pb.js');
|
||||
goog.object.extend(proto, google_protobuf_any_pb);
|
||||
var google_protobuf_api_pb = require('google-protobuf/google/protobuf/api_pb.js');
|
||||
goog.object.extend(proto, google_protobuf_api_pb);
|
||||
var google_protobuf_type_pb = require('google-protobuf/google/protobuf/type_pb.js');
|
||||
|
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.0.0-test.11",
|
||||
"version": "4.0.2",
|
||||
"description": "Chirpstack gRPC-web API",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
|
8
api/js/api/frame_log_pb.d.ts
vendored
8
api/js/api/frame_log_pb.d.ts
vendored
@ -36,6 +36,9 @@ export class UplinkFrameLog extends jspb.Message {
|
||||
getTime(): google_protobuf_timestamp_pb.Timestamp | undefined;
|
||||
setTime(value?: google_protobuf_timestamp_pb.Timestamp): void;
|
||||
|
||||
getPlaintextMacCommands(): boolean;
|
||||
setPlaintextMacCommands(value: boolean): void;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): UplinkFrameLog.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: UplinkFrameLog): UplinkFrameLog.AsObject;
|
||||
@ -55,6 +58,7 @@ export namespace UplinkFrameLog {
|
||||
devAddr: string,
|
||||
devEui: string,
|
||||
time?: google_protobuf_timestamp_pb.Timestamp.AsObject,
|
||||
plaintextMacCommands: boolean,
|
||||
}
|
||||
}
|
||||
|
||||
@ -89,6 +93,9 @@ export class DownlinkFrameLog extends jspb.Message {
|
||||
getDevEui(): string;
|
||||
setDevEui(value: string): void;
|
||||
|
||||
getPlaintextMacCommands(): boolean;
|
||||
setPlaintextMacCommands(value: boolean): void;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): DownlinkFrameLog.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: DownlinkFrameLog): DownlinkFrameLog.AsObject;
|
||||
@ -109,6 +116,7 @@ export namespace DownlinkFrameLog {
|
||||
mType: common_common_pb.MTypeMap[keyof common_common_pb.MTypeMap],
|
||||
devAddr: string,
|
||||
devEui: string,
|
||||
plaintextMacCommands: boolean,
|
||||
}
|
||||
}
|
||||
|
||||
|
62
api/js/api/frame_log_pb.js
vendored
62
api/js/api/frame_log_pb.js
vendored
@ -74,7 +74,8 @@ proto.api.UplinkFrameLog.toObject = function(includeInstance, msg) {
|
||||
mType: msg.getMType(),
|
||||
devAddr: msg.getDevAddr(),
|
||||
devEui: msg.getDevEui(),
|
||||
time: (f = msg.getTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)
|
||||
time: (f = msg.getTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
|
||||
plaintextMacCommands: msg.getPlaintextMacCommands()
|
||||
};
|
||||
|
||||
if (includeInstance) {
|
||||
@ -143,6 +144,10 @@ proto.api.UplinkFrameLog.deserializeBinaryFromReader = function(msg, reader) {
|
||||
reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
|
||||
msg.setTime(value);
|
||||
break;
|
||||
case 8:
|
||||
var value = /** @type {boolean} */ (reader.readBool());
|
||||
msg.setPlaintextMacCommands(value);
|
||||
break;
|
||||
default:
|
||||
reader.skipField();
|
||||
break;
|
||||
@ -233,6 +238,13 @@ proto.api.UplinkFrameLog.prototype.serializeBinaryToWriter = function (writer) {
|
||||
google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
|
||||
);
|
||||
}
|
||||
f = this.getPlaintextMacCommands();
|
||||
if (f) {
|
||||
writer.writeBool(
|
||||
8,
|
||||
f
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -412,6 +424,23 @@ proto.api.UplinkFrameLog.prototype.hasTime = function() {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional bool plaintext_mac_commands = 8;
|
||||
* Note that Boolean fields may be set to 0/1 when serialized from a Java server.
|
||||
* You should avoid comparisons like {@code val === true/false} in those cases.
|
||||
* @return {boolean}
|
||||
*/
|
||||
proto.api.UplinkFrameLog.prototype.getPlaintextMacCommands = function() {
|
||||
return /** @type {boolean} */ (jspb.Message.getFieldProto3(this, 8, false));
|
||||
};
|
||||
|
||||
|
||||
/** @param {boolean} value */
|
||||
proto.api.UplinkFrameLog.prototype.setPlaintextMacCommands = function(value) {
|
||||
jspb.Message.setField(this, 8, value);
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Generated by JsPbCodeGenerator.
|
||||
@ -465,7 +494,8 @@ proto.api.DownlinkFrameLog.toObject = function(includeInstance, msg) {
|
||||
gatewayId: msg.getGatewayId(),
|
||||
mType: msg.getMType(),
|
||||
devAddr: msg.getDevAddr(),
|
||||
devEui: msg.getDevEui()
|
||||
devEui: msg.getDevEui(),
|
||||
plaintextMacCommands: msg.getPlaintextMacCommands()
|
||||
};
|
||||
|
||||
if (includeInstance) {
|
||||
@ -536,6 +566,10 @@ proto.api.DownlinkFrameLog.deserializeBinaryFromReader = function(msg, reader) {
|
||||
var value = /** @type {string} */ (reader.readString());
|
||||
msg.setDevEui(value);
|
||||
break;
|
||||
case 9:
|
||||
var value = /** @type {boolean} */ (reader.readBool());
|
||||
msg.setPlaintextMacCommands(value);
|
||||
break;
|
||||
default:
|
||||
reader.skipField();
|
||||
break;
|
||||
@ -632,6 +666,13 @@ proto.api.DownlinkFrameLog.prototype.serializeBinaryToWriter = function (writer)
|
||||
f
|
||||
);
|
||||
}
|
||||
f = this.getPlaintextMacCommands();
|
||||
if (f) {
|
||||
writer.writeBool(
|
||||
9,
|
||||
f
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -818,4 +859,21 @@ proto.api.DownlinkFrameLog.prototype.setDevEui = function(value) {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional bool plaintext_mac_commands = 9;
|
||||
* Note that Boolean fields may be set to 0/1 when serialized from a Java server.
|
||||
* You should avoid comparisons like {@code val === true/false} in those cases.
|
||||
* @return {boolean}
|
||||
*/
|
||||
proto.api.DownlinkFrameLog.prototype.getPlaintextMacCommands = function() {
|
||||
return /** @type {boolean} */ (jspb.Message.getFieldProto3(this, 9, false));
|
||||
};
|
||||
|
||||
|
||||
/** @param {boolean} value */
|
||||
proto.api.DownlinkFrameLog.prototype.setPlaintextMacCommands = function(value) {
|
||||
jspb.Message.setField(this, 9, value);
|
||||
};
|
||||
|
||||
|
||||
goog.object.extend(exports, proto.api);
|
||||
|
10
api/js/api/internal_grpc_pb.d.ts
vendored
10
api/js/api/internal_grpc_pb.d.ts
vendored
@ -21,6 +21,8 @@ interface IInternalServiceService extends grpc.ServiceDefinition<grpc.UntypedSer
|
||||
streamGatewayFrames: grpc.MethodDefinition<api_internal_pb.StreamGatewayFramesRequest, api_internal_pb.LogItem>;
|
||||
streamDeviceFrames: grpc.MethodDefinition<api_internal_pb.StreamDeviceFramesRequest, api_internal_pb.LogItem>;
|
||||
streamDeviceEvents: grpc.MethodDefinition<api_internal_pb.StreamDeviceEventsRequest, api_internal_pb.LogItem>;
|
||||
listRegions: grpc.MethodDefinition<google_protobuf_empty_pb.Empty, api_internal_pb.ListRegionsResponse>;
|
||||
getRegion: grpc.MethodDefinition<api_internal_pb.GetRegionRequest, api_internal_pb.GetRegionResponse>;
|
||||
}
|
||||
|
||||
export const InternalServiceService: IInternalServiceService;
|
||||
@ -39,6 +41,8 @@ export interface IInternalServiceServer extends grpc.UntypedServiceImplementatio
|
||||
streamGatewayFrames: grpc.handleServerStreamingCall<api_internal_pb.StreamGatewayFramesRequest, api_internal_pb.LogItem>;
|
||||
streamDeviceFrames: grpc.handleServerStreamingCall<api_internal_pb.StreamDeviceFramesRequest, api_internal_pb.LogItem>;
|
||||
streamDeviceEvents: grpc.handleServerStreamingCall<api_internal_pb.StreamDeviceEventsRequest, api_internal_pb.LogItem>;
|
||||
listRegions: grpc.handleUnaryCall<google_protobuf_empty_pb.Empty, api_internal_pb.ListRegionsResponse>;
|
||||
getRegion: grpc.handleUnaryCall<api_internal_pb.GetRegionRequest, api_internal_pb.GetRegionResponse>;
|
||||
}
|
||||
|
||||
export class InternalServiceClient extends grpc.Client {
|
||||
@ -79,4 +83,10 @@ export class InternalServiceClient extends grpc.Client {
|
||||
streamDeviceFrames(argument: api_internal_pb.StreamDeviceFramesRequest, metadata?: grpc.Metadata | null, options?: grpc.CallOptions | null): grpc.ClientReadableStream<api_internal_pb.LogItem>;
|
||||
streamDeviceEvents(argument: api_internal_pb.StreamDeviceEventsRequest, metadataOrOptions?: grpc.Metadata | grpc.CallOptions | null): grpc.ClientReadableStream<api_internal_pb.LogItem>;
|
||||
streamDeviceEvents(argument: api_internal_pb.StreamDeviceEventsRequest, metadata?: grpc.Metadata | null, options?: grpc.CallOptions | null): grpc.ClientReadableStream<api_internal_pb.LogItem>;
|
||||
listRegions(argument: google_protobuf_empty_pb.Empty, callback: grpc.requestCallback<api_internal_pb.ListRegionsResponse>): grpc.ClientUnaryCall;
|
||||
listRegions(argument: google_protobuf_empty_pb.Empty, metadataOrOptions: grpc.Metadata | grpc.CallOptions | null, callback: grpc.requestCallback<api_internal_pb.ListRegionsResponse>): grpc.ClientUnaryCall;
|
||||
listRegions(argument: google_protobuf_empty_pb.Empty, metadata: grpc.Metadata | null, options: grpc.CallOptions | null, callback: grpc.requestCallback<api_internal_pb.ListRegionsResponse>): grpc.ClientUnaryCall;
|
||||
getRegion(argument: api_internal_pb.GetRegionRequest, callback: grpc.requestCallback<api_internal_pb.GetRegionResponse>): grpc.ClientUnaryCall;
|
||||
getRegion(argument: api_internal_pb.GetRegionRequest, metadataOrOptions: grpc.Metadata | grpc.CallOptions | null, callback: grpc.requestCallback<api_internal_pb.GetRegionResponse>): grpc.ClientUnaryCall;
|
||||
getRegion(argument: api_internal_pb.GetRegionRequest, metadata: grpc.Metadata | null, options: grpc.CallOptions | null, callback: grpc.requestCallback<api_internal_pb.GetRegionResponse>): grpc.ClientUnaryCall;
|
||||
}
|
||||
|
58
api/js/api/internal_grpc_pb.js
vendored
58
api/js/api/internal_grpc_pb.js
vendored
@ -5,6 +5,7 @@ var grpc = require('@grpc/grpc-js');
|
||||
var api_internal_pb = require('../api/internal_pb.js');
|
||||
var google_protobuf_timestamp_pb = require('google-protobuf/google/protobuf/timestamp_pb.js');
|
||||
var google_protobuf_empty_pb = require('google-protobuf/google/protobuf/empty_pb.js');
|
||||
var common_common_pb = require('../common/common_pb.js');
|
||||
var api_user_pb = require('../api/user_pb.js');
|
||||
|
||||
function serialize_api_CreateApiKeyRequest(arg) {
|
||||
@ -84,6 +85,28 @@ function deserialize_api_GetGatewaysSummaryResponse(buffer_arg) {
|
||||
return api_internal_pb.GetGatewaysSummaryResponse.deserializeBinary(new Uint8Array(buffer_arg));
|
||||
}
|
||||
|
||||
function serialize_api_GetRegionRequest(arg) {
|
||||
if (!(arg instanceof api_internal_pb.GetRegionRequest)) {
|
||||
throw new Error('Expected argument of type api.GetRegionRequest');
|
||||
}
|
||||
return Buffer.from(arg.serializeBinary());
|
||||
}
|
||||
|
||||
function deserialize_api_GetRegionRequest(buffer_arg) {
|
||||
return api_internal_pb.GetRegionRequest.deserializeBinary(new Uint8Array(buffer_arg));
|
||||
}
|
||||
|
||||
function serialize_api_GetRegionResponse(arg) {
|
||||
if (!(arg instanceof api_internal_pb.GetRegionResponse)) {
|
||||
throw new Error('Expected argument of type api.GetRegionResponse');
|
||||
}
|
||||
return Buffer.from(arg.serializeBinary());
|
||||
}
|
||||
|
||||
function deserialize_api_GetRegionResponse(buffer_arg) {
|
||||
return api_internal_pb.GetRegionResponse.deserializeBinary(new Uint8Array(buffer_arg));
|
||||
}
|
||||
|
||||
function serialize_api_GlobalSearchRequest(arg) {
|
||||
if (!(arg instanceof api_internal_pb.GlobalSearchRequest)) {
|
||||
throw new Error('Expected argument of type api.GlobalSearchRequest');
|
||||
@ -128,6 +151,17 @@ function deserialize_api_ListApiKeysResponse(buffer_arg) {
|
||||
return api_internal_pb.ListApiKeysResponse.deserializeBinary(new Uint8Array(buffer_arg));
|
||||
}
|
||||
|
||||
function serialize_api_ListRegionsResponse(arg) {
|
||||
if (!(arg instanceof api_internal_pb.ListRegionsResponse)) {
|
||||
throw new Error('Expected argument of type api.ListRegionsResponse');
|
||||
}
|
||||
return Buffer.from(arg.serializeBinary());
|
||||
}
|
||||
|
||||
function deserialize_api_ListRegionsResponse(buffer_arg) {
|
||||
return api_internal_pb.ListRegionsResponse.deserializeBinary(new Uint8Array(buffer_arg));
|
||||
}
|
||||
|
||||
function serialize_api_LogItem(arg) {
|
||||
if (!(arg instanceof api_internal_pb.LogItem)) {
|
||||
throw new Error('Expected argument of type api.LogItem');
|
||||
@ -408,6 +442,30 @@ streamDeviceEvents: {
|
||||
responseSerialize: serialize_api_LogItem,
|
||||
responseDeserialize: deserialize_api_LogItem,
|
||||
},
|
||||
// ListRegions lists the available (configured) regions.
|
||||
listRegions: {
|
||||
path: '/api.InternalService/ListRegions',
|
||||
requestStream: false,
|
||||
responseStream: false,
|
||||
requestType: google_protobuf_empty_pb.Empty,
|
||||
responseType: api_internal_pb.ListRegionsResponse,
|
||||
requestSerialize: serialize_google_protobuf_Empty,
|
||||
requestDeserialize: deserialize_google_protobuf_Empty,
|
||||
responseSerialize: serialize_api_ListRegionsResponse,
|
||||
responseDeserialize: deserialize_api_ListRegionsResponse,
|
||||
},
|
||||
// GetRegion returns the region details for the given region.
|
||||
getRegion: {
|
||||
path: '/api.InternalService/GetRegion',
|
||||
requestStream: false,
|
||||
responseStream: false,
|
||||
requestType: api_internal_pb.GetRegionRequest,
|
||||
responseType: api_internal_pb.GetRegionResponse,
|
||||
requestSerialize: serialize_api_GetRegionRequest,
|
||||
requestDeserialize: deserialize_api_GetRegionRequest,
|
||||
responseSerialize: serialize_api_GetRegionResponse,
|
||||
responseDeserialize: deserialize_api_GetRegionResponse,
|
||||
},
|
||||
};
|
||||
|
||||
exports.InternalServiceClient = grpc.makeGenericClientConstructor(InternalServiceService);
|
||||
|
153
api/js/api/internal_pb.d.ts
vendored
153
api/js/api/internal_pb.d.ts
vendored
@ -4,6 +4,7 @@
|
||||
import * as jspb from "google-protobuf";
|
||||
import * as google_protobuf_timestamp_pb from "google-protobuf/google/protobuf/timestamp_pb";
|
||||
import * as google_protobuf_empty_pb from "google-protobuf/google/protobuf/empty_pb";
|
||||
import * as common_common_pb from "../common/common_pb";
|
||||
import * as api_user_pb from "../api/user_pb";
|
||||
|
||||
export class ApiKey extends jspb.Message {
|
||||
@ -678,3 +679,155 @@ export namespace StreamDeviceEventsRequest {
|
||||
}
|
||||
}
|
||||
|
||||
export class ListRegionsResponse extends jspb.Message {
|
||||
clearRegionsList(): void;
|
||||
getRegionsList(): Array<RegionListItem>;
|
||||
setRegionsList(value: Array<RegionListItem>): void;
|
||||
addRegions(value?: RegionListItem, index?: number): RegionListItem;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): ListRegionsResponse.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: ListRegionsResponse): ListRegionsResponse.AsObject;
|
||||
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
|
||||
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
|
||||
static serializeBinaryToWriter(message: ListRegionsResponse, writer: jspb.BinaryWriter): void;
|
||||
static deserializeBinary(bytes: Uint8Array): ListRegionsResponse;
|
||||
static deserializeBinaryFromReader(message: ListRegionsResponse, reader: jspb.BinaryReader): ListRegionsResponse;
|
||||
}
|
||||
|
||||
export namespace ListRegionsResponse {
|
||||
export type AsObject = {
|
||||
regionsList: Array<RegionListItem.AsObject>,
|
||||
}
|
||||
}
|
||||
|
||||
export class RegionListItem extends jspb.Message {
|
||||
getName(): string;
|
||||
setName(value: string): void;
|
||||
|
||||
getRegion(): common_common_pb.RegionMap[keyof common_common_pb.RegionMap];
|
||||
setRegion(value: common_common_pb.RegionMap[keyof common_common_pb.RegionMap]): void;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): RegionListItem.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: RegionListItem): RegionListItem.AsObject;
|
||||
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
|
||||
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
|
||||
static serializeBinaryToWriter(message: RegionListItem, writer: jspb.BinaryWriter): void;
|
||||
static deserializeBinary(bytes: Uint8Array): RegionListItem;
|
||||
static deserializeBinaryFromReader(message: RegionListItem, reader: jspb.BinaryReader): RegionListItem;
|
||||
}
|
||||
|
||||
export namespace RegionListItem {
|
||||
export type AsObject = {
|
||||
name: string,
|
||||
region: common_common_pb.RegionMap[keyof common_common_pb.RegionMap],
|
||||
}
|
||||
}
|
||||
|
||||
export class GetRegionRequest extends jspb.Message {
|
||||
getName(): string;
|
||||
setName(value: string): void;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): GetRegionRequest.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: GetRegionRequest): GetRegionRequest.AsObject;
|
||||
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
|
||||
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
|
||||
static serializeBinaryToWriter(message: GetRegionRequest, writer: jspb.BinaryWriter): void;
|
||||
static deserializeBinary(bytes: Uint8Array): GetRegionRequest;
|
||||
static deserializeBinaryFromReader(message: GetRegionRequest, reader: jspb.BinaryReader): GetRegionRequest;
|
||||
}
|
||||
|
||||
export namespace GetRegionRequest {
|
||||
export type AsObject = {
|
||||
name: string,
|
||||
}
|
||||
}
|
||||
|
||||
export class GetRegionResponse extends jspb.Message {
|
||||
getName(): string;
|
||||
setName(value: string): void;
|
||||
|
||||
getRegion(): common_common_pb.RegionMap[keyof common_common_pb.RegionMap];
|
||||
setRegion(value: common_common_pb.RegionMap[keyof common_common_pb.RegionMap]): void;
|
||||
|
||||
getUserInfo(): string;
|
||||
setUserInfo(value: string): void;
|
||||
|
||||
clearUplinkChannelsList(): void;
|
||||
getUplinkChannelsList(): Array<RegionChannel>;
|
||||
setUplinkChannelsList(value: Array<RegionChannel>): void;
|
||||
addUplinkChannels(value?: RegionChannel, index?: number): RegionChannel;
|
||||
|
||||
getRx1Delay(): number;
|
||||
setRx1Delay(value: number): void;
|
||||
|
||||
getRx1DrOffset(): number;
|
||||
setRx1DrOffset(value: number): void;
|
||||
|
||||
getRx2Dr(): number;
|
||||
setRx2Dr(value: number): void;
|
||||
|
||||
getRx2Frequency(): number;
|
||||
setRx2Frequency(value: number): void;
|
||||
|
||||
getClassBPingSlotDr(): number;
|
||||
setClassBPingSlotDr(value: number): void;
|
||||
|
||||
getClassBPingSlotFrequency(): number;
|
||||
setClassBPingSlotFrequency(value: number): void;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): GetRegionResponse.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: GetRegionResponse): GetRegionResponse.AsObject;
|
||||
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
|
||||
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
|
||||
static serializeBinaryToWriter(message: GetRegionResponse, writer: jspb.BinaryWriter): void;
|
||||
static deserializeBinary(bytes: Uint8Array): GetRegionResponse;
|
||||
static deserializeBinaryFromReader(message: GetRegionResponse, reader: jspb.BinaryReader): GetRegionResponse;
|
||||
}
|
||||
|
||||
export namespace GetRegionResponse {
|
||||
export type AsObject = {
|
||||
name: string,
|
||||
region: common_common_pb.RegionMap[keyof common_common_pb.RegionMap],
|
||||
userInfo: string,
|
||||
uplinkChannelsList: Array<RegionChannel.AsObject>,
|
||||
rx1Delay: number,
|
||||
rx1DrOffset: number,
|
||||
rx2Dr: number,
|
||||
rx2Frequency: number,
|
||||
classBPingSlotDr: number,
|
||||
classBPingSlotFrequency: number,
|
||||
}
|
||||
}
|
||||
|
||||
export class RegionChannel extends jspb.Message {
|
||||
getFrequency(): number;
|
||||
setFrequency(value: number): void;
|
||||
|
||||
getDrMin(): number;
|
||||
setDrMin(value: number): void;
|
||||
|
||||
getDrMax(): number;
|
||||
setDrMax(value: number): void;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): RegionChannel.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: RegionChannel): RegionChannel.AsObject;
|
||||
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
|
||||
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
|
||||
static serializeBinaryToWriter(message: RegionChannel, writer: jspb.BinaryWriter): void;
|
||||
static deserializeBinary(bytes: Uint8Array): RegionChannel;
|
||||
static deserializeBinaryFromReader(message: RegionChannel, reader: jspb.BinaryReader): RegionChannel;
|
||||
}
|
||||
|
||||
export namespace RegionChannel {
|
||||
export type AsObject = {
|
||||
frequency: number,
|
||||
drMin: number,
|
||||
drMax: number,
|
||||
}
|
||||
}
|
||||
|
||||
|
1163
api/js/api/internal_pb.js
vendored
1163
api/js/api/internal_pb.js
vendored
File diff suppressed because it is too large
Load Diff
4
api/js/api/tenant_pb.d.ts
vendored
4
api/js/api/tenant_pb.d.ts
vendored
@ -250,6 +250,9 @@ export class ListTenantsRequest extends jspb.Message {
|
||||
getSearch(): string;
|
||||
setSearch(value: string): void;
|
||||
|
||||
getUserId(): string;
|
||||
setUserId(value: string): void;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): ListTenantsRequest.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: ListTenantsRequest): ListTenantsRequest.AsObject;
|
||||
@ -265,6 +268,7 @@ export namespace ListTenantsRequest {
|
||||
limit: number,
|
||||
offset: number,
|
||||
search: string,
|
||||
userId: string,
|
||||
}
|
||||
}
|
||||
|
||||
|
29
api/js/api/tenant_pb.js
vendored
29
api/js/api/tenant_pb.js
vendored
@ -1883,7 +1883,8 @@ proto.api.ListTenantsRequest.toObject = function(includeInstance, msg) {
|
||||
var f, obj = {
|
||||
limit: msg.getLimit(),
|
||||
offset: msg.getOffset(),
|
||||
search: msg.getSearch()
|
||||
search: msg.getSearch(),
|
||||
userId: msg.getUserId()
|
||||
};
|
||||
|
||||
if (includeInstance) {
|
||||
@ -1932,6 +1933,10 @@ proto.api.ListTenantsRequest.deserializeBinaryFromReader = function(msg, reader)
|
||||
var value = /** @type {string} */ (reader.readString());
|
||||
msg.setSearch(value);
|
||||
break;
|
||||
case 4:
|
||||
var value = /** @type {string} */ (reader.readString());
|
||||
msg.setUserId(value);
|
||||
break;
|
||||
default:
|
||||
reader.skipField();
|
||||
break;
|
||||
@ -1991,6 +1996,13 @@ proto.api.ListTenantsRequest.prototype.serializeBinaryToWriter = function (write
|
||||
f
|
||||
);
|
||||
}
|
||||
f = this.getUserId();
|
||||
if (f.length > 0) {
|
||||
writer.writeString(
|
||||
4,
|
||||
f
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -2048,6 +2060,21 @@ proto.api.ListTenantsRequest.prototype.setSearch = function(value) {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional string user_id = 4;
|
||||
* @return {string}
|
||||
*/
|
||||
proto.api.ListTenantsRequest.prototype.getUserId = function() {
|
||||
return /** @type {string} */ (jspb.Message.getFieldProto3(this, 4, ""));
|
||||
};
|
||||
|
||||
|
||||
/** @param {string} value */
|
||||
proto.api.ListTenantsRequest.prototype.setUserId = function(value) {
|
||||
jspb.Message.setField(this, 4, value);
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Generated by JsPbCodeGenerator.
|
||||
|
12
api/js/common/common_pb.d.ts
vendored
12
api/js/common/common_pb.d.ts
vendored
@ -80,6 +80,9 @@ export class Metric extends jspb.Message {
|
||||
setDatasetsList(value: Array<MetricDataset>): void;
|
||||
addDatasets(value?: MetricDataset, index?: number): MetricDataset;
|
||||
|
||||
getKind(): MetricKindMap[keyof MetricKindMap];
|
||||
setKind(value: MetricKindMap[keyof MetricKindMap]): void;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): Metric.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: Metric): Metric.AsObject;
|
||||
@ -95,6 +98,7 @@ export namespace Metric {
|
||||
name: string,
|
||||
timestampsList: Array<google_protobuf_timestamp_pb.Timestamp.AsObject>,
|
||||
datasetsList: Array<MetricDataset.AsObject>,
|
||||
kind: MetricKindMap[keyof MetricKindMap],
|
||||
}
|
||||
}
|
||||
|
||||
@ -206,3 +210,11 @@ export interface AggregationMap {
|
||||
|
||||
export const Aggregation: AggregationMap;
|
||||
|
||||
export interface MetricKindMap {
|
||||
COUNTER: 0;
|
||||
ABSOLUTE: 1;
|
||||
GAUGE: 2;
|
||||
}
|
||||
|
||||
export const MetricKind: MetricKindMap;
|
||||
|
||||
|
39
api/js/common/common_pb.js
vendored
39
api/js/common/common_pb.js
vendored
@ -18,6 +18,7 @@ goog.exportSymbol('proto.common.MType', null, global);
|
||||
goog.exportSymbol('proto.common.MacVersion', null, global);
|
||||
goog.exportSymbol('proto.common.Metric', null, global);
|
||||
goog.exportSymbol('proto.common.MetricDataset', null, global);
|
||||
goog.exportSymbol('proto.common.MetricKind', null, global);
|
||||
goog.exportSymbol('proto.common.Modulation', null, global);
|
||||
goog.exportSymbol('proto.common.RegParamsRevision', null, global);
|
||||
goog.exportSymbol('proto.common.Region', null, global);
|
||||
@ -555,7 +556,8 @@ proto.common.Metric.toObject = function(includeInstance, msg) {
|
||||
timestampsList: jspb.Message.toObjectList(msg.getTimestampsList(),
|
||||
google_protobuf_timestamp_pb.Timestamp.toObject, includeInstance),
|
||||
datasetsList: jspb.Message.toObjectList(msg.getDatasetsList(),
|
||||
proto.common.MetricDataset.toObject, includeInstance)
|
||||
proto.common.MetricDataset.toObject, includeInstance),
|
||||
kind: msg.getKind()
|
||||
};
|
||||
|
||||
if (includeInstance) {
|
||||
@ -608,6 +610,10 @@ proto.common.Metric.deserializeBinaryFromReader = function(msg, reader) {
|
||||
msg.getDatasetsList().push(value);
|
||||
msg.setDatasetsList(msg.getDatasetsList());
|
||||
break;
|
||||
case 4:
|
||||
var value = /** @type {!proto.common.MetricKind} */ (reader.readEnum());
|
||||
msg.setKind(value);
|
||||
break;
|
||||
default:
|
||||
reader.skipField();
|
||||
break;
|
||||
@ -669,6 +675,13 @@ proto.common.Metric.prototype.serializeBinaryToWriter = function (writer) {
|
||||
proto.common.MetricDataset.serializeBinaryToWriter
|
||||
);
|
||||
}
|
||||
f = this.getKind();
|
||||
if (f !== 0.0) {
|
||||
writer.writeEnum(
|
||||
4,
|
||||
f
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -742,6 +755,21 @@ proto.common.Metric.prototype.clearDatasetsList = function() {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional MetricKind kind = 4;
|
||||
* @return {!proto.common.MetricKind}
|
||||
*/
|
||||
proto.common.Metric.prototype.getKind = function() {
|
||||
return /** @type {!proto.common.MetricKind} */ (jspb.Message.getFieldProto3(this, 4, 0));
|
||||
};
|
||||
|
||||
|
||||
/** @param {!proto.common.MetricKind} value */
|
||||
proto.common.Metric.prototype.setKind = function(value) {
|
||||
jspb.Message.setField(this, 4, value);
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Generated by JsPbCodeGenerator.
|
||||
@ -1031,4 +1059,13 @@ proto.common.Aggregation = {
|
||||
MONTH: 2
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
proto.common.MetricKind = {
|
||||
COUNTER: 0,
|
||||
ABSOLUTE: 1,
|
||||
GAUGE: 2
|
||||
};
|
||||
|
||||
goog.object.extend(exports, proto.common);
|
||||
|
1
api/js/google/api/billing_pb.d.ts
vendored
1
api/js/google/api/billing_pb.d.ts
vendored
@ -2,7 +2,6 @@
|
||||
// file: google/api/billing.proto
|
||||
|
||||
import * as jspb from "google-protobuf";
|
||||
import * as google_api_metric_pb from "../../google/api/metric_pb";
|
||||
|
||||
export class Billing extends jspb.Message {
|
||||
clearConsumerDestinationsList(): void;
|
||||
|
1
api/js/google/api/billing_pb.js
vendored
1
api/js/google/api/billing_pb.js
vendored
@ -9,7 +9,6 @@ var jspb = require('google-protobuf');
|
||||
var goog = jspb;
|
||||
var global = Function('return this')();
|
||||
|
||||
var google_api_metric_pb = require('../../google/api/metric_pb.js');
|
||||
goog.exportSymbol('proto.google.api.Billing', null, global);
|
||||
goog.exportSymbol('proto.google.api.Billing.BillingDestination', null, global);
|
||||
|
||||
|
3
api/js/google/api/service_pb.d.ts
vendored
3
api/js/google/api/service_pb.d.ts
vendored
@ -10,18 +10,15 @@ import * as google_api_control_pb from "../../google/api/control_pb";
|
||||
import * as google_api_documentation_pb from "../../google/api/documentation_pb";
|
||||
import * as google_api_endpoint_pb from "../../google/api/endpoint_pb";
|
||||
import * as google_api_http_pb from "../../google/api/http_pb";
|
||||
import * as google_api_label_pb from "../../google/api/label_pb";
|
||||
import * as google_api_log_pb from "../../google/api/log_pb";
|
||||
import * as google_api_logging_pb from "../../google/api/logging_pb";
|
||||
import * as google_api_metric_pb from "../../google/api/metric_pb";
|
||||
import * as google_api_monitored_resource_pb from "../../google/api/monitored_resource_pb";
|
||||
import * as google_api_monitoring_pb from "../../google/api/monitoring_pb";
|
||||
import * as google_api_quota_pb from "../../google/api/quota_pb";
|
||||
import * as google_api_resource_pb from "../../google/api/resource_pb";
|
||||
import * as google_api_source_info_pb from "../../google/api/source_info_pb";
|
||||
import * as google_api_system_parameter_pb from "../../google/api/system_parameter_pb";
|
||||
import * as google_api_usage_pb from "../../google/api/usage_pb";
|
||||
import * as google_protobuf_any_pb from "google-protobuf/google/protobuf/any_pb";
|
||||
import * as google_protobuf_api_pb from "google-protobuf/google/protobuf/api_pb";
|
||||
import * as google_protobuf_type_pb from "google-protobuf/google/protobuf/type_pb";
|
||||
import * as google_protobuf_wrappers_pb from "google-protobuf/google/protobuf/wrappers_pb";
|
||||
|
3
api/js/google/api/service_pb.js
vendored
3
api/js/google/api/service_pb.js
vendored
@ -17,18 +17,15 @@ var google_api_control_pb = require('../../google/api/control_pb.js');
|
||||
var google_api_documentation_pb = require('../../google/api/documentation_pb.js');
|
||||
var google_api_endpoint_pb = require('../../google/api/endpoint_pb.js');
|
||||
var google_api_http_pb = require('../../google/api/http_pb.js');
|
||||
var google_api_label_pb = require('../../google/api/label_pb.js');
|
||||
var google_api_log_pb = require('../../google/api/log_pb.js');
|
||||
var google_api_logging_pb = require('../../google/api/logging_pb.js');
|
||||
var google_api_metric_pb = require('../../google/api/metric_pb.js');
|
||||
var google_api_monitored_resource_pb = require('../../google/api/monitored_resource_pb.js');
|
||||
var google_api_monitoring_pb = require('../../google/api/monitoring_pb.js');
|
||||
var google_api_quota_pb = require('../../google/api/quota_pb.js');
|
||||
var google_api_resource_pb = require('../../google/api/resource_pb.js');
|
||||
var google_api_source_info_pb = require('../../google/api/source_info_pb.js');
|
||||
var google_api_system_parameter_pb = require('../../google/api/system_parameter_pb.js');
|
||||
var google_api_usage_pb = require('../../google/api/usage_pb.js');
|
||||
var google_protobuf_any_pb = require('google-protobuf/google/protobuf/any_pb.js');
|
||||
var google_protobuf_api_pb = require('google-protobuf/google/protobuf/api_pb.js');
|
||||
var google_protobuf_type_pb = require('google-protobuf/google/protobuf/type_pb.js');
|
||||
var google_protobuf_wrappers_pb = require('google-protobuf/google/protobuf/wrappers_pb.js');
|
||||
|
11
api/js/gw/gw_pb.d.ts
vendored
11
api/js/gw/gw_pb.d.ts
vendored
@ -513,6 +513,12 @@ export class UplinkRxInfo extends jspb.Message {
|
||||
getSnr(): number;
|
||||
setSnr(value: number): void;
|
||||
|
||||
getChannel(): number;
|
||||
setChannel(value: number): void;
|
||||
|
||||
getRfChain(): number;
|
||||
setRfChain(value: number): void;
|
||||
|
||||
getBoard(): number;
|
||||
setBoard(value: number): void;
|
||||
|
||||
@ -553,6 +559,8 @@ export namespace UplinkRxInfo {
|
||||
fineTimeSinceGpsEpoch?: google_protobuf_duration_pb.Duration.AsObject,
|
||||
rssi: number,
|
||||
snr: number,
|
||||
channel: number,
|
||||
rfChain: number,
|
||||
board: number,
|
||||
antenna: number,
|
||||
location?: common_common_pb.Location.AsObject,
|
||||
@ -1380,6 +1388,9 @@ export interface CodeRateMap {
|
||||
CR_1_4: 7;
|
||||
CR_1_6: 8;
|
||||
CR_5_6: 9;
|
||||
CR_LI_4_5: 10;
|
||||
CR_LI_4_6: 11;
|
||||
CR_LI_4_8: 12;
|
||||
}
|
||||
|
||||
export const CodeRate: CodeRateMap;
|
||||
|
115
api/js/gw/gw_pb.js
vendored
115
api/js/gw/gw_pb.js
vendored
@ -3664,6 +3664,8 @@ proto.gw.UplinkRxInfo.toObject = function(includeInstance, msg) {
|
||||
fineTimeSinceGpsEpoch: (f = msg.getFineTimeSinceGpsEpoch()) && google_protobuf_duration_pb.Duration.toObject(includeInstance, f),
|
||||
rssi: msg.getRssi(),
|
||||
snr: msg.getSnr(),
|
||||
channel: msg.getChannel(),
|
||||
rfChain: msg.getRfChain(),
|
||||
board: msg.getBoard(),
|
||||
antenna: msg.getAntenna(),
|
||||
location: (f = msg.getLocation()) && common_common_pb.Location.toObject(includeInstance, f),
|
||||
@ -3738,22 +3740,30 @@ proto.gw.UplinkRxInfo.deserializeBinaryFromReader = function(msg, reader) {
|
||||
break;
|
||||
case 8:
|
||||
var value = /** @type {number} */ (reader.readUint32());
|
||||
msg.setBoard(value);
|
||||
msg.setChannel(value);
|
||||
break;
|
||||
case 9:
|
||||
var value = /** @type {number} */ (reader.readUint32());
|
||||
msg.setAntenna(value);
|
||||
msg.setRfChain(value);
|
||||
break;
|
||||
case 10:
|
||||
var value = /** @type {number} */ (reader.readUint32());
|
||||
msg.setBoard(value);
|
||||
break;
|
||||
case 11:
|
||||
var value = /** @type {number} */ (reader.readUint32());
|
||||
msg.setAntenna(value);
|
||||
break;
|
||||
case 12:
|
||||
var value = new common_common_pb.Location;
|
||||
reader.readMessage(value,common_common_pb.Location.deserializeBinaryFromReader);
|
||||
msg.setLocation(value);
|
||||
break;
|
||||
case 11:
|
||||
case 13:
|
||||
var value = /** @type {!Uint8Array} */ (reader.readBytes());
|
||||
msg.setContext(value);
|
||||
break;
|
||||
case 12:
|
||||
case 14:
|
||||
var value = new google_protobuf_struct_pb.Struct;
|
||||
reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);
|
||||
msg.setMetadata(value);
|
||||
@ -3848,24 +3858,38 @@ proto.gw.UplinkRxInfo.prototype.serializeBinaryToWriter = function (writer) {
|
||||
f
|
||||
);
|
||||
}
|
||||
f = this.getBoard();
|
||||
f = this.getChannel();
|
||||
if (f !== 0) {
|
||||
writer.writeUint32(
|
||||
8,
|
||||
f
|
||||
);
|
||||
}
|
||||
f = this.getAntenna();
|
||||
f = this.getRfChain();
|
||||
if (f !== 0) {
|
||||
writer.writeUint32(
|
||||
9,
|
||||
f
|
||||
);
|
||||
}
|
||||
f = this.getBoard();
|
||||
if (f !== 0) {
|
||||
writer.writeUint32(
|
||||
10,
|
||||
f
|
||||
);
|
||||
}
|
||||
f = this.getAntenna();
|
||||
if (f !== 0) {
|
||||
writer.writeUint32(
|
||||
11,
|
||||
f
|
||||
);
|
||||
}
|
||||
f = this.getLocation();
|
||||
if (f != null) {
|
||||
writer.writeMessage(
|
||||
10,
|
||||
12,
|
||||
f,
|
||||
common_common_pb.Location.serializeBinaryToWriter
|
||||
);
|
||||
@ -3873,14 +3897,14 @@ proto.gw.UplinkRxInfo.prototype.serializeBinaryToWriter = function (writer) {
|
||||
f = this.getContext_asU8();
|
||||
if (f.length > 0) {
|
||||
writer.writeBytes(
|
||||
11,
|
||||
13,
|
||||
f
|
||||
);
|
||||
}
|
||||
f = this.getMetadata();
|
||||
if (f != null) {
|
||||
writer.writeMessage(
|
||||
12,
|
||||
14,
|
||||
f,
|
||||
google_protobuf_struct_pb.Struct.serializeBinaryToWriter
|
||||
);
|
||||
@ -4048,48 +4072,78 @@ proto.gw.UplinkRxInfo.prototype.setSnr = function(value) {
|
||||
|
||||
|
||||
/**
|
||||
* optional uint32 board = 8;
|
||||
* optional uint32 channel = 8;
|
||||
* @return {number}
|
||||
*/
|
||||
proto.gw.UplinkRxInfo.prototype.getBoard = function() {
|
||||
proto.gw.UplinkRxInfo.prototype.getChannel = function() {
|
||||
return /** @type {number} */ (jspb.Message.getFieldProto3(this, 8, 0));
|
||||
};
|
||||
|
||||
|
||||
/** @param {number} value */
|
||||
proto.gw.UplinkRxInfo.prototype.setBoard = function(value) {
|
||||
proto.gw.UplinkRxInfo.prototype.setChannel = function(value) {
|
||||
jspb.Message.setField(this, 8, value);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional uint32 antenna = 9;
|
||||
* optional uint32 rf_chain = 9;
|
||||
* @return {number}
|
||||
*/
|
||||
proto.gw.UplinkRxInfo.prototype.getAntenna = function() {
|
||||
proto.gw.UplinkRxInfo.prototype.getRfChain = function() {
|
||||
return /** @type {number} */ (jspb.Message.getFieldProto3(this, 9, 0));
|
||||
};
|
||||
|
||||
|
||||
/** @param {number} value */
|
||||
proto.gw.UplinkRxInfo.prototype.setAntenna = function(value) {
|
||||
proto.gw.UplinkRxInfo.prototype.setRfChain = function(value) {
|
||||
jspb.Message.setField(this, 9, value);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional common.Location location = 10;
|
||||
* optional uint32 board = 10;
|
||||
* @return {number}
|
||||
*/
|
||||
proto.gw.UplinkRxInfo.prototype.getBoard = function() {
|
||||
return /** @type {number} */ (jspb.Message.getFieldProto3(this, 10, 0));
|
||||
};
|
||||
|
||||
|
||||
/** @param {number} value */
|
||||
proto.gw.UplinkRxInfo.prototype.setBoard = function(value) {
|
||||
jspb.Message.setField(this, 10, value);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional uint32 antenna = 11;
|
||||
* @return {number}
|
||||
*/
|
||||
proto.gw.UplinkRxInfo.prototype.getAntenna = function() {
|
||||
return /** @type {number} */ (jspb.Message.getFieldProto3(this, 11, 0));
|
||||
};
|
||||
|
||||
|
||||
/** @param {number} value */
|
||||
proto.gw.UplinkRxInfo.prototype.setAntenna = function(value) {
|
||||
jspb.Message.setField(this, 11, value);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional common.Location location = 12;
|
||||
* @return {proto.common.Location}
|
||||
*/
|
||||
proto.gw.UplinkRxInfo.prototype.getLocation = function() {
|
||||
return /** @type{proto.common.Location} */ (
|
||||
jspb.Message.getWrapperField(this, common_common_pb.Location, 10));
|
||||
jspb.Message.getWrapperField(this, common_common_pb.Location, 12));
|
||||
};
|
||||
|
||||
|
||||
/** @param {proto.common.Location|undefined} value */
|
||||
proto.gw.UplinkRxInfo.prototype.setLocation = function(value) {
|
||||
jspb.Message.setWrapperField(this, 10, value);
|
||||
jspb.Message.setWrapperField(this, 12, value);
|
||||
};
|
||||
|
||||
|
||||
@ -4103,21 +4157,21 @@ proto.gw.UplinkRxInfo.prototype.clearLocation = function() {
|
||||
* @return{!boolean}
|
||||
*/
|
||||
proto.gw.UplinkRxInfo.prototype.hasLocation = function() {
|
||||
return jspb.Message.getField(this, 10) != null;
|
||||
return jspb.Message.getField(this, 12) != null;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional bytes context = 11;
|
||||
* optional bytes context = 13;
|
||||
* @return {!(string|Uint8Array)}
|
||||
*/
|
||||
proto.gw.UplinkRxInfo.prototype.getContext = function() {
|
||||
return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldProto3(this, 11, ""));
|
||||
return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldProto3(this, 13, ""));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional bytes context = 11;
|
||||
* optional bytes context = 13;
|
||||
* This is a type-conversion wrapper around `getContext()`
|
||||
* @return {string}
|
||||
*/
|
||||
@ -4128,7 +4182,7 @@ proto.gw.UplinkRxInfo.prototype.getContext_asB64 = function() {
|
||||
|
||||
|
||||
/**
|
||||
* optional bytes context = 11;
|
||||
* optional bytes context = 13;
|
||||
* Note that Uint8Array is not supported on all browsers.
|
||||
* @see http://caniuse.com/Uint8Array
|
||||
* This is a type-conversion wrapper around `getContext()`
|
||||
@ -4142,23 +4196,23 @@ proto.gw.UplinkRxInfo.prototype.getContext_asU8 = function() {
|
||||
|
||||
/** @param {!(string|Uint8Array)} value */
|
||||
proto.gw.UplinkRxInfo.prototype.setContext = function(value) {
|
||||
jspb.Message.setField(this, 11, value);
|
||||
jspb.Message.setField(this, 13, value);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional google.protobuf.Struct metadata = 12;
|
||||
* optional google.protobuf.Struct metadata = 14;
|
||||
* @return {proto.google.protobuf.Struct}
|
||||
*/
|
||||
proto.gw.UplinkRxInfo.prototype.getMetadata = function() {
|
||||
return /** @type{proto.google.protobuf.Struct} */ (
|
||||
jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 12));
|
||||
jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 14));
|
||||
};
|
||||
|
||||
|
||||
/** @param {proto.google.protobuf.Struct|undefined} value */
|
||||
proto.gw.UplinkRxInfo.prototype.setMetadata = function(value) {
|
||||
jspb.Message.setWrapperField(this, 12, value);
|
||||
jspb.Message.setWrapperField(this, 14, value);
|
||||
};
|
||||
|
||||
|
||||
@ -4172,7 +4226,7 @@ proto.gw.UplinkRxInfo.prototype.clearMetadata = function() {
|
||||
* @return{!boolean}
|
||||
*/
|
||||
proto.gw.UplinkRxInfo.prototype.hasMetadata = function() {
|
||||
return jspb.Message.getField(this, 12) != null;
|
||||
return jspb.Message.getField(this, 14) != null;
|
||||
};
|
||||
|
||||
|
||||
@ -10326,7 +10380,10 @@ proto.gw.CodeRate = {
|
||||
CR_2_6: 6,
|
||||
CR_1_4: 7,
|
||||
CR_1_6: 8,
|
||||
CR_5_6: 9
|
||||
CR_5_6: 9,
|
||||
CR_LI_4_5: 10,
|
||||
CR_LI_4_6: 11,
|
||||
CR_LI_4_8: 12
|
||||
};
|
||||
|
||||
/**
|
||||
|
2
api/js/package.json
vendored
2
api/js/package.json
vendored
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@chirpstack/chirpstack-api",
|
||||
"version": "4.0.0-test.11",
|
||||
"version": "4.0.2",
|
||||
"description": "Chirpstack JS and TS API",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
|
2
api/md/Makefile
vendored
2
api/md/Makefile
vendored
@ -1,6 +1,6 @@
|
||||
.PHONY: requirements api
|
||||
|
||||
all: requirements
|
||||
all: requirements api
|
||||
|
||||
requirements:
|
||||
go install github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc@v1.5.1
|
||||
|
563
api/md/api/api.md
vendored
563
api/md/api/api.md
vendored
@ -14,6 +14,7 @@
|
||||
- [CreateAzureServiceBusIntegrationRequest](#api-CreateAzureServiceBusIntegrationRequest)
|
||||
- [CreateGcpPubSubIntegrationRequest](#api-CreateGcpPubSubIntegrationRequest)
|
||||
- [CreateHttpIntegrationRequest](#api-CreateHttpIntegrationRequest)
|
||||
- [CreateIftttIntegrationRequest](#api-CreateIftttIntegrationRequest)
|
||||
- [CreateInfluxDbIntegrationRequest](#api-CreateInfluxDbIntegrationRequest)
|
||||
- [CreateLoraCloudIntegrationRequest](#api-CreateLoraCloudIntegrationRequest)
|
||||
- [CreateMyDevicesIntegrationRequest](#api-CreateMyDevicesIntegrationRequest)
|
||||
@ -24,6 +25,7 @@
|
||||
- [DeleteAzureServiceBusIntegrationRequest](#api-DeleteAzureServiceBusIntegrationRequest)
|
||||
- [DeleteGcpPubSubIntegrationRequest](#api-DeleteGcpPubSubIntegrationRequest)
|
||||
- [DeleteHttpIntegrationRequest](#api-DeleteHttpIntegrationRequest)
|
||||
- [DeleteIftttIntegrationRequest](#api-DeleteIftttIntegrationRequest)
|
||||
- [DeleteInfluxDbIntegrationRequest](#api-DeleteInfluxDbIntegrationRequest)
|
||||
- [DeleteLoraCloudIntegrationRequest](#api-DeleteLoraCloudIntegrationRequest)
|
||||
- [DeleteMyDevicesIntegrationRequest](#api-DeleteMyDevicesIntegrationRequest)
|
||||
@ -42,6 +44,8 @@
|
||||
- [GetGcpPubSubIntegrationResponse](#api-GetGcpPubSubIntegrationResponse)
|
||||
- [GetHttpIntegrationRequest](#api-GetHttpIntegrationRequest)
|
||||
- [GetHttpIntegrationResponse](#api-GetHttpIntegrationResponse)
|
||||
- [GetIftttIntegrationRequest](#api-GetIftttIntegrationRequest)
|
||||
- [GetIftttIntegrationResponse](#api-GetIftttIntegrationResponse)
|
||||
- [GetInfluxDbIntegrationRequest](#api-GetInfluxDbIntegrationRequest)
|
||||
- [GetInfluxDbIntegrationResponse](#api-GetInfluxDbIntegrationResponse)
|
||||
- [GetLoraCloudIntegrationRequest](#api-GetLoraCloudIntegrationRequest)
|
||||
@ -54,6 +58,7 @@
|
||||
- [GetThingsBoardIntegrationResponse](#api-GetThingsBoardIntegrationResponse)
|
||||
- [HttpIntegration](#api-HttpIntegration)
|
||||
- [HttpIntegration.HeadersEntry](#api-HttpIntegration-HeadersEntry)
|
||||
- [IftttIntegration](#api-IftttIntegration)
|
||||
- [InfluxDbIntegration](#api-InfluxDbIntegration)
|
||||
- [IntegrationListItem](#api-IntegrationListItem)
|
||||
- [ListApplicationsRequest](#api-ListApplicationsRequest)
|
||||
@ -70,6 +75,7 @@
|
||||
- [UpdateAzureServiceBusIntegrationRequest](#api-UpdateAzureServiceBusIntegrationRequest)
|
||||
- [UpdateGcpPubSubIntegrationRequest](#api-UpdateGcpPubSubIntegrationRequest)
|
||||
- [UpdateHttpIntegrationRequest](#api-UpdateHttpIntegrationRequest)
|
||||
- [UpdateIftttIntegrationRequest](#api-UpdateIftttIntegrationRequest)
|
||||
- [UpdateInfluxDbIntegrationRequest](#api-UpdateInfluxDbIntegrationRequest)
|
||||
- [UpdateLoraCloudIntegrationRequest](#api-UpdateLoraCloudIntegrationRequest)
|
||||
- [UpdateMyDevicesIntegrationRequest](#api-UpdateMyDevicesIntegrationRequest)
|
||||
@ -97,10 +103,7 @@
|
||||
- [DeviceKeys](#api-DeviceKeys)
|
||||
- [DeviceListItem](#api-DeviceListItem)
|
||||
- [DeviceQueueItem](#api-DeviceQueueItem)
|
||||
- [DeviceStats](#api-DeviceStats)
|
||||
- [DeviceStats.ErrorsEntry](#api-DeviceStats-ErrorsEntry)
|
||||
- [DeviceStats.RxPacketsPerDrEntry](#api-DeviceStats-RxPacketsPerDrEntry)
|
||||
- [DeviceStats.RxPacketsPerFrequencyEntry](#api-DeviceStats-RxPacketsPerFrequencyEntry)
|
||||
- [DeviceState](#api-DeviceState)
|
||||
- [DeviceStatus](#api-DeviceStatus)
|
||||
- [EnqueueDeviceQueueItemRequest](#api-EnqueueDeviceQueueItemRequest)
|
||||
- [EnqueueDeviceQueueItemResponse](#api-EnqueueDeviceQueueItemResponse)
|
||||
@ -110,12 +113,16 @@
|
||||
- [GetDeviceActivationResponse](#api-GetDeviceActivationResponse)
|
||||
- [GetDeviceKeysRequest](#api-GetDeviceKeysRequest)
|
||||
- [GetDeviceKeysResponse](#api-GetDeviceKeysResponse)
|
||||
- [GetDeviceLinkMetricsRequest](#api-GetDeviceLinkMetricsRequest)
|
||||
- [GetDeviceLinkMetricsResponse](#api-GetDeviceLinkMetricsResponse)
|
||||
- [GetDeviceMetricsRequest](#api-GetDeviceMetricsRequest)
|
||||
- [GetDeviceMetricsResponse](#api-GetDeviceMetricsResponse)
|
||||
- [GetDeviceMetricsResponse.MetricsEntry](#api-GetDeviceMetricsResponse-MetricsEntry)
|
||||
- [GetDeviceMetricsResponse.StatesEntry](#api-GetDeviceMetricsResponse-StatesEntry)
|
||||
- [GetDeviceQueueItemsRequest](#api-GetDeviceQueueItemsRequest)
|
||||
- [GetDeviceQueueItemsResponse](#api-GetDeviceQueueItemsResponse)
|
||||
- [GetDeviceRequest](#api-GetDeviceRequest)
|
||||
- [GetDeviceResponse](#api-GetDeviceResponse)
|
||||
- [GetDeviceStatsRequest](#api-GetDeviceStatsRequest)
|
||||
- [GetDeviceStatsResponse](#api-GetDeviceStatsResponse)
|
||||
- [GetRandomDevAddrRequest](#api-GetRandomDevAddrRequest)
|
||||
- [GetRandomDevAddrResponse](#api-GetRandomDevAddrResponse)
|
||||
- [ListDevicesRequest](#api-ListDevicesRequest)
|
||||
@ -131,6 +138,7 @@
|
||||
- [CreateDeviceProfileResponse](#api-CreateDeviceProfileResponse)
|
||||
- [DeleteDeviceProfileRequest](#api-DeleteDeviceProfileRequest)
|
||||
- [DeviceProfile](#api-DeviceProfile)
|
||||
- [DeviceProfile.MeasurementsEntry](#api-DeviceProfile-MeasurementsEntry)
|
||||
- [DeviceProfile.TagsEntry](#api-DeviceProfile-TagsEntry)
|
||||
- [DeviceProfileListItem](#api-DeviceProfileListItem)
|
||||
- [GetDeviceProfileRequest](#api-GetDeviceProfileRequest)
|
||||
@ -138,9 +146,11 @@
|
||||
- [ListDeviceProfileAdrAlgorithmsResponse](#api-ListDeviceProfileAdrAlgorithmsResponse)
|
||||
- [ListDeviceProfilesRequest](#api-ListDeviceProfilesRequest)
|
||||
- [ListDeviceProfilesResponse](#api-ListDeviceProfilesResponse)
|
||||
- [Measurement](#api-Measurement)
|
||||
- [UpdateDeviceProfileRequest](#api-UpdateDeviceProfileRequest)
|
||||
|
||||
- [CodecRuntime](#api-CodecRuntime)
|
||||
- [MeasurementKind](#api-MeasurementKind)
|
||||
|
||||
- [DeviceProfileService](#api-DeviceProfileService)
|
||||
|
||||
@ -156,18 +166,12 @@
|
||||
- [Gateway.TagsEntry](#api-Gateway-TagsEntry)
|
||||
- [GatewayListItem](#api-GatewayListItem)
|
||||
- [GatewayListItem.PropertiesEntry](#api-GatewayListItem-PropertiesEntry)
|
||||
- [GatewayStats](#api-GatewayStats)
|
||||
- [GatewayStats.RxPacketsPerDrEntry](#api-GatewayStats-RxPacketsPerDrEntry)
|
||||
- [GatewayStats.RxPacketsPerFrequencyEntry](#api-GatewayStats-RxPacketsPerFrequencyEntry)
|
||||
- [GatewayStats.TxPacketsPerDrEntry](#api-GatewayStats-TxPacketsPerDrEntry)
|
||||
- [GatewayStats.TxPacketsPerFrequencyEntry](#api-GatewayStats-TxPacketsPerFrequencyEntry)
|
||||
- [GatewayStats.TxPacketsPerStatusEntry](#api-GatewayStats-TxPacketsPerStatusEntry)
|
||||
- [GenerateGatewayClientCertificateRequest](#api-GenerateGatewayClientCertificateRequest)
|
||||
- [GenerateGatewayClientCertificateResponse](#api-GenerateGatewayClientCertificateResponse)
|
||||
- [GetGatewayMetricsRequest](#api-GetGatewayMetricsRequest)
|
||||
- [GetGatewayMetricsResponse](#api-GetGatewayMetricsResponse)
|
||||
- [GetGatewayRequest](#api-GetGatewayRequest)
|
||||
- [GetGatewayResponse](#api-GetGatewayResponse)
|
||||
- [GetGatewayStatsRequest](#api-GetGatewayStatsRequest)
|
||||
- [GetGatewayStatsResponse](#api-GetGatewayStatsResponse)
|
||||
- [ListGatewaysRequest](#api-ListGatewaysRequest)
|
||||
- [ListGatewaysResponse](#api-ListGatewaysResponse)
|
||||
- [UpdateGatewayRequest](#api-UpdateGatewayRequest)
|
||||
@ -413,6 +417,21 @@
|
||||
|
||||
|
||||
|
||||
<a name="api-CreateIftttIntegrationRequest"></a>
|
||||
|
||||
### CreateIftttIntegrationRequest
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| integration | [IftttIntegration](#api-IftttIntegration) | | Integration object. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-CreateInfluxDbIntegrationRequest"></a>
|
||||
|
||||
### CreateInfluxDbIntegrationRequest
|
||||
@ -563,6 +582,21 @@
|
||||
|
||||
|
||||
|
||||
<a name="api-DeleteIftttIntegrationRequest"></a>
|
||||
|
||||
### DeleteIftttIntegrationRequest
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| application_id | [string](#string) | | Application ID (UUID). |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-DeleteInfluxDbIntegrationRequest"></a>
|
||||
|
||||
### DeleteInfluxDbIntegrationRequest
|
||||
@ -716,6 +750,7 @@
|
||||
| application | [Application](#api-Application) | | Application object. |
|
||||
| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Created at timestamp. |
|
||||
| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Last update timestamp. |
|
||||
| measurement_keys | [string](#string) | repeated | Measurement keys. This contains the measurement keys from all the device-profiles that are used by the devices under this application. |
|
||||
|
||||
|
||||
|
||||
@ -842,6 +877,36 @@
|
||||
|
||||
|
||||
|
||||
<a name="api-GetIftttIntegrationRequest"></a>
|
||||
|
||||
### GetIftttIntegrationRequest
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| application_id | [string](#string) | | Application ID (UUID). |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-GetIftttIntegrationResponse"></a>
|
||||
|
||||
### GetIftttIntegrationResponse
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| integration | [IftttIntegration](#api-IftttIntegration) | | Integration object. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-GetInfluxDbIntegrationRequest"></a>
|
||||
|
||||
### GetInfluxDbIntegrationRequest
|
||||
@ -1026,6 +1091,25 @@
|
||||
|
||||
|
||||
|
||||
<a name="api-IftttIntegration"></a>
|
||||
|
||||
### IftttIntegration
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| application_id | [string](#string) | | Application ID (UUID). |
|
||||
| key | [string](#string) | | Key. This key can be obtained from the IFTTT Webhooks documentation page. |
|
||||
| uplink_values | [string](#string) | repeated | Values. Up to 2 values can be forwarded to IFTTT. These values must map to the decoded payload keys. For example: { "batteryLevel": 75.3, "buttons": [{"pressed": false}, {"pressed": true}] } You would specify the following fields: uplink_values = ["batteryLevel", "buttons_0_pressed"]
|
||||
|
||||
Note: The first value is always used for the DevEUI. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-InfluxDbIntegration"></a>
|
||||
|
||||
### InfluxDbIntegration
|
||||
@ -1300,6 +1384,21 @@
|
||||
|
||||
|
||||
|
||||
<a name="api-UpdateIftttIntegrationRequest"></a>
|
||||
|
||||
### UpdateIftttIntegrationRequest
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| integration | [IftttIntegration](#api-IftttIntegration) | | Integration object to update. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-UpdateInfluxDbIntegrationRequest"></a>
|
||||
|
||||
### UpdateInfluxDbIntegrationRequest
|
||||
@ -1434,6 +1533,7 @@
|
||||
| AZURE_SERVICE_BUS | 7 | |
|
||||
| PILOT_THINGS | 8 | |
|
||||
| MQTT_GLOBAL | 9 | |
|
||||
| IFTTT | 10 | |
|
||||
|
||||
|
||||
|
||||
@ -1490,6 +1590,10 @@ ApplicationService is the service providing API methods for managing application
|
||||
| GetPilotThingsIntegration | [GetPilotThingsIntegrationRequest](#api-GetPilotThingsIntegrationRequest) | [GetPilotThingsIntegrationResponse](#api-GetPilotThingsIntegrationResponse) | Get Pilot Things integration. |
|
||||
| UpdatePilotThingsIntegration | [UpdatePilotThingsIntegrationRequest](#api-UpdatePilotThingsIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Update Pilot Things integration. |
|
||||
| DeletePilotThingsIntegration | [DeletePilotThingsIntegrationRequest](#api-DeletePilotThingsIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Delete Pilot Things integration. |
|
||||
| CreateIftttIntegration | [CreateIftttIntegrationRequest](#api-CreateIftttIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Create IFTTT integration. |
|
||||
| GetIftttIntegration | [GetIftttIntegrationRequest](#api-GetIftttIntegrationRequest) | [GetIftttIntegrationResponse](#api-GetIftttIntegrationResponse) | Get IFTTT integration. |
|
||||
| UpdateIftttIntegration | [UpdateIftttIntegrationRequest](#api-UpdateIftttIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Update IFTTT integration. |
|
||||
| DeleteIftttIntegration | [DeleteIftttIntegrationRequest](#api-DeleteIftttIntegrationRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Delete IFTTT integration. |
|
||||
| GenerateMqttIntegrationClientCertificate | [GenerateMqttIntegrationClientCertificateRequest](#api-GenerateMqttIntegrationClientCertificateRequest) | [GenerateMqttIntegrationClientCertificateResponse](#api-GenerateMqttIntegrationClientCertificateResponse) | Generates application ID specific client-certificate. |
|
||||
|
||||
|
||||
@ -1733,69 +1837,16 @@ ApplicationService is the service providing API methods for managing application
|
||||
|
||||
|
||||
|
||||
<a name="api-DeviceStats"></a>
|
||||
<a name="api-DeviceState"></a>
|
||||
|
||||
### DeviceStats
|
||||
### DeviceState
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| time | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Timestamp of the (aggregated) measurement. |
|
||||
| rx_packets | [uint32](#uint32) | | Packets received from the device. |
|
||||
| gw_rssi | [float](#float) | | Average RSSI (as reported by the gateway(s)). |
|
||||
| gw_snr | [float](#float) | | Average SNR (as reported by the gateway(s)). |
|
||||
| rx_packets_per_frequency | [DeviceStats.RxPacketsPerFrequencyEntry](#api-DeviceStats-RxPacketsPerFrequencyEntry) | repeated | Packets received by frequency. |
|
||||
| rx_packets_per_dr | [DeviceStats.RxPacketsPerDrEntry](#api-DeviceStats-RxPacketsPerDrEntry) | repeated | Packets received by DR. |
|
||||
| errors | [DeviceStats.ErrorsEntry](#api-DeviceStats-ErrorsEntry) | repeated | Error count. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-DeviceStats-ErrorsEntry"></a>
|
||||
|
||||
### DeviceStats.ErrorsEntry
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| key | [string](#string) | | |
|
||||
| value | [uint32](#uint32) | | |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-DeviceStats-RxPacketsPerDrEntry"></a>
|
||||
|
||||
### DeviceStats.RxPacketsPerDrEntry
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| key | [uint32](#uint32) | | |
|
||||
| value | [uint32](#uint32) | | |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-DeviceStats-RxPacketsPerFrequencyEntry"></a>
|
||||
|
||||
### DeviceStats.RxPacketsPerFrequencyEntry
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| key | [uint32](#uint32) | | |
|
||||
| value | [uint32](#uint32) | | |
|
||||
| name | [string](#string) | | Name. |
|
||||
| value | [string](#string) | | Value. |
|
||||
|
||||
|
||||
|
||||
@ -1827,7 +1878,7 @@ ApplicationService is the service providing API methods for managing application
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| item | [DeviceQueueItem](#api-DeviceQueueItem) | | |
|
||||
| queue_item | [DeviceQueueItem](#api-DeviceQueueItem) | | |
|
||||
|
||||
|
||||
|
||||
@ -1941,6 +1992,110 @@ ApplicationService is the service providing API methods for managing application
|
||||
|
||||
|
||||
|
||||
<a name="api-GetDeviceLinkMetricsRequest"></a>
|
||||
|
||||
### GetDeviceLinkMetricsRequest
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| dev_eui | [string](#string) | | DevEUI (EUI64). |
|
||||
| start | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Interval start timestamp. |
|
||||
| end | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Interval end timestamp. |
|
||||
| aggregation | [common.Aggregation](#common-Aggregation) | | Aggregation. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-GetDeviceLinkMetricsResponse"></a>
|
||||
|
||||
### GetDeviceLinkMetricsResponse
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| rx_packets | [common.Metric](#common-Metric) | | Packets received from the device. |
|
||||
| gw_rssi | [common.Metric](#common-Metric) | | RSSI (as reported by the gateway(s)). |
|
||||
| gw_snr | [common.Metric](#common-Metric) | | SNR (as reported by the gateway(s)). |
|
||||
| rx_packets_per_freq | [common.Metric](#common-Metric) | | Packets received by frequency. |
|
||||
| rx_packets_per_dr | [common.Metric](#common-Metric) | | Packets received by DR. |
|
||||
| errors | [common.Metric](#common-Metric) | | Errors. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-GetDeviceMetricsRequest"></a>
|
||||
|
||||
### GetDeviceMetricsRequest
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| dev_eui | [string](#string) | | DevEUI (EUI64). |
|
||||
| start | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Interval start timestamp. |
|
||||
| end | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Interval end timestamp. |
|
||||
| aggregation | [common.Aggregation](#common-Aggregation) | | Aggregation. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-GetDeviceMetricsResponse"></a>
|
||||
|
||||
### GetDeviceMetricsResponse
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| metrics | [GetDeviceMetricsResponse.MetricsEntry](#api-GetDeviceMetricsResponse-MetricsEntry) | repeated | |
|
||||
| states | [GetDeviceMetricsResponse.StatesEntry](#api-GetDeviceMetricsResponse-StatesEntry) | repeated | |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-GetDeviceMetricsResponse-MetricsEntry"></a>
|
||||
|
||||
### GetDeviceMetricsResponse.MetricsEntry
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| key | [string](#string) | | |
|
||||
| value | [common.Metric](#common-Metric) | | |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-GetDeviceMetricsResponse-StatesEntry"></a>
|
||||
|
||||
### GetDeviceMetricsResponse.StatesEntry
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| key | [string](#string) | | |
|
||||
| value | [DeviceState](#api-DeviceState) | | |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-GetDeviceQueueItemsRequest"></a>
|
||||
|
||||
### GetDeviceQueueItemsRequest
|
||||
@ -2007,38 +2162,6 @@ ApplicationService is the service providing API methods for managing application
|
||||
|
||||
|
||||
|
||||
<a name="api-GetDeviceStatsRequest"></a>
|
||||
|
||||
### GetDeviceStatsRequest
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| dev_eui | [string](#string) | | DevEUI (EUI64). |
|
||||
| start | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Interval start timestamp. |
|
||||
| end | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Interval end timestamp. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-GetDeviceStatsResponse"></a>
|
||||
|
||||
### GetDeviceStatsResponse
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| result | [DeviceStats](#api-DeviceStats) | repeated | |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-GetRandomDevAddrRequest"></a>
|
||||
|
||||
### GetRandomDevAddrRequest
|
||||
@ -2161,7 +2284,8 @@ DeviceService is the service providing API methods for managing devices.
|
||||
| Deactivate | [DeactivateDeviceRequest](#api-DeactivateDeviceRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Deactivate de-activates the device. |
|
||||
| GetActivation | [GetDeviceActivationRequest](#api-GetDeviceActivationRequest) | [GetDeviceActivationResponse](#api-GetDeviceActivationResponse) | GetActivation returns the current activation details of the device (OTAA or ABP). |
|
||||
| GetRandomDevAddr | [GetRandomDevAddrRequest](#api-GetRandomDevAddrRequest) | [GetRandomDevAddrResponse](#api-GetRandomDevAddrResponse) | GetRandomDevAddr returns a random DevAddr taking the NwkID prefix into account. |
|
||||
| GetStats | [GetDeviceStatsRequest](#api-GetDeviceStatsRequest) | [GetDeviceStatsResponse](#api-GetDeviceStatsResponse) | GetStats returns the device stats. |
|
||||
| GetMetrics | [GetDeviceMetricsRequest](#api-GetDeviceMetricsRequest) | [GetDeviceMetricsResponse](#api-GetDeviceMetricsResponse) | GetMetrics returns the device metrics. Note that this requires a device-profile with codec and measurements configured. |
|
||||
| GetLinkMetrics | [GetDeviceLinkMetricsRequest](#api-GetDeviceLinkMetricsRequest) | [GetDeviceLinkMetricsResponse](#api-GetDeviceLinkMetricsResponse) | GetLinkMetrics returns the device link metrics. This includes uplinks, downlinks, RSSI, SNR, etc... |
|
||||
| Enqueue | [EnqueueDeviceQueueItemRequest](#api-EnqueueDeviceQueueItemRequest) | [EnqueueDeviceQueueItemResponse](#api-EnqueueDeviceQueueItemResponse) | Enqueue adds the given item to the downlink queue. |
|
||||
| FlushQueue | [FlushDeviceQueueRequest](#api-FlushDeviceQueueRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | FlushQueue flushes the downlink device-queue. |
|
||||
| GetQueue | [GetDeviceQueueItemsRequest](#api-GetDeviceQueueItemsRequest) | [GetDeviceQueueItemsResponse](#api-GetDeviceQueueItemsResponse) | GetQueue returns the downlink device-queue. |
|
||||
@ -2249,6 +2373,7 @@ DeviceService is the service providing API methods for managing devices.
|
||||
| id | [string](#string) | | Device-profile ID (UUID). Note: on create this will be automatically generated. |
|
||||
| tenant_id | [string](#string) | | Tenant ID (UUID). |
|
||||
| name | [string](#string) | | Name. |
|
||||
| description | [string](#string) | | Description. |
|
||||
| region | [common.Region](#common-Region) | | Region. |
|
||||
| mac_version | [common.MacVersion](#common-MacVersion) | | LoRaWAN mac-version. |
|
||||
| reg_params_revision | [common.RegParamsRevision](#common-RegParamsRevision) | | Regional parameters revision. |
|
||||
@ -2271,6 +2396,23 @@ DeviceService is the service providing API methods for managing devices.
|
||||
| abp_rx2_dr | [uint32](#uint32) | | RX2 DR (for ABP). |
|
||||
| abp_rx2_freq | [uint32](#uint32) | | RX2 frequency (for ABP, Hz). |
|
||||
| tags | [DeviceProfile.TagsEntry](#api-DeviceProfile-TagsEntry) | repeated | User defined tags. |
|
||||
| measurements | [DeviceProfile.MeasurementsEntry](#api-DeviceProfile-MeasurementsEntry) | repeated | Measurements. If defined, ChirpStack will visualize these metrics in the web-interface. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-DeviceProfile-MeasurementsEntry"></a>
|
||||
|
||||
### DeviceProfile.MeasurementsEntry
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| key | [string](#string) | | |
|
||||
| value | [Measurement](#api-Measurement) | | |
|
||||
|
||||
|
||||
|
||||
@ -2399,6 +2541,22 @@ DeviceService is the service providing API methods for managing devices.
|
||||
|
||||
|
||||
|
||||
<a name="api-Measurement"></a>
|
||||
|
||||
### Measurement
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| name | [string](#string) | | Name (user defined). |
|
||||
| kind | [MeasurementKind](#api-MeasurementKind) | | Kind. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-UpdateDeviceProfileRequest"></a>
|
||||
|
||||
### UpdateDeviceProfileRequest
|
||||
@ -2428,6 +2586,21 @@ DeviceService is the service providing API methods for managing devices.
|
||||
| JS | 2 | JavaScript. |
|
||||
|
||||
|
||||
|
||||
<a name="api-MeasurementKind"></a>
|
||||
|
||||
### MeasurementKind
|
||||
|
||||
|
||||
| Name | Number | Description |
|
||||
| ---- | ------ | ----------- |
|
||||
| UNKNOWN | 0 | Unknown (in which case it is not tracked). |
|
||||
| COUNTER | 1 | Incrementing counters that never decrease (these are not reset on each reading). |
|
||||
| ABSOLUTE | 2 | Counters that do get reset upon reading. |
|
||||
| GAUGE | 3 | E.g. a temperature value. |
|
||||
| STRING | 4 | E.g. a firmware version, true / false value. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -2474,6 +2647,7 @@ DeviceProfileService is the service providing API methods for managing device-pr
|
||||
| m_type | [common.MType](#common-MType) | | Message type. |
|
||||
| dev_addr | [string](#string) | | Device address (optional). |
|
||||
| dev_eui | [string](#string) | | Device EUI (optional). |
|
||||
| plaintext_mac_commands | [bool](#bool) | | Plaintext mac-commands. |
|
||||
|
||||
|
||||
|
||||
@ -2495,6 +2669,7 @@ DeviceProfileService is the service providing API methods for managing device-pr
|
||||
| dev_addr | [string](#string) | | Device address (optional). |
|
||||
| dev_eui | [string](#string) | | Device EUI (optional). |
|
||||
| time | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Time. |
|
||||
| plaintext_mac_commands | [bool](#bool) | | Plaintext mac-commands. |
|
||||
|
||||
|
||||
|
||||
@ -2639,108 +2814,6 @@ DeviceProfileService is the service providing API methods for managing device-pr
|
||||
|
||||
|
||||
|
||||
<a name="api-GatewayStats"></a>
|
||||
|
||||
### GatewayStats
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| time | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Timestamp of the (aggregated) measurement. |
|
||||
| rx_packets | [uint32](#uint32) | | Packets received. |
|
||||
| tx_packets | [uint32](#uint32) | | Packets emitted. |
|
||||
| tx_packets_per_frequency | [GatewayStats.TxPacketsPerFrequencyEntry](#api-GatewayStats-TxPacketsPerFrequencyEntry) | repeated | Tx packets per frequency. |
|
||||
| rx_packets_per_frequency | [GatewayStats.RxPacketsPerFrequencyEntry](#api-GatewayStats-RxPacketsPerFrequencyEntry) | repeated | Rx packets per frequency. |
|
||||
| tx_packets_per_dr | [GatewayStats.TxPacketsPerDrEntry](#api-GatewayStats-TxPacketsPerDrEntry) | repeated | Tx packets per DR. |
|
||||
| rx_packets_per_dr | [GatewayStats.RxPacketsPerDrEntry](#api-GatewayStats-RxPacketsPerDrEntry) | repeated | Rx packets per DR. |
|
||||
| tx_packets_per_status | [GatewayStats.TxPacketsPerStatusEntry](#api-GatewayStats-TxPacketsPerStatusEntry) | repeated | Tx packets per status. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-GatewayStats-RxPacketsPerDrEntry"></a>
|
||||
|
||||
### GatewayStats.RxPacketsPerDrEntry
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| key | [uint32](#uint32) | | |
|
||||
| value | [uint32](#uint32) | | |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-GatewayStats-RxPacketsPerFrequencyEntry"></a>
|
||||
|
||||
### GatewayStats.RxPacketsPerFrequencyEntry
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| key | [uint32](#uint32) | | |
|
||||
| value | [uint32](#uint32) | | |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-GatewayStats-TxPacketsPerDrEntry"></a>
|
||||
|
||||
### GatewayStats.TxPacketsPerDrEntry
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| key | [uint32](#uint32) | | |
|
||||
| value | [uint32](#uint32) | | |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-GatewayStats-TxPacketsPerFrequencyEntry"></a>
|
||||
|
||||
### GatewayStats.TxPacketsPerFrequencyEntry
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| key | [uint32](#uint32) | | |
|
||||
| value | [uint32](#uint32) | | |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-GatewayStats-TxPacketsPerStatusEntry"></a>
|
||||
|
||||
### GatewayStats.TxPacketsPerStatusEntry
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| key | [string](#string) | | |
|
||||
| value | [uint32](#uint32) | | |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-GenerateGatewayClientCertificateRequest"></a>
|
||||
|
||||
### GenerateGatewayClientCertificateRequest
|
||||
@ -2774,6 +2847,45 @@ DeviceProfileService is the service providing API methods for managing device-pr
|
||||
|
||||
|
||||
|
||||
<a name="api-GetGatewayMetricsRequest"></a>
|
||||
|
||||
### GetGatewayMetricsRequest
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| gateway_id | [string](#string) | | Gateway ID (EUI64). |
|
||||
| start | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Interval start timestamp. |
|
||||
| end | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Interval end timestamp. |
|
||||
| aggregation | [common.Aggregation](#common-Aggregation) | | Aggregation. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-GetGatewayMetricsResponse"></a>
|
||||
|
||||
### GetGatewayMetricsResponse
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| rx_packets | [common.Metric](#common-Metric) | | RX packets. |
|
||||
| tx_packets | [common.Metric](#common-Metric) | | TX packets. |
|
||||
| tx_packets_per_freq | [common.Metric](#common-Metric) | | TX packets / frequency. |
|
||||
| rx_packets_per_freq | [common.Metric](#common-Metric) | | RX packets / frequency. |
|
||||
| tx_packets_per_dr | [common.Metric](#common-Metric) | | TX packets / DR. |
|
||||
| rx_packets_per_dr | [common.Metric](#common-Metric) | | RX packets / DR. |
|
||||
| tx_packets_per_status | [common.Metric](#common-Metric) | | TX packets per status. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-GetGatewayRequest"></a>
|
||||
|
||||
### GetGatewayRequest
|
||||
@ -2807,38 +2919,6 @@ DeviceProfileService is the service providing API methods for managing device-pr
|
||||
|
||||
|
||||
|
||||
<a name="api-GetGatewayStatsRequest"></a>
|
||||
|
||||
### GetGatewayStatsRequest
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| gateway_id | [string](#string) | | Gateway ID (EUI64). |
|
||||
| start | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Interval start timestamp. |
|
||||
| end | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Interval end timestamp. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-GetGatewayStatsResponse"></a>
|
||||
|
||||
### GetGatewayStatsResponse
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| result | [GatewayStats](#api-GatewayStats) | repeated | |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-ListGatewaysRequest"></a>
|
||||
|
||||
### ListGatewaysRequest
|
||||
@ -2907,7 +2987,7 @@ GatewayService is the service providing API methods for managing gateways.
|
||||
| Delete | [DeleteGatewayRequest](#api-DeleteGatewayRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Delete deletes the gateway matching the given Gateway ID. |
|
||||
| List | [ListGatewaysRequest](#api-ListGatewaysRequest) | [ListGatewaysResponse](#api-ListGatewaysResponse) | Get the list of gateways. |
|
||||
| GenerateClientCertificate | [GenerateGatewayClientCertificateRequest](#api-GenerateGatewayClientCertificateRequest) | [GenerateGatewayClientCertificateResponse](#api-GenerateGatewayClientCertificateResponse) | Generate client-certificate for the gateway. |
|
||||
| GetStats | [GetGatewayStatsRequest](#api-GetGatewayStatsRequest) | [GetGatewayStatsResponse](#api-GetGatewayStatsResponse) | GetStats returns the gateway stats. |
|
||||
| GetMetrics | [GetGatewayMetricsRequest](#api-GetGatewayMetricsRequest) | [GetGatewayMetricsResponse](#api-GetGatewayMetricsResponse) | GetMetrics returns the gateway metrics. |
|
||||
|
||||
|
||||
|
||||
@ -2989,7 +3069,7 @@ GatewayService is the service providing API methods for managing gateways.
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| multicast_group_queue_item | [MulticastGroupQueueItem](#api-MulticastGroupQueueItem) | | Multicast queue-item to enqueue. |
|
||||
| queue_item | [MulticastGroupQueueItem](#api-MulticastGroupQueueItem) | | Multicast queue-item to enqueue. |
|
||||
|
||||
|
||||
|
||||
@ -3449,6 +3529,7 @@ MulticastGroupService is the service managing multicast-groups.
|
||||
| limit | [uint32](#uint32) | | Max number of tenants to return in the result-set. |
|
||||
| offset | [uint32](#uint32) | | Offset in the result-set (for pagination). |
|
||||
| search | [string](#string) | | If set, the given string will be used to search on name. |
|
||||
| user_id | [string](#string) | | If set, filters the result set to the tenants of the user. Only global API keys are able to filter by this field. |
|
||||
|
||||
|
||||
|
||||
|
544
api/md/api/internal.md
vendored
544
api/md/api/internal.md
vendored
@ -1,544 +0,0 @@
|
||||
# Protocol Documentation
|
||||
<a name="top"></a>
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [api/internal.proto](#api_internal-proto)
|
||||
- [ApiKey](#api-ApiKey)
|
||||
- [CreateApiKeyRequest](#api-CreateApiKeyRequest)
|
||||
- [CreateApiKeyResponse](#api-CreateApiKeyResponse)
|
||||
- [DeleteApiKeyRequest](#api-DeleteApiKeyRequest)
|
||||
- [GetDevicesSummaryRequest](#api-GetDevicesSummaryRequest)
|
||||
- [GetDevicesSummaryResponse](#api-GetDevicesSummaryResponse)
|
||||
- [GetDevicesSummaryResponse.DrCountEntry](#api-GetDevicesSummaryResponse-DrCountEntry)
|
||||
- [GetGatewaysSummaryRequest](#api-GetGatewaysSummaryRequest)
|
||||
- [GetGatewaysSummaryResponse](#api-GetGatewaysSummaryResponse)
|
||||
- [GlobalSearchRequest](#api-GlobalSearchRequest)
|
||||
- [GlobalSearchResponse](#api-GlobalSearchResponse)
|
||||
- [GlobalSearchResult](#api-GlobalSearchResult)
|
||||
- [ListApiKeysRequest](#api-ListApiKeysRequest)
|
||||
- [ListApiKeysResponse](#api-ListApiKeysResponse)
|
||||
- [LogItem](#api-LogItem)
|
||||
- [LogItem.PropertiesEntry](#api-LogItem-PropertiesEntry)
|
||||
- [LoginRequest](#api-LoginRequest)
|
||||
- [LoginResponse](#api-LoginResponse)
|
||||
- [OpenIdConnect](#api-OpenIdConnect)
|
||||
- [OpenIdConnectLoginRequest](#api-OpenIdConnectLoginRequest)
|
||||
- [OpenIdConnectLoginResponse](#api-OpenIdConnectLoginResponse)
|
||||
- [ProfileResponse](#api-ProfileResponse)
|
||||
- [SettingsResponse](#api-SettingsResponse)
|
||||
- [StreamDeviceEventsRequest](#api-StreamDeviceEventsRequest)
|
||||
- [StreamDeviceFramesRequest](#api-StreamDeviceFramesRequest)
|
||||
- [StreamGatewayFramesRequest](#api-StreamGatewayFramesRequest)
|
||||
- [UserTenantLink](#api-UserTenantLink)
|
||||
|
||||
- [InternalService](#api-InternalService)
|
||||
|
||||
- [Scalar Value Types](#scalar-value-types)
|
||||
|
||||
|
||||
|
||||
<a name="api_internal-proto"></a>
|
||||
<p align="right"><a href="#top">Top</a></p>
|
||||
|
||||
## api/internal.proto
|
||||
|
||||
|
||||
|
||||
<a name="api-ApiKey"></a>
|
||||
|
||||
### ApiKey
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| id | [string](#string) | | API key ID. This value will be automatically generated on create. |
|
||||
| name | [string](#string) | | Name. |
|
||||
| is_admin | [bool](#bool) | | Is global admin key. |
|
||||
| tenant_id | [string](#string) | | Tenant ID. In case the API key is intended to manage resources under a single tenant. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-CreateApiKeyRequest"></a>
|
||||
|
||||
### CreateApiKeyRequest
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| api_key | [ApiKey](#api-ApiKey) | | The API key to create. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-CreateApiKeyResponse"></a>
|
||||
|
||||
### CreateApiKeyResponse
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| id | [string](#string) | | API key ID. |
|
||||
| token | [string](#string) | | API token for authentication API requests. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-DeleteApiKeyRequest"></a>
|
||||
|
||||
### DeleteApiKeyRequest
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| id | [string](#string) | | API key ID. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-GetDevicesSummaryRequest"></a>
|
||||
|
||||
### GetDevicesSummaryRequest
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| tenant_id | [string](#string) | | Tenant ID (UUID). |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-GetDevicesSummaryResponse"></a>
|
||||
|
||||
### GetDevicesSummaryResponse
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| active_count | [uint32](#uint32) | | Active count. |
|
||||
| inactive_count | [uint32](#uint32) | | Inactive count. |
|
||||
| dr_count | [GetDevicesSummaryResponse.DrCountEntry](#api-GetDevicesSummaryResponse-DrCountEntry) | repeated | per data-rate count. Devices that have never been seen are excluded. |
|
||||
| never_seen_count | [uint32](#uint32) | | Never seen count. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-GetDevicesSummaryResponse-DrCountEntry"></a>
|
||||
|
||||
### GetDevicesSummaryResponse.DrCountEntry
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| key | [uint32](#uint32) | | |
|
||||
| value | [uint32](#uint32) | | |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-GetGatewaysSummaryRequest"></a>
|
||||
|
||||
### GetGatewaysSummaryRequest
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| tenant_id | [string](#string) | | Tenant ID (UUID). |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-GetGatewaysSummaryResponse"></a>
|
||||
|
||||
### GetGatewaysSummaryResponse
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| active_count | [uint32](#uint32) | | Active count. |
|
||||
| inactive_count | [uint32](#uint32) | | Inactive count. |
|
||||
| never_seen_count | [uint32](#uint32) | | Never seen count. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-GlobalSearchRequest"></a>
|
||||
|
||||
### GlobalSearchRequest
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| search | [string](#string) | | Search query. |
|
||||
| limit | [int64](#int64) | | Max number of results to return. |
|
||||
| offset | [int64](#int64) | | Offset offset of the result-set (for pagination). |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-GlobalSearchResponse"></a>
|
||||
|
||||
### GlobalSearchResponse
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| result | [GlobalSearchResult](#api-GlobalSearchResult) | repeated | |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-GlobalSearchResult"></a>
|
||||
|
||||
### GlobalSearchResult
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| kind | [string](#string) | | Record kind. |
|
||||
| score | [float](#float) | | Search score. |
|
||||
| tenant_id | [string](#string) | | Organization id. |
|
||||
| tenant_name | [string](#string) | | Organization name. |
|
||||
| application_id | [string](#string) | | Application id. |
|
||||
| application_name | [string](#string) | | Application name. |
|
||||
| device_dev_eui | [string](#string) | | Device DevEUI (hex encoded). |
|
||||
| device_name | [string](#string) | | Device name. |
|
||||
| gateway_id | [string](#string) | | Gateway MAC (hex encoded). |
|
||||
| gateway_name | [string](#string) | | Gateway name. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-ListApiKeysRequest"></a>
|
||||
|
||||
### ListApiKeysRequest
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| limit | [uint32](#uint32) | | Max number of items to return. |
|
||||
| offset | [uint32](#uint32) | | Offset in the result-set (for pagination). |
|
||||
| is_admin | [bool](#bool) | | Return only admin keys. |
|
||||
| tenant_id | [string](#string) | | Filter on tenant ID. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-ListApiKeysResponse"></a>
|
||||
|
||||
### ListApiKeysResponse
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| total_count | [uint32](#uint32) | | Total number of API keys. |
|
||||
| result | [ApiKey](#api-ApiKey) | repeated | |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-LogItem"></a>
|
||||
|
||||
### LogItem
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| id | [string](#string) | | ID. |
|
||||
| time | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Timestamp. |
|
||||
| description | [string](#string) | | Message. |
|
||||
| body | [string](#string) | | Body. |
|
||||
| properties | [LogItem.PropertiesEntry](#api-LogItem-PropertiesEntry) | repeated | Properties. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-LogItem-PropertiesEntry"></a>
|
||||
|
||||
### LogItem.PropertiesEntry
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| key | [string](#string) | | |
|
||||
| value | [string](#string) | | |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-LoginRequest"></a>
|
||||
|
||||
### LoginRequest
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| email | [string](#string) | | Email of the user. |
|
||||
| password | [string](#string) | | Password of the user. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-LoginResponse"></a>
|
||||
|
||||
### LoginResponse
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| jwt | [string](#string) | | The JWT tag to be used to access chirpstack-application-server interfaces. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-OpenIdConnect"></a>
|
||||
|
||||
### OpenIdConnect
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| enabled | [bool](#bool) | | Enable OpenId Connect authentication. |
|
||||
| login_url | [string](#string) | | Login url. |
|
||||
| login_label | [string](#string) | | Login label. |
|
||||
| logout_url | [string](#string) | | Logout url. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-OpenIdConnectLoginRequest"></a>
|
||||
|
||||
### OpenIdConnectLoginRequest
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| code | [string](#string) | | OpenId Connect callback code. |
|
||||
| state | [string](#string) | | OpenId Connect callback state. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-OpenIdConnectLoginResponse"></a>
|
||||
|
||||
### OpenIdConnectLoginResponse
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| token | [string](#string) | | Token to use for authentication. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-ProfileResponse"></a>
|
||||
|
||||
### ProfileResponse
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| user | [User](#api-User) | | User object. |
|
||||
| tenants | [UserTenantLink](#api-UserTenantLink) | repeated | Tenants to which the user is associated. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-SettingsResponse"></a>
|
||||
|
||||
### SettingsResponse
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| openid_connect | [OpenIdConnect](#api-OpenIdConnect) | | OpenId Connect settings. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-StreamDeviceEventsRequest"></a>
|
||||
|
||||
### StreamDeviceEventsRequest
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| dev_eui | [string](#string) | | Device EUI. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-StreamDeviceFramesRequest"></a>
|
||||
|
||||
### StreamDeviceFramesRequest
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| dev_eui | [string](#string) | | Device EUI. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-StreamGatewayFramesRequest"></a>
|
||||
|
||||
### StreamGatewayFramesRequest
|
||||
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| gateway_id | [string](#string) | | Gateway ID (EUI64). |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-UserTenantLink"></a>
|
||||
|
||||
### UserTenantLink
|
||||
Defines a tenant to which the user is associated.
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Created at timestamp. |
|
||||
| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Last update timestamp. |
|
||||
| tenant_id | [string](#string) | | Tenant ID. |
|
||||
| is_admin | [bool](#bool) | | User is admin within the context of this tenant. There is no need to set the is_device_admin and is_gateway_admin flags. |
|
||||
| is_device_admin | [bool](#bool) | | User is able to modify device related resources (applications, device-profiles, devices, multicast-groups). |
|
||||
| is_gateway_admin | [bool](#bool) | | User is able to modify gateways. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="api-InternalService"></a>
|
||||
|
||||
### InternalService
|
||||
InternalService is the service providing API endpoints for internal usage.
|
||||
|
||||
| Method Name | Request Type | Response Type | Description |
|
||||
| ----------- | ------------ | ------------- | ------------|
|
||||
| Login | [LoginRequest](#api-LoginRequest) | [LoginResponse](#api-LoginResponse) | Log in a user |
|
||||
| Profile | [.google.protobuf.Empty](#google-protobuf-Empty) | [ProfileResponse](#api-ProfileResponse) | Get the current user's profile |
|
||||
| GlobalSearch | [GlobalSearchRequest](#api-GlobalSearchRequest) | [GlobalSearchResponse](#api-GlobalSearchResponse) | Perform a global search. |
|
||||
| CreateApiKey | [CreateApiKeyRequest](#api-CreateApiKeyRequest) | [CreateApiKeyResponse](#api-CreateApiKeyResponse) | CreateApiKey creates the given API key. |
|
||||
| DeleteApiKey | [DeleteApiKeyRequest](#api-DeleteApiKeyRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | DeleteApiKey deletes the API key. |
|
||||
| ListApiKeys | [ListApiKeysRequest](#api-ListApiKeysRequest) | [ListApiKeysResponse](#api-ListApiKeysResponse) | ListApiKeys lists the available API keys. |
|
||||
| Settings | [.google.protobuf.Empty](#google-protobuf-Empty) | [SettingsResponse](#api-SettingsResponse) | Get the global settings. |
|
||||
| OpenIdConnectLogin | [OpenIdConnectLoginRequest](#api-OpenIdConnectLoginRequest) | [OpenIdConnectLoginResponse](#api-OpenIdConnectLoginResponse) | OpenId Connect login. |
|
||||
| GetDevicesSummary | [GetDevicesSummaryRequest](#api-GetDevicesSummaryRequest) | [GetDevicesSummaryResponse](#api-GetDevicesSummaryResponse) | GetDevicesSummary returns an aggregated summary of the devices. |
|
||||
| GetGatewaysSummary | [GetGatewaysSummaryRequest](#api-GetGatewaysSummaryRequest) | [GetGatewaysSummaryResponse](#api-GetGatewaysSummaryResponse) | GetGatewaysSummary returns an aggregated summary of the gateways. |
|
||||
| StreamGatewayFrames | [StreamGatewayFramesRequest](#api-StreamGatewayFramesRequest) | [LogItem](#api-LogItem) stream | Stream frame for the given Gateway ID. |
|
||||
| StreamDeviceFrames | [StreamDeviceFramesRequest](#api-StreamDeviceFramesRequest) | [LogItem](#api-LogItem) stream | Stream frames for the given Device EUI. |
|
||||
| StreamDeviceEvents | [StreamDeviceEventsRequest](#api-StreamDeviceEventsRequest) | [LogItem](#api-LogItem) stream | Stream events for the given Device EUI. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## Scalar Value Types
|
||||
|
||||
| .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby |
|
||||
| ----------- | ----- | --- | ---- | ------ | -- | -- | --- | ---- |
|
||||
| <a name="double" /> double | | double | double | float | float64 | double | float | Float |
|
||||
| <a name="float" /> float | | float | float | float | float32 | float | float | Float |
|
||||
| <a name="int32" /> int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
|
||||
| <a name="int64" /> int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum |
|
||||
| <a name="uint32" /> uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) |
|
||||
| <a name="uint64" /> uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) |
|
||||
| <a name="sint32" /> sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
|
||||
| <a name="sint64" /> sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum |
|
||||
| <a name="fixed32" /> fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) |
|
||||
| <a name="fixed64" /> fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum |
|
||||
| <a name="sfixed32" /> sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
|
||||
| <a name="sfixed64" /> sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum |
|
||||
| <a name="bool" /> bool | | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass |
|
||||
| <a name="string" /> string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) |
|
||||
| <a name="bytes" /> bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) |
|
||||
|
6
api/proto/api/frame_log.proto
vendored
6
api/proto/api/frame_log.proto
vendored
@ -32,6 +32,9 @@ message UplinkFrameLog {
|
||||
|
||||
// Time.
|
||||
google.protobuf.Timestamp time = 7;
|
||||
|
||||
// Plaintext mac-commands.
|
||||
bool plaintext_mac_commands = 8;
|
||||
}
|
||||
|
||||
message DownlinkFrameLog {
|
||||
@ -58,4 +61,7 @@ message DownlinkFrameLog {
|
||||
|
||||
// Device EUI (optional).
|
||||
string dev_eui = 8;
|
||||
|
||||
// Plaintext mac-commands.
|
||||
bool plaintext_mac_commands = 9;
|
||||
}
|
||||
|
68
api/proto/api/internal.proto
vendored
68
api/proto/api/internal.proto
vendored
@ -9,6 +9,7 @@ option java_outer_classname = "InternalProto";
|
||||
|
||||
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.
|
||||
@ -51,6 +52,12 @@ service InternalService {
|
||||
|
||||
// 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) {}
|
||||
}
|
||||
|
||||
message ApiKey {
|
||||
@ -298,3 +305,64 @@ message StreamDeviceEventsRequest {
|
||||
// Device EUI.
|
||||
string dev_eui = 1;
|
||||
}
|
||||
|
||||
message ListRegionsResponse {
|
||||
// Configured regions.
|
||||
repeated RegionListItem regions = 1;
|
||||
}
|
||||
|
||||
message RegionListItem {
|
||||
// Name.
|
||||
string name = 1;
|
||||
|
||||
// Region.
|
||||
common.Region region = 2;
|
||||
}
|
||||
|
||||
message GetRegionRequest {
|
||||
// Region name.
|
||||
string name = 1;
|
||||
}
|
||||
|
||||
message GetRegionResponse {
|
||||
// Name.
|
||||
string name = 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;
|
||||
}
|
||||
|
||||
message RegionChannel {
|
||||
// Frequency (Hz).
|
||||
uint32 frequency = 1;
|
||||
|
||||
// Min DR.
|
||||
uint32 dr_min = 2;
|
||||
|
||||
// Max DR.
|
||||
uint32 dr_max = 3;
|
||||
}
|
||||
|
4
api/proto/api/tenant.proto
vendored
4
api/proto/api/tenant.proto
vendored
@ -189,6 +189,10 @@ message ListTenantsRequest {
|
||||
|
||||
// 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 {
|
||||
|
14
api/proto/common/common.proto
vendored
14
api/proto/common/common.proto
vendored
@ -142,6 +142,17 @@ enum Aggregation {
|
||||
MONTH = 2;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
message Location {
|
||||
// Latitude.
|
||||
double latitude = 1;
|
||||
@ -176,6 +187,9 @@ message Metric {
|
||||
|
||||
// Datasets.
|
||||
repeated MetricDataset datasets = 3;
|
||||
|
||||
// Kind.
|
||||
MetricKind kind = 4;
|
||||
}
|
||||
|
||||
message MetricDataset {
|
||||
|
19
api/proto/gw/gw.proto
vendored
19
api/proto/gw/gw.proto
vendored
@ -24,6 +24,9 @@ enum CodeRate {
|
||||
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 {
|
||||
@ -328,21 +331,27 @@ message UplinkRxInfo {
|
||||
// Note: only available for LoRa modulation.
|
||||
float snr = 7;
|
||||
|
||||
// Channel.
|
||||
uint32 channel = 8;
|
||||
|
||||
// RF chain.
|
||||
uint32 rf_chain = 9;
|
||||
|
||||
// Board.
|
||||
uint32 board = 8;
|
||||
uint32 board = 10;
|
||||
|
||||
// Antenna.
|
||||
uint32 antenna = 9;
|
||||
uint32 antenna = 11;
|
||||
|
||||
// Location.
|
||||
common.Location location = 10;
|
||||
common.Location location = 12;
|
||||
|
||||
// Gateway specific context.
|
||||
// This value must be returned to the gateway on (Class-A) downlink.
|
||||
bytes context = 11;
|
||||
bytes context = 13;
|
||||
|
||||
// Properties.
|
||||
google.protobuf.Struct metadata = 12;
|
||||
google.protobuf.Struct metadata = 14;
|
||||
}
|
||||
|
||||
message DownlinkTxInfoLegacy {
|
||||
|
@ -32,6 +32,9 @@ message UplinkFrameLog {
|
||||
|
||||
// Time.
|
||||
google.protobuf.Timestamp time = 7;
|
||||
|
||||
// Plaintext mac-commands.
|
||||
bool plaintext_mac_commands = 8;
|
||||
}
|
||||
|
||||
message DownlinkFrameLog {
|
||||
@ -58,4 +61,7 @@ message DownlinkFrameLog {
|
||||
|
||||
// Device EUI (optional).
|
||||
string dev_eui = 8;
|
||||
|
||||
// Plaintext mac-commands.
|
||||
bool plaintext_mac_commands = 9;
|
||||
}
|
||||
|
@ -9,6 +9,7 @@ option java_outer_classname = "InternalProto";
|
||||
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
import "chirpstack-api/common/common.proto";
|
||||
import "chirpstack-api/api/user.proto";
|
||||
|
||||
// InternalService is the service providing API endpoints for internal usage.
|
||||
@ -51,6 +52,12 @@ service InternalService {
|
||||
|
||||
// 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) {}
|
||||
}
|
||||
|
||||
message ApiKey {
|
||||
@ -298,3 +305,64 @@ message StreamDeviceEventsRequest {
|
||||
// Device EUI.
|
||||
string dev_eui = 1;
|
||||
}
|
||||
|
||||
message ListRegionsResponse {
|
||||
// Configured regions.
|
||||
repeated RegionListItem regions = 1;
|
||||
}
|
||||
|
||||
message RegionListItem {
|
||||
// Name.
|
||||
string name = 1;
|
||||
|
||||
// Region.
|
||||
common.Region region = 2;
|
||||
}
|
||||
|
||||
message GetRegionRequest {
|
||||
// Region name.
|
||||
string name = 1;
|
||||
}
|
||||
|
||||
message GetRegionResponse {
|
||||
// Name.
|
||||
string name = 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;
|
||||
}
|
||||
|
||||
message RegionChannel {
|
||||
// Frequency (Hz).
|
||||
uint32 frequency = 1;
|
||||
|
||||
// Min DR.
|
||||
uint32 dr_min = 2;
|
||||
|
||||
// Max DR.
|
||||
uint32 dr_max = 3;
|
||||
}
|
||||
|
@ -189,6 +189,10 @@ message ListTenantsRequest {
|
||||
|
||||
// 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 {
|
||||
|
@ -142,6 +142,17 @@ enum Aggregation {
|
||||
MONTH = 2;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
message Location {
|
||||
// Latitude.
|
||||
double latitude = 1;
|
||||
@ -176,6 +187,9 @@ message Metric {
|
||||
|
||||
// Datasets.
|
||||
repeated MetricDataset datasets = 3;
|
||||
|
||||
// Kind.
|
||||
MetricKind kind = 4;
|
||||
}
|
||||
|
||||
message MetricDataset {
|
||||
|
19
api/python/proto/chirpstack-api/gw/gw.proto
vendored
19
api/python/proto/chirpstack-api/gw/gw.proto
vendored
@ -24,6 +24,9 @@ enum CodeRate {
|
||||
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 {
|
||||
@ -328,21 +331,27 @@ message UplinkRxInfo {
|
||||
// Note: only available for LoRa modulation.
|
||||
float snr = 7;
|
||||
|
||||
// Channel.
|
||||
uint32 channel = 8;
|
||||
|
||||
// RF chain.
|
||||
uint32 rf_chain = 9;
|
||||
|
||||
// Board.
|
||||
uint32 board = 8;
|
||||
uint32 board = 10;
|
||||
|
||||
// Antenna.
|
||||
uint32 antenna = 9;
|
||||
uint32 antenna = 11;
|
||||
|
||||
// Location.
|
||||
common.Location location = 10;
|
||||
common.Location location = 12;
|
||||
|
||||
// Gateway specific context.
|
||||
// This value must be returned to the gateway on (Class-A) downlink.
|
||||
bytes context = 11;
|
||||
bytes context = 13;
|
||||
|
||||
// Properties.
|
||||
google.protobuf.Struct metadata = 12;
|
||||
google.protobuf.Struct metadata = 14;
|
||||
}
|
||||
|
||||
message DownlinkTxInfoLegacy {
|
||||
|
@ -17,7 +17,7 @@ from chirpstack_api.common import common_pb2 as chirpstack__api_dot_common_dot_c
|
||||
from chirpstack_api.gw import gw_pb2 as chirpstack__api_dot_gw_dot_gw__pb2
|
||||
|
||||
|
||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"chirpstack-api/api/frame_log.proto\x12\x03\x61pi\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\"chirpstack-api/common/common.proto\x1a\x1a\x63hirpstack-api/gw/gw.proto\"\xd7\x01\n\x0eUplinkFrameLog\x12\x13\n\x0bphy_payload\x18\x01 \x01(\x0c\x12!\n\x07tx_info\x18\x02 \x01(\x0b\x32\x10.gw.UplinkTxInfo\x12!\n\x07rx_info\x18\x03 \x03(\x0b\x32\x10.gw.UplinkRxInfo\x12\x1d\n\x06m_type\x18\x04 \x01(\x0e\x32\r.common.MType\x12\x10\n\x08\x64\x65v_addr\x18\x05 \x01(\t\x12\x0f\n\x07\x64\x65v_eui\x18\x06 \x01(\t\x12(\n\x04time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xe1\x01\n\x10\x44ownlinkFrameLog\x12(\n\x04time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x13\n\x0bphy_payload\x18\x02 \x01(\x0c\x12#\n\x07tx_info\x18\x03 \x01(\x0b\x32\x12.gw.DownlinkTxInfo\x12\x13\n\x0b\x64ownlink_id\x18\x04 \x01(\r\x12\x12\n\ngateway_id\x18\x05 \x01(\t\x12\x1d\n\x06m_type\x18\x06 \x01(\x0e\x32\r.common.MType\x12\x10\n\x08\x64\x65v_addr\x18\x07 \x01(\t\x12\x0f\n\x07\x64\x65v_eui\x18\x08 \x01(\tBT\n\x11io.chirpstack.apiB\rFrameLogProtoP\x01Z.github.com/chirpstack/chirpstack/api/go/v4/apib\x06proto3')
|
||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"chirpstack-api/api/frame_log.proto\x12\x03\x61pi\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\"chirpstack-api/common/common.proto\x1a\x1a\x63hirpstack-api/gw/gw.proto\"\xf7\x01\n\x0eUplinkFrameLog\x12\x13\n\x0bphy_payload\x18\x01 \x01(\x0c\x12!\n\x07tx_info\x18\x02 \x01(\x0b\x32\x10.gw.UplinkTxInfo\x12!\n\x07rx_info\x18\x03 \x03(\x0b\x32\x10.gw.UplinkRxInfo\x12\x1d\n\x06m_type\x18\x04 \x01(\x0e\x32\r.common.MType\x12\x10\n\x08\x64\x65v_addr\x18\x05 \x01(\t\x12\x0f\n\x07\x64\x65v_eui\x18\x06 \x01(\t\x12(\n\x04time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1e\n\x16plaintext_mac_commands\x18\x08 \x01(\x08\"\x81\x02\n\x10\x44ownlinkFrameLog\x12(\n\x04time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x13\n\x0bphy_payload\x18\x02 \x01(\x0c\x12#\n\x07tx_info\x18\x03 \x01(\x0b\x32\x12.gw.DownlinkTxInfo\x12\x13\n\x0b\x64ownlink_id\x18\x04 \x01(\r\x12\x12\n\ngateway_id\x18\x05 \x01(\t\x12\x1d\n\x06m_type\x18\x06 \x01(\x0e\x32\r.common.MType\x12\x10\n\x08\x64\x65v_addr\x18\x07 \x01(\t\x12\x0f\n\x07\x64\x65v_eui\x18\x08 \x01(\t\x12\x1e\n\x16plaintext_mac_commands\x18\t \x01(\x08\x42T\n\x11io.chirpstack.apiB\rFrameLogProtoP\x01Z.github.com/chirpstack/chirpstack/api/go/v4/apib\x06proto3')
|
||||
|
||||
|
||||
|
||||
@ -42,7 +42,7 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
DESCRIPTOR._options = None
|
||||
DESCRIPTOR._serialized_options = b'\n\021io.chirpstack.apiB\rFrameLogProtoP\001Z.github.com/chirpstack/chirpstack/api/go/v4/api'
|
||||
_UPLINKFRAMELOG._serialized_start=141
|
||||
_UPLINKFRAMELOG._serialized_end=356
|
||||
_DOWNLINKFRAMELOG._serialized_start=359
|
||||
_DOWNLINKFRAMELOG._serialized_end=584
|
||||
_UPLINKFRAMELOG._serialized_end=388
|
||||
_DOWNLINKFRAMELOG._serialized_start=391
|
||||
_DOWNLINKFRAMELOG._serialized_end=648
|
||||
# @@protoc_insertion_point(module_scope)
|
||||
|
165
api/python/src/chirpstack_api/api/internal_pb2.py
vendored
165
api/python/src/chirpstack_api/api/internal_pb2.py
vendored
File diff suppressed because one or more lines are too long
@ -81,6 +81,16 @@ class InternalServiceStub(object):
|
||||
request_serializer=chirpstack__api_dot_api_dot_internal__pb2.StreamDeviceEventsRequest.SerializeToString,
|
||||
response_deserializer=chirpstack__api_dot_api_dot_internal__pb2.LogItem.FromString,
|
||||
)
|
||||
self.ListRegions = channel.unary_unary(
|
||||
'/api.InternalService/ListRegions',
|
||||
request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
|
||||
response_deserializer=chirpstack__api_dot_api_dot_internal__pb2.ListRegionsResponse.FromString,
|
||||
)
|
||||
self.GetRegion = channel.unary_unary(
|
||||
'/api.InternalService/GetRegion',
|
||||
request_serializer=chirpstack__api_dot_api_dot_internal__pb2.GetRegionRequest.SerializeToString,
|
||||
response_deserializer=chirpstack__api_dot_api_dot_internal__pb2.GetRegionResponse.FromString,
|
||||
)
|
||||
|
||||
|
||||
class InternalServiceServicer(object):
|
||||
@ -178,6 +188,20 @@ class InternalServiceServicer(object):
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def ListRegions(self, request, context):
|
||||
"""ListRegions lists the available (configured) regions.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def GetRegion(self, request, context):
|
||||
"""GetRegion returns the region details for the given region.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
|
||||
def add_InternalServiceServicer_to_server(servicer, server):
|
||||
rpc_method_handlers = {
|
||||
@ -246,6 +270,16 @@ def add_InternalServiceServicer_to_server(servicer, server):
|
||||
request_deserializer=chirpstack__api_dot_api_dot_internal__pb2.StreamDeviceEventsRequest.FromString,
|
||||
response_serializer=chirpstack__api_dot_api_dot_internal__pb2.LogItem.SerializeToString,
|
||||
),
|
||||
'ListRegions': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.ListRegions,
|
||||
request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
|
||||
response_serializer=chirpstack__api_dot_api_dot_internal__pb2.ListRegionsResponse.SerializeToString,
|
||||
),
|
||||
'GetRegion': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.GetRegion,
|
||||
request_deserializer=chirpstack__api_dot_api_dot_internal__pb2.GetRegionRequest.FromString,
|
||||
response_serializer=chirpstack__api_dot_api_dot_internal__pb2.GetRegionResponse.SerializeToString,
|
||||
),
|
||||
}
|
||||
generic_handler = grpc.method_handlers_generic_handler(
|
||||
'api.InternalService', rpc_method_handlers)
|
||||
@ -477,3 +511,37 @@ class InternalService(object):
|
||||
chirpstack__api_dot_api_dot_internal__pb2.LogItem.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def ListRegions(request,
|
||||
target,
|
||||
options=(),
|
||||
channel_credentials=None,
|
||||
call_credentials=None,
|
||||
insecure=False,
|
||||
compression=None,
|
||||
wait_for_ready=None,
|
||||
timeout=None,
|
||||
metadata=None):
|
||||
return grpc.experimental.unary_unary(request, target, '/api.InternalService/ListRegions',
|
||||
google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
|
||||
chirpstack__api_dot_api_dot_internal__pb2.ListRegionsResponse.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def GetRegion(request,
|
||||
target,
|
||||
options=(),
|
||||
channel_credentials=None,
|
||||
call_credentials=None,
|
||||
insecure=False,
|
||||
compression=None,
|
||||
wait_for_ready=None,
|
||||
timeout=None,
|
||||
metadata=None):
|
||||
return grpc.experimental.unary_unary(request, target, '/api.InternalService/GetRegion',
|
||||
chirpstack__api_dot_api_dot_internal__pb2.GetRegionRequest.SerializeToString,
|
||||
chirpstack__api_dot_api_dot_internal__pb2.GetRegionResponse.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
48
api/python/src/chirpstack_api/api/tenant_pb2.py
vendored
48
api/python/src/chirpstack_api/api/tenant_pb2.py
vendored
File diff suppressed because one or more lines are too long
@ -16,7 +16,7 @@ _sym_db = _symbol_database.Default()
|
||||
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
|
||||
|
||||
|
||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"chirpstack-api/common/common.proto\x12\x06\x63ommon\x1a\x1fgoogle/protobuf/timestamp.proto\"{\n\x08Location\x12\x10\n\x08latitude\x18\x01 \x01(\x01\x12\x11\n\tlongitude\x18\x02 \x01(\x01\x12\x10\n\x08\x61ltitude\x18\x03 \x01(\x01\x12&\n\x06source\x18\x04 \x01(\x0e\x32\x16.common.LocationSource\x12\x10\n\x08\x61\x63\x63uracy\x18\x05 \x01(\x02\"1\n\x0bKeyEnvelope\x12\x11\n\tkek_label\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x65s_key\x18\x02 \x01(\x0c\"o\n\x06Metric\x12\x0c\n\x04name\x18\x01 \x01(\t\x12.\n\ntimestamps\x18\x02 \x03(\x0b\x32\x1a.google.protobuf.Timestamp\x12\'\n\x08\x64\x61tasets\x18\x03 \x03(\x0b\x32\x15.common.MetricDataset\",\n\rMetricDataset\x12\r\n\x05label\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x03(\x02*,\n\nModulation\x12\x08\n\x04LORA\x10\x00\x12\x07\n\x03\x46SK\x10\x01\x12\x0b\n\x07LR_FHSS\x10\x02*\xaa\x01\n\x06Region\x12\t\n\x05\x45U868\x10\x00\x12\t\n\x05US915\x10\x02\x12\t\n\x05\x43N779\x10\x03\x12\t\n\x05\x45U433\x10\x04\x12\t\n\x05\x41U915\x10\x05\x12\t\n\x05\x43N470\x10\x06\x12\t\n\x05\x41S923\x10\x07\x12\x0b\n\x07\x41S923_2\x10\x0c\x12\x0b\n\x07\x41S923_3\x10\r\x12\x0b\n\x07\x41S923_4\x10\x0e\x12\t\n\x05KR920\x10\x08\x12\t\n\x05IN865\x10\t\x12\t\n\x05RU864\x10\n\x12\x0b\n\x07ISM2400\x10\x0b*\xb3\x01\n\x05MType\x12\x10\n\x0cJOIN_REQUEST\x10\x00\x12\x0f\n\x0bJOIN_ACCEPT\x10\x01\x12\x17\n\x13UNCONFIRMED_DATA_UP\x10\x02\x12\x19\n\x15UNCONFIRMED_DATA_DOWN\x10\x03\x12\x15\n\x11\x43ONFIRMED_DATA_UP\x10\x04\x12\x17\n\x13\x43ONFIRMED_DATA_DOWN\x10\x05\x12\x12\n\x0eREJOIN_REQUEST\x10\x06\x12\x0f\n\x0bPROPRIETARY\x10\x07*~\n\nMacVersion\x12\x11\n\rLORAWAN_1_0_0\x10\x00\x12\x11\n\rLORAWAN_1_0_1\x10\x01\x12\x11\n\rLORAWAN_1_0_2\x10\x02\x12\x11\n\rLORAWAN_1_0_3\x10\x03\x12\x11\n\rLORAWAN_1_0_4\x10\x04\x12\x11\n\rLORAWAN_1_1_0\x10\x05*e\n\x11RegParamsRevision\x12\x05\n\x01\x41\x10\x00\x12\x05\n\x01\x42\x10\x01\x12\x0f\n\x0bRP002_1_0_0\x10\x02\x12\x0f\n\x0bRP002_1_0_1\x10\x03\x12\x0f\n\x0bRP002_1_0_2\x10\x04\x12\x0f\n\x0bRP002_1_0_3\x10\x05*\x8e\x01\n\x0eLocationSource\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x07\n\x03GPS\x10\x01\x12\n\n\x06\x43ONFIG\x10\x02\x12\x15\n\x11GEO_RESOLVER_TDOA\x10\x03\x12\x15\n\x11GEO_RESOLVER_RSSI\x10\x04\x12\x15\n\x11GEO_RESOLVER_GNSS\x10\x05\x12\x15\n\x11GEO_RESOLVER_WIFI\x10\x06*+\n\x0b\x41ggregation\x12\x08\n\x04HOUR\x10\x00\x12\x07\n\x03\x44\x41Y\x10\x01\x12\t\n\x05MONTH\x10\x02\x42U\n\x11io.chirpstack.apiB\x0b\x43ommonProtoP\x01Z1github.com/chirpstack/chirpstack/api/go/v4/commonb\x06proto3')
|
||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"chirpstack-api/common/common.proto\x12\x06\x63ommon\x1a\x1fgoogle/protobuf/timestamp.proto\"{\n\x08Location\x12\x10\n\x08latitude\x18\x01 \x01(\x01\x12\x11\n\tlongitude\x18\x02 \x01(\x01\x12\x10\n\x08\x61ltitude\x18\x03 \x01(\x01\x12&\n\x06source\x18\x04 \x01(\x0e\x32\x16.common.LocationSource\x12\x10\n\x08\x61\x63\x63uracy\x18\x05 \x01(\x02\"1\n\x0bKeyEnvelope\x12\x11\n\tkek_label\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x65s_key\x18\x02 \x01(\x0c\"\x91\x01\n\x06Metric\x12\x0c\n\x04name\x18\x01 \x01(\t\x12.\n\ntimestamps\x18\x02 \x03(\x0b\x32\x1a.google.protobuf.Timestamp\x12\'\n\x08\x64\x61tasets\x18\x03 \x03(\x0b\x32\x15.common.MetricDataset\x12 \n\x04kind\x18\x04 \x01(\x0e\x32\x12.common.MetricKind\",\n\rMetricDataset\x12\r\n\x05label\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x03(\x02*,\n\nModulation\x12\x08\n\x04LORA\x10\x00\x12\x07\n\x03\x46SK\x10\x01\x12\x0b\n\x07LR_FHSS\x10\x02*\xaa\x01\n\x06Region\x12\t\n\x05\x45U868\x10\x00\x12\t\n\x05US915\x10\x02\x12\t\n\x05\x43N779\x10\x03\x12\t\n\x05\x45U433\x10\x04\x12\t\n\x05\x41U915\x10\x05\x12\t\n\x05\x43N470\x10\x06\x12\t\n\x05\x41S923\x10\x07\x12\x0b\n\x07\x41S923_2\x10\x0c\x12\x0b\n\x07\x41S923_3\x10\r\x12\x0b\n\x07\x41S923_4\x10\x0e\x12\t\n\x05KR920\x10\x08\x12\t\n\x05IN865\x10\t\x12\t\n\x05RU864\x10\n\x12\x0b\n\x07ISM2400\x10\x0b*\xb3\x01\n\x05MType\x12\x10\n\x0cJOIN_REQUEST\x10\x00\x12\x0f\n\x0bJOIN_ACCEPT\x10\x01\x12\x17\n\x13UNCONFIRMED_DATA_UP\x10\x02\x12\x19\n\x15UNCONFIRMED_DATA_DOWN\x10\x03\x12\x15\n\x11\x43ONFIRMED_DATA_UP\x10\x04\x12\x17\n\x13\x43ONFIRMED_DATA_DOWN\x10\x05\x12\x12\n\x0eREJOIN_REQUEST\x10\x06\x12\x0f\n\x0bPROPRIETARY\x10\x07*~\n\nMacVersion\x12\x11\n\rLORAWAN_1_0_0\x10\x00\x12\x11\n\rLORAWAN_1_0_1\x10\x01\x12\x11\n\rLORAWAN_1_0_2\x10\x02\x12\x11\n\rLORAWAN_1_0_3\x10\x03\x12\x11\n\rLORAWAN_1_0_4\x10\x04\x12\x11\n\rLORAWAN_1_1_0\x10\x05*e\n\x11RegParamsRevision\x12\x05\n\x01\x41\x10\x00\x12\x05\n\x01\x42\x10\x01\x12\x0f\n\x0bRP002_1_0_0\x10\x02\x12\x0f\n\x0bRP002_1_0_1\x10\x03\x12\x0f\n\x0bRP002_1_0_2\x10\x04\x12\x0f\n\x0bRP002_1_0_3\x10\x05*\x8e\x01\n\x0eLocationSource\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x07\n\x03GPS\x10\x01\x12\n\n\x06\x43ONFIG\x10\x02\x12\x15\n\x11GEO_RESOLVER_TDOA\x10\x03\x12\x15\n\x11GEO_RESOLVER_RSSI\x10\x04\x12\x15\n\x11GEO_RESOLVER_GNSS\x10\x05\x12\x15\n\x11GEO_RESOLVER_WIFI\x10\x06*+\n\x0b\x41ggregation\x12\x08\n\x04HOUR\x10\x00\x12\x07\n\x03\x44\x41Y\x10\x01\x12\t\n\x05MONTH\x10\x02*2\n\nMetricKind\x12\x0b\n\x07\x43OUNTER\x10\x00\x12\x0c\n\x08\x41\x42SOLUTE\x10\x01\x12\t\n\x05GAUGE\x10\x02\x42U\n\x11io.chirpstack.apiB\x0b\x43ommonProtoP\x01Z1github.com/chirpstack/chirpstack/api/go/v4/commonb\x06proto3')
|
||||
|
||||
_MODULATION = DESCRIPTOR.enum_types_by_name['Modulation']
|
||||
Modulation = enum_type_wrapper.EnumTypeWrapper(_MODULATION)
|
||||
@ -32,6 +32,8 @@ _LOCATIONSOURCE = DESCRIPTOR.enum_types_by_name['LocationSource']
|
||||
LocationSource = enum_type_wrapper.EnumTypeWrapper(_LOCATIONSOURCE)
|
||||
_AGGREGATION = DESCRIPTOR.enum_types_by_name['Aggregation']
|
||||
Aggregation = enum_type_wrapper.EnumTypeWrapper(_AGGREGATION)
|
||||
_METRICKIND = DESCRIPTOR.enum_types_by_name['MetricKind']
|
||||
MetricKind = enum_type_wrapper.EnumTypeWrapper(_METRICKIND)
|
||||
LORA = 0
|
||||
FSK = 1
|
||||
LR_FHSS = 2
|
||||
@ -79,6 +81,9 @@ GEO_RESOLVER_WIFI = 6
|
||||
HOUR = 0
|
||||
DAY = 1
|
||||
MONTH = 2
|
||||
COUNTER = 0
|
||||
ABSOLUTE = 1
|
||||
GAUGE = 2
|
||||
|
||||
|
||||
_LOCATION = DESCRIPTOR.message_types_by_name['Location']
|
||||
@ -117,26 +122,28 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
|
||||
DESCRIPTOR._options = None
|
||||
DESCRIPTOR._serialized_options = b'\n\021io.chirpstack.apiB\013CommonProtoP\001Z1github.com/chirpstack/chirpstack/api/go/v4/common'
|
||||
_MODULATION._serialized_start=414
|
||||
_MODULATION._serialized_end=458
|
||||
_REGION._serialized_start=461
|
||||
_REGION._serialized_end=631
|
||||
_MTYPE._serialized_start=634
|
||||
_MTYPE._serialized_end=813
|
||||
_MACVERSION._serialized_start=815
|
||||
_MACVERSION._serialized_end=941
|
||||
_REGPARAMSREVISION._serialized_start=943
|
||||
_REGPARAMSREVISION._serialized_end=1044
|
||||
_LOCATIONSOURCE._serialized_start=1047
|
||||
_LOCATIONSOURCE._serialized_end=1189
|
||||
_AGGREGATION._serialized_start=1191
|
||||
_AGGREGATION._serialized_end=1234
|
||||
_MODULATION._serialized_start=449
|
||||
_MODULATION._serialized_end=493
|
||||
_REGION._serialized_start=496
|
||||
_REGION._serialized_end=666
|
||||
_MTYPE._serialized_start=669
|
||||
_MTYPE._serialized_end=848
|
||||
_MACVERSION._serialized_start=850
|
||||
_MACVERSION._serialized_end=976
|
||||
_REGPARAMSREVISION._serialized_start=978
|
||||
_REGPARAMSREVISION._serialized_end=1079
|
||||
_LOCATIONSOURCE._serialized_start=1082
|
||||
_LOCATIONSOURCE._serialized_end=1224
|
||||
_AGGREGATION._serialized_start=1226
|
||||
_AGGREGATION._serialized_end=1269
|
||||
_METRICKIND._serialized_start=1271
|
||||
_METRICKIND._serialized_end=1321
|
||||
_LOCATION._serialized_start=79
|
||||
_LOCATION._serialized_end=202
|
||||
_KEYENVELOPE._serialized_start=204
|
||||
_KEYENVELOPE._serialized_end=253
|
||||
_METRIC._serialized_start=255
|
||||
_METRIC._serialized_end=366
|
||||
_METRICDATASET._serialized_start=368
|
||||
_METRICDATASET._serialized_end=412
|
||||
_METRIC._serialized_start=256
|
||||
_METRIC._serialized_end=401
|
||||
_METRICDATASET._serialized_start=403
|
||||
_METRICDATASET._serialized_end=447
|
||||
# @@protoc_insertion_point(module_scope)
|
||||
|
119
api/python/src/chirpstack_api/gw/gw_pb2.py
vendored
119
api/python/src/chirpstack_api/gw/gw_pb2.py
vendored
File diff suppressed because one or more lines are too long
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.0.0-test.11",
|
||||
version = "4.0.2",
|
||||
url='https://github.com/brocaar/chirpstack-api',
|
||||
author='Orne Brocaar',
|
||||
author_email='info@brocaar.com',
|
||||
|
482
api/rust/Cargo.lock
generated
vendored
482
api/rust/Cargo.lock
generated
vendored
File diff suppressed because it is too large
Load Diff
18
api/rust/Cargo.toml
vendored
18
api/rust/Cargo.toml
vendored
@ -1,7 +1,7 @@
|
||||
[package]
|
||||
name = "chirpstack_api"
|
||||
description = "ChirpStack Protobuf / gRPC API definitions."
|
||||
version = "4.0.0-test.11"
|
||||
version = "4.0.2"
|
||||
authors = ["Orne Brocaar <info@brocaar.com>"]
|
||||
license = "MIT"
|
||||
homepage = "https://www.chirpstack.io"
|
||||
@ -14,17 +14,17 @@ api = ["tonic/transport", "tonic-build/transport", "tokio"]
|
||||
internal = []
|
||||
|
||||
[dependencies]
|
||||
prost = "0.10"
|
||||
prost-types = "0.10"
|
||||
pbjson = "0.3"
|
||||
pbjson-types = "0.3"
|
||||
prost = "0.11"
|
||||
prost-types = "0.11"
|
||||
pbjson = "0.5"
|
||||
pbjson-types = "0.5"
|
||||
hex = "0.4"
|
||||
rand = "0.8"
|
||||
|
||||
tonic = { version = "0.7", features = ["codegen", "prost"], default-features = false }
|
||||
tokio = { version = "1.17", features = ["macros"], optional = true }
|
||||
tonic = { version = "0.8", features = ["codegen", "prost"], default-features = false }
|
||||
tokio = { version = "1.21", features = ["macros"], optional = true }
|
||||
serde = { version = "1.0" }
|
||||
|
||||
[build-dependencies]
|
||||
tonic-build = { version = "0.7", features = ["prost"], default-features = false }
|
||||
pbjson-build = "0.3"
|
||||
tonic-build = { version = "0.8", features = ["prost"], default-features = false }
|
||||
pbjson-build = "0.5"
|
||||
|
@ -32,6 +32,9 @@ message UplinkFrameLog {
|
||||
|
||||
// Time.
|
||||
google.protobuf.Timestamp time = 7;
|
||||
|
||||
// Plaintext mac-commands.
|
||||
bool plaintext_mac_commands = 8;
|
||||
}
|
||||
|
||||
message DownlinkFrameLog {
|
||||
@ -58,4 +61,7 @@ message DownlinkFrameLog {
|
||||
|
||||
// Device EUI (optional).
|
||||
string dev_eui = 8;
|
||||
|
||||
// Plaintext mac-commands.
|
||||
bool plaintext_mac_commands = 9;
|
||||
}
|
||||
|
68
api/rust/proto/chirpstack/api/internal.proto
vendored
68
api/rust/proto/chirpstack/api/internal.proto
vendored
@ -9,6 +9,7 @@ option java_outer_classname = "InternalProto";
|
||||
|
||||
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.
|
||||
@ -51,6 +52,12 @@ service InternalService {
|
||||
|
||||
// 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) {}
|
||||
}
|
||||
|
||||
message ApiKey {
|
||||
@ -298,3 +305,64 @@ message StreamDeviceEventsRequest {
|
||||
// Device EUI.
|
||||
string dev_eui = 1;
|
||||
}
|
||||
|
||||
message ListRegionsResponse {
|
||||
// Configured regions.
|
||||
repeated RegionListItem regions = 1;
|
||||
}
|
||||
|
||||
message RegionListItem {
|
||||
// Name.
|
||||
string name = 1;
|
||||
|
||||
// Region.
|
||||
common.Region region = 2;
|
||||
}
|
||||
|
||||
message GetRegionRequest {
|
||||
// Region name.
|
||||
string name = 1;
|
||||
}
|
||||
|
||||
message GetRegionResponse {
|
||||
// Name.
|
||||
string name = 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;
|
||||
}
|
||||
|
||||
message RegionChannel {
|
||||
// Frequency (Hz).
|
||||
uint32 frequency = 1;
|
||||
|
||||
// Min DR.
|
||||
uint32 dr_min = 2;
|
||||
|
||||
// Max DR.
|
||||
uint32 dr_max = 3;
|
||||
}
|
||||
|
4
api/rust/proto/chirpstack/api/tenant.proto
vendored
4
api/rust/proto/chirpstack/api/tenant.proto
vendored
@ -189,6 +189,10 @@ message ListTenantsRequest {
|
||||
|
||||
// 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 {
|
||||
|
14
api/rust/proto/chirpstack/common/common.proto
vendored
14
api/rust/proto/chirpstack/common/common.proto
vendored
@ -142,6 +142,17 @@ enum Aggregation {
|
||||
MONTH = 2;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
message Location {
|
||||
// Latitude.
|
||||
double latitude = 1;
|
||||
@ -176,6 +187,9 @@ message Metric {
|
||||
|
||||
// Datasets.
|
||||
repeated MetricDataset datasets = 3;
|
||||
|
||||
// Kind.
|
||||
MetricKind kind = 4;
|
||||
}
|
||||
|
||||
message MetricDataset {
|
||||
|
19
api/rust/proto/chirpstack/gw/gw.proto
vendored
19
api/rust/proto/chirpstack/gw/gw.proto
vendored
@ -24,6 +24,9 @@ enum CodeRate {
|
||||
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 {
|
||||
@ -328,21 +331,27 @@ message UplinkRxInfo {
|
||||
// Note: only available for LoRa modulation.
|
||||
float snr = 7;
|
||||
|
||||
// Channel.
|
||||
uint32 channel = 8;
|
||||
|
||||
// RF chain.
|
||||
uint32 rf_chain = 9;
|
||||
|
||||
// Board.
|
||||
uint32 board = 8;
|
||||
uint32 board = 10;
|
||||
|
||||
// Antenna.
|
||||
uint32 antenna = 9;
|
||||
uint32 antenna = 11;
|
||||
|
||||
// Location.
|
||||
common.Location location = 10;
|
||||
common.Location location = 12;
|
||||
|
||||
// Gateway specific context.
|
||||
// This value must be returned to the gateway on (Class-A) downlink.
|
||||
bytes context = 11;
|
||||
bytes context = 13;
|
||||
|
||||
// Properties.
|
||||
google.protobuf.Struct metadata = 12;
|
||||
google.protobuf.Struct metadata = 14;
|
||||
}
|
||||
|
||||
message DownlinkTxInfoLegacy {
|
||||
|
16
api/rust/src/gw.rs
vendored
16
api/rust/src/gw.rs
vendored
@ -19,6 +19,9 @@ impl Into<String> for CodeRate {
|
||||
CodeRate::Cr14 => "1/4",
|
||||
CodeRate::Cr16 => "1/6",
|
||||
CodeRate::Cr56 => "5/6",
|
||||
CodeRate::CrLi45 => "4/5LI",
|
||||
CodeRate::CrLi46 => "4/6LI",
|
||||
CodeRate::CrLi48 => "4/8LI",
|
||||
}
|
||||
.to_string()
|
||||
}
|
||||
@ -38,6 +41,9 @@ impl FromStr for CodeRate {
|
||||
"1/4" => CodeRate::Cr14,
|
||||
"1/6" => CodeRate::Cr16,
|
||||
"5/6" => CodeRate::Cr56,
|
||||
"4/5LI" => CodeRate::CrLi45,
|
||||
"4/6LI" => CodeRate::CrLi46,
|
||||
"4/8LI" => CodeRate::CrLi48,
|
||||
_ => {
|
||||
return Err("invalid code-rate".into());
|
||||
}
|
||||
@ -115,6 +121,8 @@ impl UplinkFrame {
|
||||
fine_time_since_gps_epoch: None,
|
||||
rssi: rx_info.rssi,
|
||||
snr: rx_info.lora_snr as f32,
|
||||
channel: rx_info.channel,
|
||||
rf_chain: rx_info.rf_chain,
|
||||
board: rx_info.board,
|
||||
antenna: rx_info.antenna,
|
||||
location: rx_info.location.clone(),
|
||||
@ -271,3 +279,11 @@ impl DownlinkTxAck {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl GatewayStats {
|
||||
pub fn v4_migrate(&mut self) {
|
||||
if self.gateway_id.is_empty() {
|
||||
self.gateway_id = hex::encode(&self.gateway_id_legacy);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "backend"
|
||||
version = "4.0.0-test.11"
|
||||
version = "4.0.2"
|
||||
authors = ["Orne Brocaar <info@brocaar.com>"]
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
@ -12,7 +12,7 @@ use reqwest::header::{HeaderMap, AUTHORIZATION, CONTENT_TYPE};
|
||||
use reqwest::{Certificate, Identity};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use tokio::sync::oneshot::Receiver;
|
||||
use tracing::{error, info, trace};
|
||||
use tracing::{debug, error, info, trace};
|
||||
|
||||
const PROTOCOL_VERSION: &str = "1.0";
|
||||
|
||||
@ -279,13 +279,15 @@ impl Client {
|
||||
};
|
||||
|
||||
let bp = pl.base_payload();
|
||||
let body = serde_json::to_string(&pl)?;
|
||||
|
||||
info!(receiver_id = %hex::encode(&bp.base.receiver_id), transaction_id = bp.base.transaction_id, message_type = ?bp.base.message_type, server = %server, "Making request");
|
||||
debug!("JSON: {}", body);
|
||||
|
||||
self.client
|
||||
.post(&server)
|
||||
.headers(self.headers.clone())
|
||||
.json(pl)
|
||||
.body(body)
|
||||
.send()
|
||||
.await?
|
||||
.error_for_status()?;
|
||||
@ -315,14 +317,16 @@ impl Client {
|
||||
};
|
||||
|
||||
let bp = pl.base_payload().clone();
|
||||
let body = serde_json::to_string(&pl)?;
|
||||
|
||||
info!(receiver_id = %hex::encode(&bp.receiver_id), transaction_id = bp.transaction_id, message_type = ?bp.message_type, server = %server, async_interface = %async_resp.is_some(), "Making request");
|
||||
debug!("JSON: {}", body);
|
||||
|
||||
let res = self
|
||||
.client
|
||||
.post(&server)
|
||||
.headers(self.headers.clone())
|
||||
.json(pl)
|
||||
.body(body)
|
||||
.send()
|
||||
.await?
|
||||
.error_for_status()?;
|
||||
@ -344,6 +348,7 @@ impl Client {
|
||||
None => res.text().await?,
|
||||
};
|
||||
|
||||
debug!("JSON: {}", resp_json);
|
||||
let base: BasePayloadResult = serde_json::from_str(&resp_json)?;
|
||||
if base.result.result_code != ResultCode::Success {
|
||||
error!(result_code = ?base.result.result_code, description = %base.result.description, receiver_id = %hex::encode(&bp.receiver_id), transaction_id = bp.transaction_id, message_type = ?bp.message_type, "Response error");
|
||||
@ -523,7 +528,11 @@ pub struct BasePayloadResult {
|
||||
pub struct ResultPayload {
|
||||
#[serde(rename = "ResultCode")]
|
||||
pub result_code: ResultCode,
|
||||
#[serde(rename = "Description")]
|
||||
#[serde(
|
||||
default,
|
||||
rename = "Description",
|
||||
skip_serializing_if = "String::is_empty"
|
||||
)]
|
||||
pub description: String,
|
||||
}
|
||||
|
||||
@ -933,7 +942,12 @@ pub struct ULMetaData {
|
||||
pub f_ns_ul_token: Vec<u8>,
|
||||
#[serde(rename = "RecvTime")]
|
||||
pub recv_time: DateTime<Utc>,
|
||||
#[serde(default, rename = "RFRegion", skip_serializing_if = "String::is_empty")]
|
||||
#[serde(
|
||||
default,
|
||||
rename = "RFRegion",
|
||||
with = "rf_region_encode",
|
||||
skip_serializing_if = "String::is_empty"
|
||||
)]
|
||||
pub rf_region: String,
|
||||
#[serde(rename = "GWCnt")]
|
||||
pub gw_cnt: Option<usize>,
|
||||
@ -974,7 +988,12 @@ pub struct GWInfoElement {
|
||||
pub id: Vec<u8>,
|
||||
#[serde(rename = "FineRecvTime")]
|
||||
pub fine_recv_time: Option<usize>,
|
||||
#[serde(default, rename = "RFRegion", skip_serializing_if = "String::is_empty")]
|
||||
#[serde(
|
||||
default,
|
||||
rename = "RFRegion",
|
||||
with = "rf_region_encode",
|
||||
skip_serializing_if = "String::is_empty"
|
||||
)]
|
||||
pub rf_region: String,
|
||||
#[serde(rename = "RSSI")]
|
||||
pub rssi: Option<isize>,
|
||||
@ -1079,6 +1098,27 @@ pub struct DLMetaData {
|
||||
pub hi_priority_flag: bool,
|
||||
}
|
||||
|
||||
mod rf_region_encode {
|
||||
use serde::{Deserializer, Serializer};
|
||||
|
||||
pub fn serialize<S>(s: &str, serializer: S) -> std::result::Result<S::Ok, S::Error>
|
||||
where
|
||||
S: Serializer,
|
||||
{
|
||||
serializer.serialize_str(&s.replace('_', "-"))
|
||||
}
|
||||
|
||||
pub fn deserialize<'a, D>(deserializer: D) -> Result<String, D::Error>
|
||||
where
|
||||
D: Deserializer<'a>,
|
||||
{
|
||||
let s: &str = serde::de::Deserialize::deserialize(deserializer)?;
|
||||
|
||||
// Some implementations use lowercase.
|
||||
Ok(s.to_uppercase())
|
||||
}
|
||||
}
|
||||
|
||||
mod hex_encode {
|
||||
use serde::{Deserializer, Serializer};
|
||||
|
||||
|
@ -1,4 +0,0 @@
|
||||
[Service]
|
||||
Environment="MQTT_BROKER_HOST=localhost"
|
||||
Environment="POSTGRESQL_HOST=localhost"
|
||||
Environment="REDIS_HOST=localhost"
|
@ -23,6 +23,9 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
||||
rm -rf %{buildroot}
|
||||
mkdir -p %{buildroot}
|
||||
cp -a * %{buildroot}
|
||||
sed -i "s/\$MQTT_BROKER_HOST/localhost/" %{buildroot}/etc/chirpstack/*.toml
|
||||
sed -i "s/\$POSTGRESQL_HOST/localhost/" %{buildroot}/etc/chirpstack/*.toml
|
||||
sed -i "s/\$REDIS_HOST/localhost/" %{buildroot}/etc/chirpstack/*.toml
|
||||
|
||||
%clean
|
||||
rm -rf %{buildroot}
|
||||
@ -32,4 +35,3 @@ rm -rf %{buildroot}
|
||||
%{_bindir}/*
|
||||
/lib/systemd/system/chirpstack.service
|
||||
%config /etc/chirpstack/*
|
||||
%config /etc/systemd/system/chirpstack.service.d/*
|
||||
|
@ -3,7 +3,7 @@ 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.0.0-test.11"
|
||||
version = "4.0.2"
|
||||
authors = ["Orne Brocaar <info@brocaar.com>"]
|
||||
edition = "2021"
|
||||
publish = false
|
||||
@ -11,28 +11,28 @@ license = "MIT"
|
||||
|
||||
[dependencies]
|
||||
# CLI interface
|
||||
clap = "2.33"
|
||||
clap = "3.2"
|
||||
|
||||
# Configuration
|
||||
serde = { version = "1.0", features = ["derive", "rc"] }
|
||||
serde_yaml = "0.8"
|
||||
serde_yaml = "0.9"
|
||||
serde_json = "1.0"
|
||||
humantime-serde = "1.0"
|
||||
humantime-serde = "1.1"
|
||||
toml = "0.5"
|
||||
handlebars = "4.1"
|
||||
handlebars = "4.3"
|
||||
|
||||
# Database
|
||||
validator = "0.13"
|
||||
diesel = { version = "2.0.0-rc.1", features = [ "chrono", "postgres", "r2d2", "uuid", "serde_json", "numeric" ] }
|
||||
diesel_migrations = { version = "2.0.0-rc.1" }
|
||||
validator = "0.16"
|
||||
diesel = { version = "2.0.0", features = [ "chrono", "postgres", "r2d2", "uuid", "serde_json", "numeric" ] }
|
||||
diesel_migrations = { version = "2.0.0" }
|
||||
r2d2 = "0.8"
|
||||
bigdecimal = "0.3"
|
||||
redis = { version = "0.21", features = ["r2d2", "cluster"] }
|
||||
pq-sys = { version = "0.4.6", features = ["pkg-config"] }
|
||||
pq-sys = { version = "0.4.7", features = ["pkg-config"] }
|
||||
|
||||
# Logging
|
||||
tracing = "0.1"
|
||||
tracing-subscriber = { version = "0.2", features = ["fmt", "ansi"], default-features = true }
|
||||
tracing-subscriber = { version = "0.3", features = ["fmt", "ansi"], default-features = true }
|
||||
|
||||
# ChirpStack API definitions
|
||||
chirpstack_api = { path = "../api/rust", features = ["default", "internal"] }
|
||||
@ -43,28 +43,28 @@ backend = { path = "../backend" }
|
||||
reqwest = { version = "0.11", features = ["json"] }
|
||||
|
||||
# Integrations
|
||||
aws-types = "0.3.0"
|
||||
aws-config = "0.3.0"
|
||||
aws-sdk-sns = "0.3.0"
|
||||
aws-types = "0.49"
|
||||
aws-config = "0.49"
|
||||
aws-sdk-sns = "0.19"
|
||||
hmac = "0.12"
|
||||
sha2 = "0.10"
|
||||
urlencoding = "2.1"
|
||||
geohash = "0.12"
|
||||
gcp_auth = "0.7.2"
|
||||
lapin = "2.1.1"
|
||||
tokio-executor-trait = "2.1.0"
|
||||
tokio-reactor-trait = "1.1.0"
|
||||
rdkafka = { version = "0.28.0", features = ["cmake-build"]}
|
||||
gcp_auth = "0.7"
|
||||
lapin = "2.1"
|
||||
tokio-executor-trait = "2.1"
|
||||
tokio-reactor-trait = "1.1"
|
||||
rdkafka = { version = "0.28", features = ["cmake-build"]}
|
||||
|
||||
# gRPC and Protobuf
|
||||
tonic = "0.7"
|
||||
tonic-web = "0.3"
|
||||
tonic-reflection = "0.4"
|
||||
tokio = { version = "1.17", features = ["macros", "rt-multi-thread"] }
|
||||
tokio-stream = "0.1.8"
|
||||
prost-types = "0.10"
|
||||
prost = "0.10"
|
||||
pbjson-types = "0.3"
|
||||
tonic = "0.8"
|
||||
tonic-web = "0.4"
|
||||
tonic-reflection = "0.5"
|
||||
tokio = { version = "1.21", features = ["macros", "rt-multi-thread"] }
|
||||
tokio-stream = "0.1"
|
||||
prost-types = "0.11"
|
||||
prost = "0.11"
|
||||
pbjson-types = "0.5"
|
||||
|
||||
# gRPC and HTTP multiplexing
|
||||
warp = { version = "0.3", features = ["tls"] }
|
||||
@ -75,58 +75,52 @@ http = "0.2"
|
||||
http-body = "0.4"
|
||||
rust-embed = "6.4"
|
||||
mime_guess = "2.0"
|
||||
tower-http = { version = "0.1", features = ["trace", "auth"] }
|
||||
tower-http = { version = "0.3", features = ["trace", "auth"] }
|
||||
|
||||
# Error handling
|
||||
thiserror = "1.0"
|
||||
anyhow = "1.0"
|
||||
|
||||
# Authentication
|
||||
pbkdf2 = "0.8"
|
||||
pbkdf2 = "0.11"
|
||||
rand_core = { version = "0.6", features = ["std"] }
|
||||
# jsonwebtoken = "8.0"
|
||||
jsonwebtoken = "8.1.0"
|
||||
jsonwebtoken = "8.1"
|
||||
openssl = { version = "0.10", features = ["vendored"] }
|
||||
openidconnect = { version = "2.3.1", features = ["accept-rfc3339-timestamps"] }
|
||||
openidconnect = { version = "2.3", features = ["accept-rfc3339-timestamps"] }
|
||||
|
||||
# MQTT
|
||||
paho-mqtt = { version = "0.9", features = ["vendored-ssl"] }
|
||||
paho-mqtt = { version = "0.11", features = ["vendored-ssl"] }
|
||||
hex = "0.4"
|
||||
|
||||
# Codecs
|
||||
rquickjs = { version = "0.1.6", features = ["bindgen", "loader", "array-buffer", "chrono"] }
|
||||
rquickjs = { version = "0.1", features = ["bindgen", "loader", "array-buffer", "chrono"] }
|
||||
|
||||
# Misc
|
||||
lazy_static = "1.4"
|
||||
uuid = { version = "1.1", features = [ "v4", "serde" ] }
|
||||
chrono = "0.4"
|
||||
async-trait = "0.1"
|
||||
aes = "0.7"
|
||||
aes = "0.8"
|
||||
rand = "0.8"
|
||||
base64 = "0.13"
|
||||
async-recursion = "1.0"
|
||||
regex = "1"
|
||||
regex = "1.6"
|
||||
petgraph = "0.6"
|
||||
prometheus-client = "0.16"
|
||||
prometheus-client = "0.18"
|
||||
pin-project = "1.0"
|
||||
|
||||
# Development and testing
|
||||
[dev-dependencies]
|
||||
httpmock = "0.6"
|
||||
bytes = "1.1"
|
||||
bytes = "1.2"
|
||||
|
||||
# Debian packaging.
|
||||
[package.metadata.deb]
|
||||
assets = [
|
||||
["target/release/chirpstack", "usr/bin/", "755"],
|
||||
["configuration/*.toml", "etc/chirpstack/", "640"],
|
||||
["configuration/certs/*.json", "etc/chirpstack/certs", "640"],
|
||||
["debian/environment.conf", "etc/systemd/system/chirpstack.service.d/environment.conf", "640"],
|
||||
]
|
||||
conf-files = [
|
||||
"/etc/chirpstack/certs/ca-config.json",
|
||||
"/etc/chirpstack/certs/ca-csr.json",
|
||||
"/etc/chirpstack/certs/mqtt-server.json",
|
||||
"/etc/chirpstack/chirpstack.toml",
|
||||
"/etc/chirpstack/region_as923.toml",
|
||||
"/etc/chirpstack/region_as923_2.toml",
|
||||
@ -156,7 +150,6 @@ conf-files = [
|
||||
"/etc/chirpstack/region_us915_6.toml",
|
||||
"/etc/chirpstack/region_us915_7.toml",
|
||||
]
|
||||
depends = "$auto, golang-cfssl"
|
||||
suggests = "postgresql, mosquitto, redis"
|
||||
maintainer-scripts = "debian/"
|
||||
systemd-units = { enable = true }
|
||||
@ -167,7 +160,6 @@ package = "chirpstack"
|
||||
[package.metadata.rpm.files]
|
||||
"configuration/" = { path = "/etc/chirpstack/" }
|
||||
"chirpstack.service" = { path = "/lib/systemd/system/chirpstack.service" }
|
||||
"chirpstack.env" = { path = "/etc/systemd/system/chirpstack.service.d/environment" }
|
||||
|
||||
[package.metadata.rpm.cargo]
|
||||
buildflags = ["--release"]
|
||||
|
@ -111,14 +111,8 @@ test:
|
||||
test-lrwn:
|
||||
cd ../lrwn && make test
|
||||
|
||||
test-server: debug-amd64 configuration/certs/ca.pem
|
||||
test-server: debug-amd64
|
||||
../target/debug/chirpstack -c ./configuration
|
||||
|
||||
dbshell:
|
||||
psql -h postgres -U chirpstack chirpstack
|
||||
|
||||
configuration/certs/ca.pem:
|
||||
cfssl gencert -initca configuration/certs/ca-csr.json | cfssljson -bare configuration/certs/ca
|
||||
|
||||
configuration/certs/mqtt-server.pem: configuration/certs/ca.pem
|
||||
cfssl gencert -ca configuration/certs/ca.pem -ca-key configuration/certs/ca-key.pem -config configuration/certs/ca-config.json -profile server configuration/certs/mqtt-server.json | cfssljson -bare configuration/certs/mqtt-server
|
||||
|
@ -1,17 +0,0 @@
|
||||
{
|
||||
"signing": {
|
||||
"default": {
|
||||
"expiry": "8760h"
|
||||
},
|
||||
"profiles": {
|
||||
"server": {
|
||||
"expiry": "8760h",
|
||||
"usages": [
|
||||
"signing",
|
||||
"key encipherment",
|
||||
"server auth"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
{
|
||||
"CN": "ChirpStack CA",
|
||||
"key": {
|
||||
"algo": "rsa",
|
||||
"size": 4096
|
||||
}
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
{
|
||||
"CN": "mqtt-broker",
|
||||
"hosts": [
|
||||
"*"
|
||||
],
|
||||
"key": {
|
||||
"algo": "rsa",
|
||||
"size": 4096
|
||||
}
|
||||
}
|
@ -70,6 +70,7 @@
|
||||
"as923_3",
|
||||
"as923_4",
|
||||
"au915_0",
|
||||
"cn470_10",
|
||||
"cn779",
|
||||
"eu433",
|
||||
"eu868",
|
||||
@ -97,19 +98,9 @@
|
||||
secret="you-must-replace-this"
|
||||
|
||||
|
||||
[gateway]
|
||||
client_cert_lifetime="365days"
|
||||
ca_cert="configuration/certs/ca.pem"
|
||||
ca_key="configuration/certs/ca-key.pem"
|
||||
|
||||
[integration]
|
||||
enabled=["mqtt"]
|
||||
|
||||
[integration.mqtt]
|
||||
server="tcp://$MQTT_BROKER_HOST:1883/"
|
||||
json=true
|
||||
|
||||
[integration.mqtt.client]
|
||||
client_cert_lifetime="365days"
|
||||
ca_cert="configuration/certs/ca.pem"
|
||||
ca_key="configuration/certs/ca-key.pem"
|
||||
|
@ -57,13 +57,13 @@
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=true
|
||||
clean_session=false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. When left blank,
|
||||
# a random id will be generated. This requires clean_session=true.
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
|
||||
# CA certificate file (optional)
|
||||
|
@ -57,13 +57,13 @@
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=true
|
||||
clean_session=false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. When left blank,
|
||||
# a random id will be generated. This requires clean_session=true.
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
|
||||
# CA certificate file (optional)
|
||||
|
@ -57,13 +57,13 @@
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=true
|
||||
clean_session=false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. When left blank,
|
||||
# a random id will be generated. This requires clean_session=true.
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
|
||||
# CA certificate file (optional)
|
||||
|
@ -57,13 +57,13 @@
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=true
|
||||
clean_session=false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. When left blank,
|
||||
# a random id will be generated. This requires clean_session=true.
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
|
||||
# CA certificate file (optional)
|
||||
|
@ -57,13 +57,13 @@
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=true
|
||||
clean_session=false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. When left blank,
|
||||
# a random id will be generated. This requires clean_session=true.
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
|
||||
# CA certificate file (optional)
|
||||
|
@ -57,13 +57,13 @@
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=true
|
||||
clean_session=false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. When left blank,
|
||||
# a random id will be generated. This requires clean_session=true.
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
|
||||
# CA certificate file (optional)
|
||||
|
@ -57,13 +57,13 @@
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=true
|
||||
clean_session=false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. When left blank,
|
||||
# a random id will be generated. This requires clean_session=true.
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
|
||||
# CA certificate file (optional)
|
||||
|
@ -57,13 +57,13 @@
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=true
|
||||
clean_session=false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. When left blank,
|
||||
# a random id will be generated. This requires clean_session=true.
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
|
||||
# CA certificate file (optional)
|
||||
|
@ -57,13 +57,13 @@
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=true
|
||||
clean_session=false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. When left blank,
|
||||
# a random id will be generated. This requires clean_session=true.
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
|
||||
# CA certificate file (optional)
|
||||
|
@ -57,13 +57,13 @@
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=true
|
||||
clean_session=false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. When left blank,
|
||||
# a random id will be generated. This requires clean_session=true.
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
|
||||
# CA certificate file (optional)
|
||||
|
@ -57,13 +57,13 @@
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=true
|
||||
clean_session=false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. When left blank,
|
||||
# a random id will be generated. This requires clean_session=true.
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
|
||||
# CA certificate file (optional)
|
||||
|
@ -57,13 +57,13 @@
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=true
|
||||
clean_session=false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. When left blank,
|
||||
# a random id will be generated. This requires clean_session=true.
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
|
||||
# CA certificate file (optional)
|
||||
|
237
chirpstack/configuration/region_cn470_0.toml
Normal file
237
chirpstack/configuration/region_cn470_0.toml
Normal file
@ -0,0 +1,237 @@
|
||||
# This file contains an example CN470 example (channels 0-7).
|
||||
[[regions]]
|
||||
|
||||
# Name is an use-defined identifier for this region.
|
||||
name="cn470_0"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="CN470"
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
[regions.gateway]
|
||||
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
|
||||
# Event topic template.
|
||||
event_topic="cn470_0/gateway/+/event/+"
|
||||
|
||||
# Command topic template.
|
||||
command_topic="cn470_0/gateway/{{ gateway_id }}/command/{{ command }}"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://$MQTT_BROKER_HOST:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
# 0: at most once
|
||||
# 1: at least once
|
||||
# 2: exactly once
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
#
|
||||
# Note: this configuration is only used in case the gateway is using the
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=470300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=470500000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=470700000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=470900000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=471100000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=471300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=471500000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=471700000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
[regions.network]
|
||||
|
||||
# Installation margin (dB) used by the ADR engine.
|
||||
#
|
||||
# A higher number means that the network-server will keep more margin,
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
# Set this to:
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=0
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=505300000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
# Prefer RX2 over RX1 based on the RX1 data-rate. When the RX1 data-rate
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
#
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
|
||||
# Enabled uplink channels.
|
||||
#
|
||||
# Use this when ony a sub-set of the by default enabled channels are being
|
||||
# used. For example when only using the first 8 channels of the US band.
|
||||
# Note: when left blank / empty array, all channels will be enabled.
|
||||
enabled_uplink_channels=[0, 1, 2, 3, 4, 5, 6, 7]
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=0
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
237
chirpstack/configuration/region_cn470_1.toml
Normal file
237
chirpstack/configuration/region_cn470_1.toml
Normal file
@ -0,0 +1,237 @@
|
||||
# This file contains an example CN470 example (channels 8-15).
|
||||
[[regions]]
|
||||
|
||||
# Name is an use-defined identifier for this region.
|
||||
name="cn470_1"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="CN470"
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
[regions.gateway]
|
||||
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
|
||||
# Event topic template.
|
||||
event_topic="cn470_1/gateway/+/event/+"
|
||||
|
||||
# Command topic template.
|
||||
command_topic="cn470_1/gateway/{{ gateway_id }}/command/{{ command }}"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://$MQTT_BROKER_HOST:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
# 0: at most once
|
||||
# 1: at least once
|
||||
# 2: exactly once
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
#
|
||||
# Note: this configuration is only used in case the gateway is using the
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=471900000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=472100000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=472300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=472500000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=472700000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=472900000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=473100000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=473300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
[regions.network]
|
||||
|
||||
# Installation margin (dB) used by the ADR engine.
|
||||
#
|
||||
# A higher number means that the network-server will keep more margin,
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
# Set this to:
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=0
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=505300000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
# Prefer RX2 over RX1 based on the RX1 data-rate. When the RX1 data-rate
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
#
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
|
||||
# Enabled uplink channels.
|
||||
#
|
||||
# Use this when ony a sub-set of the by default enabled channels are being
|
||||
# used. For example when only using the first 8 channels of the US band.
|
||||
# Note: when left blank / empty array, all channels will be enabled.
|
||||
enabled_uplink_channels=[8, 9, 10, 11, 12, 13, 14, 15]
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=0
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
237
chirpstack/configuration/region_cn470_10.toml
Normal file
237
chirpstack/configuration/region_cn470_10.toml
Normal file
@ -0,0 +1,237 @@
|
||||
# This file contains an example CN470 example (channels 80-87).
|
||||
[[regions]]
|
||||
|
||||
# Name is an use-defined identifier for this region.
|
||||
name="cn470_10"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="CN470"
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
[regions.gateway]
|
||||
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
|
||||
# Event topic template.
|
||||
event_topic="cn470_10/gateway/+/event/+"
|
||||
|
||||
# Command topic template.
|
||||
command_topic="cn470_10/gateway/{{ gateway_id }}/command/{{ command }}"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://$MQTT_BROKER_HOST:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
# 0: at most once
|
||||
# 1: at least once
|
||||
# 2: exactly once
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
#
|
||||
# Note: this configuration is only used in case the gateway is using the
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=486300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=486500000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=486700000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=486900000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=487100000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=487300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=487500000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=487700000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
[regions.network]
|
||||
|
||||
# Installation margin (dB) used by the ADR engine.
|
||||
#
|
||||
# A higher number means that the network-server will keep more margin,
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
# Set this to:
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=0
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=505300000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
# Prefer RX2 over RX1 based on the RX1 data-rate. When the RX1 data-rate
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
#
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
|
||||
# Enabled uplink channels.
|
||||
#
|
||||
# Use this when ony a sub-set of the by default enabled channels are being
|
||||
# used. For example when only using the first 8 channels of the US band.
|
||||
# Note: when left blank / empty array, all channels will be enabled.
|
||||
enabled_uplink_channels=[80, 81, 82, 83, 84, 85, 86, 87]
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=0
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
237
chirpstack/configuration/region_cn470_11.toml
Normal file
237
chirpstack/configuration/region_cn470_11.toml
Normal file
@ -0,0 +1,237 @@
|
||||
# This file contains an example CN470 example (channels 88-95).
|
||||
[[regions]]
|
||||
|
||||
# Name is an use-defined identifier for this region.
|
||||
name="cn470_11"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="CN470"
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
[regions.gateway]
|
||||
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
|
||||
# Event topic template.
|
||||
event_topic="cn470_11/gateway/+/event/+"
|
||||
|
||||
# Command topic template.
|
||||
command_topic="cn470_11/gateway/{{ gateway_id }}/command/{{ command }}"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://$MQTT_BROKER_HOST:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
# 0: at most once
|
||||
# 1: at least once
|
||||
# 2: exactly once
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
#
|
||||
# Note: this configuration is only used in case the gateway is using the
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=487900000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=488100000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=488300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=488500000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=488700000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=488900000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=489100000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=489300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
[regions.network]
|
||||
|
||||
# Installation margin (dB) used by the ADR engine.
|
||||
#
|
||||
# A higher number means that the network-server will keep more margin,
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
# Set this to:
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=0
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=505300000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
# Prefer RX2 over RX1 based on the RX1 data-rate. When the RX1 data-rate
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
#
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
|
||||
# Enabled uplink channels.
|
||||
#
|
||||
# Use this when ony a sub-set of the by default enabled channels are being
|
||||
# used. For example when only using the first 8 channels of the US band.
|
||||
# Note: when left blank / empty array, all channels will be enabled.
|
||||
enabled_uplink_channels=[88, 89, 90, 91, 92, 93, 94, 95]
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=0
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user