Compare commits

...

33 Commits

Author SHA1 Message Date
f13a5f492c Bump version to 4.6.0-test.3 2023-11-22 11:28:00 +00:00
c0cd3a3361 Remove env variables from example config.
Initially this was added to make development using Docker Compose easier.
However, in my experience Docker Compose is not great for the reason
that there might be environmental differences between Rust running in
Compose and Rust running outside Compose (if using VSCode with Rust
plugin, then rust-analyzer will perform checks in the background). This
and 'cross' not working properly in Compose was the reason to migrate
to nix, as it provides a reproducible environment for development that
can also be used by VSCode (using the Nix environment selector
extension) and GitHub Actions (for the CI pipeline).

As the chirpstack-docker repository provides its own configuration files,
these files are not included in the Dockerfile and because we are
rewriting these env variables anyway to 'localhost' in the .deb and .rpm
post-installation script, it is better to set these to localhost by
default.

The post-installation rewrite to 'localhost' is causing issues on
upgrade (#295). If we only do the rewrite on initial installation, then
we run in an other issue; the package-manager will prompt that the
config file has changed (from 'localhost' to '$MQTT_BROKER_HOST' for
example) and will ask if you would like to overwrite or not. If the
end-user would accept the config changes without looking at the diff
this would break the installation as most likely, these environment are
not set (which is why we were rewriting these to 'localhost' in the first
place).
2023-11-22 11:10:13 +00:00
5fd56e7e3c Bump version to 4.6.0-test.2 2023-11-20 12:33:52 +00:00
940790add1 Update Rust to 1.74.0. 2023-11-20 12:09:02 +00:00
1e619f90a0 Fix fmt issue. 2023-11-15 12:58:22 +00:00
f7cd5a5a58 Get all device data in one query.
Instead of querying the device, device-profile, tenant and application
in separate queries.
2023-11-15 12:49:13 +00:00
f81b868a31 ui: Reload device on change event.
Fixes #319.
2023-11-13 14:17:45 +00:00
464937169b ui: Make device metric name optional.
If enabled, metrics will be automatically detected and created based on
the decoded payload. The key will be set, but the name is left blank for
the user to configure. This can be confusing as it leads to validation
errors in the device-profile form if the name is not filled in.
The UI does show that one of the fields failed to validate, but even
with such notification, it is not clear that users have to check one
of the form tabs which they didn't edit on save.

This makes the name optional and uses the key as fallback such that
saving the form no longer fails in case the name is still blank.

Closes #313.
2023-11-10 16:50:17 +00:00
b0ed12a1f5 Add the misspelled UnkownReceiver as a valid ResultCode in BE (#317) 2023-11-10 15:56:01 +00:00
64277b1d9f Simplify AWS SNS integration / reduce dependencies.
This removes the aws-sdk-sns crate (+ dependencies) and refactors the
AWS SNS integration to use reqwest for the API call + aws-sign-v4 for
creating the AWS request signature.
2023-11-09 13:22:10 +00:00
d24c830cd5 backend: Add sender_id to log span. 2023-11-07 12:02:55 +00:00
4d822b56ef backend: Improve request logging. 2023-11-07 11:58:21 +00:00
3b5627f43e Fix join-accept log span.
This shows the actual downlink_id of the join-accept downlink, which can
be correlated with the other log messages (e.g. tx_ack).
2023-11-07 11:15:51 +00:00
500fd0f099 Add additional uplink metrics. 2023-11-07 09:46:02 +00:00
9ea174910f Use unbounded MQTT client channel.
Even with the messages being handled async (tokio::spawn(...)), during
high throughput or a burst of messages, the channel might still fill up
causing messages to be discarded without any error being printed.
2023-11-07 09:46:02 +00:00
b6d390b6ad ui: Fix setting initial tagsMap in TenantForm. 2023-11-07 09:46:02 +00:00
3f86bf6e71 backend: Skip serde serialization for Option<T> fields with None value. (#316) 2023-11-06 09:23:22 +00:00
575cf45953 Use Error::Abort for Class-C downlink without first uplink. 2023-11-03 14:30:09 +00:00
529e0cfed2 Use alternate error formatting in ToStatus trait impl. 2023-11-03 14:15:49 +00:00
612662cd0b Fix :: > : in Redis key. 2023-11-02 15:30:34 +00:00
07a6ce8c60 api: Update Go dependencies. 2023-11-02 14:23:31 +00:00
f49fdf1c2c Log incoming Backend Interfaces requests. 2023-11-02 14:07:13 +00:00
a4b775e75a Fix tests after streams > stream rename. 2023-11-02 14:05:52 +00:00
8cca9d0677 backend: Implement BasePayloadResultProvider for BasePayloadResult. 2023-11-02 13:56:43 +00:00
4d2f9828bb Log outgoing Backend Interfaces requests. 2023-11-02 11:50:16 +00:00
2020732459 backend: Add optional logger func to client config. 2023-11-02 11:31:21 +00:00
6931e9adb5 api: Add BackendInterfacesRequest stream message. 2023-11-02 08:36:57 +00:00
36e6d5ccb9 api: Change streams > stream to be consistent. 2023-10-31 14:03:31 +00:00
9596f7c2d0 Group stream modules together. 2023-10-31 13:26:59 +00:00
1d38ae2544 api: Refactor api/request_log.proto to streams/api_requests.proto. 2023-10-31 11:59:07 +00:00
a4da4ab784 api: Refactor api/frame_log.proto into streams/frames.proto. 2023-10-31 11:21:43 +00:00
ec0ecf2044 api: Refactor meta/meta.proto to streams/meta.proto. 2023-10-31 10:19:38 +00:00
09e1ae0263 Refactor JS join_eui to join_eui_prefix.
This makes it possible to use a range of JoinEUIs per Join Server.
Use-cases are either Join Servers using a JoinEUI range or the
configuration of a "catch-all" Join Server prefix ("0000000000000000/0").
2023-10-30 15:44:34 +00:00
179 changed files with 4480 additions and 4752 deletions

401
Cargo.lock generated
View File

@ -400,320 +400,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
[[package]]
name = "aws-config"
version = "0.56.1"
name = "aws-sign-v4"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc6b3804dca60326e07205179847f17a4fce45af3a1106939177ad41ac08a6de"
checksum = "93df874cdba37261e8d371d427d8ba77c753febe271b8f484349af6dceea0e48"
dependencies = [
"aws-credential-types",
"aws-http",
"aws-sdk-sts",
"aws-smithy-async",
"aws-smithy-client",
"aws-smithy-http",
"aws-smithy-http-tower",
"aws-smithy-json",
"aws-smithy-types",
"aws-types",
"bytes",
"fastrand 2.0.0",
"http",
"hyper",
"time",
"tokio",
"tower",
"tracing",
]
[[package]]
name = "aws-credential-types"
version = "0.56.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "70a66ac8ef5fa9cf01c2d999f39d16812e90ec1467bd382cbbb74ba23ea86201"
dependencies = [
"aws-smithy-async",
"aws-smithy-types",
"fastrand 2.0.0",
"tokio",
"tracing",
"zeroize",
]
[[package]]
name = "aws-http"
version = "0.56.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3e626370f9ba806ae4c439e49675fd871f5767b093075cdf4fef16cac42ba900"
dependencies = [
"aws-credential-types",
"aws-smithy-http",
"aws-smithy-types",
"aws-types",
"bytes",
"http",
"http-body",
"lazy_static",
"percent-encoding",
"pin-project-lite",
"tracing",
]
[[package]]
name = "aws-runtime"
version = "0.56.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "07ac5cf0ff19c1bca0cea7932e11b239d1025a45696a4f44f72ea86e2b8bdd07"
dependencies = [
"aws-credential-types",
"aws-http",
"aws-sigv4",
"aws-smithy-async",
"aws-smithy-http",
"aws-smithy-runtime-api",
"aws-smithy-types",
"aws-types",
"fastrand 2.0.0",
"http",
"percent-encoding",
"tracing",
"uuid",
]
[[package]]
name = "aws-sdk-sns"
version = "0.30.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0279f51da1a84996515caf4882040ff77982929c688b09e4cf4d943e39e652f1"
dependencies = [
"aws-credential-types",
"aws-http",
"aws-runtime",
"aws-smithy-async",
"aws-smithy-client",
"aws-smithy-http",
"aws-smithy-json",
"aws-smithy-query",
"aws-smithy-runtime",
"aws-smithy-runtime-api",
"aws-smithy-types",
"aws-smithy-xml",
"aws-types",
"http",
"regex",
"tokio-stream",
"tracing",
]
[[package]]
name = "aws-sdk-sts"
version = "0.30.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a47ad6bf01afc00423d781d464220bf69fb6a674ad6629cbbcb06d88cdc2be82"
dependencies = [
"aws-credential-types",
"aws-http",
"aws-runtime",
"aws-smithy-async",
"aws-smithy-client",
"aws-smithy-http",
"aws-smithy-json",
"aws-smithy-query",
"aws-smithy-runtime",
"aws-smithy-runtime-api",
"aws-smithy-types",
"aws-smithy-xml",
"aws-types",
"http",
"regex",
"tracing",
]
[[package]]
name = "aws-sigv4"
version = "0.56.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b7b28f4910bb956b7ab320b62e98096402354eca976c587d1eeccd523d9bac03"
dependencies = [
"aws-smithy-http",
"form_urlencoded",
"chrono",
"hex",
"hmac",
"http",
"once_cell",
"percent-encoding",
"regex",
"sha2",
"time",
"tracing",
]
[[package]]
name = "aws-smithy-async"
version = "0.56.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2cdb73f85528b9d19c23a496034ac53703955a59323d581c06aa27b4e4e247af"
dependencies = [
"futures-util",
"pin-project-lite",
"tokio",
"tokio-stream",
]
[[package]]
name = "aws-smithy-client"
version = "0.56.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c27b2756264c82f830a91cb4d2d485b2d19ad5bea476d9a966e03d27f27ba59a"
dependencies = [
"aws-smithy-async",
"aws-smithy-http",
"aws-smithy-http-tower",
"aws-smithy-types",
"bytes",
"fastrand 2.0.0",
"http",
"http-body",
"hyper",
"hyper-rustls",
"lazy_static",
"pin-project-lite",
"rustls 0.21.7",
"tokio",
"tower",
"tracing",
]
[[package]]
name = "aws-smithy-http"
version = "0.56.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "54cdcf365d8eee60686885f750a34c190e513677db58bbc466c44c588abf4199"
dependencies = [
"aws-smithy-types",
"bytes",
"bytes-utils",
"futures-core",
"http",
"http-body",
"hyper",
"once_cell",
"percent-encoding",
"pin-project-lite",
"pin-utils",
"tokio",
"tokio-util",
"tracing",
]
[[package]]
name = "aws-smithy-http-tower"
version = "0.56.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "822de399d0ce62829a69dfa8c5cd08efdbe61a7426b953e2268f8b8b52a607bd"
dependencies = [
"aws-smithy-http",
"aws-smithy-types",
"bytes",
"http",
"http-body",
"pin-project-lite",
"tower",
"tracing",
]
[[package]]
name = "aws-smithy-json"
version = "0.56.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fb1e7ab8fa7ad10c193af7ae56d2420989e9f4758bf03601a342573333ea34f"
dependencies = [
"aws-smithy-types",
]
[[package]]
name = "aws-smithy-query"
version = "0.56.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28556a3902091c1f768a34f6c998028921bdab8d47d92586f363f14a4a32d047"
dependencies = [
"aws-smithy-types",
"urlencoding",
]
[[package]]
name = "aws-smithy-runtime"
version = "0.56.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "745e096b3553e7e0f40622aa04971ce52765af82bebdeeac53aa6fc82fe801e6"
dependencies = [
"aws-smithy-async",
"aws-smithy-client",
"aws-smithy-http",
"aws-smithy-runtime-api",
"aws-smithy-types",
"bytes",
"fastrand 2.0.0",
"http",
"http-body",
"once_cell",
"pin-project-lite",
"pin-utils",
"tokio",
"tracing",
]
[[package]]
name = "aws-smithy-runtime-api"
version = "0.56.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "93d0ae0c9cfd57944e9711ea610b48a963fb174a53aabacc08c5794a594b1d02"
dependencies = [
"aws-smithy-async",
"aws-smithy-http",
"aws-smithy-types",
"bytes",
"http",
"tokio",
"tracing",
]
[[package]]
name = "aws-smithy-types"
version = "0.56.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d90dbc8da2f6be461fa3c1906b20af8f79d14968fe47f2b7d29d086f62a51728"
dependencies = [
"base64-simd",
"itoa",
"num-integer",
"ryu",
"serde",
"time",
]
[[package]]
name = "aws-smithy-xml"
version = "0.56.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e01d2dedcdd8023043716cfeeb3c6c59f2d447fce365d8e194838891794b23b6"
dependencies = [
"xmlparser",
]
[[package]]
name = "aws-types"
version = "0.56.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85aa0451bf8af1bf22a4f028d5d28054507a14be43cb8ac0597a8471fba9edfe"
dependencies = [
"aws-credential-types",
"aws-smithy-async",
"aws-smithy-client",
"aws-smithy-http",
"aws-smithy-types",
"http",
"rustc_version",
"tracing",
"ring",
"sha256",
"url",
]
[[package]]
@ -763,10 +460,11 @@ dependencies = [
[[package]]
name = "backend"
version = "4.6.0-test.1"
version = "4.6.0-test.3"
dependencies = [
"aes-kw",
"anyhow",
"chirpstack_api",
"chrono",
"hex",
"httpmock",
@ -812,16 +510,6 @@ version = "0.21.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2"
[[package]]
name = "base64-simd"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195"
dependencies = [
"outref",
"vsimd",
]
[[package]]
name = "base64ct"
version = "1.6.0"
@ -953,16 +641,6 @@ version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
[[package]]
name = "bytes-utils"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e47d3a8076e283f3acd27400535992edb3ba4b5bb72f8891ad8fbe7932a7d4b9"
dependencies = [
"bytes",
"either",
]
[[package]]
name = "castaway"
version = "0.1.2"
@ -1004,16 +682,13 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "chirpstack"
version = "4.6.0-test.1"
version = "4.6.0-test.3"
dependencies = [
"aes",
"anyhow",
"async-recursion",
"async-trait",
"aws-config",
"aws-credential-types",
"aws-sdk-sns",
"aws-types",
"aws-sign-v4",
"backend",
"base64 0.21.4",
"bigdecimal",
@ -1061,6 +736,7 @@ dependencies = [
"rust-embed",
"serde",
"serde_json",
"serde_urlencoded",
"serde_yaml",
"sha2",
"thiserror",
@ -1084,7 +760,7 @@ dependencies = [
[[package]]
name = "chirpstack_api"
version = "4.6.0-test.1"
version = "4.6.0-test.3"
dependencies = [
"hex",
"pbjson",
@ -2171,7 +1847,6 @@ dependencies = [
"futures-util",
"http",
"hyper",
"log",
"rustls 0.21.7",
"rustls-native-certs",
"tokio",
@ -2532,7 +2207,7 @@ dependencies = [
[[package]]
name = "lrwn"
version = "4.6.0-test.1"
version = "4.6.0-test.3"
dependencies = [
"aes",
"anyhow",
@ -2546,7 +2221,7 @@ dependencies = [
[[package]]
name = "lrwn_filters"
version = "4.6.0-test.1"
version = "4.6.0-test.3"
dependencies = [
"hex",
"lrwn",
@ -2870,12 +2545,6 @@ dependencies = [
"num-traits",
]
[[package]]
name = "outref"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4030760ffd992bef45b0ae3f10ce1aba99e33464c90d14dd7c039884963ddc7a"
[[package]]
name = "overload"
version = "0.1.1"
@ -3717,15 +3386,6 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
[[package]]
name = "rustc_version"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
dependencies = [
"semver",
]
[[package]]
name = "rustix"
version = "0.37.23"
@ -3918,12 +3578,6 @@ dependencies = [
"libc",
]
[[package]]
name = "semver"
version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
[[package]]
name = "serde"
version = "1.0.188"
@ -4085,6 +3739,19 @@ dependencies = [
"digest",
]
[[package]]
name = "sha256"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7895c8ae88588ccead14ff438b939b0c569cd619116f14b4d13fdff7b8333386"
dependencies = [
"async-trait",
"bytes",
"hex",
"sha2",
"tokio",
]
[[package]]
name = "sharded-slab"
version = "0.1.4"
@ -4886,12 +4553,6 @@ version = "0.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
[[package]]
name = "vsimd"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64"
[[package]]
name = "waker-fn"
version = "1.1.0"
@ -5182,12 +4843,6 @@ dependencies = [
"windows-sys",
]
[[package]]
name = "xmlparser"
version = "0.13.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4d25c75bf9ea12c4040a97f829154768bbbce366287e2dc044af160cd79a13fd"
[[package]]
name = "yasna"
version = "0.5.2"

2
api/Makefile vendored
View File

@ -28,4 +28,4 @@ kotlin:
docker-compose run --rm chirpstack-api-kotlin
csharp:
docker-compose run --rm chirpstack-csharp
docker-compose run --rm chirpstack-csharp

View File

@ -17,12 +17,13 @@
<Protobuf Include="../proto/api/device_profile_template.proto" ProtoRoot="../proto/" OutputDir="Chirpstack/" CompileOutputs="false" AdditionalImportDirs="/googleproto" />
<Protobuf Include="../proto/api/device.proto" ProtoRoot="../proto/" OutputDir="Chirpstack/" CompileOutputs="false" AdditionalImportDirs="/googleproto" />
<Protobuf Include="../proto/api/gateway.proto" ProtoRoot="../proto/" OutputDir="Chirpstack/" CompileOutputs="false" AdditionalImportDirs="/googleproto" />
<Protobuf Include="../proto/api/frame_log.proto" ProtoRoot="../proto/" OutputDir="Chirpstack/" CompileOutputs="false" AdditionalImportDirs="/googleproto" />
<Protobuf Include="../proto/api/multicast_group.proto" ProtoRoot="../proto/" OutputDir="Chirpstack/" CompileOutputs="false" AdditionalImportDirs="/googleproto" />
<Protobuf Include="../proto/api/request_log.proto" ProtoRoot="../proto/" OutputDir="Chirpstack/" CompileOutputs="false" AdditionalImportDirs="/googleproto" />
<Protobuf Include="../proto/api/relay.proto" ProtoRoot="../proto/" OutputDir="Chirpstack/" CompileOutputs="false" AdditionalImportDirs="/googleproto" />
<Protobuf Include="../proto/integration/integration.proto" ProtoRoot="../proto/" OutputDir="Chirpstack/" CompileOutputs="false" AdditionalImportDirs="/googleproto" />
<Protobuf Include="../proto/meta/meta.proto" ProtoRoot="../proto/" OutputDir="Chirpstack/" CompileOutputs="false" AdditionalImportDirs="/googleproto" />
<Protobuf Include="../proto/stream/meta.proto" ProtoRoot="../proto/" OutputDir="Chirpstack/" CompileOutputs="false" AdditionalImportDirs="/googleproto" />
<Protobuf Include="../proto/stream/frame.proto" ProtoRoot="../proto/" OutputDir="Chirpstack/" CompileOutputs="false" AdditionalImportDirs="/googleproto" />
<Protobuf Include="../proto/stream/api_request.proto" ProtoRoot="../proto/" OutputDir="Chirpstack/" CompileOutputs="false" AdditionalImportDirs="/googleproto" />
<Protobuf Include="../proto/stream/backend_interfaces.proto" ProtoRoot="../proto/" OutputDir="Chirpstack/" CompileOutputs="false" AdditionalImportDirs="/googleproto" />
<Protobuf Include="/googleproto/google/api/*.proto" ProtoRoot="/googleproto" OutputDir="Chirpstack/" CompileOutputs="false" />
</ItemGroup>

View File

@ -1,6 +1,6 @@
// <auto-generated>
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: api/request_log.proto
// source: stream/api_request.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021, 8981
#region Designer generated code
@ -9,54 +9,55 @@ using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace Chirpstack.Api {
namespace Chirpstack.Stream {
/// <summary>Holder for reflection information generated from api/request_log.proto</summary>
public static partial class RequestLogReflection {
/// <summary>Holder for reflection information generated from stream/api_request.proto</summary>
public static partial class ApiRequestReflection {
#region Descriptor
/// <summary>File descriptor for api/request_log.proto</summary>
/// <summary>File descriptor for stream/api_request.proto</summary>
public static pbr::FileDescriptor Descriptor {
get { return descriptor; }
}
private static pbr::FileDescriptor descriptor;
static RequestLogReflection() {
static ApiRequestReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"ChVhcGkvcmVxdWVzdF9sb2cucHJvdG8SA2FwaRofZ29vZ2xlL3Byb3RvYnVm",
"L3RpbWVzdGFtcC5wcm90bxoTY29tbW9uL2NvbW1vbi5wcm90bxoLZ3cvZ3cu",
"cHJvdG8ijwEKClJlcXVlc3RMb2cSDwoHc2VydmljZRgBIAEoCRIOCgZtZXRo",
"b2QYAiABKAkSLwoIbWV0YWRhdGEYAyADKAsyHS5hcGkuUmVxdWVzdExvZy5N",
"ZXRhZGF0YUVudHJ5Gi8KDU1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0K",
"BXZhbHVlGAIgASgJOgI4AUJnChFpby5jaGlycHN0YWNrLmFwaUIPUmVxdWVz",
"dExvZ1Byb3RvUAFaLmdpdGh1Yi5jb20vY2hpcnBzdGFjay9jaGlycHN0YWNr",
"L2FwaS9nby92NC9hcGmqAg5DaGlycHN0YWNrLkFwaWIGcHJvdG8z"));
"ChhzdHJlYW0vYXBpX3JlcXVlc3QucHJvdG8SBnN0cmVhbRofZ29vZ2xlL3By",
"b3RvYnVmL3RpbWVzdGFtcC5wcm90bxoTY29tbW9uL2NvbW1vbi5wcm90bxoL",
"Z3cvZ3cucHJvdG8imAEKDUFwaVJlcXVlc3RMb2cSDwoHc2VydmljZRgBIAEo",
"CRIOCgZtZXRob2QYAiABKAkSNQoIbWV0YWRhdGEYAyADKAsyIy5zdHJlYW0u",
"QXBpUmVxdWVzdExvZy5NZXRhZGF0YUVudHJ5Gi8KDU1ldGFkYXRhRW50cnkS",
"CwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUJ0Chhpby5jaGlycHN0",
"YWNrLmFwaS5zdHJlYW1CD0FwaVJlcXVlc3RQcm90b1ABWjFnaXRodWIuY29t",
"L2NoaXJwc3RhY2svY2hpcnBzdGFjay9hcGkvZ28vdjQvc3RyZWFtqgIRQ2hp",
"cnBzdGFjay5TdHJlYW1iBnByb3RvMw=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, global::Chirpstack.Common.CommonReflection.Descriptor, global::Chirpstack.Gateway.GwReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::Chirpstack.Api.RequestLog), global::Chirpstack.Api.RequestLog.Parser, new[]{ "Service", "Method", "Metadata" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, })
new pbr::GeneratedClrTypeInfo(typeof(global::Chirpstack.Stream.ApiRequestLog), global::Chirpstack.Stream.ApiRequestLog.Parser, new[]{ "Service", "Method", "Metadata" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, })
}));
}
#endregion
}
#region Messages
public sealed partial class RequestLog : pb::IMessage<RequestLog>
public sealed partial class ApiRequestLog : pb::IMessage<ApiRequestLog>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage
#endif
{
private static readonly pb::MessageParser<RequestLog> _parser = new pb::MessageParser<RequestLog>(() => new RequestLog());
private static readonly pb::MessageParser<ApiRequestLog> _parser = new pb::MessageParser<ApiRequestLog>(() => new ApiRequestLog());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pb::MessageParser<RequestLog> Parser { get { return _parser; } }
public static pb::MessageParser<ApiRequestLog> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Chirpstack.Api.RequestLogReflection.Descriptor.MessageTypes[0]; }
get { return global::Chirpstack.Stream.ApiRequestReflection.Descriptor.MessageTypes[0]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@ -67,7 +68,7 @@ namespace Chirpstack.Api {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public RequestLog() {
public ApiRequestLog() {
OnConstruction();
}
@ -75,7 +76,7 @@ namespace Chirpstack.Api {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public RequestLog(RequestLog other) : this() {
public ApiRequestLog(ApiRequestLog other) : this() {
service_ = other.service_;
method_ = other.method_;
metadata_ = other.metadata_.Clone();
@ -84,8 +85,8 @@ namespace Chirpstack.Api {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public RequestLog Clone() {
return new RequestLog(this);
public ApiRequestLog Clone() {
return new ApiRequestLog(this);
}
/// <summary>Field number for the "service" field.</summary>
@ -135,12 +136,12 @@ namespace Chirpstack.Api {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override bool Equals(object other) {
return Equals(other as RequestLog);
return Equals(other as ApiRequestLog);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public bool Equals(RequestLog other) {
public bool Equals(ApiRequestLog other) {
if (ReferenceEquals(other, null)) {
return false;
}
@ -231,7 +232,7 @@ namespace Chirpstack.Api {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void MergeFrom(RequestLog other) {
public void MergeFrom(ApiRequestLog other) {
if (other == null) {
return;
}

View File

@ -0,0 +1,573 @@
// <auto-generated>
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: stream/backend_interfaces.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021, 8981
#region Designer generated code
using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace Chirpstack.Stream {
/// <summary>Holder for reflection information generated from stream/backend_interfaces.proto</summary>
public static partial class BackendInterfacesReflection {
#region Descriptor
/// <summary>File descriptor for stream/backend_interfaces.proto</summary>
public static pbr::FileDescriptor Descriptor {
get { return descriptor; }
}
private static pbr::FileDescriptor descriptor;
static BackendInterfacesReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"Ch9zdHJlYW0vYmFja2VuZF9pbnRlcmZhY2VzLnByb3RvEgZzdHJlYW0aH2dv",
"b2dsZS9wcm90b2J1Zi90aW1lc3RhbXAucHJvdG8i8wEKGEJhY2tlbmRJbnRl",
"cmZhY2VzUmVxdWVzdBIRCglzZW5kZXJfaWQYASABKAkSEwoLcmVjZWl2ZXJf",
"aWQYAiABKAkSKAoEdGltZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1l",
"c3RhbXASFgoOdHJhbnNhY3Rpb25faWQYBCABKA0SFAoMbWVzc2FnZV90eXBl",
"GAUgASgJEhMKC3Jlc3VsdF9jb2RlGAYgASgJEhQKDHJlcXVlc3RfYm9keRgH",
"IAEoCRIVCg1yZXF1ZXN0X2Vycm9yGAggASgJEhUKDXJlc3BvbnNlX2JvZHkY",
"CSABKAlCewoYaW8uY2hpcnBzdGFjay5hcGkuc3RyZWFtQhZCYWNrZW5kSW50",
"ZXJmYWNlc1Byb3RvUAFaMWdpdGh1Yi5jb20vY2hpcnBzdGFjay9jaGlycHN0",
"YWNrL2FwaS9nby92NC9zdHJlYW2qAhFDaGlycHN0YWNrLlN0cmVhbWIGcHJv",
"dG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::Chirpstack.Stream.BackendInterfacesRequest), global::Chirpstack.Stream.BackendInterfacesRequest.Parser, new[]{ "SenderId", "ReceiverId", "Time", "TransactionId", "MessageType", "ResultCode", "RequestBody", "RequestError", "ResponseBody" }, null, null, null, null)
}));
}
#endregion
}
#region Messages
public sealed partial class BackendInterfacesRequest : pb::IMessage<BackendInterfacesRequest>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage
#endif
{
private static readonly pb::MessageParser<BackendInterfacesRequest> _parser = new pb::MessageParser<BackendInterfacesRequest>(() => new BackendInterfacesRequest());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pb::MessageParser<BackendInterfacesRequest> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Chirpstack.Stream.BackendInterfacesReflection.Descriptor.MessageTypes[0]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
pbr::MessageDescriptor pb::IMessage.Descriptor {
get { return Descriptor; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public BackendInterfacesRequest() {
OnConstruction();
}
partial void OnConstruction();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public BackendInterfacesRequest(BackendInterfacesRequest other) : this() {
senderId_ = other.senderId_;
receiverId_ = other.receiverId_;
time_ = other.time_ != null ? other.time_.Clone() : null;
transactionId_ = other.transactionId_;
messageType_ = other.messageType_;
resultCode_ = other.resultCode_;
requestBody_ = other.requestBody_;
requestError_ = other.requestError_;
responseBody_ = other.responseBody_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public BackendInterfacesRequest Clone() {
return new BackendInterfacesRequest(this);
}
/// <summary>Field number for the "sender_id" field.</summary>
public const int SenderIdFieldNumber = 1;
private string senderId_ = "";
/// <summary>
/// Sender ID.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public string SenderId {
get { return senderId_; }
set {
senderId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}
/// <summary>Field number for the "receiver_id" field.</summary>
public const int ReceiverIdFieldNumber = 2;
private string receiverId_ = "";
/// <summary>
/// Receiver ID.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public string ReceiverId {
get { return receiverId_; }
set {
receiverId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}
/// <summary>Field number for the "time" field.</summary>
public const int TimeFieldNumber = 3;
private global::Google.Protobuf.WellKnownTypes.Timestamp time_;
/// <summary>
/// Timestamp.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public global::Google.Protobuf.WellKnownTypes.Timestamp Time {
get { return time_; }
set {
time_ = value;
}
}
/// <summary>Field number for the "transaction_id" field.</summary>
public const int TransactionIdFieldNumber = 4;
private uint transactionId_;
/// <summary>
/// Transaction ID.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public uint TransactionId {
get { return transactionId_; }
set {
transactionId_ = value;
}
}
/// <summary>Field number for the "message_type" field.</summary>
public const int MessageTypeFieldNumber = 5;
private string messageType_ = "";
/// <summary>
/// Message-type.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public string MessageType {
get { return messageType_; }
set {
messageType_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}
/// <summary>Field number for the "result_code" field.</summary>
public const int ResultCodeFieldNumber = 6;
private string resultCode_ = "";
/// <summary>
/// Result code.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public string ResultCode {
get { return resultCode_; }
set {
resultCode_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}
/// <summary>Field number for the "request_body" field.</summary>
public const int RequestBodyFieldNumber = 7;
private string requestBody_ = "";
/// <summary>
/// Request body.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public string RequestBody {
get { return requestBody_; }
set {
requestBody_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}
/// <summary>Field number for the "request_error" field.</summary>
public const int RequestErrorFieldNumber = 8;
private string requestError_ = "";
/// <summary>
/// Request error.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public string RequestError {
get { return requestError_; }
set {
requestError_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}
/// <summary>Field number for the "response_body" field.</summary>
public const int ResponseBodyFieldNumber = 9;
private string responseBody_ = "";
/// <summary>
/// Response body.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public string ResponseBody {
get { return responseBody_; }
set {
responseBody_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override bool Equals(object other) {
return Equals(other as BackendInterfacesRequest);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public bool Equals(BackendInterfacesRequest other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
if (SenderId != other.SenderId) return false;
if (ReceiverId != other.ReceiverId) return false;
if (!object.Equals(Time, other.Time)) return false;
if (TransactionId != other.TransactionId) return false;
if (MessageType != other.MessageType) return false;
if (ResultCode != other.ResultCode) return false;
if (RequestBody != other.RequestBody) return false;
if (RequestError != other.RequestError) return false;
if (ResponseBody != other.ResponseBody) return false;
return Equals(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override int GetHashCode() {
int hash = 1;
if (SenderId.Length != 0) hash ^= SenderId.GetHashCode();
if (ReceiverId.Length != 0) hash ^= ReceiverId.GetHashCode();
if (time_ != null) hash ^= Time.GetHashCode();
if (TransactionId != 0) hash ^= TransactionId.GetHashCode();
if (MessageType.Length != 0) hash ^= MessageType.GetHashCode();
if (ResultCode.Length != 0) hash ^= ResultCode.GetHashCode();
if (RequestBody.Length != 0) hash ^= RequestBody.GetHashCode();
if (RequestError.Length != 0) hash ^= RequestError.GetHashCode();
if (ResponseBody.Length != 0) hash ^= ResponseBody.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
return hash;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override string ToString() {
return pb::JsonFormatter.ToDiagnosticString(this);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void WriteTo(pb::CodedOutputStream output) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
output.WriteRawMessage(this);
#else
if (SenderId.Length != 0) {
output.WriteRawTag(10);
output.WriteString(SenderId);
}
if (ReceiverId.Length != 0) {
output.WriteRawTag(18);
output.WriteString(ReceiverId);
}
if (time_ != null) {
output.WriteRawTag(26);
output.WriteMessage(Time);
}
if (TransactionId != 0) {
output.WriteRawTag(32);
output.WriteUInt32(TransactionId);
}
if (MessageType.Length != 0) {
output.WriteRawTag(42);
output.WriteString(MessageType);
}
if (ResultCode.Length != 0) {
output.WriteRawTag(50);
output.WriteString(ResultCode);
}
if (RequestBody.Length != 0) {
output.WriteRawTag(58);
output.WriteString(RequestBody);
}
if (RequestError.Length != 0) {
output.WriteRawTag(66);
output.WriteString(RequestError);
}
if (ResponseBody.Length != 0) {
output.WriteRawTag(74);
output.WriteString(ResponseBody);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
if (SenderId.Length != 0) {
output.WriteRawTag(10);
output.WriteString(SenderId);
}
if (ReceiverId.Length != 0) {
output.WriteRawTag(18);
output.WriteString(ReceiverId);
}
if (time_ != null) {
output.WriteRawTag(26);
output.WriteMessage(Time);
}
if (TransactionId != 0) {
output.WriteRawTag(32);
output.WriteUInt32(TransactionId);
}
if (MessageType.Length != 0) {
output.WriteRawTag(42);
output.WriteString(MessageType);
}
if (ResultCode.Length != 0) {
output.WriteRawTag(50);
output.WriteString(ResultCode);
}
if (RequestBody.Length != 0) {
output.WriteRawTag(58);
output.WriteString(RequestBody);
}
if (RequestError.Length != 0) {
output.WriteRawTag(66);
output.WriteString(RequestError);
}
if (ResponseBody.Length != 0) {
output.WriteRawTag(74);
output.WriteString(ResponseBody);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
}
#endif
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int CalculateSize() {
int size = 0;
if (SenderId.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(SenderId);
}
if (ReceiverId.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(ReceiverId);
}
if (time_ != null) {
size += 1 + pb::CodedOutputStream.ComputeMessageSize(Time);
}
if (TransactionId != 0) {
size += 1 + pb::CodedOutputStream.ComputeUInt32Size(TransactionId);
}
if (MessageType.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(MessageType);
}
if (ResultCode.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(ResultCode);
}
if (RequestBody.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(RequestBody);
}
if (RequestError.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(RequestError);
}
if (ResponseBody.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(ResponseBody);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void MergeFrom(BackendInterfacesRequest other) {
if (other == null) {
return;
}
if (other.SenderId.Length != 0) {
SenderId = other.SenderId;
}
if (other.ReceiverId.Length != 0) {
ReceiverId = other.ReceiverId;
}
if (other.time_ != null) {
if (time_ == null) {
Time = new global::Google.Protobuf.WellKnownTypes.Timestamp();
}
Time.MergeFrom(other.Time);
}
if (other.TransactionId != 0) {
TransactionId = other.TransactionId;
}
if (other.MessageType.Length != 0) {
MessageType = other.MessageType;
}
if (other.ResultCode.Length != 0) {
ResultCode = other.ResultCode;
}
if (other.RequestBody.Length != 0) {
RequestBody = other.RequestBody;
}
if (other.RequestError.Length != 0) {
RequestError = other.RequestError;
}
if (other.ResponseBody.Length != 0) {
ResponseBody = other.ResponseBody;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void MergeFrom(pb::CodedInputStream input) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
input.ReadRawMessage(this);
#else
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
break;
case 10: {
SenderId = input.ReadString();
break;
}
case 18: {
ReceiverId = input.ReadString();
break;
}
case 26: {
if (time_ == null) {
Time = new global::Google.Protobuf.WellKnownTypes.Timestamp();
}
input.ReadMessage(Time);
break;
}
case 32: {
TransactionId = input.ReadUInt32();
break;
}
case 42: {
MessageType = input.ReadString();
break;
}
case 50: {
ResultCode = input.ReadString();
break;
}
case 58: {
RequestBody = input.ReadString();
break;
}
case 66: {
RequestError = input.ReadString();
break;
}
case 74: {
ResponseBody = input.ReadString();
break;
}
}
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
break;
case 10: {
SenderId = input.ReadString();
break;
}
case 18: {
ReceiverId = input.ReadString();
break;
}
case 26: {
if (time_ == null) {
Time = new global::Google.Protobuf.WellKnownTypes.Timestamp();
}
input.ReadMessage(Time);
break;
}
case 32: {
TransactionId = input.ReadUInt32();
break;
}
case 42: {
MessageType = input.ReadString();
break;
}
case 50: {
ResultCode = input.ReadString();
break;
}
case 58: {
RequestBody = input.ReadString();
break;
}
case 66: {
RequestError = input.ReadString();
break;
}
case 74: {
ResponseBody = input.ReadString();
break;
}
}
}
}
#endif
}
#endregion
}
#endregion Designer generated code

View File

@ -1,6 +1,6 @@
// <auto-generated>
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: api/frame_log.proto
// source: stream/frame.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021, 8981
#region Designer generated code
@ -9,43 +9,44 @@ using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace Chirpstack.Api {
namespace Chirpstack.Stream {
/// <summary>Holder for reflection information generated from api/frame_log.proto</summary>
public static partial class FrameLogReflection {
/// <summary>Holder for reflection information generated from stream/frame.proto</summary>
public static partial class FrameReflection {
#region Descriptor
/// <summary>File descriptor for api/frame_log.proto</summary>
/// <summary>File descriptor for stream/frame.proto</summary>
public static pbr::FileDescriptor Descriptor {
get { return descriptor; }
}
private static pbr::FileDescriptor descriptor;
static FrameLogReflection() {
static FrameReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"ChNhcGkvZnJhbWVfbG9nLnByb3RvEgNhcGkaH2dvb2dsZS9wcm90b2J1Zi90",
"aW1lc3RhbXAucHJvdG8aE2NvbW1vbi9jb21tb24ucHJvdG8aC2d3L2d3LnBy",
"b3RvIpACCg5VcGxpbmtGcmFtZUxvZxITCgtwaHlfcGF5bG9hZBgBIAEoDBIh",
"Cgd0eF9pbmZvGAIgASgLMhAuZ3cuVXBsaW5rVHhJbmZvEiEKB3J4X2luZm8Y",
"AyADKAsyEC5ndy5VcGxpbmtSeEluZm8SHQoGbV90eXBlGAQgASgOMg0uY29t",
"bW9uLk1UeXBlEhAKCGRldl9hZGRyGAUgASgJEg8KB2Rldl9ldWkYBiABKAkS",
"KAoEdGltZRgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGAoQ",
"cGxhaW50ZXh0X2Zfb3B0cxgIIAEoCBIdChVwbGFpbnRleHRfZnJtX3BheWxv",
"YWQYCSABKAgimgIKEERvd25saW5rRnJhbWVMb2cSKAoEdGltZRgBIAEoCzIa",
"Lmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEwoLcGh5X3BheWxvYWQYAiAB",
"KAwSIwoHdHhfaW5mbxgDIAEoCzISLmd3LkRvd25saW5rVHhJbmZvEhMKC2Rv",
"d25saW5rX2lkGAQgASgNEhIKCmdhdGV3YXlfaWQYBSABKAkSHQoGbV90eXBl",
"GAYgASgOMg0uY29tbW9uLk1UeXBlEhAKCGRldl9hZGRyGAcgASgJEg8KB2Rl",
"dl9ldWkYCCABKAkSGAoQcGxhaW50ZXh0X2Zfb3B0cxgJIAEoCBIdChVwbGFp",
"bnRleHRfZnJtX3BheWxvYWQYCiABKAhCZQoRaW8uY2hpcnBzdGFjay5hcGlC",
"DUZyYW1lTG9nUHJvdG9QAVouZ2l0aHViLmNvbS9jaGlycHN0YWNrL2NoaXJw",
"c3RhY2svYXBpL2dvL3Y0L2FwaaoCDkNoaXJwc3RhY2suQXBpYgZwcm90bzM="));
"ChJzdHJlYW0vZnJhbWUucHJvdG8SBnN0cmVhbRofZ29vZ2xlL3Byb3RvYnVm",
"L3RpbWVzdGFtcC5wcm90bxoTY29tbW9uL2NvbW1vbi5wcm90bxoLZ3cvZ3cu",
"cHJvdG8ikAIKDlVwbGlua0ZyYW1lTG9nEhMKC3BoeV9wYXlsb2FkGAEgASgM",
"EiEKB3R4X2luZm8YAiABKAsyEC5ndy5VcGxpbmtUeEluZm8SIQoHcnhfaW5m",
"bxgDIAMoCzIQLmd3LlVwbGlua1J4SW5mbxIdCgZtX3R5cGUYBCABKA4yDS5j",
"b21tb24uTVR5cGUSEAoIZGV2X2FkZHIYBSABKAkSDwoHZGV2X2V1aRgGIAEo",
"CRIoCgR0aW1lGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIY",
"ChBwbGFpbnRleHRfZl9vcHRzGAggASgIEh0KFXBsYWludGV4dF9mcm1fcGF5",
"bG9hZBgJIAEoCCKaAgoQRG93bmxpbmtGcmFtZUxvZxIoCgR0aW1lGAEgASgL",
"MhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBITCgtwaHlfcGF5bG9hZBgC",
"IAEoDBIjCgd0eF9pbmZvGAMgASgLMhIuZ3cuRG93bmxpbmtUeEluZm8SEwoL",
"ZG93bmxpbmtfaWQYBCABKA0SEgoKZ2F0ZXdheV9pZBgFIAEoCRIdCgZtX3R5",
"cGUYBiABKA4yDS5jb21tb24uTVR5cGUSEAoIZGV2X2FkZHIYByABKAkSDwoH",
"ZGV2X2V1aRgIIAEoCRIYChBwbGFpbnRleHRfZl9vcHRzGAkgASgIEh0KFXBs",
"YWludGV4dF9mcm1fcGF5bG9hZBgKIAEoCEJvChhpby5jaGlycHN0YWNrLmFw",
"aS5zdHJlYW1CCkZyYW1lUHJvdG9QAVoxZ2l0aHViLmNvbS9jaGlycHN0YWNr",
"L2NoaXJwc3RhY2svYXBpL2dvL3Y0L3N0cmVhbaoCEUNoaXJwc3RhY2suU3Ry",
"ZWFtYgZwcm90bzM="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, global::Chirpstack.Common.CommonReflection.Descriptor, global::Chirpstack.Gateway.GwReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::Chirpstack.Api.UplinkFrameLog), global::Chirpstack.Api.UplinkFrameLog.Parser, new[]{ "PhyPayload", "TxInfo", "RxInfo", "MType", "DevAddr", "DevEui", "Time", "PlaintextFOpts", "PlaintextFrmPayload" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Chirpstack.Api.DownlinkFrameLog), global::Chirpstack.Api.DownlinkFrameLog.Parser, new[]{ "Time", "PhyPayload", "TxInfo", "DownlinkId", "GatewayId", "MType", "DevAddr", "DevEui", "PlaintextFOpts", "PlaintextFrmPayload" }, null, null, null, null)
new pbr::GeneratedClrTypeInfo(typeof(global::Chirpstack.Stream.UplinkFrameLog), global::Chirpstack.Stream.UplinkFrameLog.Parser, new[]{ "PhyPayload", "TxInfo", "RxInfo", "MType", "DevAddr", "DevEui", "Time", "PlaintextFOpts", "PlaintextFrmPayload" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Chirpstack.Stream.DownlinkFrameLog), global::Chirpstack.Stream.DownlinkFrameLog.Parser, new[]{ "Time", "PhyPayload", "TxInfo", "DownlinkId", "GatewayId", "MType", "DevAddr", "DevEui", "PlaintextFOpts", "PlaintextFrmPayload" }, null, null, null, null)
}));
}
#endregion
@ -66,7 +67,7 @@ namespace Chirpstack.Api {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Chirpstack.Api.FrameLogReflection.Descriptor.MessageTypes[0]; }
get { return global::Chirpstack.Stream.FrameReflection.Descriptor.MessageTypes[0]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@ -585,7 +586,7 @@ namespace Chirpstack.Api {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Chirpstack.Api.FrameLogReflection.Descriptor.MessageTypes[1]; }
get { return global::Chirpstack.Stream.FrameReflection.Descriptor.MessageTypes[1]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]

View File

@ -1,6 +1,6 @@
// <auto-generated>
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: meta/meta.proto
// source: stream/meta.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021, 8981
#region Designer generated code
@ -9,13 +9,13 @@ using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace Chirpstack.Meta {
namespace Chirpstack.Stream {
/// <summary>Holder for reflection information generated from meta/meta.proto</summary>
/// <summary>Holder for reflection information generated from stream/meta.proto</summary>
public static partial class MetaReflection {
#region Descriptor
/// <summary>File descriptor for meta/meta.proto</summary>
/// <summary>File descriptor for stream/meta.proto</summary>
public static pbr::FileDescriptor Descriptor {
get { return descriptor; }
}
@ -24,26 +24,27 @@ namespace Chirpstack.Meta {
static MetaReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"Cg9tZXRhL21ldGEucHJvdG8SBG1ldGEaE2NvbW1vbi9jb21tb24ucHJvdG8a",
"C2d3L2d3LnByb3RvIvABCgpVcGxpbmtNZXRhEg8KB2Rldl9ldWkYASABKAkS",
"IQoHdHhfaW5mbxgCIAEoCzIQLmd3LlVwbGlua1R4SW5mbxIhCgdyeF9pbmZv",
"GAMgAygLMhAuZ3cuVXBsaW5rUnhJbmZvEh4KFnBoeV9wYXlsb2FkX2J5dGVf",
"Y291bnQYBCABKA0SHgoWbWFjX2NvbW1hbmRfYnl0ZV9jb3VudBgFIAEoDRIm",
"Ch5hcHBsaWNhdGlvbl9wYXlsb2FkX2J5dGVfY291bnQYBiABKA0SIwoMbWVz",
"c2FnZV90eXBlGAcgASgOMg0uY29tbW9uLk1UeXBlIoECCgxEb3dubGlua01l",
"dGESDwoHZGV2X2V1aRgBIAEoCRIaChJtdWx0aWNhc3RfZ3JvdXBfaWQYAiAB",
"KAkSIwoHdHhfaW5mbxgDIAEoCzISLmd3LkRvd25saW5rVHhJbmZvEh4KFnBo",
"eV9wYXlsb2FkX2J5dGVfY291bnQYBCABKA0SHgoWbWFjX2NvbW1hbmRfYnl0",
"ZV9jb3VudBgFIAEoDRImCh5hcHBsaWNhdGlvbl9wYXlsb2FkX2J5dGVfY291",
"bnQYBiABKA0SIwoMbWVzc2FnZV90eXBlGAcgASgOMg0uY29tbW9uLk1UeXBl",
"EhIKCmdhdGV3YXlfaWQYCCABKAlCaAoWaW8uY2hpcnBzdGFjay5hcGkubWV0",
"YUIJTWV0YVByb3RvUAFaL2dpdGh1Yi5jb20vY2hpcnBzdGFjay9jaGlycHN0",
"YWNrL2FwaS9nby92NC9tZXRhqgIPQ2hpcnBzdGFjay5NZXRhYgZwcm90bzM="));
"ChFzdHJlYW0vbWV0YS5wcm90bxIGc3RyZWFtGhNjb21tb24vY29tbW9uLnBy",
"b3RvGgtndy9ndy5wcm90byLwAQoKVXBsaW5rTWV0YRIPCgdkZXZfZXVpGAEg",
"ASgJEiEKB3R4X2luZm8YAiABKAsyEC5ndy5VcGxpbmtUeEluZm8SIQoHcnhf",
"aW5mbxgDIAMoCzIQLmd3LlVwbGlua1J4SW5mbxIeChZwaHlfcGF5bG9hZF9i",
"eXRlX2NvdW50GAQgASgNEh4KFm1hY19jb21tYW5kX2J5dGVfY291bnQYBSAB",
"KA0SJgoeYXBwbGljYXRpb25fcGF5bG9hZF9ieXRlX2NvdW50GAYgASgNEiMK",
"DG1lc3NhZ2VfdHlwZRgHIAEoDjINLmNvbW1vbi5NVHlwZSKBAgoMRG93bmxp",
"bmtNZXRhEg8KB2Rldl9ldWkYASABKAkSGgoSbXVsdGljYXN0X2dyb3VwX2lk",
"GAIgASgJEiMKB3R4X2luZm8YAyABKAsyEi5ndy5Eb3dubGlua1R4SW5mbxIe",
"ChZwaHlfcGF5bG9hZF9ieXRlX2NvdW50GAQgASgNEh4KFm1hY19jb21tYW5k",
"X2J5dGVfY291bnQYBSABKA0SJgoeYXBwbGljYXRpb25fcGF5bG9hZF9ieXRl",
"X2NvdW50GAYgASgNEiMKDG1lc3NhZ2VfdHlwZRgHIAEoDjINLmNvbW1vbi5N",
"VHlwZRISCgpnYXRld2F5X2lkGAggASgJQm4KGGlvLmNoaXJwc3RhY2suYXBp",
"LnN0cmVhbUIJTWV0YVByb3RvUAFaMWdpdGh1Yi5jb20vY2hpcnBzdGFjay9j",
"aGlycHN0YWNrL2FwaS9nby92NC9zdHJlYW2qAhFDaGlycHN0YWNrLlN0cmVh",
"bWIGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::Chirpstack.Common.CommonReflection.Descriptor, global::Chirpstack.Gateway.GwReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::Chirpstack.Meta.UplinkMeta), global::Chirpstack.Meta.UplinkMeta.Parser, new[]{ "DevEui", "TxInfo", "RxInfo", "PhyPayloadByteCount", "MacCommandByteCount", "ApplicationPayloadByteCount", "MessageType" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Chirpstack.Meta.DownlinkMeta), global::Chirpstack.Meta.DownlinkMeta.Parser, new[]{ "DevEui", "MulticastGroupId", "TxInfo", "PhyPayloadByteCount", "MacCommandByteCount", "ApplicationPayloadByteCount", "MessageType", "GatewayId" }, null, null, null, null)
new pbr::GeneratedClrTypeInfo(typeof(global::Chirpstack.Stream.UplinkMeta), global::Chirpstack.Stream.UplinkMeta.Parser, new[]{ "DevEui", "TxInfo", "RxInfo", "PhyPayloadByteCount", "MacCommandByteCount", "ApplicationPayloadByteCount", "MessageType" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Chirpstack.Stream.DownlinkMeta), global::Chirpstack.Stream.DownlinkMeta.Parser, new[]{ "DevEui", "MulticastGroupId", "TxInfo", "PhyPayloadByteCount", "MacCommandByteCount", "ApplicationPayloadByteCount", "MessageType", "GatewayId" }, null, null, null, null)
}));
}
#endregion
@ -64,7 +65,7 @@ namespace Chirpstack.Meta {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Chirpstack.Meta.MetaReflection.Descriptor.MessageTypes[0]; }
get { return global::Chirpstack.Stream.MetaReflection.Descriptor.MessageTypes[0]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@ -494,7 +495,7 @@ namespace Chirpstack.Meta {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Chirpstack.Meta.MetaReflection.Descriptor.MessageTypes[1]; }
get { return global::Chirpstack.Stream.MetaReflection.Descriptor.MessageTypes[1]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]

13
api/go/Makefile vendored
View File

@ -1,8 +1,8 @@
.PHONY: requirements common gw api integration meta
.PHONY: requirements common gw api integration stream
PROTOC_ARGS := -I=/googleapis -I=../proto --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative
all: requirements common gw api integration meta
all: requirements common gw api integration stream
requirements:
go mod download
@ -24,13 +24,14 @@ api:
protoc ${PROTOC_ARGS} api/device_profile_template.proto
protoc ${PROTOC_ARGS} api/device.proto
protoc ${PROTOC_ARGS} api/gateway.proto
protoc ${PROTOC_ARGS} api/frame_log.proto
protoc ${PROTOC_ARGS} api/multicast_group.proto
protoc ${PROTOC_ARGS} api/request_log.proto
protoc ${PROTOC_ARGS} api/relay.proto
integration:
protoc ${PROTOC_ARGS} integration/integration.proto
meta:
protoc ${PROTOC_ARGS} meta/meta.proto
stream:
protoc ${PROTOC_ARGS} stream/meta.proto
protoc ${PROTOC_ARGS} stream/frame.proto
protoc ${PROTOC_ARGS} stream/api_request.proto
protoc ${PROTOC_ARGS} stream/backend_interfaces.proto

View File

@ -1,185 +0,0 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.31.0
// protoc v3.21.9
// source: api/request_log.proto
package api
import (
_ "github.com/chirpstack/chirpstack/api/go/v4/common"
_ "github.com/chirpstack/chirpstack/api/go/v4/gw"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
_ "google.golang.org/protobuf/types/known/timestamppb"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type RequestLog struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// API service name.
Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
// API method name.
Method string `protobuf:"bytes,2,opt,name=method,proto3" json:"method,omitempty"`
// Metadata.
Metadata map[string]string `protobuf:"bytes,3,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *RequestLog) Reset() {
*x = RequestLog{}
if protoimpl.UnsafeEnabled {
mi := &file_api_request_log_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RequestLog) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RequestLog) ProtoMessage() {}
func (x *RequestLog) ProtoReflect() protoreflect.Message {
mi := &file_api_request_log_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RequestLog.ProtoReflect.Descriptor instead.
func (*RequestLog) Descriptor() ([]byte, []int) {
return file_api_request_log_proto_rawDescGZIP(), []int{0}
}
func (x *RequestLog) GetService() string {
if x != nil {
return x.Service
}
return ""
}
func (x *RequestLog) GetMethod() string {
if x != nil {
return x.Method
}
return ""
}
func (x *RequestLog) GetMetadata() map[string]string {
if x != nil {
return x.Metadata
}
return nil
}
var File_api_request_log_proto protoreflect.FileDescriptor
var file_api_request_log_proto_rawDesc = []byte{
0x0a, 0x15, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6c, 0x6f,
0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x03, 0x61, 0x70, 0x69, 0x1a, 0x1f, 0x67, 0x6f,
0x6f, 0x67, 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,
0xb6, 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x12, 0x18,
0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68,
0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64,
0x12, 0x39, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x4c, 0x6f, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72,
0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d,
0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x67, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63,
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x0f, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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,
0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70,
0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_api_request_log_proto_rawDescOnce sync.Once
file_api_request_log_proto_rawDescData = file_api_request_log_proto_rawDesc
)
func file_api_request_log_proto_rawDescGZIP() []byte {
file_api_request_log_proto_rawDescOnce.Do(func() {
file_api_request_log_proto_rawDescData = protoimpl.X.CompressGZIP(file_api_request_log_proto_rawDescData)
})
return file_api_request_log_proto_rawDescData
}
var file_api_request_log_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_api_request_log_proto_goTypes = []interface{}{
(*RequestLog)(nil), // 0: api.RequestLog
nil, // 1: api.RequestLog.MetadataEntry
}
var file_api_request_log_proto_depIdxs = []int32{
1, // 0: api.RequestLog.metadata:type_name -> api.RequestLog.MetadataEntry
1, // [1:1] is the sub-list for method output_type
1, // [1:1] is the sub-list for method input_type
1, // [1:1] is the sub-list for extension type_name
1, // [1:1] is the sub-list for extension extendee
0, // [0:1] is the sub-list for field type_name
}
func init() { file_api_request_log_proto_init() }
func file_api_request_log_proto_init() {
if File_api_request_log_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_api_request_log_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RequestLog); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_api_request_log_proto_rawDesc,
NumEnums: 0,
NumMessages: 2,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_api_request_log_proto_goTypes,
DependencyIndexes: file_api_request_log_proto_depIdxs,
MessageInfos: file_api_request_log_proto_msgTypes,
}.Build()
File_api_request_log_proto = out.File
file_api_request_log_proto_rawDesc = nil
file_api_request_log_proto_goTypes = nil
file_api_request_log_proto_depIdxs = nil
}

18
api/go/go.mod vendored
View File

@ -1,9 +1,19 @@
module github.com/chirpstack/chirpstack/api/go/v4
go 1.16
go 1.18
require (
google.golang.org/grpc v1.53.0 // indirect
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 // indirect
google.golang.org/protobuf v1.31.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20231030173426-d783a09b4405
google.golang.org/grpc v1.59.0
google.golang.org/protobuf v1.31.0
)
require (
github.com/golang/protobuf v1.5.3 // indirect
golang.org/x/net v0.17.0 // indirect
golang.org/x/sys v0.13.0 // indirect
golang.org/x/text v0.13.0 // indirect
google.golang.org/genproto v0.0.0-20231030173426-d783a09b4405 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20231030173426-d783a09b4405 // indirect
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 // indirect
)

1121
api/go/go.sum vendored

File diff suppressed because it is too large Load Diff

187
api/go/stream/api_request.pb.go vendored Normal file
View File

@ -0,0 +1,187 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.31.0
// protoc v3.21.9
// source: stream/api_request.proto
package stream
import (
_ "github.com/chirpstack/chirpstack/api/go/v4/common"
_ "github.com/chirpstack/chirpstack/api/go/v4/gw"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
_ "google.golang.org/protobuf/types/known/timestamppb"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type ApiRequestLog struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// API service name.
Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
// API method name.
Method string `protobuf:"bytes,2,opt,name=method,proto3" json:"method,omitempty"`
// Metadata.
Metadata map[string]string `protobuf:"bytes,3,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *ApiRequestLog) Reset() {
*x = ApiRequestLog{}
if protoimpl.UnsafeEnabled {
mi := &file_stream_api_request_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ApiRequestLog) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ApiRequestLog) ProtoMessage() {}
func (x *ApiRequestLog) ProtoReflect() protoreflect.Message {
mi := &file_stream_api_request_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ApiRequestLog.ProtoReflect.Descriptor instead.
func (*ApiRequestLog) Descriptor() ([]byte, []int) {
return file_stream_api_request_proto_rawDescGZIP(), []int{0}
}
func (x *ApiRequestLog) GetService() string {
if x != nil {
return x.Service
}
return ""
}
func (x *ApiRequestLog) GetMethod() string {
if x != nil {
return x.Method
}
return ""
}
func (x *ApiRequestLog) GetMetadata() map[string]string {
if x != nil {
return x.Metadata
}
return nil
}
var File_stream_api_request_proto protoreflect.FileDescriptor
var file_stream_api_request_proto_rawDesc = []byte{
0x0a, 0x18, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x72, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x73, 0x74, 0x72, 0x65,
0x61, 0x6d, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 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, 0xbf, 0x01, 0x0a, 0x0d, 0x41, 0x70, 0x69, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69,
0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74,
0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x74,
0x72, 0x65, 0x61, 0x6d, 0x2e, 0x41, 0x70, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4c,
0x6f, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79,
0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65,
0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x74, 0x0a, 0x18, 0x69, 0x6f, 0x2e, 0x63, 0x68,
0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x72,
0x65, 0x61, 0x6d, 0x42, 0x0f, 0x41, 0x70, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50,
0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68,
0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f,
0x76, 0x34, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xaa, 0x02, 0x11, 0x43, 0x68, 0x69, 0x72,
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x06, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_stream_api_request_proto_rawDescOnce sync.Once
file_stream_api_request_proto_rawDescData = file_stream_api_request_proto_rawDesc
)
func file_stream_api_request_proto_rawDescGZIP() []byte {
file_stream_api_request_proto_rawDescOnce.Do(func() {
file_stream_api_request_proto_rawDescData = protoimpl.X.CompressGZIP(file_stream_api_request_proto_rawDescData)
})
return file_stream_api_request_proto_rawDescData
}
var file_stream_api_request_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_stream_api_request_proto_goTypes = []interface{}{
(*ApiRequestLog)(nil), // 0: stream.ApiRequestLog
nil, // 1: stream.ApiRequestLog.MetadataEntry
}
var file_stream_api_request_proto_depIdxs = []int32{
1, // 0: stream.ApiRequestLog.metadata:type_name -> stream.ApiRequestLog.MetadataEntry
1, // [1:1] is the sub-list for method output_type
1, // [1:1] is the sub-list for method input_type
1, // [1:1] is the sub-list for extension type_name
1, // [1:1] is the sub-list for extension extendee
0, // [0:1] is the sub-list for field type_name
}
func init() { file_stream_api_request_proto_init() }
func file_stream_api_request_proto_init() {
if File_stream_api_request_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_stream_api_request_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ApiRequestLog); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_stream_api_request_proto_rawDesc,
NumEnums: 0,
NumMessages: 2,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_stream_api_request_proto_goTypes,
DependencyIndexes: file_stream_api_request_proto_depIdxs,
MessageInfos: file_stream_api_request_proto_msgTypes,
}.Build()
File_stream_api_request_proto = out.File
file_stream_api_request_proto_rawDesc = nil
file_stream_api_request_proto_goTypes = nil
file_stream_api_request_proto_depIdxs = nil
}

248
api/go/stream/backend_interfaces.pb.go vendored Normal file
View File

@ -0,0 +1,248 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.31.0
// protoc v3.21.9
// source: stream/backend_interfaces.proto
package stream
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type BackendInterfacesRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Sender ID.
SenderId string `protobuf:"bytes,1,opt,name=sender_id,json=senderId,proto3" json:"sender_id,omitempty"`
// Receiver ID.
ReceiverId string `protobuf:"bytes,2,opt,name=receiver_id,json=receiverId,proto3" json:"receiver_id,omitempty"`
// Timestamp.
Time *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=time,proto3" json:"time,omitempty"`
// Transaction ID.
TransactionId uint32 `protobuf:"varint,4,opt,name=transaction_id,json=transactionId,proto3" json:"transaction_id,omitempty"`
// Message-type.
MessageType string `protobuf:"bytes,5,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"`
// Result code.
ResultCode string `protobuf:"bytes,6,opt,name=result_code,json=resultCode,proto3" json:"result_code,omitempty"`
// Request body.
RequestBody string `protobuf:"bytes,7,opt,name=request_body,json=requestBody,proto3" json:"request_body,omitempty"`
// Request error.
RequestError string `protobuf:"bytes,8,opt,name=request_error,json=requestError,proto3" json:"request_error,omitempty"`
// Response body.
ResponseBody string `protobuf:"bytes,9,opt,name=response_body,json=responseBody,proto3" json:"response_body,omitempty"`
}
func (x *BackendInterfacesRequest) Reset() {
*x = BackendInterfacesRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_stream_backend_interfaces_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BackendInterfacesRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BackendInterfacesRequest) ProtoMessage() {}
func (x *BackendInterfacesRequest) ProtoReflect() protoreflect.Message {
mi := &file_stream_backend_interfaces_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BackendInterfacesRequest.ProtoReflect.Descriptor instead.
func (*BackendInterfacesRequest) Descriptor() ([]byte, []int) {
return file_stream_backend_interfaces_proto_rawDescGZIP(), []int{0}
}
func (x *BackendInterfacesRequest) GetSenderId() string {
if x != nil {
return x.SenderId
}
return ""
}
func (x *BackendInterfacesRequest) GetReceiverId() string {
if x != nil {
return x.ReceiverId
}
return ""
}
func (x *BackendInterfacesRequest) GetTime() *timestamppb.Timestamp {
if x != nil {
return x.Time
}
return nil
}
func (x *BackendInterfacesRequest) GetTransactionId() uint32 {
if x != nil {
return x.TransactionId
}
return 0
}
func (x *BackendInterfacesRequest) GetMessageType() string {
if x != nil {
return x.MessageType
}
return ""
}
func (x *BackendInterfacesRequest) GetResultCode() string {
if x != nil {
return x.ResultCode
}
return ""
}
func (x *BackendInterfacesRequest) GetRequestBody() string {
if x != nil {
return x.RequestBody
}
return ""
}
func (x *BackendInterfacesRequest) GetRequestError() string {
if x != nil {
return x.RequestError
}
return ""
}
func (x *BackendInterfacesRequest) GetResponseBody() string {
if x != nil {
return x.ResponseBody
}
return ""
}
var File_stream_backend_interfaces_proto protoreflect.FileDescriptor
var file_stream_backend_interfaces_proto_rawDesc = []byte{
0x0a, 0x1f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64,
0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x12, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 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, 0x22, 0xe0, 0x02, 0x0a, 0x18, 0x42,
0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65,
0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64,
0x65, 0x72, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72,
0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69,
0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 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,
0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74,
0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c,
0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12,
0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x06,
0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65,
0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x6f, 0x64, 0x79,
0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42,
0x6f, 0x64, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x65,
0x72, 0x72, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52,
0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x42, 0x7b, 0x0a,
0x18, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61,
0x70, 0x69, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x16, 0x42, 0x61, 0x63, 0x6b, 0x65,
0x6e, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74,
0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70,
0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f,
0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xaa, 0x02, 0x11, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74,
0x61, 0x63, 0x6b, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x33,
}
var (
file_stream_backend_interfaces_proto_rawDescOnce sync.Once
file_stream_backend_interfaces_proto_rawDescData = file_stream_backend_interfaces_proto_rawDesc
)
func file_stream_backend_interfaces_proto_rawDescGZIP() []byte {
file_stream_backend_interfaces_proto_rawDescOnce.Do(func() {
file_stream_backend_interfaces_proto_rawDescData = protoimpl.X.CompressGZIP(file_stream_backend_interfaces_proto_rawDescData)
})
return file_stream_backend_interfaces_proto_rawDescData
}
var file_stream_backend_interfaces_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_stream_backend_interfaces_proto_goTypes = []interface{}{
(*BackendInterfacesRequest)(nil), // 0: stream.BackendInterfacesRequest
(*timestamppb.Timestamp)(nil), // 1: google.protobuf.Timestamp
}
var file_stream_backend_interfaces_proto_depIdxs = []int32{
1, // 0: stream.BackendInterfacesRequest.time:type_name -> google.protobuf.Timestamp
1, // [1:1] is the sub-list for method output_type
1, // [1:1] is the sub-list for method input_type
1, // [1:1] is the sub-list for extension type_name
1, // [1:1] is the sub-list for extension extendee
0, // [0:1] is the sub-list for field type_name
}
func init() { file_stream_backend_interfaces_proto_init() }
func file_stream_backend_interfaces_proto_init() {
if File_stream_backend_interfaces_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_stream_backend_interfaces_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BackendInterfacesRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_stream_backend_interfaces_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_stream_backend_interfaces_proto_goTypes,
DependencyIndexes: file_stream_backend_interfaces_proto_depIdxs,
MessageInfos: file_stream_backend_interfaces_proto_msgTypes,
}.Build()
File_stream_backend_interfaces_proto = out.File
file_stream_backend_interfaces_proto_rawDesc = nil
file_stream_backend_interfaces_proto_goTypes = nil
file_stream_backend_interfaces_proto_depIdxs = nil
}

View File

@ -2,9 +2,9 @@
// versions:
// protoc-gen-go v1.31.0
// protoc v3.21.9
// source: api/frame_log.proto
// source: stream/frame.proto
package api
package stream
import (
common "github.com/chirpstack/chirpstack/api/go/v4/common"
@ -51,7 +51,7 @@ type UplinkFrameLog struct {
func (x *UplinkFrameLog) Reset() {
*x = UplinkFrameLog{}
if protoimpl.UnsafeEnabled {
mi := &file_api_frame_log_proto_msgTypes[0]
mi := &file_stream_frame_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -64,7 +64,7 @@ func (x *UplinkFrameLog) String() string {
func (*UplinkFrameLog) ProtoMessage() {}
func (x *UplinkFrameLog) ProtoReflect() protoreflect.Message {
mi := &file_api_frame_log_proto_msgTypes[0]
mi := &file_stream_frame_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -77,7 +77,7 @@ func (x *UplinkFrameLog) ProtoReflect() protoreflect.Message {
// Deprecated: Use UplinkFrameLog.ProtoReflect.Descriptor instead.
func (*UplinkFrameLog) Descriptor() ([]byte, []int) {
return file_api_frame_log_proto_rawDescGZIP(), []int{0}
return file_stream_frame_proto_rawDescGZIP(), []int{0}
}
func (x *UplinkFrameLog) GetPhyPayload() []byte {
@ -173,7 +173,7 @@ type DownlinkFrameLog struct {
func (x *DownlinkFrameLog) Reset() {
*x = DownlinkFrameLog{}
if protoimpl.UnsafeEnabled {
mi := &file_api_frame_log_proto_msgTypes[1]
mi := &file_stream_frame_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -186,7 +186,7 @@ func (x *DownlinkFrameLog) String() string {
func (*DownlinkFrameLog) ProtoMessage() {}
func (x *DownlinkFrameLog) ProtoReflect() protoreflect.Message {
mi := &file_api_frame_log_proto_msgTypes[1]
mi := &file_stream_frame_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -199,7 +199,7 @@ func (x *DownlinkFrameLog) ProtoReflect() protoreflect.Message {
// Deprecated: Use DownlinkFrameLog.ProtoReflect.Descriptor instead.
func (*DownlinkFrameLog) Descriptor() ([]byte, []int) {
return file_api_frame_log_proto_rawDescGZIP(), []int{1}
return file_stream_frame_proto_rawDescGZIP(), []int{1}
}
func (x *DownlinkFrameLog) GetTime() *timestamppb.Timestamp {
@ -272,102 +272,103 @@ func (x *DownlinkFrameLog) GetPlaintextFrmPayload() bool {
return false
}
var File_api_frame_log_proto protoreflect.FileDescriptor
var File_stream_frame_proto protoreflect.FileDescriptor
var file_api_frame_log_proto_rawDesc = []byte{
0x0a, 0x13, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x6c, 0x6f, 0x67, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x03, 0x61, 0x70, 0x69, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67,
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, 0xef, 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,
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, 0x12, 0x24, 0x0a, 0x06, 0x6d, 0x5f, 0x74, 0x79, 0x70,
0x65, 0x18, 0x04, 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, 0x05, 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, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x45, 0x75,
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, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x66,
0x5f, 0x6f, 0x70, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x6c, 0x61,
0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x46, 0x4f, 0x70, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x70,
0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x66, 0x72, 0x6d, 0x5f, 0x70, 0x61, 0x79,
0x6c, 0x6f, 0x61, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x70, 0x6c, 0x61, 0x69,
0x6e, 0x74, 0x65, 0x78, 0x74, 0x46, 0x72, 0x6d, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22,
0x88, 0x03, 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, 0x28, 0x0a, 0x10,
0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x66, 0x5f, 0x6f, 0x70, 0x74, 0x73,
0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78,
0x74, 0x46, 0x4f, 0x70, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74,
0x65, 0x78, 0x74, 0x5f, 0x66, 0x72, 0x6d, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18,
0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74,
0x46, 0x72, 0x6d, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x65, 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,
0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70,
0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
var file_stream_frame_proto_rawDesc = []byte{
0x0a, 0x12, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x1a, 0x1f, 0x67, 0x6f,
0x6f, 0x67, 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,
0xef, 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, 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, 0x12, 0x24, 0x0a, 0x06, 0x6d, 0x5f, 0x74,
0x79, 0x70, 0x65, 0x18, 0x04, 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, 0x05, 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, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76,
0x45, 0x75, 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, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74,
0x5f, 0x66, 0x5f, 0x6f, 0x70, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70,
0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x46, 0x4f, 0x70, 0x74, 0x73, 0x12, 0x32, 0x0a,
0x15, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x66, 0x72, 0x6d, 0x5f, 0x70,
0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x70, 0x6c,
0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x46, 0x72, 0x6d, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61,
0x64, 0x22, 0x88, 0x03, 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, 0x28,
0x0a, 0x10, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x66, 0x5f, 0x6f, 0x70,
0x74, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74,
0x65, 0x78, 0x74, 0x46, 0x4f, 0x70, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x6c, 0x61, 0x69,
0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x66, 0x72, 0x6d, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61,
0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65,
0x78, 0x74, 0x46, 0x72, 0x6d, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x6f, 0x0a, 0x18,
0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70,
0x69, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x0a, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x50,
0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68,
0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f,
0x76, 0x34, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xaa, 0x02, 0x11, 0x43, 0x68, 0x69, 0x72,
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x06, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_api_frame_log_proto_rawDescOnce sync.Once
file_api_frame_log_proto_rawDescData = file_api_frame_log_proto_rawDesc
file_stream_frame_proto_rawDescOnce sync.Once
file_stream_frame_proto_rawDescData = file_stream_frame_proto_rawDesc
)
func file_api_frame_log_proto_rawDescGZIP() []byte {
file_api_frame_log_proto_rawDescOnce.Do(func() {
file_api_frame_log_proto_rawDescData = protoimpl.X.CompressGZIP(file_api_frame_log_proto_rawDescData)
func file_stream_frame_proto_rawDescGZIP() []byte {
file_stream_frame_proto_rawDescOnce.Do(func() {
file_stream_frame_proto_rawDescData = protoimpl.X.CompressGZIP(file_stream_frame_proto_rawDescData)
})
return file_api_frame_log_proto_rawDescData
return file_stream_frame_proto_rawDescData
}
var file_api_frame_log_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_api_frame_log_proto_goTypes = []interface{}{
(*UplinkFrameLog)(nil), // 0: api.UplinkFrameLog
(*DownlinkFrameLog)(nil), // 1: api.DownlinkFrameLog
var file_stream_frame_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_stream_frame_proto_goTypes = []interface{}{
(*UplinkFrameLog)(nil), // 0: stream.UplinkFrameLog
(*DownlinkFrameLog)(nil), // 1: stream.DownlinkFrameLog
(*gw.UplinkTxInfo)(nil), // 2: gw.UplinkTxInfo
(*gw.UplinkRxInfo)(nil), // 3: gw.UplinkRxInfo
(common.MType)(0), // 4: common.MType
(*timestamppb.Timestamp)(nil), // 5: google.protobuf.Timestamp
(*gw.DownlinkTxInfo)(nil), // 6: gw.DownlinkTxInfo
}
var file_api_frame_log_proto_depIdxs = []int32{
2, // 0: api.UplinkFrameLog.tx_info:type_name -> gw.UplinkTxInfo
3, // 1: api.UplinkFrameLog.rx_info:type_name -> gw.UplinkRxInfo
4, // 2: api.UplinkFrameLog.m_type:type_name -> common.MType
5, // 3: api.UplinkFrameLog.time:type_name -> google.protobuf.Timestamp
5, // 4: api.DownlinkFrameLog.time:type_name -> google.protobuf.Timestamp
6, // 5: api.DownlinkFrameLog.tx_info:type_name -> gw.DownlinkTxInfo
4, // 6: api.DownlinkFrameLog.m_type:type_name -> common.MType
var file_stream_frame_proto_depIdxs = []int32{
2, // 0: stream.UplinkFrameLog.tx_info:type_name -> gw.UplinkTxInfo
3, // 1: stream.UplinkFrameLog.rx_info:type_name -> gw.UplinkRxInfo
4, // 2: stream.UplinkFrameLog.m_type:type_name -> common.MType
5, // 3: stream.UplinkFrameLog.time:type_name -> google.protobuf.Timestamp
5, // 4: stream.DownlinkFrameLog.time:type_name -> google.protobuf.Timestamp
6, // 5: stream.DownlinkFrameLog.tx_info:type_name -> gw.DownlinkTxInfo
4, // 6: stream.DownlinkFrameLog.m_type:type_name -> common.MType
7, // [7:7] is the sub-list for method output_type
7, // [7:7] is the sub-list for method input_type
7, // [7:7] is the sub-list for extension type_name
@ -375,13 +376,13 @@ var file_api_frame_log_proto_depIdxs = []int32{
0, // [0:7] is the sub-list for field type_name
}
func init() { file_api_frame_log_proto_init() }
func file_api_frame_log_proto_init() {
if File_api_frame_log_proto != nil {
func init() { file_stream_frame_proto_init() }
func file_stream_frame_proto_init() {
if File_stream_frame_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_api_frame_log_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
file_stream_frame_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UplinkFrameLog); i {
case 0:
return &v.state
@ -393,7 +394,7 @@ func file_api_frame_log_proto_init() {
return nil
}
}
file_api_frame_log_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
file_stream_frame_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DownlinkFrameLog); i {
case 0:
return &v.state
@ -410,18 +411,18 @@ func file_api_frame_log_proto_init() {
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_api_frame_log_proto_rawDesc,
RawDescriptor: file_stream_frame_proto_rawDesc,
NumEnums: 0,
NumMessages: 2,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_api_frame_log_proto_goTypes,
DependencyIndexes: file_api_frame_log_proto_depIdxs,
MessageInfos: file_api_frame_log_proto_msgTypes,
GoTypes: file_stream_frame_proto_goTypes,
DependencyIndexes: file_stream_frame_proto_depIdxs,
MessageInfos: file_stream_frame_proto_msgTypes,
}.Build()
File_api_frame_log_proto = out.File
file_api_frame_log_proto_rawDesc = nil
file_api_frame_log_proto_goTypes = nil
file_api_frame_log_proto_depIdxs = nil
File_stream_frame_proto = out.File
file_stream_frame_proto_rawDesc = nil
file_stream_frame_proto_goTypes = nil
file_stream_frame_proto_depIdxs = nil
}

View File

@ -2,9 +2,9 @@
// versions:
// protoc-gen-go v1.31.0
// protoc v3.21.9
// source: meta/meta.proto
// source: stream/meta.proto
package meta
package stream
import (
common "github.com/chirpstack/chirpstack/api/go/v4/common"
@ -46,7 +46,7 @@ type UplinkMeta struct {
func (x *UplinkMeta) Reset() {
*x = UplinkMeta{}
if protoimpl.UnsafeEnabled {
mi := &file_meta_meta_proto_msgTypes[0]
mi := &file_stream_meta_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -59,7 +59,7 @@ func (x *UplinkMeta) String() string {
func (*UplinkMeta) ProtoMessage() {}
func (x *UplinkMeta) ProtoReflect() protoreflect.Message {
mi := &file_meta_meta_proto_msgTypes[0]
mi := &file_stream_meta_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -72,7 +72,7 @@ func (x *UplinkMeta) ProtoReflect() protoreflect.Message {
// Deprecated: Use UplinkMeta.ProtoReflect.Descriptor instead.
func (*UplinkMeta) Descriptor() ([]byte, []int) {
return file_meta_meta_proto_rawDescGZIP(), []int{0}
return file_stream_meta_proto_rawDescGZIP(), []int{0}
}
func (x *UplinkMeta) GetDevEui() string {
@ -150,7 +150,7 @@ type DownlinkMeta struct {
func (x *DownlinkMeta) Reset() {
*x = DownlinkMeta{}
if protoimpl.UnsafeEnabled {
mi := &file_meta_meta_proto_msgTypes[1]
mi := &file_stream_meta_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -163,7 +163,7 @@ func (x *DownlinkMeta) String() string {
func (*DownlinkMeta) ProtoMessage() {}
func (x *DownlinkMeta) ProtoReflect() protoreflect.Message {
mi := &file_meta_meta_proto_msgTypes[1]
mi := &file_stream_meta_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -176,7 +176,7 @@ func (x *DownlinkMeta) ProtoReflect() protoreflect.Message {
// Deprecated: Use DownlinkMeta.ProtoReflect.Descriptor instead.
func (*DownlinkMeta) Descriptor() ([]byte, []int) {
return file_meta_meta_proto_rawDescGZIP(), []int{1}
return file_stream_meta_proto_rawDescGZIP(), []int{1}
}
func (x *DownlinkMeta) GetDevEui() string {
@ -235,95 +235,96 @@ func (x *DownlinkMeta) GetGatewayId() string {
return ""
}
var File_meta_meta_proto protoreflect.FileDescriptor
var File_stream_meta_proto protoreflect.FileDescriptor
var file_meta_meta_proto_rawDesc = []byte{
0x0a, 0x0f, 0x6d, 0x65, 0x74, 0x61, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x12, 0x04, 0x6d, 0x65, 0x74, 0x61, 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, 0xdc, 0x02, 0x0a, 0x0a, 0x55, 0x70,
0x6c, 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x5f,
0x65, 0x75, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x45, 0x75,
0x69, 0x12, 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, 0x12, 0x33, 0x0a, 0x16, 0x70, 0x68, 0x79, 0x5f, 0x70,
0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e,
0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x70, 0x68, 0x79, 0x50, 0x61, 0x79, 0x6c,
0x6f, 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x16,
0x6d, 0x61, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65,
0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6d, 0x61,
0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x42, 0x79, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e,
0x74, 0x12, 0x43, 0x0a, 0x1e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f,
0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x61, 0x70, 0x70, 0x6c, 0x69,
0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x79, 0x74,
0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x63,
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6d, 0x65, 0x73,
0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x82, 0x03, 0x0a, 0x0c, 0x44, 0x6f, 0x77,
0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x65, 0x76,
0x5f, 0x65, 0x75, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x45,
0x75, 0x69, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10,
0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 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, 0x33, 0x0a,
0x16, 0x70, 0x68, 0x79, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x79, 0x74,
0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x70,
0x68, 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x43, 0x6f, 0x75,
0x6e, 0x74, 0x12, 0x33, 0x0a, 0x16, 0x6d, 0x61, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01,
0x28, 0x0d, 0x52, 0x13, 0x6d, 0x61, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x42, 0x79,
0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x1e, 0x61, 0x70, 0x70, 0x6c, 0x69,
0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62,
0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x1b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c,
0x6f, 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x0c,
0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01,
0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x54, 0x79, 0x70,
0x65, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d,
0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01,
0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x42, 0x68, 0x0a,
0x16, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61,
0x70, 0x69, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x42, 0x09, 0x4d, 0x65, 0x74, 0x61, 0x50, 0x72, 0x6f,
0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2f, 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, 0x6d, 0x65, 0x74, 0x61, 0xaa, 0x02, 0x0f, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61,
0x63, 0x6b, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
var file_stream_meta_proto_rawDesc = []byte{
0x0a, 0x11, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x12, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 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, 0xdc, 0x02,
0x0a, 0x0a, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07,
0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64,
0x65, 0x76, 0x45, 0x75, 0x69, 0x12, 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, 0x12, 0x33, 0x0a, 0x16, 0x70,
0x68, 0x79, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f,
0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x70, 0x68, 0x79,
0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74,
0x12, 0x33, 0x0a, 0x16, 0x6d, 0x61, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f,
0x62, 0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d,
0x52, 0x13, 0x6d, 0x61, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x42, 0x79, 0x74, 0x65,
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x1e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x79, 0x74,
0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x61,
0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61,
0x64, 0x42, 0x79, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x0c, 0x6d, 0x65,
0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e,
0x32, 0x0d, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x54, 0x79, 0x70, 0x65, 0x52,
0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x82, 0x03, 0x0a,
0x0c, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x17, 0x0a,
0x07, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
0x64, 0x65, 0x76, 0x45, 0x75, 0x69, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63,
0x61, 0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x10, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f,
0x75, 0x70, 0x49, 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, 0x33, 0x0a, 0x16, 0x70, 0x68, 0x79, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64,
0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
0x0d, 0x52, 0x13, 0x70, 0x68, 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x79, 0x74,
0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x16, 0x6d, 0x61, 0x63, 0x5f, 0x63, 0x6f,
0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74,
0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6d, 0x61, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x61,
0x6e, 0x64, 0x42, 0x79, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x1e, 0x61,
0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f,
0x61, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20,
0x01, 0x28, 0x0d, 0x52, 0x1b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74,
0x12, 0x30, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65,
0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
0x4d, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79,
0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64,
0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49,
0x64, 0x42, 0x6e, 0x0a, 0x18, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61,
0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x09, 0x4d,
0x65, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68,
0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63,
0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69,
0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xaa, 0x02, 0x11,
0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61,
0x6d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_meta_meta_proto_rawDescOnce sync.Once
file_meta_meta_proto_rawDescData = file_meta_meta_proto_rawDesc
file_stream_meta_proto_rawDescOnce sync.Once
file_stream_meta_proto_rawDescData = file_stream_meta_proto_rawDesc
)
func file_meta_meta_proto_rawDescGZIP() []byte {
file_meta_meta_proto_rawDescOnce.Do(func() {
file_meta_meta_proto_rawDescData = protoimpl.X.CompressGZIP(file_meta_meta_proto_rawDescData)
func file_stream_meta_proto_rawDescGZIP() []byte {
file_stream_meta_proto_rawDescOnce.Do(func() {
file_stream_meta_proto_rawDescData = protoimpl.X.CompressGZIP(file_stream_meta_proto_rawDescData)
})
return file_meta_meta_proto_rawDescData
return file_stream_meta_proto_rawDescData
}
var file_meta_meta_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_meta_meta_proto_goTypes = []interface{}{
(*UplinkMeta)(nil), // 0: meta.UplinkMeta
(*DownlinkMeta)(nil), // 1: meta.DownlinkMeta
var file_stream_meta_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_stream_meta_proto_goTypes = []interface{}{
(*UplinkMeta)(nil), // 0: stream.UplinkMeta
(*DownlinkMeta)(nil), // 1: stream.DownlinkMeta
(*gw.UplinkTxInfo)(nil), // 2: gw.UplinkTxInfo
(*gw.UplinkRxInfo)(nil), // 3: gw.UplinkRxInfo
(common.MType)(0), // 4: common.MType
(*gw.DownlinkTxInfo)(nil), // 5: gw.DownlinkTxInfo
}
var file_meta_meta_proto_depIdxs = []int32{
2, // 0: meta.UplinkMeta.tx_info:type_name -> gw.UplinkTxInfo
3, // 1: meta.UplinkMeta.rx_info:type_name -> gw.UplinkRxInfo
4, // 2: meta.UplinkMeta.message_type:type_name -> common.MType
5, // 3: meta.DownlinkMeta.tx_info:type_name -> gw.DownlinkTxInfo
4, // 4: meta.DownlinkMeta.message_type:type_name -> common.MType
var file_stream_meta_proto_depIdxs = []int32{
2, // 0: stream.UplinkMeta.tx_info:type_name -> gw.UplinkTxInfo
3, // 1: stream.UplinkMeta.rx_info:type_name -> gw.UplinkRxInfo
4, // 2: stream.UplinkMeta.message_type:type_name -> common.MType
5, // 3: stream.DownlinkMeta.tx_info:type_name -> gw.DownlinkTxInfo
4, // 4: stream.DownlinkMeta.message_type:type_name -> common.MType
5, // [5:5] is the sub-list for method output_type
5, // [5:5] is the sub-list for method input_type
5, // [5:5] is the sub-list for extension type_name
@ -331,13 +332,13 @@ var file_meta_meta_proto_depIdxs = []int32{
0, // [0:5] is the sub-list for field type_name
}
func init() { file_meta_meta_proto_init() }
func file_meta_meta_proto_init() {
if File_meta_meta_proto != nil {
func init() { file_stream_meta_proto_init() }
func file_stream_meta_proto_init() {
if File_stream_meta_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_meta_meta_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
file_stream_meta_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UplinkMeta); i {
case 0:
return &v.state
@ -349,7 +350,7 @@ func file_meta_meta_proto_init() {
return nil
}
}
file_meta_meta_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
file_stream_meta_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DownlinkMeta); i {
case 0:
return &v.state
@ -366,18 +367,18 @@ func file_meta_meta_proto_init() {
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_meta_meta_proto_rawDesc,
RawDescriptor: file_stream_meta_proto_rawDesc,
NumEnums: 0,
NumMessages: 2,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_meta_meta_proto_goTypes,
DependencyIndexes: file_meta_meta_proto_depIdxs,
MessageInfos: file_meta_meta_proto_msgTypes,
GoTypes: file_stream_meta_proto_goTypes,
DependencyIndexes: file_stream_meta_proto_depIdxs,
MessageInfos: file_stream_meta_proto_msgTypes,
}.Build()
File_meta_meta_proto = out.File
file_meta_meta_proto_rawDesc = nil
file_meta_meta_proto_goTypes = nil
file_meta_meta_proto_depIdxs = nil
File_stream_meta_proto = out.File
file_stream_meta_proto_rawDesc = nil
file_stream_meta_proto_goTypes = nil
file_stream_meta_proto_depIdxs = nil
}

View File

@ -25,9 +25,7 @@ api:
protoc $(PROTOC_ARGS) ../proto/api/device_profile_template.proto
protoc $(PROTOC_ARGS) ../proto/api/device.proto
protoc $(PROTOC_ARGS) ../proto/api/gateway.proto
protoc $(PROTOC_ARGS) ../proto/api/frame_log.proto
protoc $(PROTOC_ARGS) ../proto/api/multicast_group.proto
protoc $(PROTOC_ARGS) ../proto/api/request_log.proto
protoc $(PROTOC_ARGS) ../proto/api/relay.proto
integration:

View File

@ -1,125 +0,0 @@
import * as jspb from 'google-protobuf'
import * as google_protobuf_timestamp_pb from 'google-protobuf/google/protobuf/timestamp_pb';
import * as common_common_pb from '../common/common_pb';
import * as gw_gw_pb from '../gw/gw_pb';
export class UplinkFrameLog extends jspb.Message {
getPhyPayload(): Uint8Array | string;
getPhyPayload_asU8(): Uint8Array;
getPhyPayload_asB64(): string;
setPhyPayload(value: Uint8Array | string): UplinkFrameLog;
getTxInfo(): gw_gw_pb.UplinkTxInfo | undefined;
setTxInfo(value?: gw_gw_pb.UplinkTxInfo): UplinkFrameLog;
hasTxInfo(): boolean;
clearTxInfo(): UplinkFrameLog;
getRxInfoList(): Array<gw_gw_pb.UplinkRxInfo>;
setRxInfoList(value: Array<gw_gw_pb.UplinkRxInfo>): UplinkFrameLog;
clearRxInfoList(): UplinkFrameLog;
addRxInfo(value?: gw_gw_pb.UplinkRxInfo, index?: number): gw_gw_pb.UplinkRxInfo;
getMType(): common_common_pb.MType;
setMType(value: common_common_pb.MType): UplinkFrameLog;
getDevAddr(): string;
setDevAddr(value: string): UplinkFrameLog;
getDevEui(): string;
setDevEui(value: string): UplinkFrameLog;
getTime(): google_protobuf_timestamp_pb.Timestamp | undefined;
setTime(value?: google_protobuf_timestamp_pb.Timestamp): UplinkFrameLog;
hasTime(): boolean;
clearTime(): UplinkFrameLog;
getPlaintextFOpts(): boolean;
setPlaintextFOpts(value: boolean): UplinkFrameLog;
getPlaintextFrmPayload(): boolean;
setPlaintextFrmPayload(value: boolean): UplinkFrameLog;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): UplinkFrameLog.AsObject;
static toObject(includeInstance: boolean, msg: UplinkFrameLog): UplinkFrameLog.AsObject;
static serializeBinaryToWriter(message: UplinkFrameLog, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): UplinkFrameLog;
static deserializeBinaryFromReader(message: UplinkFrameLog, reader: jspb.BinaryReader): UplinkFrameLog;
}
export namespace UplinkFrameLog {
export type AsObject = {
phyPayload: Uint8Array | string,
txInfo?: gw_gw_pb.UplinkTxInfo.AsObject,
rxInfoList: Array<gw_gw_pb.UplinkRxInfo.AsObject>,
mType: common_common_pb.MType,
devAddr: string,
devEui: string,
time?: google_protobuf_timestamp_pb.Timestamp.AsObject,
plaintextFOpts: boolean,
plaintextFrmPayload: boolean,
}
}
export class DownlinkFrameLog extends jspb.Message {
getTime(): google_protobuf_timestamp_pb.Timestamp | undefined;
setTime(value?: google_protobuf_timestamp_pb.Timestamp): DownlinkFrameLog;
hasTime(): boolean;
clearTime(): DownlinkFrameLog;
getPhyPayload(): Uint8Array | string;
getPhyPayload_asU8(): Uint8Array;
getPhyPayload_asB64(): string;
setPhyPayload(value: Uint8Array | string): DownlinkFrameLog;
getTxInfo(): gw_gw_pb.DownlinkTxInfo | undefined;
setTxInfo(value?: gw_gw_pb.DownlinkTxInfo): DownlinkFrameLog;
hasTxInfo(): boolean;
clearTxInfo(): DownlinkFrameLog;
getDownlinkId(): number;
setDownlinkId(value: number): DownlinkFrameLog;
getGatewayId(): string;
setGatewayId(value: string): DownlinkFrameLog;
getMType(): common_common_pb.MType;
setMType(value: common_common_pb.MType): DownlinkFrameLog;
getDevAddr(): string;
setDevAddr(value: string): DownlinkFrameLog;
getDevEui(): string;
setDevEui(value: string): DownlinkFrameLog;
getPlaintextFOpts(): boolean;
setPlaintextFOpts(value: boolean): DownlinkFrameLog;
getPlaintextFrmPayload(): boolean;
setPlaintextFrmPayload(value: boolean): DownlinkFrameLog;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): DownlinkFrameLog.AsObject;
static toObject(includeInstance: boolean, msg: DownlinkFrameLog): DownlinkFrameLog.AsObject;
static serializeBinaryToWriter(message: DownlinkFrameLog, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): DownlinkFrameLog;
static deserializeBinaryFromReader(message: DownlinkFrameLog, reader: jspb.BinaryReader): DownlinkFrameLog;
}
export namespace DownlinkFrameLog {
export type AsObject = {
time?: google_protobuf_timestamp_pb.Timestamp.AsObject,
phyPayload: Uint8Array | string,
txInfo?: gw_gw_pb.DownlinkTxInfo.AsObject,
downlinkId: number,
gatewayId: string,
mType: common_common_pb.MType,
devAddr: string,
devEui: string,
plaintextFOpts: boolean,
plaintextFrmPayload: boolean,
}
}

View File

@ -1,997 +0,0 @@
// source: api/frame_log.proto
/**
* @fileoverview
* @enhanceable
* @suppress {messageConventions} JS Compiler reports an error if a variable or
* field starts with 'MSG_' and isn't a translatable message.
* @public
*/
// GENERATED CODE -- DO NOT EDIT!
var jspb = require('google-protobuf');
var goog = jspb;
var global = Function('return this')();
var google_protobuf_timestamp_pb = require('google-protobuf/google/protobuf/timestamp_pb.js');
goog.object.extend(proto, google_protobuf_timestamp_pb);
var common_common_pb = require('../common/common_pb.js');
goog.object.extend(proto, common_common_pb);
var gw_gw_pb = require('../gw/gw_pb.js');
goog.object.extend(proto, gw_gw_pb);
goog.exportSymbol('proto.api.DownlinkFrameLog', null, global);
goog.exportSymbol('proto.api.UplinkFrameLog', null, global);
/**
* Generated by JsPbCodeGenerator.
* @param {Array=} opt_data Optional initial data array, typically from a
* server response, or constructed directly in Javascript. The array is used
* in place and becomes part of the constructed object. It is not cloned.
* If no data is provided, the constructed object will be empty, but still
* valid.
* @extends {jspb.Message}
* @constructor
*/
proto.api.UplinkFrameLog = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, proto.api.UplinkFrameLog.repeatedFields_, null);
};
goog.inherits(proto.api.UplinkFrameLog, jspb.Message);
if (goog.DEBUG && !COMPILED) {
/**
* @public
* @override
*/
proto.api.UplinkFrameLog.displayName = 'proto.api.UplinkFrameLog';
}
/**
* Generated by JsPbCodeGenerator.
* @param {Array=} opt_data Optional initial data array, typically from a
* server response, or constructed directly in Javascript. The array is used
* in place and becomes part of the constructed object. It is not cloned.
* If no data is provided, the constructed object will be empty, but still
* valid.
* @extends {jspb.Message}
* @constructor
*/
proto.api.DownlinkFrameLog = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.DownlinkFrameLog, jspb.Message);
if (goog.DEBUG && !COMPILED) {
/**
* @public
* @override
*/
proto.api.DownlinkFrameLog.displayName = 'proto.api.DownlinkFrameLog';
}
/**
* List of repeated fields within this message type.
* @private {!Array<number>}
* @const
*/
proto.api.UplinkFrameLog.repeatedFields_ = [3];
if (jspb.Message.GENERATE_TO_OBJECT) {
/**
* Creates an object representation of this proto.
* Field names that are reserved in JavaScript and will be renamed to pb_name.
* Optional fields that are not set will be set to undefined.
* To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
* For the list of reserved names please see:
* net/proto2/compiler/js/internal/generator.cc#kKeyword.
* @param {boolean=} opt_includeInstance Deprecated. whether to include the
* JSPB instance for transitional soy proto support:
* http://goto/soy-param-migration
* @return {!Object}
*/
proto.api.UplinkFrameLog.prototype.toObject = function(opt_includeInstance) {
return proto.api.UplinkFrameLog.toObject(opt_includeInstance, this);
};
/**
* Static version of the {@see toObject} method.
* @param {boolean|undefined} includeInstance Deprecated. Whether to include
* the JSPB instance for transitional soy proto support:
* http://goto/soy-param-migration
* @param {!proto.api.UplinkFrameLog} msg The msg instance to transform.
* @return {!Object}
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.api.UplinkFrameLog.toObject = function(includeInstance, msg) {
var f, obj = {
phyPayload: msg.getPhyPayload_asB64(),
txInfo: (f = msg.getTxInfo()) && gw_gw_pb.UplinkTxInfo.toObject(includeInstance, f),
rxInfoList: jspb.Message.toObjectList(msg.getRxInfoList(),
gw_gw_pb.UplinkRxInfo.toObject, includeInstance),
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),
plaintextFOpts: jspb.Message.getBooleanFieldWithDefault(msg, 8, false),
plaintextFrmPayload: jspb.Message.getBooleanFieldWithDefault(msg, 9, false)
};
if (includeInstance) {
obj.$jspbMessageInstance = msg;
}
return obj;
};
}
/**
* Deserializes binary data (in protobuf wire format).
* @param {jspb.ByteSource} bytes The bytes to deserialize.
* @return {!proto.api.UplinkFrameLog}
*/
proto.api.UplinkFrameLog.deserializeBinary = function(bytes) {
var reader = new jspb.BinaryReader(bytes);
var msg = new proto.api.UplinkFrameLog;
return proto.api.UplinkFrameLog.deserializeBinaryFromReader(msg, reader);
};
/**
* Deserializes binary data (in protobuf wire format) from the
* given reader into the given message object.
* @param {!proto.api.UplinkFrameLog} msg The message object to deserialize into.
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
* @return {!proto.api.UplinkFrameLog}
*/
proto.api.UplinkFrameLog.deserializeBinaryFromReader = function(msg, reader) {
while (reader.nextField()) {
if (reader.isEndGroup()) {
break;
}
var field = reader.getFieldNumber();
switch (field) {
case 1:
var value = /** @type {!Uint8Array} */ (reader.readBytes());
msg.setPhyPayload(value);
break;
case 2:
var value = new gw_gw_pb.UplinkTxInfo;
reader.readMessage(value,gw_gw_pb.UplinkTxInfo.deserializeBinaryFromReader);
msg.setTxInfo(value);
break;
case 3:
var value = new gw_gw_pb.UplinkRxInfo;
reader.readMessage(value,gw_gw_pb.UplinkRxInfo.deserializeBinaryFromReader);
msg.addRxInfo(value);
break;
case 4:
var value = /** @type {!proto.common.MType} */ (reader.readEnum());
msg.setMType(value);
break;
case 5:
var value = /** @type {string} */ (reader.readString());
msg.setDevAddr(value);
break;
case 6:
var value = /** @type {string} */ (reader.readString());
msg.setDevEui(value);
break;
case 7:
var value = new google_protobuf_timestamp_pb.Timestamp;
reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
msg.setTime(value);
break;
case 8:
var value = /** @type {boolean} */ (reader.readBool());
msg.setPlaintextFOpts(value);
break;
case 9:
var value = /** @type {boolean} */ (reader.readBool());
msg.setPlaintextFrmPayload(value);
break;
default:
reader.skipField();
break;
}
}
return msg;
};
/**
* Serializes the message to binary data (in protobuf wire format).
* @return {!Uint8Array}
*/
proto.api.UplinkFrameLog.prototype.serializeBinary = function() {
var writer = new jspb.BinaryWriter();
proto.api.UplinkFrameLog.serializeBinaryToWriter(this, writer);
return writer.getResultBuffer();
};
/**
* Serializes the given message to binary data (in protobuf wire
* format), writing to the given BinaryWriter.
* @param {!proto.api.UplinkFrameLog} message
* @param {!jspb.BinaryWriter} writer
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.api.UplinkFrameLog.serializeBinaryToWriter = function(message, writer) {
var f = undefined;
f = message.getPhyPayload_asU8();
if (f.length > 0) {
writer.writeBytes(
1,
f
);
}
f = message.getTxInfo();
if (f != null) {
writer.writeMessage(
2,
f,
gw_gw_pb.UplinkTxInfo.serializeBinaryToWriter
);
}
f = message.getRxInfoList();
if (f.length > 0) {
writer.writeRepeatedMessage(
3,
f,
gw_gw_pb.UplinkRxInfo.serializeBinaryToWriter
);
}
f = message.getMType();
if (f !== 0.0) {
writer.writeEnum(
4,
f
);
}
f = message.getDevAddr();
if (f.length > 0) {
writer.writeString(
5,
f
);
}
f = message.getDevEui();
if (f.length > 0) {
writer.writeString(
6,
f
);
}
f = message.getTime();
if (f != null) {
writer.writeMessage(
7,
f,
google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
);
}
f = message.getPlaintextFOpts();
if (f) {
writer.writeBool(
8,
f
);
}
f = message.getPlaintextFrmPayload();
if (f) {
writer.writeBool(
9,
f
);
}
};
/**
* optional bytes phy_payload = 1;
* @return {string}
*/
proto.api.UplinkFrameLog.prototype.getPhyPayload = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};
/**
* optional bytes phy_payload = 1;
* This is a type-conversion wrapper around `getPhyPayload()`
* @return {string}
*/
proto.api.UplinkFrameLog.prototype.getPhyPayload_asB64 = function() {
return /** @type {string} */ (jspb.Message.bytesAsB64(
this.getPhyPayload()));
};
/**
* optional bytes phy_payload = 1;
* Note that Uint8Array is not supported on all browsers.
* @see http://caniuse.com/Uint8Array
* This is a type-conversion wrapper around `getPhyPayload()`
* @return {!Uint8Array}
*/
proto.api.UplinkFrameLog.prototype.getPhyPayload_asU8 = function() {
return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(
this.getPhyPayload()));
};
/**
* @param {!(string|Uint8Array)} value
* @return {!proto.api.UplinkFrameLog} returns this
*/
proto.api.UplinkFrameLog.prototype.setPhyPayload = function(value) {
return jspb.Message.setProto3BytesField(this, 1, value);
};
/**
* optional gw.UplinkTxInfo tx_info = 2;
* @return {?proto.gw.UplinkTxInfo}
*/
proto.api.UplinkFrameLog.prototype.getTxInfo = function() {
return /** @type{?proto.gw.UplinkTxInfo} */ (
jspb.Message.getWrapperField(this, gw_gw_pb.UplinkTxInfo, 2));
};
/**
* @param {?proto.gw.UplinkTxInfo|undefined} value
* @return {!proto.api.UplinkFrameLog} returns this
*/
proto.api.UplinkFrameLog.prototype.setTxInfo = function(value) {
return jspb.Message.setWrapperField(this, 2, value);
};
/**
* Clears the message field making it undefined.
* @return {!proto.api.UplinkFrameLog} returns this
*/
proto.api.UplinkFrameLog.prototype.clearTxInfo = function() {
return this.setTxInfo(undefined);
};
/**
* Returns whether this field is set.
* @return {boolean}
*/
proto.api.UplinkFrameLog.prototype.hasTxInfo = function() {
return jspb.Message.getField(this, 2) != null;
};
/**
* repeated gw.UplinkRxInfo rx_info = 3;
* @return {!Array<!proto.gw.UplinkRxInfo>}
*/
proto.api.UplinkFrameLog.prototype.getRxInfoList = function() {
return /** @type{!Array<!proto.gw.UplinkRxInfo>} */ (
jspb.Message.getRepeatedWrapperField(this, gw_gw_pb.UplinkRxInfo, 3));
};
/**
* @param {!Array<!proto.gw.UplinkRxInfo>} value
* @return {!proto.api.UplinkFrameLog} returns this
*/
proto.api.UplinkFrameLog.prototype.setRxInfoList = function(value) {
return jspb.Message.setRepeatedWrapperField(this, 3, value);
};
/**
* @param {!proto.gw.UplinkRxInfo=} opt_value
* @param {number=} opt_index
* @return {!proto.gw.UplinkRxInfo}
*/
proto.api.UplinkFrameLog.prototype.addRxInfo = function(opt_value, opt_index) {
return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.gw.UplinkRxInfo, opt_index);
};
/**
* Clears the list making it empty but non-null.
* @return {!proto.api.UplinkFrameLog} returns this
*/
proto.api.UplinkFrameLog.prototype.clearRxInfoList = function() {
return this.setRxInfoList([]);
};
/**
* optional common.MType m_type = 4;
* @return {!proto.common.MType}
*/
proto.api.UplinkFrameLog.prototype.getMType = function() {
return /** @type {!proto.common.MType} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};
/**
* @param {!proto.common.MType} value
* @return {!proto.api.UplinkFrameLog} returns this
*/
proto.api.UplinkFrameLog.prototype.setMType = function(value) {
return jspb.Message.setProto3EnumField(this, 4, value);
};
/**
* optional string dev_addr = 5;
* @return {string}
*/
proto.api.UplinkFrameLog.prototype.getDevAddr = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};
/**
* @param {string} value
* @return {!proto.api.UplinkFrameLog} returns this
*/
proto.api.UplinkFrameLog.prototype.setDevAddr = function(value) {
return jspb.Message.setProto3StringField(this, 5, value);
};
/**
* optional string dev_eui = 6;
* @return {string}
*/
proto.api.UplinkFrameLog.prototype.getDevEui = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};
/**
* @param {string} value
* @return {!proto.api.UplinkFrameLog} returns this
*/
proto.api.UplinkFrameLog.prototype.setDevEui = function(value) {
return jspb.Message.setProto3StringField(this, 6, value);
};
/**
* optional google.protobuf.Timestamp time = 7;
* @return {?proto.google.protobuf.Timestamp}
*/
proto.api.UplinkFrameLog.prototype.getTime = function() {
return /** @type{?proto.google.protobuf.Timestamp} */ (
jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 7));
};
/**
* @param {?proto.google.protobuf.Timestamp|undefined} value
* @return {!proto.api.UplinkFrameLog} returns this
*/
proto.api.UplinkFrameLog.prototype.setTime = function(value) {
return jspb.Message.setWrapperField(this, 7, value);
};
/**
* Clears the message field making it undefined.
* @return {!proto.api.UplinkFrameLog} returns this
*/
proto.api.UplinkFrameLog.prototype.clearTime = function() {
return this.setTime(undefined);
};
/**
* Returns whether this field is set.
* @return {boolean}
*/
proto.api.UplinkFrameLog.prototype.hasTime = function() {
return jspb.Message.getField(this, 7) != null;
};
/**
* optional bool plaintext_f_opts = 8;
* @return {boolean}
*/
proto.api.UplinkFrameLog.prototype.getPlaintextFOpts = function() {
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false));
};
/**
* @param {boolean} value
* @return {!proto.api.UplinkFrameLog} returns this
*/
proto.api.UplinkFrameLog.prototype.setPlaintextFOpts = function(value) {
return jspb.Message.setProto3BooleanField(this, 8, value);
};
/**
* optional bool plaintext_frm_payload = 9;
* @return {boolean}
*/
proto.api.UplinkFrameLog.prototype.getPlaintextFrmPayload = function() {
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 9, false));
};
/**
* @param {boolean} value
* @return {!proto.api.UplinkFrameLog} returns this
*/
proto.api.UplinkFrameLog.prototype.setPlaintextFrmPayload = function(value) {
return jspb.Message.setProto3BooleanField(this, 9, value);
};
if (jspb.Message.GENERATE_TO_OBJECT) {
/**
* Creates an object representation of this proto.
* Field names that are reserved in JavaScript and will be renamed to pb_name.
* Optional fields that are not set will be set to undefined.
* To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
* For the list of reserved names please see:
* net/proto2/compiler/js/internal/generator.cc#kKeyword.
* @param {boolean=} opt_includeInstance Deprecated. whether to include the
* JSPB instance for transitional soy proto support:
* http://goto/soy-param-migration
* @return {!Object}
*/
proto.api.DownlinkFrameLog.prototype.toObject = function(opt_includeInstance) {
return proto.api.DownlinkFrameLog.toObject(opt_includeInstance, this);
};
/**
* Static version of the {@see toObject} method.
* @param {boolean|undefined} includeInstance Deprecated. Whether to include
* the JSPB instance for transitional soy proto support:
* http://goto/soy-param-migration
* @param {!proto.api.DownlinkFrameLog} msg The msg instance to transform.
* @return {!Object}
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.api.DownlinkFrameLog.toObject = function(includeInstance, msg) {
var f, obj = {
time: (f = msg.getTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
phyPayload: msg.getPhyPayload_asB64(),
txInfo: (f = msg.getTxInfo()) && gw_gw_pb.DownlinkTxInfo.toObject(includeInstance, f),
downlinkId: jspb.Message.getFieldWithDefault(msg, 4, 0),
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, ""),
plaintextFOpts: jspb.Message.getBooleanFieldWithDefault(msg, 9, false),
plaintextFrmPayload: jspb.Message.getBooleanFieldWithDefault(msg, 10, false)
};
if (includeInstance) {
obj.$jspbMessageInstance = msg;
}
return obj;
};
}
/**
* Deserializes binary data (in protobuf wire format).
* @param {jspb.ByteSource} bytes The bytes to deserialize.
* @return {!proto.api.DownlinkFrameLog}
*/
proto.api.DownlinkFrameLog.deserializeBinary = function(bytes) {
var reader = new jspb.BinaryReader(bytes);
var msg = new proto.api.DownlinkFrameLog;
return proto.api.DownlinkFrameLog.deserializeBinaryFromReader(msg, reader);
};
/**
* Deserializes binary data (in protobuf wire format) from the
* given reader into the given message object.
* @param {!proto.api.DownlinkFrameLog} msg The message object to deserialize into.
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
* @return {!proto.api.DownlinkFrameLog}
*/
proto.api.DownlinkFrameLog.deserializeBinaryFromReader = function(msg, reader) {
while (reader.nextField()) {
if (reader.isEndGroup()) {
break;
}
var field = reader.getFieldNumber();
switch (field) {
case 1:
var value = new google_protobuf_timestamp_pb.Timestamp;
reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
msg.setTime(value);
break;
case 2:
var value = /** @type {!Uint8Array} */ (reader.readBytes());
msg.setPhyPayload(value);
break;
case 3:
var value = new gw_gw_pb.DownlinkTxInfo;
reader.readMessage(value,gw_gw_pb.DownlinkTxInfo.deserializeBinaryFromReader);
msg.setTxInfo(value);
break;
case 4:
var value = /** @type {number} */ (reader.readUint32());
msg.setDownlinkId(value);
break;
case 5:
var value = /** @type {string} */ (reader.readString());
msg.setGatewayId(value);
break;
case 6:
var value = /** @type {!proto.common.MType} */ (reader.readEnum());
msg.setMType(value);
break;
case 7:
var value = /** @type {string} */ (reader.readString());
msg.setDevAddr(value);
break;
case 8:
var value = /** @type {string} */ (reader.readString());
msg.setDevEui(value);
break;
case 9:
var value = /** @type {boolean} */ (reader.readBool());
msg.setPlaintextFOpts(value);
break;
case 10:
var value = /** @type {boolean} */ (reader.readBool());
msg.setPlaintextFrmPayload(value);
break;
default:
reader.skipField();
break;
}
}
return msg;
};
/**
* Serializes the message to binary data (in protobuf wire format).
* @return {!Uint8Array}
*/
proto.api.DownlinkFrameLog.prototype.serializeBinary = function() {
var writer = new jspb.BinaryWriter();
proto.api.DownlinkFrameLog.serializeBinaryToWriter(this, writer);
return writer.getResultBuffer();
};
/**
* Serializes the given message to binary data (in protobuf wire
* format), writing to the given BinaryWriter.
* @param {!proto.api.DownlinkFrameLog} message
* @param {!jspb.BinaryWriter} writer
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.api.DownlinkFrameLog.serializeBinaryToWriter = function(message, writer) {
var f = undefined;
f = message.getTime();
if (f != null) {
writer.writeMessage(
1,
f,
google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
);
}
f = message.getPhyPayload_asU8();
if (f.length > 0) {
writer.writeBytes(
2,
f
);
}
f = message.getTxInfo();
if (f != null) {
writer.writeMessage(
3,
f,
gw_gw_pb.DownlinkTxInfo.serializeBinaryToWriter
);
}
f = message.getDownlinkId();
if (f !== 0) {
writer.writeUint32(
4,
f
);
}
f = message.getGatewayId();
if (f.length > 0) {
writer.writeString(
5,
f
);
}
f = message.getMType();
if (f !== 0.0) {
writer.writeEnum(
6,
f
);
}
f = message.getDevAddr();
if (f.length > 0) {
writer.writeString(
7,
f
);
}
f = message.getDevEui();
if (f.length > 0) {
writer.writeString(
8,
f
);
}
f = message.getPlaintextFOpts();
if (f) {
writer.writeBool(
9,
f
);
}
f = message.getPlaintextFrmPayload();
if (f) {
writer.writeBool(
10,
f
);
}
};
/**
* optional google.protobuf.Timestamp time = 1;
* @return {?proto.google.protobuf.Timestamp}
*/
proto.api.DownlinkFrameLog.prototype.getTime = function() {
return /** @type{?proto.google.protobuf.Timestamp} */ (
jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 1));
};
/**
* @param {?proto.google.protobuf.Timestamp|undefined} value
* @return {!proto.api.DownlinkFrameLog} returns this
*/
proto.api.DownlinkFrameLog.prototype.setTime = function(value) {
return jspb.Message.setWrapperField(this, 1, value);
};
/**
* Clears the message field making it undefined.
* @return {!proto.api.DownlinkFrameLog} returns this
*/
proto.api.DownlinkFrameLog.prototype.clearTime = function() {
return this.setTime(undefined);
};
/**
* Returns whether this field is set.
* @return {boolean}
*/
proto.api.DownlinkFrameLog.prototype.hasTime = function() {
return jspb.Message.getField(this, 1) != null;
};
/**
* optional bytes phy_payload = 2;
* @return {string}
*/
proto.api.DownlinkFrameLog.prototype.getPhyPayload = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};
/**
* optional bytes phy_payload = 2;
* This is a type-conversion wrapper around `getPhyPayload()`
* @return {string}
*/
proto.api.DownlinkFrameLog.prototype.getPhyPayload_asB64 = function() {
return /** @type {string} */ (jspb.Message.bytesAsB64(
this.getPhyPayload()));
};
/**
* optional bytes phy_payload = 2;
* Note that Uint8Array is not supported on all browsers.
* @see http://caniuse.com/Uint8Array
* This is a type-conversion wrapper around `getPhyPayload()`
* @return {!Uint8Array}
*/
proto.api.DownlinkFrameLog.prototype.getPhyPayload_asU8 = function() {
return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(
this.getPhyPayload()));
};
/**
* @param {!(string|Uint8Array)} value
* @return {!proto.api.DownlinkFrameLog} returns this
*/
proto.api.DownlinkFrameLog.prototype.setPhyPayload = function(value) {
return jspb.Message.setProto3BytesField(this, 2, value);
};
/**
* optional gw.DownlinkTxInfo tx_info = 3;
* @return {?proto.gw.DownlinkTxInfo}
*/
proto.api.DownlinkFrameLog.prototype.getTxInfo = function() {
return /** @type{?proto.gw.DownlinkTxInfo} */ (
jspb.Message.getWrapperField(this, gw_gw_pb.DownlinkTxInfo, 3));
};
/**
* @param {?proto.gw.DownlinkTxInfo|undefined} value
* @return {!proto.api.DownlinkFrameLog} returns this
*/
proto.api.DownlinkFrameLog.prototype.setTxInfo = function(value) {
return jspb.Message.setWrapperField(this, 3, value);
};
/**
* Clears the message field making it undefined.
* @return {!proto.api.DownlinkFrameLog} returns this
*/
proto.api.DownlinkFrameLog.prototype.clearTxInfo = function() {
return this.setTxInfo(undefined);
};
/**
* Returns whether this field is set.
* @return {boolean}
*/
proto.api.DownlinkFrameLog.prototype.hasTxInfo = function() {
return jspb.Message.getField(this, 3) != null;
};
/**
* optional uint32 downlink_id = 4;
* @return {number}
*/
proto.api.DownlinkFrameLog.prototype.getDownlinkId = function() {
return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};
/**
* @param {number} value
* @return {!proto.api.DownlinkFrameLog} returns this
*/
proto.api.DownlinkFrameLog.prototype.setDownlinkId = function(value) {
return jspb.Message.setProto3IntField(this, 4, value);
};
/**
* optional string gateway_id = 5;
* @return {string}
*/
proto.api.DownlinkFrameLog.prototype.getGatewayId = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};
/**
* @param {string} value
* @return {!proto.api.DownlinkFrameLog} returns this
*/
proto.api.DownlinkFrameLog.prototype.setGatewayId = function(value) {
return jspb.Message.setProto3StringField(this, 5, value);
};
/**
* optional common.MType m_type = 6;
* @return {!proto.common.MType}
*/
proto.api.DownlinkFrameLog.prototype.getMType = function() {
return /** @type {!proto.common.MType} */ (jspb.Message.getFieldWithDefault(this, 6, 0));
};
/**
* @param {!proto.common.MType} value
* @return {!proto.api.DownlinkFrameLog} returns this
*/
proto.api.DownlinkFrameLog.prototype.setMType = function(value) {
return jspb.Message.setProto3EnumField(this, 6, value);
};
/**
* optional string dev_addr = 7;
* @return {string}
*/
proto.api.DownlinkFrameLog.prototype.getDevAddr = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
};
/**
* @param {string} value
* @return {!proto.api.DownlinkFrameLog} returns this
*/
proto.api.DownlinkFrameLog.prototype.setDevAddr = function(value) {
return jspb.Message.setProto3StringField(this, 7, value);
};
/**
* optional string dev_eui = 8;
* @return {string}
*/
proto.api.DownlinkFrameLog.prototype.getDevEui = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, ""));
};
/**
* @param {string} value
* @return {!proto.api.DownlinkFrameLog} returns this
*/
proto.api.DownlinkFrameLog.prototype.setDevEui = function(value) {
return jspb.Message.setProto3StringField(this, 8, value);
};
/**
* optional bool plaintext_f_opts = 9;
* @return {boolean}
*/
proto.api.DownlinkFrameLog.prototype.getPlaintextFOpts = function() {
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 9, false));
};
/**
* @param {boolean} value
* @return {!proto.api.DownlinkFrameLog} returns this
*/
proto.api.DownlinkFrameLog.prototype.setPlaintextFOpts = function(value) {
return jspb.Message.setProto3BooleanField(this, 9, value);
};
/**
* optional bool plaintext_frm_payload = 10;
* @return {boolean}
*/
proto.api.DownlinkFrameLog.prototype.getPlaintextFrmPayload = function() {
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 10, false));
};
/**
* @param {boolean} value
* @return {!proto.api.DownlinkFrameLog} returns this
*/
proto.api.DownlinkFrameLog.prototype.setPlaintextFrmPayload = function(value) {
return jspb.Message.setProto3BooleanField(this, 10, value);
};
goog.object.extend(exports, proto.api);

View File

@ -1,33 +0,0 @@
import * as jspb from 'google-protobuf'
import * as google_protobuf_timestamp_pb from 'google-protobuf/google/protobuf/timestamp_pb';
import * as common_common_pb from '../common/common_pb';
import * as gw_gw_pb from '../gw/gw_pb';
export class RequestLog extends jspb.Message {
getService(): string;
setService(value: string): RequestLog;
getMethod(): string;
setMethod(value: string): RequestLog;
getMetadataMap(): jspb.Map<string, string>;
clearMetadataMap(): RequestLog;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): RequestLog.AsObject;
static toObject(includeInstance: boolean, msg: RequestLog): RequestLog.AsObject;
static serializeBinaryToWriter(message: RequestLog, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): RequestLog;
static deserializeBinaryFromReader(message: RequestLog, reader: jspb.BinaryReader): RequestLog;
}
export namespace RequestLog {
export type AsObject = {
service: string,
method: string,
metadataMap: Array<[string, string]>,
}
}

View File

@ -1,236 +0,0 @@
// source: api/request_log.proto
/**
* @fileoverview
* @enhanceable
* @suppress {messageConventions} JS Compiler reports an error if a variable or
* field starts with 'MSG_' and isn't a translatable message.
* @public
*/
// GENERATED CODE -- DO NOT EDIT!
var jspb = require('google-protobuf');
var goog = jspb;
var global = Function('return this')();
var google_protobuf_timestamp_pb = require('google-protobuf/google/protobuf/timestamp_pb.js');
goog.object.extend(proto, google_protobuf_timestamp_pb);
var common_common_pb = require('../common/common_pb.js');
goog.object.extend(proto, common_common_pb);
var gw_gw_pb = require('../gw/gw_pb.js');
goog.object.extend(proto, gw_gw_pb);
goog.exportSymbol('proto.api.RequestLog', null, global);
/**
* Generated by JsPbCodeGenerator.
* @param {Array=} opt_data Optional initial data array, typically from a
* server response, or constructed directly in Javascript. The array is used
* in place and becomes part of the constructed object. It is not cloned.
* If no data is provided, the constructed object will be empty, but still
* valid.
* @extends {jspb.Message}
* @constructor
*/
proto.api.RequestLog = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.RequestLog, jspb.Message);
if (goog.DEBUG && !COMPILED) {
/**
* @public
* @override
*/
proto.api.RequestLog.displayName = 'proto.api.RequestLog';
}
if (jspb.Message.GENERATE_TO_OBJECT) {
/**
* Creates an object representation of this proto.
* Field names that are reserved in JavaScript and will be renamed to pb_name.
* Optional fields that are not set will be set to undefined.
* To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
* For the list of reserved names please see:
* net/proto2/compiler/js/internal/generator.cc#kKeyword.
* @param {boolean=} opt_includeInstance Deprecated. whether to include the
* JSPB instance for transitional soy proto support:
* http://goto/soy-param-migration
* @return {!Object}
*/
proto.api.RequestLog.prototype.toObject = function(opt_includeInstance) {
return proto.api.RequestLog.toObject(opt_includeInstance, this);
};
/**
* Static version of the {@see toObject} method.
* @param {boolean|undefined} includeInstance Deprecated. Whether to include
* the JSPB instance for transitional soy proto support:
* http://goto/soy-param-migration
* @param {!proto.api.RequestLog} msg The msg instance to transform.
* @return {!Object}
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.api.RequestLog.toObject = function(includeInstance, msg) {
var f, obj = {
service: jspb.Message.getFieldWithDefault(msg, 1, ""),
method: jspb.Message.getFieldWithDefault(msg, 2, ""),
metadataMap: (f = msg.getMetadataMap()) ? f.toObject(includeInstance, undefined) : []
};
if (includeInstance) {
obj.$jspbMessageInstance = msg;
}
return obj;
};
}
/**
* Deserializes binary data (in protobuf wire format).
* @param {jspb.ByteSource} bytes The bytes to deserialize.
* @return {!proto.api.RequestLog}
*/
proto.api.RequestLog.deserializeBinary = function(bytes) {
var reader = new jspb.BinaryReader(bytes);
var msg = new proto.api.RequestLog;
return proto.api.RequestLog.deserializeBinaryFromReader(msg, reader);
};
/**
* Deserializes binary data (in protobuf wire format) from the
* given reader into the given message object.
* @param {!proto.api.RequestLog} msg The message object to deserialize into.
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
* @return {!proto.api.RequestLog}
*/
proto.api.RequestLog.deserializeBinaryFromReader = function(msg, reader) {
while (reader.nextField()) {
if (reader.isEndGroup()) {
break;
}
var field = reader.getFieldNumber();
switch (field) {
case 1:
var value = /** @type {string} */ (reader.readString());
msg.setService(value);
break;
case 2:
var value = /** @type {string} */ (reader.readString());
msg.setMethod(value);
break;
case 3:
var value = msg.getMetadataMap();
reader.readMessage(value, function(message, reader) {
jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", "");
});
break;
default:
reader.skipField();
break;
}
}
return msg;
};
/**
* Serializes the message to binary data (in protobuf wire format).
* @return {!Uint8Array}
*/
proto.api.RequestLog.prototype.serializeBinary = function() {
var writer = new jspb.BinaryWriter();
proto.api.RequestLog.serializeBinaryToWriter(this, writer);
return writer.getResultBuffer();
};
/**
* Serializes the given message to binary data (in protobuf wire
* format), writing to the given BinaryWriter.
* @param {!proto.api.RequestLog} message
* @param {!jspb.BinaryWriter} writer
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.api.RequestLog.serializeBinaryToWriter = function(message, writer) {
var f = undefined;
f = message.getService();
if (f.length > 0) {
writer.writeString(
1,
f
);
}
f = message.getMethod();
if (f.length > 0) {
writer.writeString(
2,
f
);
}
f = message.getMetadataMap(true);
if (f && f.getLength() > 0) {
f.serializeBinary(3, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);
}
};
/**
* optional string service = 1;
* @return {string}
*/
proto.api.RequestLog.prototype.getService = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};
/**
* @param {string} value
* @return {!proto.api.RequestLog} returns this
*/
proto.api.RequestLog.prototype.setService = function(value) {
return jspb.Message.setProto3StringField(this, 1, value);
};
/**
* optional string method = 2;
* @return {string}
*/
proto.api.RequestLog.prototype.getMethod = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};
/**
* @param {string} value
* @return {!proto.api.RequestLog} returns this
*/
proto.api.RequestLog.prototype.setMethod = function(value) {
return jspb.Message.setProto3StringField(this, 2, value);
};
/**
* map<string, string> metadata = 3;
* @param {boolean=} opt_noLazyCreate Do not create the map if
* empty, instead returning `undefined`
* @return {!jspb.Map<string,string>}
*/
proto.api.RequestLog.prototype.getMetadataMap = function(opt_noLazyCreate) {
return /** @type {!jspb.Map<string,string>} */ (
jspb.Message.getMapField(this, 3, opt_noLazyCreate,
null));
};
/**
* Clears values from the map. The map will be non-null.
* @return {!proto.api.RequestLog} returns this
*/
proto.api.RequestLog.prototype.clearMetadataMap = function() {
this.getMetadataMap().clear();
return this;};
goog.object.extend(exports, proto.api);

View File

@ -1,6 +1,6 @@
{
"name": "@chirpstack/chirpstack-api-grpc-web",
"version": "4.6.0-test.1",
"version": "4.6.0-test.3",
"description": "Chirpstack gRPC-web API",
"license": "MIT",
"devDependencies": {

View File

@ -8,7 +8,7 @@ plugins {
}
group = "io.chirpstack"
version = "4.6.0-test.1"
version = "4.6.0-test.3"
repositories {
mavenCentral()

13
api/js/Makefile vendored
View File

@ -1,4 +1,4 @@
.PHONY: requirements common gw api integration meta
.PHONY: requirements common gw api integration stream
PROTOC_PATH := ./node_modules/grpc-tools/bin/protoc
PROTOC_GEN_TS_PATH := ./node_modules/.bin/protoc-gen-ts
@ -6,7 +6,7 @@ PROTOC_GEN_GRPC_PATH := ./node_modules/.bin/grpc_tools_node_protoc_plugin
PROTOC_ARGS := -I=/googleapis -I=../proto --plugin=protoc-gen-ts=$(PROTOC_GEN_TS_PATH) --plugin=protoc-gen-grpc=$(PROTOC_GEN_GRPC_PATH) --js_out=import_style=commonjs,binary:. --ts_out=service=grpc-node,mode=grpc-js:.
PROTOC_GRPC_ARGS := $(PROTOC_ARGS) --grpc_out=grpc_js:.
all: requirements common gw api integration meta google-api
all: requirements common gw api integration stream google-api
requirements:
yarn install
@ -26,16 +26,17 @@ api:
protoc ${PROTOC_GRPC_ARGS} ../proto/api/device_profile_template.proto
protoc ${PROTOC_GRPC_ARGS} ../proto/api/device.proto
protoc ${PROTOC_GRPC_ARGS} ../proto/api/gateway.proto
protoc ${PROTOC_GRPC_ARGS} ../proto/api/frame_log.proto
protoc ${PROTOC_GRPC_ARGS} ../proto/api/multicast_group.proto
protoc ${PROTOC_GRPC_ARGS} ../proto/api/request_log.proto
protoc ${PROTOC_GRPC_ARGS} ../proto/api/relay.proto
integration:
protoc ${PROTOC_ARGS} ../proto/integration/integration.proto
meta:
protoc ${PROTOC_ARGS} ../proto/meta/meta.proto
stream:
protoc ${PROTOC_ARGS} ../proto/stream/meta.proto
protoc ${PROTOC_ARGS} ../proto/stream/frame.proto
protoc ${PROTOC_ARGS} ../proto/stream/api_request.proto
protoc ${PROTOC_ARGS} ../proto/stream/backend_interfaces.proto
google-api:
protoc $(PROTOC_ARGS) /googleapis/google/api/*.proto

View File

@ -1 +0,0 @@
// GENERATED CODE -- NO SERVICES IN PROTO

View File

@ -1 +0,0 @@
// GENERATED CODE -- NO SERVICES IN PROTO

2
api/js/package.json vendored
View File

@ -1,6 +1,6 @@
{
"name": "@chirpstack/chirpstack-api",
"version": "4.6.0-test.1",
"version": "4.6.0-test.3",
"description": "Chirpstack JS and TS API",
"license": "MIT",
"devDependencies": {

View File

@ -1,12 +1,12 @@
// package: api
// file: api/request_log.proto
// package: stream
// file: stream/api_request.proto
import * as jspb from "google-protobuf";
import * as google_protobuf_timestamp_pb from "google-protobuf/google/protobuf/timestamp_pb";
import * as common_common_pb from "../common/common_pb";
import * as gw_gw_pb from "../gw/gw_pb";
export class RequestLog extends jspb.Message {
export class ApiRequestLog extends jspb.Message {
getService(): string;
setService(value: string): void;
@ -16,16 +16,16 @@ export class RequestLog extends jspb.Message {
getMetadataMap(): jspb.Map<string, string>;
clearMetadataMap(): void;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): RequestLog.AsObject;
static toObject(includeInstance: boolean, msg: RequestLog): RequestLog.AsObject;
toObject(includeInstance?: boolean): ApiRequestLog.AsObject;
static toObject(includeInstance: boolean, msg: ApiRequestLog): ApiRequestLog.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: RequestLog, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): RequestLog;
static deserializeBinaryFromReader(message: RequestLog, reader: jspb.BinaryReader): RequestLog;
static serializeBinaryToWriter(message: ApiRequestLog, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): ApiRequestLog;
static deserializeBinaryFromReader(message: ApiRequestLog, reader: jspb.BinaryReader): ApiRequestLog;
}
export namespace RequestLog {
export namespace ApiRequestLog {
export type AsObject = {
service: string,
method: string,

View File

@ -1,4 +1,4 @@
// source: api/request_log.proto
// source: stream/api_request.proto
/**
* @fileoverview
* @enhanceable
@ -18,7 +18,7 @@ var common_common_pb = require('../common/common_pb.js');
goog.object.extend(proto, common_common_pb);
var gw_gw_pb = require('../gw/gw_pb.js');
goog.object.extend(proto, gw_gw_pb);
goog.exportSymbol('proto.api.RequestLog', null, global);
goog.exportSymbol('proto.stream.ApiRequestLog', null, global);
/**
* Generated by JsPbCodeGenerator.
* @param {Array=} opt_data Optional initial data array, typically from a
@ -29,16 +29,16 @@ goog.exportSymbol('proto.api.RequestLog', null, global);
* @extends {jspb.Message}
* @constructor
*/
proto.api.RequestLog = function(opt_data) {
proto.stream.ApiRequestLog = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.RequestLog, jspb.Message);
goog.inherits(proto.stream.ApiRequestLog, jspb.Message);
if (goog.DEBUG && !COMPILED) {
/**
* @public
* @override
*/
proto.api.RequestLog.displayName = 'proto.api.RequestLog';
proto.stream.ApiRequestLog.displayName = 'proto.stream.ApiRequestLog';
}
@ -56,8 +56,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) {
* http://goto/soy-param-migration
* @return {!Object}
*/
proto.api.RequestLog.prototype.toObject = function(opt_includeInstance) {
return proto.api.RequestLog.toObject(opt_includeInstance, this);
proto.stream.ApiRequestLog.prototype.toObject = function(opt_includeInstance) {
return proto.stream.ApiRequestLog.toObject(opt_includeInstance, this);
};
@ -66,11 +66,11 @@ proto.api.RequestLog.prototype.toObject = function(opt_includeInstance) {
* @param {boolean|undefined} includeInstance Deprecated. Whether to include
* the JSPB instance for transitional soy proto support:
* http://goto/soy-param-migration
* @param {!proto.api.RequestLog} msg The msg instance to transform.
* @param {!proto.stream.ApiRequestLog} msg The msg instance to transform.
* @return {!Object}
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.api.RequestLog.toObject = function(includeInstance, msg) {
proto.stream.ApiRequestLog.toObject = function(includeInstance, msg) {
var f, obj = {
service: jspb.Message.getFieldWithDefault(msg, 1, ""),
method: jspb.Message.getFieldWithDefault(msg, 2, ""),
@ -88,23 +88,23 @@ proto.api.RequestLog.toObject = function(includeInstance, msg) {
/**
* Deserializes binary data (in protobuf wire format).
* @param {jspb.ByteSource} bytes The bytes to deserialize.
* @return {!proto.api.RequestLog}
* @return {!proto.stream.ApiRequestLog}
*/
proto.api.RequestLog.deserializeBinary = function(bytes) {
proto.stream.ApiRequestLog.deserializeBinary = function(bytes) {
var reader = new jspb.BinaryReader(bytes);
var msg = new proto.api.RequestLog;
return proto.api.RequestLog.deserializeBinaryFromReader(msg, reader);
var msg = new proto.stream.ApiRequestLog;
return proto.stream.ApiRequestLog.deserializeBinaryFromReader(msg, reader);
};
/**
* Deserializes binary data (in protobuf wire format) from the
* given reader into the given message object.
* @param {!proto.api.RequestLog} msg The message object to deserialize into.
* @param {!proto.stream.ApiRequestLog} msg The message object to deserialize into.
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
* @return {!proto.api.RequestLog}
* @return {!proto.stream.ApiRequestLog}
*/
proto.api.RequestLog.deserializeBinaryFromReader = function(msg, reader) {
proto.stream.ApiRequestLog.deserializeBinaryFromReader = function(msg, reader) {
while (reader.nextField()) {
if (reader.isEndGroup()) {
break;
@ -138,9 +138,9 @@ proto.api.RequestLog.deserializeBinaryFromReader = function(msg, reader) {
* Serializes the message to binary data (in protobuf wire format).
* @return {!Uint8Array}
*/
proto.api.RequestLog.prototype.serializeBinary = function() {
proto.stream.ApiRequestLog.prototype.serializeBinary = function() {
var writer = new jspb.BinaryWriter();
proto.api.RequestLog.serializeBinaryToWriter(this, writer);
proto.stream.ApiRequestLog.serializeBinaryToWriter(this, writer);
return writer.getResultBuffer();
};
@ -148,11 +148,11 @@ proto.api.RequestLog.prototype.serializeBinary = function() {
/**
* Serializes the given message to binary data (in protobuf wire
* format), writing to the given BinaryWriter.
* @param {!proto.api.RequestLog} message
* @param {!proto.stream.ApiRequestLog} message
* @param {!jspb.BinaryWriter} writer
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.api.RequestLog.serializeBinaryToWriter = function(message, writer) {
proto.stream.ApiRequestLog.serializeBinaryToWriter = function(message, writer) {
var f = undefined;
f = message.getService();
if (f.length > 0) {
@ -179,16 +179,16 @@ proto.api.RequestLog.serializeBinaryToWriter = function(message, writer) {
* optional string service = 1;
* @return {string}
*/
proto.api.RequestLog.prototype.getService = function() {
proto.stream.ApiRequestLog.prototype.getService = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};
/**
* @param {string} value
* @return {!proto.api.RequestLog} returns this
* @return {!proto.stream.ApiRequestLog} returns this
*/
proto.api.RequestLog.prototype.setService = function(value) {
proto.stream.ApiRequestLog.prototype.setService = function(value) {
return jspb.Message.setProto3StringField(this, 1, value);
};
@ -197,16 +197,16 @@ proto.api.RequestLog.prototype.setService = function(value) {
* optional string method = 2;
* @return {string}
*/
proto.api.RequestLog.prototype.getMethod = function() {
proto.stream.ApiRequestLog.prototype.getMethod = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};
/**
* @param {string} value
* @return {!proto.api.RequestLog} returns this
* @return {!proto.stream.ApiRequestLog} returns this
*/
proto.api.RequestLog.prototype.setMethod = function(value) {
proto.stream.ApiRequestLog.prototype.setMethod = function(value) {
return jspb.Message.setProto3StringField(this, 2, value);
};
@ -217,7 +217,7 @@ proto.api.RequestLog.prototype.setMethod = function(value) {
* empty, instead returning `undefined`
* @return {!jspb.Map<string,string>}
*/
proto.api.RequestLog.prototype.getMetadataMap = function(opt_noLazyCreate) {
proto.stream.ApiRequestLog.prototype.getMetadataMap = function(opt_noLazyCreate) {
return /** @type {!jspb.Map<string,string>} */ (
jspb.Message.getMapField(this, 3, opt_noLazyCreate,
null));
@ -226,11 +226,11 @@ proto.api.RequestLog.prototype.getMetadataMap = function(opt_noLazyCreate) {
/**
* Clears values from the map. The map will be non-null.
* @return {!proto.api.RequestLog} returns this
* @return {!proto.stream.ApiRequestLog} returns this
*/
proto.api.RequestLog.prototype.clearMetadataMap = function() {
proto.stream.ApiRequestLog.prototype.clearMetadataMap = function() {
this.getMetadataMap().clear();
return this;};
goog.object.extend(exports, proto.api);
goog.object.extend(exports, proto.stream);

View File

@ -0,0 +1,60 @@
// package: stream
// file: stream/backend_interfaces.proto
import * as jspb from "google-protobuf";
import * as google_protobuf_timestamp_pb from "google-protobuf/google/protobuf/timestamp_pb";
export class BackendInterfacesRequest extends jspb.Message {
getSenderId(): string;
setSenderId(value: string): void;
getReceiverId(): string;
setReceiverId(value: string): void;
hasTime(): boolean;
clearTime(): void;
getTime(): google_protobuf_timestamp_pb.Timestamp | undefined;
setTime(value?: google_protobuf_timestamp_pb.Timestamp): void;
getTransactionId(): number;
setTransactionId(value: number): void;
getMessageType(): string;
setMessageType(value: string): void;
getResultCode(): string;
setResultCode(value: string): void;
getRequestBody(): string;
setRequestBody(value: string): void;
getRequestError(): string;
setRequestError(value: string): void;
getResponseBody(): string;
setResponseBody(value: string): void;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): BackendInterfacesRequest.AsObject;
static toObject(includeInstance: boolean, msg: BackendInterfacesRequest): BackendInterfacesRequest.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: BackendInterfacesRequest, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): BackendInterfacesRequest;
static deserializeBinaryFromReader(message: BackendInterfacesRequest, reader: jspb.BinaryReader): BackendInterfacesRequest;
}
export namespace BackendInterfacesRequest {
export type AsObject = {
senderId: string,
receiverId: string,
time?: google_protobuf_timestamp_pb.Timestamp.AsObject,
transactionId: number,
messageType: string,
resultCode: string,
requestBody: string,
requestError: string,
responseBody: string,
}
}

430
api/js/stream/backend_interfaces_pb.js vendored Normal file
View File

@ -0,0 +1,430 @@
// source: stream/backend_interfaces.proto
/**
* @fileoverview
* @enhanceable
* @suppress {messageConventions} JS Compiler reports an error if a variable or
* field starts with 'MSG_' and isn't a translatable message.
* @public
*/
// GENERATED CODE -- DO NOT EDIT!
var jspb = require('google-protobuf');
var goog = jspb;
var global = Function('return this')();
var google_protobuf_timestamp_pb = require('google-protobuf/google/protobuf/timestamp_pb.js');
goog.object.extend(proto, google_protobuf_timestamp_pb);
goog.exportSymbol('proto.stream.BackendInterfacesRequest', null, global);
/**
* Generated by JsPbCodeGenerator.
* @param {Array=} opt_data Optional initial data array, typically from a
* server response, or constructed directly in Javascript. The array is used
* in place and becomes part of the constructed object. It is not cloned.
* If no data is provided, the constructed object will be empty, but still
* valid.
* @extends {jspb.Message}
* @constructor
*/
proto.stream.BackendInterfacesRequest = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.stream.BackendInterfacesRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
/**
* @public
* @override
*/
proto.stream.BackendInterfacesRequest.displayName = 'proto.stream.BackendInterfacesRequest';
}
if (jspb.Message.GENERATE_TO_OBJECT) {
/**
* Creates an object representation of this proto.
* Field names that are reserved in JavaScript and will be renamed to pb_name.
* Optional fields that are not set will be set to undefined.
* To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
* For the list of reserved names please see:
* net/proto2/compiler/js/internal/generator.cc#kKeyword.
* @param {boolean=} opt_includeInstance Deprecated. whether to include the
* JSPB instance for transitional soy proto support:
* http://goto/soy-param-migration
* @return {!Object}
*/
proto.stream.BackendInterfacesRequest.prototype.toObject = function(opt_includeInstance) {
return proto.stream.BackendInterfacesRequest.toObject(opt_includeInstance, this);
};
/**
* Static version of the {@see toObject} method.
* @param {boolean|undefined} includeInstance Deprecated. Whether to include
* the JSPB instance for transitional soy proto support:
* http://goto/soy-param-migration
* @param {!proto.stream.BackendInterfacesRequest} msg The msg instance to transform.
* @return {!Object}
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.stream.BackendInterfacesRequest.toObject = function(includeInstance, msg) {
var f, obj = {
senderId: jspb.Message.getFieldWithDefault(msg, 1, ""),
receiverId: jspb.Message.getFieldWithDefault(msg, 2, ""),
time: (f = msg.getTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
transactionId: jspb.Message.getFieldWithDefault(msg, 4, 0),
messageType: jspb.Message.getFieldWithDefault(msg, 5, ""),
resultCode: jspb.Message.getFieldWithDefault(msg, 6, ""),
requestBody: jspb.Message.getFieldWithDefault(msg, 7, ""),
requestError: jspb.Message.getFieldWithDefault(msg, 8, ""),
responseBody: jspb.Message.getFieldWithDefault(msg, 9, "")
};
if (includeInstance) {
obj.$jspbMessageInstance = msg;
}
return obj;
};
}
/**
* Deserializes binary data (in protobuf wire format).
* @param {jspb.ByteSource} bytes The bytes to deserialize.
* @return {!proto.stream.BackendInterfacesRequest}
*/
proto.stream.BackendInterfacesRequest.deserializeBinary = function(bytes) {
var reader = new jspb.BinaryReader(bytes);
var msg = new proto.stream.BackendInterfacesRequest;
return proto.stream.BackendInterfacesRequest.deserializeBinaryFromReader(msg, reader);
};
/**
* Deserializes binary data (in protobuf wire format) from the
* given reader into the given message object.
* @param {!proto.stream.BackendInterfacesRequest} msg The message object to deserialize into.
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
* @return {!proto.stream.BackendInterfacesRequest}
*/
proto.stream.BackendInterfacesRequest.deserializeBinaryFromReader = function(msg, reader) {
while (reader.nextField()) {
if (reader.isEndGroup()) {
break;
}
var field = reader.getFieldNumber();
switch (field) {
case 1:
var value = /** @type {string} */ (reader.readString());
msg.setSenderId(value);
break;
case 2:
var value = /** @type {string} */ (reader.readString());
msg.setReceiverId(value);
break;
case 3:
var value = new google_protobuf_timestamp_pb.Timestamp;
reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
msg.setTime(value);
break;
case 4:
var value = /** @type {number} */ (reader.readUint32());
msg.setTransactionId(value);
break;
case 5:
var value = /** @type {string} */ (reader.readString());
msg.setMessageType(value);
break;
case 6:
var value = /** @type {string} */ (reader.readString());
msg.setResultCode(value);
break;
case 7:
var value = /** @type {string} */ (reader.readString());
msg.setRequestBody(value);
break;
case 8:
var value = /** @type {string} */ (reader.readString());
msg.setRequestError(value);
break;
case 9:
var value = /** @type {string} */ (reader.readString());
msg.setResponseBody(value);
break;
default:
reader.skipField();
break;
}
}
return msg;
};
/**
* Serializes the message to binary data (in protobuf wire format).
* @return {!Uint8Array}
*/
proto.stream.BackendInterfacesRequest.prototype.serializeBinary = function() {
var writer = new jspb.BinaryWriter();
proto.stream.BackendInterfacesRequest.serializeBinaryToWriter(this, writer);
return writer.getResultBuffer();
};
/**
* Serializes the given message to binary data (in protobuf wire
* format), writing to the given BinaryWriter.
* @param {!proto.stream.BackendInterfacesRequest} message
* @param {!jspb.BinaryWriter} writer
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.stream.BackendInterfacesRequest.serializeBinaryToWriter = function(message, writer) {
var f = undefined;
f = message.getSenderId();
if (f.length > 0) {
writer.writeString(
1,
f
);
}
f = message.getReceiverId();
if (f.length > 0) {
writer.writeString(
2,
f
);
}
f = message.getTime();
if (f != null) {
writer.writeMessage(
3,
f,
google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
);
}
f = message.getTransactionId();
if (f !== 0) {
writer.writeUint32(
4,
f
);
}
f = message.getMessageType();
if (f.length > 0) {
writer.writeString(
5,
f
);
}
f = message.getResultCode();
if (f.length > 0) {
writer.writeString(
6,
f
);
}
f = message.getRequestBody();
if (f.length > 0) {
writer.writeString(
7,
f
);
}
f = message.getRequestError();
if (f.length > 0) {
writer.writeString(
8,
f
);
}
f = message.getResponseBody();
if (f.length > 0) {
writer.writeString(
9,
f
);
}
};
/**
* optional string sender_id = 1;
* @return {string}
*/
proto.stream.BackendInterfacesRequest.prototype.getSenderId = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};
/**
* @param {string} value
* @return {!proto.stream.BackendInterfacesRequest} returns this
*/
proto.stream.BackendInterfacesRequest.prototype.setSenderId = function(value) {
return jspb.Message.setProto3StringField(this, 1, value);
};
/**
* optional string receiver_id = 2;
* @return {string}
*/
proto.stream.BackendInterfacesRequest.prototype.getReceiverId = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};
/**
* @param {string} value
* @return {!proto.stream.BackendInterfacesRequest} returns this
*/
proto.stream.BackendInterfacesRequest.prototype.setReceiverId = function(value) {
return jspb.Message.setProto3StringField(this, 2, value);
};
/**
* optional google.protobuf.Timestamp time = 3;
* @return {?proto.google.protobuf.Timestamp}
*/
proto.stream.BackendInterfacesRequest.prototype.getTime = function() {
return /** @type{?proto.google.protobuf.Timestamp} */ (
jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 3));
};
/**
* @param {?proto.google.protobuf.Timestamp|undefined} value
* @return {!proto.stream.BackendInterfacesRequest} returns this
*/
proto.stream.BackendInterfacesRequest.prototype.setTime = function(value) {
return jspb.Message.setWrapperField(this, 3, value);
};
/**
* Clears the message field making it undefined.
* @return {!proto.stream.BackendInterfacesRequest} returns this
*/
proto.stream.BackendInterfacesRequest.prototype.clearTime = function() {
return this.setTime(undefined);
};
/**
* Returns whether this field is set.
* @return {boolean}
*/
proto.stream.BackendInterfacesRequest.prototype.hasTime = function() {
return jspb.Message.getField(this, 3) != null;
};
/**
* optional uint32 transaction_id = 4;
* @return {number}
*/
proto.stream.BackendInterfacesRequest.prototype.getTransactionId = function() {
return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};
/**
* @param {number} value
* @return {!proto.stream.BackendInterfacesRequest} returns this
*/
proto.stream.BackendInterfacesRequest.prototype.setTransactionId = function(value) {
return jspb.Message.setProto3IntField(this, 4, value);
};
/**
* optional string message_type = 5;
* @return {string}
*/
proto.stream.BackendInterfacesRequest.prototype.getMessageType = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};
/**
* @param {string} value
* @return {!proto.stream.BackendInterfacesRequest} returns this
*/
proto.stream.BackendInterfacesRequest.prototype.setMessageType = function(value) {
return jspb.Message.setProto3StringField(this, 5, value);
};
/**
* optional string result_code = 6;
* @return {string}
*/
proto.stream.BackendInterfacesRequest.prototype.getResultCode = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};
/**
* @param {string} value
* @return {!proto.stream.BackendInterfacesRequest} returns this
*/
proto.stream.BackendInterfacesRequest.prototype.setResultCode = function(value) {
return jspb.Message.setProto3StringField(this, 6, value);
};
/**
* optional string request_body = 7;
* @return {string}
*/
proto.stream.BackendInterfacesRequest.prototype.getRequestBody = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
};
/**
* @param {string} value
* @return {!proto.stream.BackendInterfacesRequest} returns this
*/
proto.stream.BackendInterfacesRequest.prototype.setRequestBody = function(value) {
return jspb.Message.setProto3StringField(this, 7, value);
};
/**
* optional string request_error = 8;
* @return {string}
*/
proto.stream.BackendInterfacesRequest.prototype.getRequestError = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, ""));
};
/**
* @param {string} value
* @return {!proto.stream.BackendInterfacesRequest} returns this
*/
proto.stream.BackendInterfacesRequest.prototype.setRequestError = function(value) {
return jspb.Message.setProto3StringField(this, 8, value);
};
/**
* optional string response_body = 9;
* @return {string}
*/
proto.stream.BackendInterfacesRequest.prototype.getResponseBody = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, ""));
};
/**
* @param {string} value
* @return {!proto.stream.BackendInterfacesRequest} returns this
*/
proto.stream.BackendInterfacesRequest.prototype.setResponseBody = function(value) {
return jspb.Message.setProto3StringField(this, 9, value);
};
goog.object.extend(exports, proto.stream);

View File

@ -1,5 +1,5 @@
// package: api
// file: api/frame_log.proto
// package: stream
// file: stream/frame.proto
import * as jspb from "google-protobuf";
import * as google_protobuf_timestamp_pb from "google-protobuf/google/protobuf/timestamp_pb";

View File

@ -1,4 +1,4 @@
// source: api/frame_log.proto
// source: stream/frame.proto
/**
* @fileoverview
* @enhanceable
@ -18,8 +18,8 @@ var common_common_pb = require('../common/common_pb.js');
goog.object.extend(proto, common_common_pb);
var gw_gw_pb = require('../gw/gw_pb.js');
goog.object.extend(proto, gw_gw_pb);
goog.exportSymbol('proto.api.DownlinkFrameLog', null, global);
goog.exportSymbol('proto.api.UplinkFrameLog', null, global);
goog.exportSymbol('proto.stream.DownlinkFrameLog', null, global);
goog.exportSymbol('proto.stream.UplinkFrameLog', null, global);
/**
* Generated by JsPbCodeGenerator.
* @param {Array=} opt_data Optional initial data array, typically from a
@ -30,16 +30,16 @@ goog.exportSymbol('proto.api.UplinkFrameLog', null, global);
* @extends {jspb.Message}
* @constructor
*/
proto.api.UplinkFrameLog = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, proto.api.UplinkFrameLog.repeatedFields_, null);
proto.stream.UplinkFrameLog = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, proto.stream.UplinkFrameLog.repeatedFields_, null);
};
goog.inherits(proto.api.UplinkFrameLog, jspb.Message);
goog.inherits(proto.stream.UplinkFrameLog, jspb.Message);
if (goog.DEBUG && !COMPILED) {
/**
* @public
* @override
*/
proto.api.UplinkFrameLog.displayName = 'proto.api.UplinkFrameLog';
proto.stream.UplinkFrameLog.displayName = 'proto.stream.UplinkFrameLog';
}
/**
* Generated by JsPbCodeGenerator.
@ -51,16 +51,16 @@ if (goog.DEBUG && !COMPILED) {
* @extends {jspb.Message}
* @constructor
*/
proto.api.DownlinkFrameLog = function(opt_data) {
proto.stream.DownlinkFrameLog = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.DownlinkFrameLog, jspb.Message);
goog.inherits(proto.stream.DownlinkFrameLog, jspb.Message);
if (goog.DEBUG && !COMPILED) {
/**
* @public
* @override
*/
proto.api.DownlinkFrameLog.displayName = 'proto.api.DownlinkFrameLog';
proto.stream.DownlinkFrameLog.displayName = 'proto.stream.DownlinkFrameLog';
}
/**
@ -68,7 +68,7 @@ if (goog.DEBUG && !COMPILED) {
* @private {!Array<number>}
* @const
*/
proto.api.UplinkFrameLog.repeatedFields_ = [3];
proto.stream.UplinkFrameLog.repeatedFields_ = [3];
@ -85,8 +85,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) {
* http://goto/soy-param-migration
* @return {!Object}
*/
proto.api.UplinkFrameLog.prototype.toObject = function(opt_includeInstance) {
return proto.api.UplinkFrameLog.toObject(opt_includeInstance, this);
proto.stream.UplinkFrameLog.prototype.toObject = function(opt_includeInstance) {
return proto.stream.UplinkFrameLog.toObject(opt_includeInstance, this);
};
@ -95,11 +95,11 @@ proto.api.UplinkFrameLog.prototype.toObject = function(opt_includeInstance) {
* @param {boolean|undefined} includeInstance Deprecated. Whether to include
* the JSPB instance for transitional soy proto support:
* http://goto/soy-param-migration
* @param {!proto.api.UplinkFrameLog} msg The msg instance to transform.
* @param {!proto.stream.UplinkFrameLog} msg The msg instance to transform.
* @return {!Object}
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.api.UplinkFrameLog.toObject = function(includeInstance, msg) {
proto.stream.UplinkFrameLog.toObject = function(includeInstance, msg) {
var f, obj = {
phyPayload: msg.getPhyPayload_asB64(),
txInfo: (f = msg.getTxInfo()) && gw_gw_pb.UplinkTxInfo.toObject(includeInstance, f),
@ -124,23 +124,23 @@ proto.api.UplinkFrameLog.toObject = function(includeInstance, msg) {
/**
* Deserializes binary data (in protobuf wire format).
* @param {jspb.ByteSource} bytes The bytes to deserialize.
* @return {!proto.api.UplinkFrameLog}
* @return {!proto.stream.UplinkFrameLog}
*/
proto.api.UplinkFrameLog.deserializeBinary = function(bytes) {
proto.stream.UplinkFrameLog.deserializeBinary = function(bytes) {
var reader = new jspb.BinaryReader(bytes);
var msg = new proto.api.UplinkFrameLog;
return proto.api.UplinkFrameLog.deserializeBinaryFromReader(msg, reader);
var msg = new proto.stream.UplinkFrameLog;
return proto.stream.UplinkFrameLog.deserializeBinaryFromReader(msg, reader);
};
/**
* Deserializes binary data (in protobuf wire format) from the
* given reader into the given message object.
* @param {!proto.api.UplinkFrameLog} msg The message object to deserialize into.
* @param {!proto.stream.UplinkFrameLog} msg The message object to deserialize into.
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
* @return {!proto.api.UplinkFrameLog}
* @return {!proto.stream.UplinkFrameLog}
*/
proto.api.UplinkFrameLog.deserializeBinaryFromReader = function(msg, reader) {
proto.stream.UplinkFrameLog.deserializeBinaryFromReader = function(msg, reader) {
while (reader.nextField()) {
if (reader.isEndGroup()) {
break;
@ -199,9 +199,9 @@ proto.api.UplinkFrameLog.deserializeBinaryFromReader = function(msg, reader) {
* Serializes the message to binary data (in protobuf wire format).
* @return {!Uint8Array}
*/
proto.api.UplinkFrameLog.prototype.serializeBinary = function() {
proto.stream.UplinkFrameLog.prototype.serializeBinary = function() {
var writer = new jspb.BinaryWriter();
proto.api.UplinkFrameLog.serializeBinaryToWriter(this, writer);
proto.stream.UplinkFrameLog.serializeBinaryToWriter(this, writer);
return writer.getResultBuffer();
};
@ -209,11 +209,11 @@ proto.api.UplinkFrameLog.prototype.serializeBinary = function() {
/**
* Serializes the given message to binary data (in protobuf wire
* format), writing to the given BinaryWriter.
* @param {!proto.api.UplinkFrameLog} message
* @param {!proto.stream.UplinkFrameLog} message
* @param {!jspb.BinaryWriter} writer
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.api.UplinkFrameLog.serializeBinaryToWriter = function(message, writer) {
proto.stream.UplinkFrameLog.serializeBinaryToWriter = function(message, writer) {
var f = undefined;
f = message.getPhyPayload_asU8();
if (f.length > 0) {
@ -288,7 +288,7 @@ proto.api.UplinkFrameLog.serializeBinaryToWriter = function(message, writer) {
* optional bytes phy_payload = 1;
* @return {!(string|Uint8Array)}
*/
proto.api.UplinkFrameLog.prototype.getPhyPayload = function() {
proto.stream.UplinkFrameLog.prototype.getPhyPayload = function() {
return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};
@ -298,7 +298,7 @@ proto.api.UplinkFrameLog.prototype.getPhyPayload = function() {
* This is a type-conversion wrapper around `getPhyPayload()`
* @return {string}
*/
proto.api.UplinkFrameLog.prototype.getPhyPayload_asB64 = function() {
proto.stream.UplinkFrameLog.prototype.getPhyPayload_asB64 = function() {
return /** @type {string} */ (jspb.Message.bytesAsB64(
this.getPhyPayload()));
};
@ -311,7 +311,7 @@ proto.api.UplinkFrameLog.prototype.getPhyPayload_asB64 = function() {
* This is a type-conversion wrapper around `getPhyPayload()`
* @return {!Uint8Array}
*/
proto.api.UplinkFrameLog.prototype.getPhyPayload_asU8 = function() {
proto.stream.UplinkFrameLog.prototype.getPhyPayload_asU8 = function() {
return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(
this.getPhyPayload()));
};
@ -319,9 +319,9 @@ proto.api.UplinkFrameLog.prototype.getPhyPayload_asU8 = function() {
/**
* @param {!(string|Uint8Array)} value
* @return {!proto.api.UplinkFrameLog} returns this
* @return {!proto.stream.UplinkFrameLog} returns this
*/
proto.api.UplinkFrameLog.prototype.setPhyPayload = function(value) {
proto.stream.UplinkFrameLog.prototype.setPhyPayload = function(value) {
return jspb.Message.setProto3BytesField(this, 1, value);
};
@ -330,7 +330,7 @@ proto.api.UplinkFrameLog.prototype.setPhyPayload = function(value) {
* optional gw.UplinkTxInfo tx_info = 2;
* @return {?proto.gw.UplinkTxInfo}
*/
proto.api.UplinkFrameLog.prototype.getTxInfo = function() {
proto.stream.UplinkFrameLog.prototype.getTxInfo = function() {
return /** @type{?proto.gw.UplinkTxInfo} */ (
jspb.Message.getWrapperField(this, gw_gw_pb.UplinkTxInfo, 2));
};
@ -338,18 +338,18 @@ proto.api.UplinkFrameLog.prototype.getTxInfo = function() {
/**
* @param {?proto.gw.UplinkTxInfo|undefined} value
* @return {!proto.api.UplinkFrameLog} returns this
* @return {!proto.stream.UplinkFrameLog} returns this
*/
proto.api.UplinkFrameLog.prototype.setTxInfo = function(value) {
proto.stream.UplinkFrameLog.prototype.setTxInfo = function(value) {
return jspb.Message.setWrapperField(this, 2, value);
};
/**
* Clears the message field making it undefined.
* @return {!proto.api.UplinkFrameLog} returns this
* @return {!proto.stream.UplinkFrameLog} returns this
*/
proto.api.UplinkFrameLog.prototype.clearTxInfo = function() {
proto.stream.UplinkFrameLog.prototype.clearTxInfo = function() {
return this.setTxInfo(undefined);
};
@ -358,7 +358,7 @@ proto.api.UplinkFrameLog.prototype.clearTxInfo = function() {
* Returns whether this field is set.
* @return {boolean}
*/
proto.api.UplinkFrameLog.prototype.hasTxInfo = function() {
proto.stream.UplinkFrameLog.prototype.hasTxInfo = function() {
return jspb.Message.getField(this, 2) != null;
};
@ -367,7 +367,7 @@ proto.api.UplinkFrameLog.prototype.hasTxInfo = function() {
* repeated gw.UplinkRxInfo rx_info = 3;
* @return {!Array<!proto.gw.UplinkRxInfo>}
*/
proto.api.UplinkFrameLog.prototype.getRxInfoList = function() {
proto.stream.UplinkFrameLog.prototype.getRxInfoList = function() {
return /** @type{!Array<!proto.gw.UplinkRxInfo>} */ (
jspb.Message.getRepeatedWrapperField(this, gw_gw_pb.UplinkRxInfo, 3));
};
@ -375,9 +375,9 @@ proto.api.UplinkFrameLog.prototype.getRxInfoList = function() {
/**
* @param {!Array<!proto.gw.UplinkRxInfo>} value
* @return {!proto.api.UplinkFrameLog} returns this
* @return {!proto.stream.UplinkFrameLog} returns this
*/
proto.api.UplinkFrameLog.prototype.setRxInfoList = function(value) {
proto.stream.UplinkFrameLog.prototype.setRxInfoList = function(value) {
return jspb.Message.setRepeatedWrapperField(this, 3, value);
};
@ -387,16 +387,16 @@ proto.api.UplinkFrameLog.prototype.setRxInfoList = function(value) {
* @param {number=} opt_index
* @return {!proto.gw.UplinkRxInfo}
*/
proto.api.UplinkFrameLog.prototype.addRxInfo = function(opt_value, opt_index) {
proto.stream.UplinkFrameLog.prototype.addRxInfo = function(opt_value, opt_index) {
return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.gw.UplinkRxInfo, opt_index);
};
/**
* Clears the list making it empty but non-null.
* @return {!proto.api.UplinkFrameLog} returns this
* @return {!proto.stream.UplinkFrameLog} returns this
*/
proto.api.UplinkFrameLog.prototype.clearRxInfoList = function() {
proto.stream.UplinkFrameLog.prototype.clearRxInfoList = function() {
return this.setRxInfoList([]);
};
@ -405,16 +405,16 @@ proto.api.UplinkFrameLog.prototype.clearRxInfoList = function() {
* optional common.MType m_type = 4;
* @return {!proto.common.MType}
*/
proto.api.UplinkFrameLog.prototype.getMType = function() {
proto.stream.UplinkFrameLog.prototype.getMType = function() {
return /** @type {!proto.common.MType} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};
/**
* @param {!proto.common.MType} value
* @return {!proto.api.UplinkFrameLog} returns this
* @return {!proto.stream.UplinkFrameLog} returns this
*/
proto.api.UplinkFrameLog.prototype.setMType = function(value) {
proto.stream.UplinkFrameLog.prototype.setMType = function(value) {
return jspb.Message.setProto3EnumField(this, 4, value);
};
@ -423,16 +423,16 @@ proto.api.UplinkFrameLog.prototype.setMType = function(value) {
* optional string dev_addr = 5;
* @return {string}
*/
proto.api.UplinkFrameLog.prototype.getDevAddr = function() {
proto.stream.UplinkFrameLog.prototype.getDevAddr = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};
/**
* @param {string} value
* @return {!proto.api.UplinkFrameLog} returns this
* @return {!proto.stream.UplinkFrameLog} returns this
*/
proto.api.UplinkFrameLog.prototype.setDevAddr = function(value) {
proto.stream.UplinkFrameLog.prototype.setDevAddr = function(value) {
return jspb.Message.setProto3StringField(this, 5, value);
};
@ -441,16 +441,16 @@ proto.api.UplinkFrameLog.prototype.setDevAddr = function(value) {
* optional string dev_eui = 6;
* @return {string}
*/
proto.api.UplinkFrameLog.prototype.getDevEui = function() {
proto.stream.UplinkFrameLog.prototype.getDevEui = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};
/**
* @param {string} value
* @return {!proto.api.UplinkFrameLog} returns this
* @return {!proto.stream.UplinkFrameLog} returns this
*/
proto.api.UplinkFrameLog.prototype.setDevEui = function(value) {
proto.stream.UplinkFrameLog.prototype.setDevEui = function(value) {
return jspb.Message.setProto3StringField(this, 6, value);
};
@ -459,7 +459,7 @@ proto.api.UplinkFrameLog.prototype.setDevEui = function(value) {
* optional google.protobuf.Timestamp time = 7;
* @return {?proto.google.protobuf.Timestamp}
*/
proto.api.UplinkFrameLog.prototype.getTime = function() {
proto.stream.UplinkFrameLog.prototype.getTime = function() {
return /** @type{?proto.google.protobuf.Timestamp} */ (
jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 7));
};
@ -467,18 +467,18 @@ proto.api.UplinkFrameLog.prototype.getTime = function() {
/**
* @param {?proto.google.protobuf.Timestamp|undefined} value
* @return {!proto.api.UplinkFrameLog} returns this
* @return {!proto.stream.UplinkFrameLog} returns this
*/
proto.api.UplinkFrameLog.prototype.setTime = function(value) {
proto.stream.UplinkFrameLog.prototype.setTime = function(value) {
return jspb.Message.setWrapperField(this, 7, value);
};
/**
* Clears the message field making it undefined.
* @return {!proto.api.UplinkFrameLog} returns this
* @return {!proto.stream.UplinkFrameLog} returns this
*/
proto.api.UplinkFrameLog.prototype.clearTime = function() {
proto.stream.UplinkFrameLog.prototype.clearTime = function() {
return this.setTime(undefined);
};
@ -487,7 +487,7 @@ proto.api.UplinkFrameLog.prototype.clearTime = function() {
* Returns whether this field is set.
* @return {boolean}
*/
proto.api.UplinkFrameLog.prototype.hasTime = function() {
proto.stream.UplinkFrameLog.prototype.hasTime = function() {
return jspb.Message.getField(this, 7) != null;
};
@ -496,16 +496,16 @@ proto.api.UplinkFrameLog.prototype.hasTime = function() {
* optional bool plaintext_f_opts = 8;
* @return {boolean}
*/
proto.api.UplinkFrameLog.prototype.getPlaintextFOpts = function() {
proto.stream.UplinkFrameLog.prototype.getPlaintextFOpts = function() {
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false));
};
/**
* @param {boolean} value
* @return {!proto.api.UplinkFrameLog} returns this
* @return {!proto.stream.UplinkFrameLog} returns this
*/
proto.api.UplinkFrameLog.prototype.setPlaintextFOpts = function(value) {
proto.stream.UplinkFrameLog.prototype.setPlaintextFOpts = function(value) {
return jspb.Message.setProto3BooleanField(this, 8, value);
};
@ -514,16 +514,16 @@ proto.api.UplinkFrameLog.prototype.setPlaintextFOpts = function(value) {
* optional bool plaintext_frm_payload = 9;
* @return {boolean}
*/
proto.api.UplinkFrameLog.prototype.getPlaintextFrmPayload = function() {
proto.stream.UplinkFrameLog.prototype.getPlaintextFrmPayload = function() {
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 9, false));
};
/**
* @param {boolean} value
* @return {!proto.api.UplinkFrameLog} returns this
* @return {!proto.stream.UplinkFrameLog} returns this
*/
proto.api.UplinkFrameLog.prototype.setPlaintextFrmPayload = function(value) {
proto.stream.UplinkFrameLog.prototype.setPlaintextFrmPayload = function(value) {
return jspb.Message.setProto3BooleanField(this, 9, value);
};
@ -544,8 +544,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) {
* http://goto/soy-param-migration
* @return {!Object}
*/
proto.api.DownlinkFrameLog.prototype.toObject = function(opt_includeInstance) {
return proto.api.DownlinkFrameLog.toObject(opt_includeInstance, this);
proto.stream.DownlinkFrameLog.prototype.toObject = function(opt_includeInstance) {
return proto.stream.DownlinkFrameLog.toObject(opt_includeInstance, this);
};
@ -554,11 +554,11 @@ proto.api.DownlinkFrameLog.prototype.toObject = function(opt_includeInstance) {
* @param {boolean|undefined} includeInstance Deprecated. Whether to include
* the JSPB instance for transitional soy proto support:
* http://goto/soy-param-migration
* @param {!proto.api.DownlinkFrameLog} msg The msg instance to transform.
* @param {!proto.stream.DownlinkFrameLog} msg The msg instance to transform.
* @return {!Object}
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.api.DownlinkFrameLog.toObject = function(includeInstance, msg) {
proto.stream.DownlinkFrameLog.toObject = function(includeInstance, msg) {
var f, obj = {
time: (f = msg.getTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
phyPayload: msg.getPhyPayload_asB64(),
@ -583,23 +583,23 @@ proto.api.DownlinkFrameLog.toObject = function(includeInstance, msg) {
/**
* Deserializes binary data (in protobuf wire format).
* @param {jspb.ByteSource} bytes The bytes to deserialize.
* @return {!proto.api.DownlinkFrameLog}
* @return {!proto.stream.DownlinkFrameLog}
*/
proto.api.DownlinkFrameLog.deserializeBinary = function(bytes) {
proto.stream.DownlinkFrameLog.deserializeBinary = function(bytes) {
var reader = new jspb.BinaryReader(bytes);
var msg = new proto.api.DownlinkFrameLog;
return proto.api.DownlinkFrameLog.deserializeBinaryFromReader(msg, reader);
var msg = new proto.stream.DownlinkFrameLog;
return proto.stream.DownlinkFrameLog.deserializeBinaryFromReader(msg, reader);
};
/**
* Deserializes binary data (in protobuf wire format) from the
* given reader into the given message object.
* @param {!proto.api.DownlinkFrameLog} msg The message object to deserialize into.
* @param {!proto.stream.DownlinkFrameLog} msg The message object to deserialize into.
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
* @return {!proto.api.DownlinkFrameLog}
* @return {!proto.stream.DownlinkFrameLog}
*/
proto.api.DownlinkFrameLog.deserializeBinaryFromReader = function(msg, reader) {
proto.stream.DownlinkFrameLog.deserializeBinaryFromReader = function(msg, reader) {
while (reader.nextField()) {
if (reader.isEndGroup()) {
break;
@ -661,9 +661,9 @@ proto.api.DownlinkFrameLog.deserializeBinaryFromReader = function(msg, reader) {
* Serializes the message to binary data (in protobuf wire format).
* @return {!Uint8Array}
*/
proto.api.DownlinkFrameLog.prototype.serializeBinary = function() {
proto.stream.DownlinkFrameLog.prototype.serializeBinary = function() {
var writer = new jspb.BinaryWriter();
proto.api.DownlinkFrameLog.serializeBinaryToWriter(this, writer);
proto.stream.DownlinkFrameLog.serializeBinaryToWriter(this, writer);
return writer.getResultBuffer();
};
@ -671,11 +671,11 @@ proto.api.DownlinkFrameLog.prototype.serializeBinary = function() {
/**
* Serializes the given message to binary data (in protobuf wire
* format), writing to the given BinaryWriter.
* @param {!proto.api.DownlinkFrameLog} message
* @param {!proto.stream.DownlinkFrameLog} message
* @param {!jspb.BinaryWriter} writer
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.api.DownlinkFrameLog.serializeBinaryToWriter = function(message, writer) {
proto.stream.DownlinkFrameLog.serializeBinaryToWriter = function(message, writer) {
var f = undefined;
f = message.getTime();
if (f != null) {
@ -756,7 +756,7 @@ proto.api.DownlinkFrameLog.serializeBinaryToWriter = function(message, writer) {
* optional google.protobuf.Timestamp time = 1;
* @return {?proto.google.protobuf.Timestamp}
*/
proto.api.DownlinkFrameLog.prototype.getTime = function() {
proto.stream.DownlinkFrameLog.prototype.getTime = function() {
return /** @type{?proto.google.protobuf.Timestamp} */ (
jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 1));
};
@ -764,18 +764,18 @@ proto.api.DownlinkFrameLog.prototype.getTime = function() {
/**
* @param {?proto.google.protobuf.Timestamp|undefined} value
* @return {!proto.api.DownlinkFrameLog} returns this
* @return {!proto.stream.DownlinkFrameLog} returns this
*/
proto.api.DownlinkFrameLog.prototype.setTime = function(value) {
proto.stream.DownlinkFrameLog.prototype.setTime = function(value) {
return jspb.Message.setWrapperField(this, 1, value);
};
/**
* Clears the message field making it undefined.
* @return {!proto.api.DownlinkFrameLog} returns this
* @return {!proto.stream.DownlinkFrameLog} returns this
*/
proto.api.DownlinkFrameLog.prototype.clearTime = function() {
proto.stream.DownlinkFrameLog.prototype.clearTime = function() {
return this.setTime(undefined);
};
@ -784,7 +784,7 @@ proto.api.DownlinkFrameLog.prototype.clearTime = function() {
* Returns whether this field is set.
* @return {boolean}
*/
proto.api.DownlinkFrameLog.prototype.hasTime = function() {
proto.stream.DownlinkFrameLog.prototype.hasTime = function() {
return jspb.Message.getField(this, 1) != null;
};
@ -793,7 +793,7 @@ proto.api.DownlinkFrameLog.prototype.hasTime = function() {
* optional bytes phy_payload = 2;
* @return {!(string|Uint8Array)}
*/
proto.api.DownlinkFrameLog.prototype.getPhyPayload = function() {
proto.stream.DownlinkFrameLog.prototype.getPhyPayload = function() {
return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};
@ -803,7 +803,7 @@ proto.api.DownlinkFrameLog.prototype.getPhyPayload = function() {
* This is a type-conversion wrapper around `getPhyPayload()`
* @return {string}
*/
proto.api.DownlinkFrameLog.prototype.getPhyPayload_asB64 = function() {
proto.stream.DownlinkFrameLog.prototype.getPhyPayload_asB64 = function() {
return /** @type {string} */ (jspb.Message.bytesAsB64(
this.getPhyPayload()));
};
@ -816,7 +816,7 @@ proto.api.DownlinkFrameLog.prototype.getPhyPayload_asB64 = function() {
* This is a type-conversion wrapper around `getPhyPayload()`
* @return {!Uint8Array}
*/
proto.api.DownlinkFrameLog.prototype.getPhyPayload_asU8 = function() {
proto.stream.DownlinkFrameLog.prototype.getPhyPayload_asU8 = function() {
return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(
this.getPhyPayload()));
};
@ -824,9 +824,9 @@ proto.api.DownlinkFrameLog.prototype.getPhyPayload_asU8 = function() {
/**
* @param {!(string|Uint8Array)} value
* @return {!proto.api.DownlinkFrameLog} returns this
* @return {!proto.stream.DownlinkFrameLog} returns this
*/
proto.api.DownlinkFrameLog.prototype.setPhyPayload = function(value) {
proto.stream.DownlinkFrameLog.prototype.setPhyPayload = function(value) {
return jspb.Message.setProto3BytesField(this, 2, value);
};
@ -835,7 +835,7 @@ proto.api.DownlinkFrameLog.prototype.setPhyPayload = function(value) {
* optional gw.DownlinkTxInfo tx_info = 3;
* @return {?proto.gw.DownlinkTxInfo}
*/
proto.api.DownlinkFrameLog.prototype.getTxInfo = function() {
proto.stream.DownlinkFrameLog.prototype.getTxInfo = function() {
return /** @type{?proto.gw.DownlinkTxInfo} */ (
jspb.Message.getWrapperField(this, gw_gw_pb.DownlinkTxInfo, 3));
};
@ -843,18 +843,18 @@ proto.api.DownlinkFrameLog.prototype.getTxInfo = function() {
/**
* @param {?proto.gw.DownlinkTxInfo|undefined} value
* @return {!proto.api.DownlinkFrameLog} returns this
* @return {!proto.stream.DownlinkFrameLog} returns this
*/
proto.api.DownlinkFrameLog.prototype.setTxInfo = function(value) {
proto.stream.DownlinkFrameLog.prototype.setTxInfo = function(value) {
return jspb.Message.setWrapperField(this, 3, value);
};
/**
* Clears the message field making it undefined.
* @return {!proto.api.DownlinkFrameLog} returns this
* @return {!proto.stream.DownlinkFrameLog} returns this
*/
proto.api.DownlinkFrameLog.prototype.clearTxInfo = function() {
proto.stream.DownlinkFrameLog.prototype.clearTxInfo = function() {
return this.setTxInfo(undefined);
};
@ -863,7 +863,7 @@ proto.api.DownlinkFrameLog.prototype.clearTxInfo = function() {
* Returns whether this field is set.
* @return {boolean}
*/
proto.api.DownlinkFrameLog.prototype.hasTxInfo = function() {
proto.stream.DownlinkFrameLog.prototype.hasTxInfo = function() {
return jspb.Message.getField(this, 3) != null;
};
@ -872,16 +872,16 @@ proto.api.DownlinkFrameLog.prototype.hasTxInfo = function() {
* optional uint32 downlink_id = 4;
* @return {number}
*/
proto.api.DownlinkFrameLog.prototype.getDownlinkId = function() {
proto.stream.DownlinkFrameLog.prototype.getDownlinkId = function() {
return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};
/**
* @param {number} value
* @return {!proto.api.DownlinkFrameLog} returns this
* @return {!proto.stream.DownlinkFrameLog} returns this
*/
proto.api.DownlinkFrameLog.prototype.setDownlinkId = function(value) {
proto.stream.DownlinkFrameLog.prototype.setDownlinkId = function(value) {
return jspb.Message.setProto3IntField(this, 4, value);
};
@ -890,16 +890,16 @@ proto.api.DownlinkFrameLog.prototype.setDownlinkId = function(value) {
* optional string gateway_id = 5;
* @return {string}
*/
proto.api.DownlinkFrameLog.prototype.getGatewayId = function() {
proto.stream.DownlinkFrameLog.prototype.getGatewayId = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};
/**
* @param {string} value
* @return {!proto.api.DownlinkFrameLog} returns this
* @return {!proto.stream.DownlinkFrameLog} returns this
*/
proto.api.DownlinkFrameLog.prototype.setGatewayId = function(value) {
proto.stream.DownlinkFrameLog.prototype.setGatewayId = function(value) {
return jspb.Message.setProto3StringField(this, 5, value);
};
@ -908,16 +908,16 @@ proto.api.DownlinkFrameLog.prototype.setGatewayId = function(value) {
* optional common.MType m_type = 6;
* @return {!proto.common.MType}
*/
proto.api.DownlinkFrameLog.prototype.getMType = function() {
proto.stream.DownlinkFrameLog.prototype.getMType = function() {
return /** @type {!proto.common.MType} */ (jspb.Message.getFieldWithDefault(this, 6, 0));
};
/**
* @param {!proto.common.MType} value
* @return {!proto.api.DownlinkFrameLog} returns this
* @return {!proto.stream.DownlinkFrameLog} returns this
*/
proto.api.DownlinkFrameLog.prototype.setMType = function(value) {
proto.stream.DownlinkFrameLog.prototype.setMType = function(value) {
return jspb.Message.setProto3EnumField(this, 6, value);
};
@ -926,16 +926,16 @@ proto.api.DownlinkFrameLog.prototype.setMType = function(value) {
* optional string dev_addr = 7;
* @return {string}
*/
proto.api.DownlinkFrameLog.prototype.getDevAddr = function() {
proto.stream.DownlinkFrameLog.prototype.getDevAddr = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
};
/**
* @param {string} value
* @return {!proto.api.DownlinkFrameLog} returns this
* @return {!proto.stream.DownlinkFrameLog} returns this
*/
proto.api.DownlinkFrameLog.prototype.setDevAddr = function(value) {
proto.stream.DownlinkFrameLog.prototype.setDevAddr = function(value) {
return jspb.Message.setProto3StringField(this, 7, value);
};
@ -944,16 +944,16 @@ proto.api.DownlinkFrameLog.prototype.setDevAddr = function(value) {
* optional string dev_eui = 8;
* @return {string}
*/
proto.api.DownlinkFrameLog.prototype.getDevEui = function() {
proto.stream.DownlinkFrameLog.prototype.getDevEui = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, ""));
};
/**
* @param {string} value
* @return {!proto.api.DownlinkFrameLog} returns this
* @return {!proto.stream.DownlinkFrameLog} returns this
*/
proto.api.DownlinkFrameLog.prototype.setDevEui = function(value) {
proto.stream.DownlinkFrameLog.prototype.setDevEui = function(value) {
return jspb.Message.setProto3StringField(this, 8, value);
};
@ -962,16 +962,16 @@ proto.api.DownlinkFrameLog.prototype.setDevEui = function(value) {
* optional bool plaintext_f_opts = 9;
* @return {boolean}
*/
proto.api.DownlinkFrameLog.prototype.getPlaintextFOpts = function() {
proto.stream.DownlinkFrameLog.prototype.getPlaintextFOpts = function() {
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 9, false));
};
/**
* @param {boolean} value
* @return {!proto.api.DownlinkFrameLog} returns this
* @return {!proto.stream.DownlinkFrameLog} returns this
*/
proto.api.DownlinkFrameLog.prototype.setPlaintextFOpts = function(value) {
proto.stream.DownlinkFrameLog.prototype.setPlaintextFOpts = function(value) {
return jspb.Message.setProto3BooleanField(this, 9, value);
};
@ -980,18 +980,18 @@ proto.api.DownlinkFrameLog.prototype.setPlaintextFOpts = function(value) {
* optional bool plaintext_frm_payload = 10;
* @return {boolean}
*/
proto.api.DownlinkFrameLog.prototype.getPlaintextFrmPayload = function() {
proto.stream.DownlinkFrameLog.prototype.getPlaintextFrmPayload = function() {
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 10, false));
};
/**
* @param {boolean} value
* @return {!proto.api.DownlinkFrameLog} returns this
* @return {!proto.stream.DownlinkFrameLog} returns this
*/
proto.api.DownlinkFrameLog.prototype.setPlaintextFrmPayload = function(value) {
proto.stream.DownlinkFrameLog.prototype.setPlaintextFrmPayload = function(value) {
return jspb.Message.setProto3BooleanField(this, 10, value);
};
goog.object.extend(exports, proto.api);
goog.object.extend(exports, proto.stream);

1
api/js/stream/meta_grpc_pb.d.ts vendored Normal file
View File

@ -0,0 +1 @@
// GENERATED CODE -- NO SERVICES IN PROTO

View File

@ -1,5 +1,5 @@
// package: meta
// file: meta/meta.proto
// package: stream
// file: stream/meta.proto
import * as jspb from "google-protobuf";
import * as common_common_pb from "../common/common_pb";

View File

@ -1,4 +1,4 @@
// source: meta/meta.proto
// source: stream/meta.proto
/**
* @fileoverview
* @enhanceable
@ -16,8 +16,8 @@ var common_common_pb = require('../common/common_pb.js');
goog.object.extend(proto, common_common_pb);
var gw_gw_pb = require('../gw/gw_pb.js');
goog.object.extend(proto, gw_gw_pb);
goog.exportSymbol('proto.meta.DownlinkMeta', null, global);
goog.exportSymbol('proto.meta.UplinkMeta', null, global);
goog.exportSymbol('proto.stream.DownlinkMeta', null, global);
goog.exportSymbol('proto.stream.UplinkMeta', null, global);
/**
* Generated by JsPbCodeGenerator.
* @param {Array=} opt_data Optional initial data array, typically from a
@ -28,16 +28,16 @@ goog.exportSymbol('proto.meta.UplinkMeta', null, global);
* @extends {jspb.Message}
* @constructor
*/
proto.meta.UplinkMeta = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, proto.meta.UplinkMeta.repeatedFields_, null);
proto.stream.UplinkMeta = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, proto.stream.UplinkMeta.repeatedFields_, null);
};
goog.inherits(proto.meta.UplinkMeta, jspb.Message);
goog.inherits(proto.stream.UplinkMeta, jspb.Message);
if (goog.DEBUG && !COMPILED) {
/**
* @public
* @override
*/
proto.meta.UplinkMeta.displayName = 'proto.meta.UplinkMeta';
proto.stream.UplinkMeta.displayName = 'proto.stream.UplinkMeta';
}
/**
* Generated by JsPbCodeGenerator.
@ -49,16 +49,16 @@ if (goog.DEBUG && !COMPILED) {
* @extends {jspb.Message}
* @constructor
*/
proto.meta.DownlinkMeta = function(opt_data) {
proto.stream.DownlinkMeta = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.meta.DownlinkMeta, jspb.Message);
goog.inherits(proto.stream.DownlinkMeta, jspb.Message);
if (goog.DEBUG && !COMPILED) {
/**
* @public
* @override
*/
proto.meta.DownlinkMeta.displayName = 'proto.meta.DownlinkMeta';
proto.stream.DownlinkMeta.displayName = 'proto.stream.DownlinkMeta';
}
/**
@ -66,7 +66,7 @@ if (goog.DEBUG && !COMPILED) {
* @private {!Array<number>}
* @const
*/
proto.meta.UplinkMeta.repeatedFields_ = [3];
proto.stream.UplinkMeta.repeatedFields_ = [3];
@ -83,8 +83,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) {
* http://goto/soy-param-migration
* @return {!Object}
*/
proto.meta.UplinkMeta.prototype.toObject = function(opt_includeInstance) {
return proto.meta.UplinkMeta.toObject(opt_includeInstance, this);
proto.stream.UplinkMeta.prototype.toObject = function(opt_includeInstance) {
return proto.stream.UplinkMeta.toObject(opt_includeInstance, this);
};
@ -93,11 +93,11 @@ proto.meta.UplinkMeta.prototype.toObject = function(opt_includeInstance) {
* @param {boolean|undefined} includeInstance Deprecated. Whether to include
* the JSPB instance for transitional soy proto support:
* http://goto/soy-param-migration
* @param {!proto.meta.UplinkMeta} msg The msg instance to transform.
* @param {!proto.stream.UplinkMeta} msg The msg instance to transform.
* @return {!Object}
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.meta.UplinkMeta.toObject = function(includeInstance, msg) {
proto.stream.UplinkMeta.toObject = function(includeInstance, msg) {
var f, obj = {
devEui: jspb.Message.getFieldWithDefault(msg, 1, ""),
txInfo: (f = msg.getTxInfo()) && gw_gw_pb.UplinkTxInfo.toObject(includeInstance, f),
@ -120,23 +120,23 @@ proto.meta.UplinkMeta.toObject = function(includeInstance, msg) {
/**
* Deserializes binary data (in protobuf wire format).
* @param {jspb.ByteSource} bytes The bytes to deserialize.
* @return {!proto.meta.UplinkMeta}
* @return {!proto.stream.UplinkMeta}
*/
proto.meta.UplinkMeta.deserializeBinary = function(bytes) {
proto.stream.UplinkMeta.deserializeBinary = function(bytes) {
var reader = new jspb.BinaryReader(bytes);
var msg = new proto.meta.UplinkMeta;
return proto.meta.UplinkMeta.deserializeBinaryFromReader(msg, reader);
var msg = new proto.stream.UplinkMeta;
return proto.stream.UplinkMeta.deserializeBinaryFromReader(msg, reader);
};
/**
* Deserializes binary data (in protobuf wire format) from the
* given reader into the given message object.
* @param {!proto.meta.UplinkMeta} msg The message object to deserialize into.
* @param {!proto.stream.UplinkMeta} msg The message object to deserialize into.
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
* @return {!proto.meta.UplinkMeta}
* @return {!proto.stream.UplinkMeta}
*/
proto.meta.UplinkMeta.deserializeBinaryFromReader = function(msg, reader) {
proto.stream.UplinkMeta.deserializeBinaryFromReader = function(msg, reader) {
while (reader.nextField()) {
if (reader.isEndGroup()) {
break;
@ -186,9 +186,9 @@ proto.meta.UplinkMeta.deserializeBinaryFromReader = function(msg, reader) {
* Serializes the message to binary data (in protobuf wire format).
* @return {!Uint8Array}
*/
proto.meta.UplinkMeta.prototype.serializeBinary = function() {
proto.stream.UplinkMeta.prototype.serializeBinary = function() {
var writer = new jspb.BinaryWriter();
proto.meta.UplinkMeta.serializeBinaryToWriter(this, writer);
proto.stream.UplinkMeta.serializeBinaryToWriter(this, writer);
return writer.getResultBuffer();
};
@ -196,11 +196,11 @@ proto.meta.UplinkMeta.prototype.serializeBinary = function() {
/**
* Serializes the given message to binary data (in protobuf wire
* format), writing to the given BinaryWriter.
* @param {!proto.meta.UplinkMeta} message
* @param {!proto.stream.UplinkMeta} message
* @param {!jspb.BinaryWriter} writer
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.meta.UplinkMeta.serializeBinaryToWriter = function(message, writer) {
proto.stream.UplinkMeta.serializeBinaryToWriter = function(message, writer) {
var f = undefined;
f = message.getDevEui();
if (f.length > 0) {
@ -260,16 +260,16 @@ proto.meta.UplinkMeta.serializeBinaryToWriter = function(message, writer) {
* optional string dev_eui = 1;
* @return {string}
*/
proto.meta.UplinkMeta.prototype.getDevEui = function() {
proto.stream.UplinkMeta.prototype.getDevEui = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};
/**
* @param {string} value
* @return {!proto.meta.UplinkMeta} returns this
* @return {!proto.stream.UplinkMeta} returns this
*/
proto.meta.UplinkMeta.prototype.setDevEui = function(value) {
proto.stream.UplinkMeta.prototype.setDevEui = function(value) {
return jspb.Message.setProto3StringField(this, 1, value);
};
@ -278,7 +278,7 @@ proto.meta.UplinkMeta.prototype.setDevEui = function(value) {
* optional gw.UplinkTxInfo tx_info = 2;
* @return {?proto.gw.UplinkTxInfo}
*/
proto.meta.UplinkMeta.prototype.getTxInfo = function() {
proto.stream.UplinkMeta.prototype.getTxInfo = function() {
return /** @type{?proto.gw.UplinkTxInfo} */ (
jspb.Message.getWrapperField(this, gw_gw_pb.UplinkTxInfo, 2));
};
@ -286,18 +286,18 @@ proto.meta.UplinkMeta.prototype.getTxInfo = function() {
/**
* @param {?proto.gw.UplinkTxInfo|undefined} value
* @return {!proto.meta.UplinkMeta} returns this
* @return {!proto.stream.UplinkMeta} returns this
*/
proto.meta.UplinkMeta.prototype.setTxInfo = function(value) {
proto.stream.UplinkMeta.prototype.setTxInfo = function(value) {
return jspb.Message.setWrapperField(this, 2, value);
};
/**
* Clears the message field making it undefined.
* @return {!proto.meta.UplinkMeta} returns this
* @return {!proto.stream.UplinkMeta} returns this
*/
proto.meta.UplinkMeta.prototype.clearTxInfo = function() {
proto.stream.UplinkMeta.prototype.clearTxInfo = function() {
return this.setTxInfo(undefined);
};
@ -306,7 +306,7 @@ proto.meta.UplinkMeta.prototype.clearTxInfo = function() {
* Returns whether this field is set.
* @return {boolean}
*/
proto.meta.UplinkMeta.prototype.hasTxInfo = function() {
proto.stream.UplinkMeta.prototype.hasTxInfo = function() {
return jspb.Message.getField(this, 2) != null;
};
@ -315,7 +315,7 @@ proto.meta.UplinkMeta.prototype.hasTxInfo = function() {
* repeated gw.UplinkRxInfo rx_info = 3;
* @return {!Array<!proto.gw.UplinkRxInfo>}
*/
proto.meta.UplinkMeta.prototype.getRxInfoList = function() {
proto.stream.UplinkMeta.prototype.getRxInfoList = function() {
return /** @type{!Array<!proto.gw.UplinkRxInfo>} */ (
jspb.Message.getRepeatedWrapperField(this, gw_gw_pb.UplinkRxInfo, 3));
};
@ -323,9 +323,9 @@ proto.meta.UplinkMeta.prototype.getRxInfoList = function() {
/**
* @param {!Array<!proto.gw.UplinkRxInfo>} value
* @return {!proto.meta.UplinkMeta} returns this
* @return {!proto.stream.UplinkMeta} returns this
*/
proto.meta.UplinkMeta.prototype.setRxInfoList = function(value) {
proto.stream.UplinkMeta.prototype.setRxInfoList = function(value) {
return jspb.Message.setRepeatedWrapperField(this, 3, value);
};
@ -335,16 +335,16 @@ proto.meta.UplinkMeta.prototype.setRxInfoList = function(value) {
* @param {number=} opt_index
* @return {!proto.gw.UplinkRxInfo}
*/
proto.meta.UplinkMeta.prototype.addRxInfo = function(opt_value, opt_index) {
proto.stream.UplinkMeta.prototype.addRxInfo = function(opt_value, opt_index) {
return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.gw.UplinkRxInfo, opt_index);
};
/**
* Clears the list making it empty but non-null.
* @return {!proto.meta.UplinkMeta} returns this
* @return {!proto.stream.UplinkMeta} returns this
*/
proto.meta.UplinkMeta.prototype.clearRxInfoList = function() {
proto.stream.UplinkMeta.prototype.clearRxInfoList = function() {
return this.setRxInfoList([]);
};
@ -353,16 +353,16 @@ proto.meta.UplinkMeta.prototype.clearRxInfoList = function() {
* optional uint32 phy_payload_byte_count = 4;
* @return {number}
*/
proto.meta.UplinkMeta.prototype.getPhyPayloadByteCount = function() {
proto.stream.UplinkMeta.prototype.getPhyPayloadByteCount = function() {
return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};
/**
* @param {number} value
* @return {!proto.meta.UplinkMeta} returns this
* @return {!proto.stream.UplinkMeta} returns this
*/
proto.meta.UplinkMeta.prototype.setPhyPayloadByteCount = function(value) {
proto.stream.UplinkMeta.prototype.setPhyPayloadByteCount = function(value) {
return jspb.Message.setProto3IntField(this, 4, value);
};
@ -371,16 +371,16 @@ proto.meta.UplinkMeta.prototype.setPhyPayloadByteCount = function(value) {
* optional uint32 mac_command_byte_count = 5;
* @return {number}
*/
proto.meta.UplinkMeta.prototype.getMacCommandByteCount = function() {
proto.stream.UplinkMeta.prototype.getMacCommandByteCount = function() {
return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));
};
/**
* @param {number} value
* @return {!proto.meta.UplinkMeta} returns this
* @return {!proto.stream.UplinkMeta} returns this
*/
proto.meta.UplinkMeta.prototype.setMacCommandByteCount = function(value) {
proto.stream.UplinkMeta.prototype.setMacCommandByteCount = function(value) {
return jspb.Message.setProto3IntField(this, 5, value);
};
@ -389,16 +389,16 @@ proto.meta.UplinkMeta.prototype.setMacCommandByteCount = function(value) {
* optional uint32 application_payload_byte_count = 6;
* @return {number}
*/
proto.meta.UplinkMeta.prototype.getApplicationPayloadByteCount = function() {
proto.stream.UplinkMeta.prototype.getApplicationPayloadByteCount = function() {
return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));
};
/**
* @param {number} value
* @return {!proto.meta.UplinkMeta} returns this
* @return {!proto.stream.UplinkMeta} returns this
*/
proto.meta.UplinkMeta.prototype.setApplicationPayloadByteCount = function(value) {
proto.stream.UplinkMeta.prototype.setApplicationPayloadByteCount = function(value) {
return jspb.Message.setProto3IntField(this, 6, value);
};
@ -407,16 +407,16 @@ proto.meta.UplinkMeta.prototype.setApplicationPayloadByteCount = function(value)
* optional common.MType message_type = 7;
* @return {!proto.common.MType}
*/
proto.meta.UplinkMeta.prototype.getMessageType = function() {
proto.stream.UplinkMeta.prototype.getMessageType = function() {
return /** @type {!proto.common.MType} */ (jspb.Message.getFieldWithDefault(this, 7, 0));
};
/**
* @param {!proto.common.MType} value
* @return {!proto.meta.UplinkMeta} returns this
* @return {!proto.stream.UplinkMeta} returns this
*/
proto.meta.UplinkMeta.prototype.setMessageType = function(value) {
proto.stream.UplinkMeta.prototype.setMessageType = function(value) {
return jspb.Message.setProto3EnumField(this, 7, value);
};
@ -437,8 +437,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) {
* http://goto/soy-param-migration
* @return {!Object}
*/
proto.meta.DownlinkMeta.prototype.toObject = function(opt_includeInstance) {
return proto.meta.DownlinkMeta.toObject(opt_includeInstance, this);
proto.stream.DownlinkMeta.prototype.toObject = function(opt_includeInstance) {
return proto.stream.DownlinkMeta.toObject(opt_includeInstance, this);
};
@ -447,11 +447,11 @@ proto.meta.DownlinkMeta.prototype.toObject = function(opt_includeInstance) {
* @param {boolean|undefined} includeInstance Deprecated. Whether to include
* the JSPB instance for transitional soy proto support:
* http://goto/soy-param-migration
* @param {!proto.meta.DownlinkMeta} msg The msg instance to transform.
* @param {!proto.stream.DownlinkMeta} msg The msg instance to transform.
* @return {!Object}
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.meta.DownlinkMeta.toObject = function(includeInstance, msg) {
proto.stream.DownlinkMeta.toObject = function(includeInstance, msg) {
var f, obj = {
devEui: jspb.Message.getFieldWithDefault(msg, 1, ""),
multicastGroupId: jspb.Message.getFieldWithDefault(msg, 2, ""),
@ -474,23 +474,23 @@ proto.meta.DownlinkMeta.toObject = function(includeInstance, msg) {
/**
* Deserializes binary data (in protobuf wire format).
* @param {jspb.ByteSource} bytes The bytes to deserialize.
* @return {!proto.meta.DownlinkMeta}
* @return {!proto.stream.DownlinkMeta}
*/
proto.meta.DownlinkMeta.deserializeBinary = function(bytes) {
proto.stream.DownlinkMeta.deserializeBinary = function(bytes) {
var reader = new jspb.BinaryReader(bytes);
var msg = new proto.meta.DownlinkMeta;
return proto.meta.DownlinkMeta.deserializeBinaryFromReader(msg, reader);
var msg = new proto.stream.DownlinkMeta;
return proto.stream.DownlinkMeta.deserializeBinaryFromReader(msg, reader);
};
/**
* Deserializes binary data (in protobuf wire format) from the
* given reader into the given message object.
* @param {!proto.meta.DownlinkMeta} msg The message object to deserialize into.
* @param {!proto.stream.DownlinkMeta} msg The message object to deserialize into.
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
* @return {!proto.meta.DownlinkMeta}
* @return {!proto.stream.DownlinkMeta}
*/
proto.meta.DownlinkMeta.deserializeBinaryFromReader = function(msg, reader) {
proto.stream.DownlinkMeta.deserializeBinaryFromReader = function(msg, reader) {
while (reader.nextField()) {
if (reader.isEndGroup()) {
break;
@ -543,9 +543,9 @@ proto.meta.DownlinkMeta.deserializeBinaryFromReader = function(msg, reader) {
* Serializes the message to binary data (in protobuf wire format).
* @return {!Uint8Array}
*/
proto.meta.DownlinkMeta.prototype.serializeBinary = function() {
proto.stream.DownlinkMeta.prototype.serializeBinary = function() {
var writer = new jspb.BinaryWriter();
proto.meta.DownlinkMeta.serializeBinaryToWriter(this, writer);
proto.stream.DownlinkMeta.serializeBinaryToWriter(this, writer);
return writer.getResultBuffer();
};
@ -553,11 +553,11 @@ proto.meta.DownlinkMeta.prototype.serializeBinary = function() {
/**
* Serializes the given message to binary data (in protobuf wire
* format), writing to the given BinaryWriter.
* @param {!proto.meta.DownlinkMeta} message
* @param {!proto.stream.DownlinkMeta} message
* @param {!jspb.BinaryWriter} writer
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.meta.DownlinkMeta.serializeBinaryToWriter = function(message, writer) {
proto.stream.DownlinkMeta.serializeBinaryToWriter = function(message, writer) {
var f = undefined;
f = message.getDevEui();
if (f.length > 0) {
@ -623,16 +623,16 @@ proto.meta.DownlinkMeta.serializeBinaryToWriter = function(message, writer) {
* optional string dev_eui = 1;
* @return {string}
*/
proto.meta.DownlinkMeta.prototype.getDevEui = function() {
proto.stream.DownlinkMeta.prototype.getDevEui = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};
/**
* @param {string} value
* @return {!proto.meta.DownlinkMeta} returns this
* @return {!proto.stream.DownlinkMeta} returns this
*/
proto.meta.DownlinkMeta.prototype.setDevEui = function(value) {
proto.stream.DownlinkMeta.prototype.setDevEui = function(value) {
return jspb.Message.setProto3StringField(this, 1, value);
};
@ -641,16 +641,16 @@ proto.meta.DownlinkMeta.prototype.setDevEui = function(value) {
* optional string multicast_group_id = 2;
* @return {string}
*/
proto.meta.DownlinkMeta.prototype.getMulticastGroupId = function() {
proto.stream.DownlinkMeta.prototype.getMulticastGroupId = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};
/**
* @param {string} value
* @return {!proto.meta.DownlinkMeta} returns this
* @return {!proto.stream.DownlinkMeta} returns this
*/
proto.meta.DownlinkMeta.prototype.setMulticastGroupId = function(value) {
proto.stream.DownlinkMeta.prototype.setMulticastGroupId = function(value) {
return jspb.Message.setProto3StringField(this, 2, value);
};
@ -659,7 +659,7 @@ proto.meta.DownlinkMeta.prototype.setMulticastGroupId = function(value) {
* optional gw.DownlinkTxInfo tx_info = 3;
* @return {?proto.gw.DownlinkTxInfo}
*/
proto.meta.DownlinkMeta.prototype.getTxInfo = function() {
proto.stream.DownlinkMeta.prototype.getTxInfo = function() {
return /** @type{?proto.gw.DownlinkTxInfo} */ (
jspb.Message.getWrapperField(this, gw_gw_pb.DownlinkTxInfo, 3));
};
@ -667,18 +667,18 @@ proto.meta.DownlinkMeta.prototype.getTxInfo = function() {
/**
* @param {?proto.gw.DownlinkTxInfo|undefined} value
* @return {!proto.meta.DownlinkMeta} returns this
* @return {!proto.stream.DownlinkMeta} returns this
*/
proto.meta.DownlinkMeta.prototype.setTxInfo = function(value) {
proto.stream.DownlinkMeta.prototype.setTxInfo = function(value) {
return jspb.Message.setWrapperField(this, 3, value);
};
/**
* Clears the message field making it undefined.
* @return {!proto.meta.DownlinkMeta} returns this
* @return {!proto.stream.DownlinkMeta} returns this
*/
proto.meta.DownlinkMeta.prototype.clearTxInfo = function() {
proto.stream.DownlinkMeta.prototype.clearTxInfo = function() {
return this.setTxInfo(undefined);
};
@ -687,7 +687,7 @@ proto.meta.DownlinkMeta.prototype.clearTxInfo = function() {
* Returns whether this field is set.
* @return {boolean}
*/
proto.meta.DownlinkMeta.prototype.hasTxInfo = function() {
proto.stream.DownlinkMeta.prototype.hasTxInfo = function() {
return jspb.Message.getField(this, 3) != null;
};
@ -696,16 +696,16 @@ proto.meta.DownlinkMeta.prototype.hasTxInfo = function() {
* optional uint32 phy_payload_byte_count = 4;
* @return {number}
*/
proto.meta.DownlinkMeta.prototype.getPhyPayloadByteCount = function() {
proto.stream.DownlinkMeta.prototype.getPhyPayloadByteCount = function() {
return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};
/**
* @param {number} value
* @return {!proto.meta.DownlinkMeta} returns this
* @return {!proto.stream.DownlinkMeta} returns this
*/
proto.meta.DownlinkMeta.prototype.setPhyPayloadByteCount = function(value) {
proto.stream.DownlinkMeta.prototype.setPhyPayloadByteCount = function(value) {
return jspb.Message.setProto3IntField(this, 4, value);
};
@ -714,16 +714,16 @@ proto.meta.DownlinkMeta.prototype.setPhyPayloadByteCount = function(value) {
* optional uint32 mac_command_byte_count = 5;
* @return {number}
*/
proto.meta.DownlinkMeta.prototype.getMacCommandByteCount = function() {
proto.stream.DownlinkMeta.prototype.getMacCommandByteCount = function() {
return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));
};
/**
* @param {number} value
* @return {!proto.meta.DownlinkMeta} returns this
* @return {!proto.stream.DownlinkMeta} returns this
*/
proto.meta.DownlinkMeta.prototype.setMacCommandByteCount = function(value) {
proto.stream.DownlinkMeta.prototype.setMacCommandByteCount = function(value) {
return jspb.Message.setProto3IntField(this, 5, value);
};
@ -732,16 +732,16 @@ proto.meta.DownlinkMeta.prototype.setMacCommandByteCount = function(value) {
* optional uint32 application_payload_byte_count = 6;
* @return {number}
*/
proto.meta.DownlinkMeta.prototype.getApplicationPayloadByteCount = function() {
proto.stream.DownlinkMeta.prototype.getApplicationPayloadByteCount = function() {
return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));
};
/**
* @param {number} value
* @return {!proto.meta.DownlinkMeta} returns this
* @return {!proto.stream.DownlinkMeta} returns this
*/
proto.meta.DownlinkMeta.prototype.setApplicationPayloadByteCount = function(value) {
proto.stream.DownlinkMeta.prototype.setApplicationPayloadByteCount = function(value) {
return jspb.Message.setProto3IntField(this, 6, value);
};
@ -750,16 +750,16 @@ proto.meta.DownlinkMeta.prototype.setApplicationPayloadByteCount = function(valu
* optional common.MType message_type = 7;
* @return {!proto.common.MType}
*/
proto.meta.DownlinkMeta.prototype.getMessageType = function() {
proto.stream.DownlinkMeta.prototype.getMessageType = function() {
return /** @type {!proto.common.MType} */ (jspb.Message.getFieldWithDefault(this, 7, 0));
};
/**
* @param {!proto.common.MType} value
* @return {!proto.meta.DownlinkMeta} returns this
* @return {!proto.stream.DownlinkMeta} returns this
*/
proto.meta.DownlinkMeta.prototype.setMessageType = function(value) {
proto.stream.DownlinkMeta.prototype.setMessageType = function(value) {
return jspb.Message.setProto3EnumField(this, 7, value);
};
@ -768,18 +768,18 @@ proto.meta.DownlinkMeta.prototype.setMessageType = function(value) {
* optional string gateway_id = 8;
* @return {string}
*/
proto.meta.DownlinkMeta.prototype.getGatewayId = function() {
proto.stream.DownlinkMeta.prototype.getGatewayId = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, ""));
};
/**
* @param {string} value
* @return {!proto.meta.DownlinkMeta} returns this
* @return {!proto.stream.DownlinkMeta} returns this
*/
proto.meta.DownlinkMeta.prototype.setGatewayId = function(value) {
proto.stream.DownlinkMeta.prototype.setGatewayId = function(value) {
return jspb.Message.setProto3StringField(this, 8, value);
};
goog.object.extend(exports, proto.meta);
goog.object.extend(exports, proto.stream);

View File

@ -9,7 +9,7 @@ plugins {
}
group = "io.chirpstack"
version = "4.6.0-test.1"
version = "4.6.0-test.3"
repositories {
mavenCentral()

4
api/md/Makefile vendored
View File

@ -10,9 +10,9 @@ api:
api/application.proto \
api/device.proto \
api/device_profile.proto \
api/frame_log.proto \
api/device_profile_template.proto \
api/gateway.proto \
api/multicast_group.proto \
api/relay.proto \
api/tenant.proto \
api/user.proto

418
api/md/api/api.md vendored
View File

@ -160,9 +160,20 @@
- [DeviceProfileService](#api-DeviceProfileService)
- [api/frame_log.proto](#api_frame_log-proto)
- [DownlinkFrameLog](#api-DownlinkFrameLog)
- [UplinkFrameLog](#api-UplinkFrameLog)
- [api/device_profile_template.proto](#api_device_profile_template-proto)
- [CreateDeviceProfileTemplateRequest](#api-CreateDeviceProfileTemplateRequest)
- [DeleteDeviceProfileTemplateRequest](#api-DeleteDeviceProfileTemplateRequest)
- [DeviceProfileTemplate](#api-DeviceProfileTemplate)
- [DeviceProfileTemplate.MeasurementsEntry](#api-DeviceProfileTemplate-MeasurementsEntry)
- [DeviceProfileTemplate.TagsEntry](#api-DeviceProfileTemplate-TagsEntry)
- [DeviceProfileTemplateListItem](#api-DeviceProfileTemplateListItem)
- [GetDeviceProfileTemplateRequest](#api-GetDeviceProfileTemplateRequest)
- [GetDeviceProfileTemplateResponse](#api-GetDeviceProfileTemplateResponse)
- [ListDeviceProfileTemplatesRequest](#api-ListDeviceProfileTemplatesRequest)
- [ListDeviceProfileTemplatesResponse](#api-ListDeviceProfileTemplatesResponse)
- [UpdateDeviceProfileTemplateRequest](#api-UpdateDeviceProfileTemplateRequest)
- [DeviceProfileTemplateService](#api-DeviceProfileTemplateService)
- [api/gateway.proto](#api_gateway-proto)
- [CreateGatewayRequest](#api-CreateGatewayRequest)
@ -213,6 +224,18 @@
- [MulticastGroupService](#api-MulticastGroupService)
- [api/relay.proto](#api_relay-proto)
- [AddRelayDeviceRequest](#api-AddRelayDeviceRequest)
- [ListRelayDevicesRequest](#api-ListRelayDevicesRequest)
- [ListRelayDevicesResponse](#api-ListRelayDevicesResponse)
- [ListRelaysRequest](#api-ListRelaysRequest)
- [ListRelaysResponse](#api-ListRelaysResponse)
- [RelayDeviceListItem](#api-RelayDeviceListItem)
- [RelayListItem](#api-RelayListItem)
- [RemoveRelayDeviceRequest](#api-RemoveRelayDeviceRequest)
- [RelayService](#api-RelayService)
- [api/tenant.proto](#api_tenant-proto)
- [AddTenantUserRequest](#api-AddTenantUserRequest)
- [CreateTenantRequest](#api-CreateTenantRequest)
@ -2793,54 +2816,219 @@ device-profiles.
<a name="api_frame_log-proto"></a>
<a name="api_device_profile_template-proto"></a>
<p align="right"><a href="#top">Top</a></p>
## api/frame_log.proto
## api/device_profile_template.proto
<a name="api-DownlinkFrameLog"></a>
<a name="api-CreateDeviceProfileTemplateRequest"></a>
### DownlinkFrameLog
### CreateDeviceProfileTemplateRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| time | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Time. |
| phy_payload | [bytes](#bytes) | | PHYPayload. |
| tx_info | [gw.DownlinkTxInfo](#gw-DownlinkTxInfo) | | TX meta-data. |
| downlink_id | [uint32](#uint32) | | Downlink ID. |
| gateway_id | [string](#string) | | Gateway ID (EUI64). |
| m_type | [common.MType](#common-MType) | | Message type. |
| dev_addr | [string](#string) | | Device address (optional). |
| dev_eui | [string](#string) | | Device EUI (optional). |
| plaintext_f_opts | [bool](#bool) | | Plaintext f_opts mac-commands. |
| plaintext_frm_payload | [bool](#bool) | | Plaintext frm_payload. |
| device_profile_template | [DeviceProfileTemplate](#api-DeviceProfileTemplate) | | Object to create. |
<a name="api-UplinkFrameLog"></a>
<a name="api-DeleteDeviceProfileTemplateRequest"></a>
### UplinkFrameLog
### DeleteDeviceProfileTemplateRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| phy_payload | [bytes](#bytes) | | PHYPayload. |
| tx_info | [gw.UplinkTxInfo](#gw-UplinkTxInfo) | | TX meta-data. |
| rx_info | [gw.UplinkRxInfo](#gw-UplinkRxInfo) | repeated | RX meta-data. |
| m_type | [common.MType](#common-MType) | | Message type. |
| dev_addr | [string](#string) | | Device address (optional). |
| dev_eui | [string](#string) | | Device EUI (optional). |
| time | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Time. |
| plaintext_f_opts | [bool](#bool) | | Plaintext f_opts mac-commands. |
| plaintext_frm_payload | [bool](#bool) | | Plaintext frm_payload. |
| id | [string](#string) | | ID. |
<a name="api-DeviceProfileTemplate"></a>
### DeviceProfileTemplate
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [string](#string) | | Device-profile template ID. |
| name | [string](#string) | | Name. |
| description | [string](#string) | | Description. |
| vendor | [string](#string) | | Vendor. |
| firmware | [string](#string) | | Firmware. |
| region | [common.Region](#common-Region) | | Region. |
| mac_version | [common.MacVersion](#common-MacVersion) | | LoRaWAN mac-version. |
| reg_params_revision | [common.RegParamsRevision](#common-RegParamsRevision) | | Regional parameters revision. |
| adr_algorithm_id | [string](#string) | | ADR algorithm ID. |
| payload_codec_runtime | [CodecRuntime](#api-CodecRuntime) | | Payload codec runtime. |
| payload_codec_script | [string](#string) | | Payload codec script. |
| flush_queue_on_activate | [bool](#bool) | | Flush queue on device activation. |
| uplink_interval | [uint32](#uint32) | | Uplink interval (seconds). This defines the expected uplink interval which the device uses for communication. When the uplink interval has expired and no uplink has been received, the device is considered inactive. |
| device_status_req_interval | [uint32](#uint32) | | Device-status request interval (times / day). This defines the times per day that ChirpStack will request the device-status from the device. |
| supports_otaa | [bool](#bool) | | Supports OTAA. |
| supports_class_b | [bool](#bool) | | Supports Class B. |
| supports_class_c | [bool](#bool) | | Supports Class-C. |
| class_b_timeout | [uint32](#uint32) | | Class-B timeout (seconds). This is the maximum time ChirpStack will wait to receive an acknowledgement from the device (if requested). |
| class_b_ping_slot_nb_k | [uint32](#uint32) | | Class-B ping-slots per beacon period. Valid options are: 0 - 7.
The actual number of ping-slots per beacon period equals to 2^k. |
| class_b_ping_slot_dr | [uint32](#uint32) | | Class-B ping-slot DR. |
| class_b_ping_slot_freq | [uint32](#uint32) | | Class-B ping-slot freq (Hz). |
| class_c_timeout | [uint32](#uint32) | | Class-C timeout (seconds). This is the maximum time ChirpStack will wait to receive an acknowledgement from the device (if requested). |
| abp_rx1_delay | [uint32](#uint32) | | RX1 delay (for ABP). |
| abp_rx1_dr_offset | [uint32](#uint32) | | RX1 DR offset (for ABP). |
| abp_rx2_dr | [uint32](#uint32) | | RX2 DR (for ABP). |
| abp_rx2_freq | [uint32](#uint32) | | RX2 frequency (for ABP, Hz). |
| tags | [DeviceProfileTemplate.TagsEntry](#api-DeviceProfileTemplate-TagsEntry) | repeated | User defined tags. |
| measurements | [DeviceProfileTemplate.MeasurementsEntry](#api-DeviceProfileTemplate-MeasurementsEntry) | repeated | Measurements. If defined, ChirpStack will visualize these metrics in the web-interface. |
| auto_detect_measurements | [bool](#bool) | | Auto-detect measurements. If set to true, measurements will be automatically added based on the keys of the decoded payload. In cases where the decoded payload contains random keys in the data, you want to set this to false. |
<a name="api-DeviceProfileTemplate-MeasurementsEntry"></a>
### DeviceProfileTemplate.MeasurementsEntry
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| key | [string](#string) | | |
| value | [Measurement](#api-Measurement) | | |
<a name="api-DeviceProfileTemplate-TagsEntry"></a>
### DeviceProfileTemplate.TagsEntry
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| key | [string](#string) | | |
| value | [string](#string) | | |
<a name="api-DeviceProfileTemplateListItem"></a>
### DeviceProfileTemplateListItem
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [string](#string) | | Device-profile template ID. |
| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Created at timestamp. |
| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Last update timestamp. |
| name | [string](#string) | | Name. |
| vendor | [string](#string) | | Vendor. |
| firmware | [string](#string) | | Firmware. |
| region | [common.Region](#common-Region) | | Region. |
| mac_version | [common.MacVersion](#common-MacVersion) | | LoRaWAN mac-version. |
| reg_params_revision | [common.RegParamsRevision](#common-RegParamsRevision) | | Regional parameters revision. |
| supports_otaa | [bool](#bool) | | Supports OTAA. |
| supports_class_b | [bool](#bool) | | Supports Class-B. |
| supports_class_c | [bool](#bool) | | Supports Class-C. |
<a name="api-GetDeviceProfileTemplateRequest"></a>
### GetDeviceProfileTemplateRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [string](#string) | | ID. |
<a name="api-GetDeviceProfileTemplateResponse"></a>
### GetDeviceProfileTemplateResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| device_profile_template | [DeviceProfileTemplate](#api-DeviceProfileTemplate) | | Device-profile template object. |
| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Created at timestamp. |
| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Last update timestamp. |
<a name="api-ListDeviceProfileTemplatesRequest"></a>
### ListDeviceProfileTemplatesRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| limit | [uint32](#uint32) | | Max number of device-profile templates to return in the result-set. |
| offset | [uint32](#uint32) | | Offset in the result-set (for pagination). |
<a name="api-ListDeviceProfileTemplatesResponse"></a>
### ListDeviceProfileTemplatesResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| total_count | [uint32](#uint32) | | Total number of device-profile templates. |
| result | [DeviceProfileTemplateListItem](#api-DeviceProfileTemplateListItem) | repeated | Result-set. |
<a name="api-UpdateDeviceProfileTemplateRequest"></a>
### UpdateDeviceProfileTemplateRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| device_profile_template | [DeviceProfileTemplate](#api-DeviceProfileTemplate) | | Object to update. |
@ -2852,6 +3040,20 @@ device-profiles.
<a name="api-DeviceProfileTemplateService"></a>
### DeviceProfileTemplateService
DeviceProfileTemplateService is the service providing API methods for managing device-profile templates.
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| Create | [CreateDeviceProfileTemplateRequest](#api-CreateDeviceProfileTemplateRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Create the given device-profile template. |
| Get | [GetDeviceProfileTemplateRequest](#api-GetDeviceProfileTemplateRequest) | [GetDeviceProfileTemplateResponse](#api-GetDeviceProfileTemplateResponse) | Get the device-profile template for the given ID. |
| Update | [UpdateDeviceProfileTemplateRequest](#api-UpdateDeviceProfileTemplateRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Update the given device-profile template. |
| Delete | [DeleteDeviceProfileTemplateRequest](#api-DeleteDeviceProfileTemplateRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Delete the device-profile template with the given ID. |
| List | [ListDeviceProfileTemplatesRequest](#api-ListDeviceProfileTemplatesRequest) | [ListDeviceProfileTemplatesResponse](#api-ListDeviceProfileTemplatesResponse) | List the available device-profile templates. |
@ -3571,6 +3773,166 @@ MulticastGroupService is the service managing multicast-groups.
<a name="api_relay-proto"></a>
<p align="right"><a href="#top">Top</a></p>
## api/relay.proto
<a name="api-AddRelayDeviceRequest"></a>
### AddRelayDeviceRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| relay_dev_eui | [string](#string) | | Relay DevEUI (EUI64). |
| device_dev_eui | [string](#string) | | Device DevEUI (EUI64). |
<a name="api-ListRelayDevicesRequest"></a>
### ListRelayDevicesRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| limit | [uint32](#uint32) | | Max number of multicast groups to return in the result-set. |
| offset | [uint32](#uint32) | | Offset in the result-set (for pagination). |
| relay_dev_eui | [string](#string) | | Relay DevEUI (EUI64). |
<a name="api-ListRelayDevicesResponse"></a>
### ListRelayDevicesResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| total_count | [uint32](#uint32) | | Total number of devices. |
| result | [RelayDeviceListItem](#api-RelayDeviceListItem) | repeated | Result-set. |
<a name="api-ListRelaysRequest"></a>
### ListRelaysRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| limit | [uint32](#uint32) | | Max number of devices to return in the result-set. |
| offset | [uint32](#uint32) | | Offset in the result-set (for pagination). |
| application_id | [string](#string) | | Application ID (UUID). |
<a name="api-ListRelaysResponse"></a>
### ListRelaysResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| total_count | [uint32](#uint32) | | Total number of relays. |
| result | [RelayListItem](#api-RelayListItem) | repeated | Result-set. |
<a name="api-RelayDeviceListItem"></a>
### RelayDeviceListItem
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| dev_eui | [string](#string) | | DevEUI (EUI64). |
| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Created at timestamp. |
| name | [string](#string) | | Device name. |
<a name="api-RelayListItem"></a>
### RelayListItem
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| dev_eui | [string](#string) | | DevEUI (EUI64). |
| name | [string](#string) | | Name. |
<a name="api-RemoveRelayDeviceRequest"></a>
### RemoveRelayDeviceRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| relay_dev_eui | [string](#string) | | Relay DevEUI (EUI64). |
| device_dev_eui | [string](#string) | | Device DevEUI (EUI64). |
<a name="api-RelayService"></a>
### RelayService
RelayService is the service providing API methos for managing relays.
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| List | [ListRelaysRequest](#api-ListRelaysRequest) | [ListRelaysResponse](#api-ListRelaysResponse) | List lists the relays for the given application id. |
| AddDevice | [AddRelayDeviceRequest](#api-AddRelayDeviceRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | AddDevice adds the given device to the relay. |
| RemoveDevice | [RemoveRelayDeviceRequest](#api-RemoveRelayDeviceRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | RemoveDevice removes the given device from the relay. |
| ListDevices | [ListRelayDevicesRequest](#api-ListRelayDevicesRequest) | [ListRelayDevicesResponse](#api-ListRelayDevicesResponse) | ListDevices lists the devices for the given relay. |
<a name="api_tenant-proto"></a>
<p align="right"><a href="#top">Top</a></p>

View File

@ -1,74 +0,0 @@
syntax = "proto3";
package api;
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
option java_package = "io.chirpstack.api";
option java_multiple_files = true;
option java_outer_classname = "FrameLogProto";
option csharp_namespace = "Chirpstack.Api";
import "google/protobuf/timestamp.proto";
import "common/common.proto";
import "gw/gw.proto";
message UplinkFrameLog {
// PHYPayload.
bytes phy_payload = 1;
// TX meta-data.
gw.UplinkTxInfo tx_info = 2;
// RX meta-data.
repeated gw.UplinkRxInfo rx_info = 3;
// Message type.
common.MType m_type = 4;
// Device address (optional).
string dev_addr = 5;
// Device EUI (optional).
string dev_eui = 6;
// Time.
google.protobuf.Timestamp time = 7;
// Plaintext f_opts mac-commands.
bool plaintext_f_opts = 8;
// Plaintext frm_payload.
bool plaintext_frm_payload = 9;
}
message DownlinkFrameLog {
// Time.
google.protobuf.Timestamp time = 1;
// PHYPayload.
bytes phy_payload = 2;
// TX meta-data.
gw.DownlinkTxInfo tx_info = 3;
// Downlink ID.
uint32 downlink_id = 4;
// Gateway ID (EUI64).
string gateway_id = 5;
// Message type.
common.MType m_type = 6;
// Device address (optional).
string dev_addr = 7;
// Device EUI (optional).
string dev_eui = 8;
// Plaintext f_opts mac-commands.
bool plaintext_f_opts = 9;
// Plaintext frm_payload.
bool plaintext_frm_payload = 10;
}

View File

@ -1,24 +0,0 @@
syntax = "proto3";
package api;
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
option java_package = "io.chirpstack.api";
option java_multiple_files = true;
option java_outer_classname = "RequestLogProto";
option csharp_namespace = "Chirpstack.Api";
import "google/protobuf/timestamp.proto";
import "common/common.proto";
import "gw/gw.proto";
message RequestLog {
// API service name.
string service = 1;
// API method name.
string method = 2;
// Metadata.
map<string, string> metadata = 3;
}

View File

@ -1,62 +0,0 @@
syntax = "proto3";
package meta;
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/meta";
option java_package = "io.chirpstack.api.meta";
option java_multiple_files = true;
option java_outer_classname = "MetaProto";
option csharp_namespace = "Chirpstack.Meta";
import "common/common.proto";
import "gw/gw.proto";
message UplinkMeta {
// Device EUI (EUI64).
string dev_eui = 1;
// TX meta-data.
gw.UplinkTxInfo tx_info = 2;
// RX meta-data.
repeated gw.UplinkRxInfo rx_info = 3;
// PHYPayload byte count.
uint32 phy_payload_byte_count = 4;
// MAC-Command byte count.
uint32 mac_command_byte_count = 5;
// Application payload byte count.
uint32 application_payload_byte_count = 6;
// Message type.
common.MType message_type = 7;
}
message DownlinkMeta {
// Device EUI (EUI64).
string dev_eui = 1;
// Multicast Group ID (UUID).
string multicast_group_id = 2;
// TX meta-data.
gw.DownlinkTxInfo tx_info = 3;
// PHYPayload byte count.
uint32 phy_payload_byte_count = 4;
// MAC-Command byte count.
uint32 mac_command_byte_count = 5;
// Application payload byte count.
uint32 application_payload_byte_count = 6;
// Message type.
common.MType message_type = 7;
// Gateway ID (EUI64).
string gateway_id = 8;
}

24
api/proto/stream/api_request.proto vendored Normal file
View File

@ -0,0 +1,24 @@
syntax = "proto3";
package stream;
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/stream";
option java_package = "io.chirpstack.api.stream";
option java_multiple_files = true;
option java_outer_classname = "ApiRequestProto";
option csharp_namespace = "Chirpstack.Stream";
import "google/protobuf/timestamp.proto";
import "common/common.proto";
import "gw/gw.proto";
message ApiRequestLog {
// API service name.
string service = 1;
// API method name.
string method = 2;
// Metadata.
map<string, string> metadata = 3;
}

View File

@ -0,0 +1,40 @@
syntax = "proto3";
package stream;
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/stream";
option java_package = "io.chirpstack.api.stream";
option java_multiple_files = true;
option java_outer_classname = "BackendInterfacesProto";
option csharp_namespace = "Chirpstack.Stream";
import "google/protobuf/timestamp.proto";
message BackendInterfacesRequest {
// Sender ID.
string sender_id = 1;
// Receiver ID.
string receiver_id = 2;
// Timestamp.
google.protobuf.Timestamp time = 3;
// Transaction ID.
uint32 transaction_id = 4;
// Message-type.
string message_type = 5;
// Result code.
string result_code = 6;
// Request body.
string request_body = 7;
// Request error.
string request_error = 8;
// Response body.
string response_body = 9;
}

74
api/proto/stream/frame.proto vendored Normal file
View File

@ -0,0 +1,74 @@
syntax = "proto3";
package stream;
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/stream";
option java_package = "io.chirpstack.api.stream";
option java_multiple_files = true;
option java_outer_classname = "FrameProto";
option csharp_namespace = "Chirpstack.Stream";
import "google/protobuf/timestamp.proto";
import "common/common.proto";
import "gw/gw.proto";
message UplinkFrameLog {
// PHYPayload.
bytes phy_payload = 1;
// TX meta-data.
gw.UplinkTxInfo tx_info = 2;
// RX meta-data.
repeated gw.UplinkRxInfo rx_info = 3;
// Message type.
common.MType m_type = 4;
// Device address (optional).
string dev_addr = 5;
// Device EUI (optional).
string dev_eui = 6;
// Time.
google.protobuf.Timestamp time = 7;
// Plaintext f_opts mac-commands.
bool plaintext_f_opts = 8;
// Plaintext frm_payload.
bool plaintext_frm_payload = 9;
}
message DownlinkFrameLog {
// Time.
google.protobuf.Timestamp time = 1;
// PHYPayload.
bytes phy_payload = 2;
// TX meta-data.
gw.DownlinkTxInfo tx_info = 3;
// Downlink ID.
uint32 downlink_id = 4;
// Gateway ID (EUI64).
string gateway_id = 5;
// Message type.
common.MType m_type = 6;
// Device address (optional).
string dev_addr = 7;
// Device EUI (optional).
string dev_eui = 8;
// Plaintext f_opts mac-commands.
bool plaintext_f_opts = 9;
// Plaintext frm_payload.
bool plaintext_frm_payload = 10;
}

61
api/proto/stream/meta.proto vendored Normal file
View File

@ -0,0 +1,61 @@
syntax = "proto3";
package stream;
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/stream";
option java_package = "io.chirpstack.api.stream";
option java_multiple_files = true;
option java_outer_classname = "MetaProto";
option csharp_namespace = "Chirpstack.Stream";
import "common/common.proto";
import "gw/gw.proto";
message UplinkMeta {
// Device EUI (EUI64).
string dev_eui = 1;
// TX meta-data.
gw.UplinkTxInfo tx_info = 2;
// RX meta-data.
repeated gw.UplinkRxInfo rx_info = 3;
// PHYPayload byte count.
uint32 phy_payload_byte_count = 4;
// MAC-Command byte count.
uint32 mac_command_byte_count = 5;
// Application payload byte count.
uint32 application_payload_byte_count = 6;
// Message type.
common.MType message_type = 7;
}
message DownlinkMeta {
// Device EUI (EUI64).
string dev_eui = 1;
// Multicast Group ID (UUID).
string multicast_group_id = 2;
// TX meta-data.
gw.DownlinkTxInfo tx_info = 3;
// PHYPayload byte count.
uint32 phy_payload_byte_count = 4;
// MAC-Command byte count.
uint32 mac_command_byte_count = 5;
// Application payload byte count.
uint32 application_payload_byte_count = 6;
// Message type.
common.MType message_type = 7;
// Gateway ID (EUI64).
string gateway_id = 8;
}

13
api/python/Makefile vendored
View File

@ -1,10 +1,10 @@
.PHONY: requirements common gw api integration meta
.PHONY: requirements common gw api integration stream
PROTOC := python -m grpc_tools.protoc
PROTOC_ARGS := -I=/googleapis -I=proto --python_out=src --grpc_python_out=src --pyi_out=src
PACKAGE_NAME := import \"chirpstack-api/
all: requirements pre-build common gw api integration meta
all: requirements pre-build common gw api integration stream
requirements:
pip install grpcio-tools
@ -35,13 +35,14 @@ api:
$(PROTOC) ${PROTOC_ARGS} chirpstack-api/api/device_profile_template.proto
$(PROTOC) ${PROTOC_ARGS} chirpstack-api/api/device.proto
$(PROTOC) ${PROTOC_ARGS} chirpstack-api/api/gateway.proto
$(PROTOC) ${PROTOC_ARGS} chirpstack-api/api/frame_log.proto
$(PROTOC) ${PROTOC_ARGS} chirpstack-api/api/multicast_group.proto
$(PROTOC) ${PROTOC_ARGS} chirpstack-api/api/request_log.proto
$(PROTOC) ${PROTOC_ARGS} chirpstack-api/api/relay.proto
integration:
$(PROTOC) ${PROTOC_ARGS} chirpstack-api/integration/integration.proto
meta:
$(PROTOC) ${PROTOC_ARGS} chirpstack-api/meta/meta.proto
stream:
$(PROTOC) ${PROTOC_ARGS} chirpstack-api/stream/meta.proto
$(PROTOC) ${PROTOC_ARGS} chirpstack-api/stream/frame.proto
$(PROTOC) ${PROTOC_ARGS} chirpstack-api/stream/api_request.proto
$(PROTOC) ${PROTOC_ARGS} chirpstack-api/stream/backend_interfaces.proto

View File

@ -1,74 +0,0 @@
syntax = "proto3";
package api;
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
option java_package = "io.chirpstack.api";
option java_multiple_files = true;
option java_outer_classname = "FrameLogProto";
option csharp_namespace = "Chirpstack.Api";
import "google/protobuf/timestamp.proto";
import "chirpstack-api/common/common.proto";
import "chirpstack-api/gw/gw.proto";
message UplinkFrameLog {
// PHYPayload.
bytes phy_payload = 1;
// TX meta-data.
gw.UplinkTxInfo tx_info = 2;
// RX meta-data.
repeated gw.UplinkRxInfo rx_info = 3;
// Message type.
common.MType m_type = 4;
// Device address (optional).
string dev_addr = 5;
// Device EUI (optional).
string dev_eui = 6;
// Time.
google.protobuf.Timestamp time = 7;
// Plaintext f_opts mac-commands.
bool plaintext_f_opts = 8;
// Plaintext frm_payload.
bool plaintext_frm_payload = 9;
}
message DownlinkFrameLog {
// Time.
google.protobuf.Timestamp time = 1;
// PHYPayload.
bytes phy_payload = 2;
// TX meta-data.
gw.DownlinkTxInfo tx_info = 3;
// Downlink ID.
uint32 downlink_id = 4;
// Gateway ID (EUI64).
string gateway_id = 5;
// Message type.
common.MType m_type = 6;
// Device address (optional).
string dev_addr = 7;
// Device EUI (optional).
string dev_eui = 8;
// Plaintext f_opts mac-commands.
bool plaintext_f_opts = 9;
// Plaintext frm_payload.
bool plaintext_frm_payload = 10;
}

View File

@ -1,24 +0,0 @@
syntax = "proto3";
package api;
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
option java_package = "io.chirpstack.api";
option java_multiple_files = true;
option java_outer_classname = "RequestLogProto";
option csharp_namespace = "Chirpstack.Api";
import "google/protobuf/timestamp.proto";
import "chirpstack-api/common/common.proto";
import "chirpstack-api/gw/gw.proto";
message RequestLog {
// API service name.
string service = 1;
// API method name.
string method = 2;
// Metadata.
map<string, string> metadata = 3;
}

View File

@ -1,62 +0,0 @@
syntax = "proto3";
package meta;
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/meta";
option java_package = "io.chirpstack.api.meta";
option java_multiple_files = true;
option java_outer_classname = "MetaProto";
option csharp_namespace = "Chirpstack.Meta";
import "chirpstack-api/common/common.proto";
import "chirpstack-api/gw/gw.proto";
message UplinkMeta {
// Device EUI (EUI64).
string dev_eui = 1;
// TX meta-data.
gw.UplinkTxInfo tx_info = 2;
// RX meta-data.
repeated gw.UplinkRxInfo rx_info = 3;
// PHYPayload byte count.
uint32 phy_payload_byte_count = 4;
// MAC-Command byte count.
uint32 mac_command_byte_count = 5;
// Application payload byte count.
uint32 application_payload_byte_count = 6;
// Message type.
common.MType message_type = 7;
}
message DownlinkMeta {
// Device EUI (EUI64).
string dev_eui = 1;
// Multicast Group ID (UUID).
string multicast_group_id = 2;
// TX meta-data.
gw.DownlinkTxInfo tx_info = 3;
// PHYPayload byte count.
uint32 phy_payload_byte_count = 4;
// MAC-Command byte count.
uint32 mac_command_byte_count = 5;
// Application payload byte count.
uint32 application_payload_byte_count = 6;
// Message type.
common.MType message_type = 7;
// Gateway ID (EUI64).
string gateway_id = 8;
}

View File

@ -0,0 +1,24 @@
syntax = "proto3";
package stream;
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/stream";
option java_package = "io.chirpstack.api.stream";
option java_multiple_files = true;
option java_outer_classname = "ApiRequestProto";
option csharp_namespace = "Chirpstack.Stream";
import "google/protobuf/timestamp.proto";
import "chirpstack-api/common/common.proto";
import "chirpstack-api/gw/gw.proto";
message ApiRequestLog {
// API service name.
string service = 1;
// API method name.
string method = 2;
// Metadata.
map<string, string> metadata = 3;
}

View File

@ -0,0 +1,40 @@
syntax = "proto3";
package stream;
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/stream";
option java_package = "io.chirpstack.api.stream";
option java_multiple_files = true;
option java_outer_classname = "BackendInterfacesProto";
option csharp_namespace = "Chirpstack.Stream";
import "google/protobuf/timestamp.proto";
message BackendInterfacesRequest {
// Sender ID.
string sender_id = 1;
// Receiver ID.
string receiver_id = 2;
// Timestamp.
google.protobuf.Timestamp time = 3;
// Transaction ID.
uint32 transaction_id = 4;
// Message-type.
string message_type = 5;
// Result code.
string result_code = 6;
// Request body.
string request_body = 7;
// Request error.
string request_error = 8;
// Response body.
string response_body = 9;
}

View File

@ -0,0 +1,74 @@
syntax = "proto3";
package stream;
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/stream";
option java_package = "io.chirpstack.api.stream";
option java_multiple_files = true;
option java_outer_classname = "FrameProto";
option csharp_namespace = "Chirpstack.Stream";
import "google/protobuf/timestamp.proto";
import "chirpstack-api/common/common.proto";
import "chirpstack-api/gw/gw.proto";
message UplinkFrameLog {
// PHYPayload.
bytes phy_payload = 1;
// TX meta-data.
gw.UplinkTxInfo tx_info = 2;
// RX meta-data.
repeated gw.UplinkRxInfo rx_info = 3;
// Message type.
common.MType m_type = 4;
// Device address (optional).
string dev_addr = 5;
// Device EUI (optional).
string dev_eui = 6;
// Time.
google.protobuf.Timestamp time = 7;
// Plaintext f_opts mac-commands.
bool plaintext_f_opts = 8;
// Plaintext frm_payload.
bool plaintext_frm_payload = 9;
}
message DownlinkFrameLog {
// Time.
google.protobuf.Timestamp time = 1;
// PHYPayload.
bytes phy_payload = 2;
// TX meta-data.
gw.DownlinkTxInfo tx_info = 3;
// Downlink ID.
uint32 downlink_id = 4;
// Gateway ID (EUI64).
string gateway_id = 5;
// Message type.
common.MType m_type = 6;
// Device address (optional).
string dev_addr = 7;
// Device EUI (optional).
string dev_eui = 8;
// Plaintext f_opts mac-commands.
bool plaintext_f_opts = 9;
// Plaintext frm_payload.
bool plaintext_frm_payload = 10;
}

View File

@ -0,0 +1,61 @@
syntax = "proto3";
package stream;
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/stream";
option java_package = "io.chirpstack.api.stream";
option java_multiple_files = true;
option java_outer_classname = "MetaProto";
option csharp_namespace = "Chirpstack.Stream";
import "chirpstack-api/common/common.proto";
import "chirpstack-api/gw/gw.proto";
message UplinkMeta {
// Device EUI (EUI64).
string dev_eui = 1;
// TX meta-data.
gw.UplinkTxInfo tx_info = 2;
// RX meta-data.
repeated gw.UplinkRxInfo rx_info = 3;
// PHYPayload byte count.
uint32 phy_payload_byte_count = 4;
// MAC-Command byte count.
uint32 mac_command_byte_count = 5;
// Application payload byte count.
uint32 application_payload_byte_count = 6;
// Message type.
common.MType message_type = 7;
}
message DownlinkMeta {
// Device EUI (EUI64).
string dev_eui = 1;
// Multicast Group ID (UUID).
string multicast_group_id = 2;
// TX meta-data.
gw.DownlinkTxInfo tx_info = 3;
// PHYPayload byte count.
uint32 phy_payload_byte_count = 4;
// MAC-Command byte count.
uint32 mac_command_byte_count = 5;
// Application payload byte count.
uint32 application_payload_byte_count = 6;
// Message type.
common.MType message_type = 7;
// Gateway ID (EUI64).
string gateway_id = 8;
}

View File

@ -18,6 +18,5 @@ from .tenant_pb2 import *
from .tenant_pb2_grpc import *
from .user_pb2 import *
from .user_pb2_grpc import *
from .request_log_pb2 import *
from .relay_pb2 import *
from .relay_pb2_grpc import *

View File

@ -1,34 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: chirpstack-api/api/request_log.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import symbol_database as _symbol_database
from google.protobuf.internal import builder as _builder
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
from chirpstack_api.common import common_pb2 as chirpstack__api_dot_common_dot_common__pb2
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/request_log.proto\x12\x03\x61pi\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\"chirpstack-api/common/common.proto\x1a\x1a\x63hirpstack-api/gw/gw.proto\"\x8f\x01\n\nRequestLog\x12\x0f\n\x07service\x18\x01 \x01(\t\x12\x0e\n\x06method\x18\x02 \x01(\t\x12/\n\x08metadata\x18\x03 \x03(\x0b\x32\x1d.api.RequestLog.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42g\n\x11io.chirpstack.apiB\x0fRequestLogProtoP\x01Z.github.com/chirpstack/chirpstack/api/go/v4/api\xaa\x02\x0e\x43hirpstack.Apib\x06proto3')
_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'chirpstack_api.api.request_log_pb2', _globals)
if _descriptor._USE_C_DESCRIPTORS == False:
DESCRIPTOR._options = None
DESCRIPTOR._serialized_options = b'\n\021io.chirpstack.apiB\017RequestLogProtoP\001Z.github.com/chirpstack/chirpstack/api/go/v4/api\252\002\016Chirpstack.Api'
_REQUESTLOG_METADATAENTRY._options = None
_REQUESTLOG_METADATAENTRY._serialized_options = b'8\001'
_globals['_REQUESTLOG']._serialized_start=143
_globals['_REQUESTLOG']._serialized_end=286
_globals['_REQUESTLOG_METADATAENTRY']._serialized_start=239
_globals['_REQUESTLOG_METADATAENTRY']._serialized_end=286
# @@protoc_insertion_point(module_scope)

View File

@ -1 +0,0 @@
from .meta_pb2 import *

View File

@ -1,31 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: chirpstack-api/meta/meta.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import symbol_database as _symbol_database
from google.protobuf.internal import builder as _builder
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
from chirpstack_api.common import common_pb2 as chirpstack__api_dot_common_dot_common__pb2
from chirpstack_api.gw import gw_pb2 as chirpstack__api_dot_gw_dot_gw__pb2
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1e\x63hirpstack-api/meta/meta.proto\x12\x04meta\x1a\"chirpstack-api/common/common.proto\x1a\x1a\x63hirpstack-api/gw/gw.proto\"\xf0\x01\n\nUplinkMeta\x12\x0f\n\x07\x64\x65v_eui\x18\x01 \x01(\t\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\x1e\n\x16phy_payload_byte_count\x18\x04 \x01(\r\x12\x1e\n\x16mac_command_byte_count\x18\x05 \x01(\r\x12&\n\x1e\x61pplication_payload_byte_count\x18\x06 \x01(\r\x12#\n\x0cmessage_type\x18\x07 \x01(\x0e\x32\r.common.MType\"\x81\x02\n\x0c\x44ownlinkMeta\x12\x0f\n\x07\x64\x65v_eui\x18\x01 \x01(\t\x12\x1a\n\x12multicast_group_id\x18\x02 \x01(\t\x12#\n\x07tx_info\x18\x03 \x01(\x0b\x32\x12.gw.DownlinkTxInfo\x12\x1e\n\x16phy_payload_byte_count\x18\x04 \x01(\r\x12\x1e\n\x16mac_command_byte_count\x18\x05 \x01(\r\x12&\n\x1e\x61pplication_payload_byte_count\x18\x06 \x01(\r\x12#\n\x0cmessage_type\x18\x07 \x01(\x0e\x32\r.common.MType\x12\x12\n\ngateway_id\x18\x08 \x01(\tBh\n\x16io.chirpstack.api.metaB\tMetaProtoP\x01Z/github.com/chirpstack/chirpstack/api/go/v4/meta\xaa\x02\x0f\x43hirpstack.Metab\x06proto3')
_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'chirpstack_api.meta.meta_pb2', _globals)
if _descriptor._USE_C_DESCRIPTORS == False:
DESCRIPTOR._options = None
DESCRIPTOR._serialized_options = b'\n\026io.chirpstack.api.metaB\tMetaProtoP\001Z/github.com/chirpstack/chirpstack/api/go/v4/meta\252\002\017Chirpstack.Meta'
_globals['_UPLINKMETA']._serialized_start=105
_globals['_UPLINKMETA']._serialized_end=345
_globals['_DOWNLINKMETA']._serialized_start=348
_globals['_DOWNLINKMETA']._serialized_end=605
# @@protoc_insertion_point(module_scope)

View File

@ -0,0 +1,4 @@
from .frame_pb2 import *
from .meta_pb2 import *
from .api_request_pb2 import *
from .backend_interfaces_pb2 import *

View File

@ -0,0 +1,34 @@
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: chirpstack-api/stream/api_request.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import symbol_database as _symbol_database
from google.protobuf.internal import builder as _builder
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
from chirpstack_api.common import common_pb2 as chirpstack__api_dot_common_dot_common__pb2
from chirpstack_api.gw import gw_pb2 as chirpstack__api_dot_gw_dot_gw__pb2
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'chirpstack-api/stream/api_request.proto\x12\x06stream\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\"chirpstack-api/common/common.proto\x1a\x1a\x63hirpstack-api/gw/gw.proto\"\x98\x01\n\rApiRequestLog\x12\x0f\n\x07service\x18\x01 \x01(\t\x12\x0e\n\x06method\x18\x02 \x01(\t\x12\x35\n\x08metadata\x18\x03 \x03(\x0b\x32#.stream.ApiRequestLog.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42t\n\x18io.chirpstack.api.streamB\x0f\x41piRequestProtoP\x01Z1github.com/chirpstack/chirpstack/api/go/v4/stream\xaa\x02\x11\x43hirpstack.Streamb\x06proto3')
_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'chirpstack_api.stream.api_request_pb2', _globals)
if _descriptor._USE_C_DESCRIPTORS == False:
DESCRIPTOR._options = None
DESCRIPTOR._serialized_options = b'\n\030io.chirpstack.api.streamB\017ApiRequestProtoP\001Z1github.com/chirpstack/chirpstack/api/go/v4/stream\252\002\021Chirpstack.Stream'
_APIREQUESTLOG_METADATAENTRY._options = None
_APIREQUESTLOG_METADATAENTRY._serialized_options = b'8\001'
_globals['_APIREQUESTLOG']._serialized_start=149
_globals['_APIREQUESTLOG']._serialized_end=301
_globals['_APIREQUESTLOG_METADATAENTRY']._serialized_start=254
_globals['_APIREQUESTLOG_METADATAENTRY']._serialized_end=301
# @@protoc_insertion_point(module_scope)

View File

@ -8,7 +8,7 @@ from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Opti
DESCRIPTOR: _descriptor.FileDescriptor
class RequestLog(_message.Message):
class ApiRequestLog(_message.Message):
__slots__ = ["service", "method", "metadata"]
class MetadataEntry(_message.Message):
__slots__ = ["key", "value"]

View File

@ -0,0 +1,28 @@
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: chirpstack-api/stream/backend_interfaces.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import symbol_database as _symbol_database
from google.protobuf.internal import builder as _builder
# @@protoc_insertion_point(imports)
_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/stream/backend_interfaces.proto\x12\x06stream\x1a\x1fgoogle/protobuf/timestamp.proto\"\xf3\x01\n\x18\x42\x61\x63kendInterfacesRequest\x12\x11\n\tsender_id\x18\x01 \x01(\t\x12\x13\n\x0breceiver_id\x18\x02 \x01(\t\x12(\n\x04time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x16\n\x0etransaction_id\x18\x04 \x01(\r\x12\x14\n\x0cmessage_type\x18\x05 \x01(\t\x12\x13\n\x0bresult_code\x18\x06 \x01(\t\x12\x14\n\x0crequest_body\x18\x07 \x01(\t\x12\x15\n\rrequest_error\x18\x08 \x01(\t\x12\x15\n\rresponse_body\x18\t \x01(\tB{\n\x18io.chirpstack.api.streamB\x16\x42\x61\x63kendInterfacesProtoP\x01Z1github.com/chirpstack/chirpstack/api/go/v4/stream\xaa\x02\x11\x43hirpstack.Streamb\x06proto3')
_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'chirpstack_api.stream.backend_interfaces_pb2', _globals)
if _descriptor._USE_C_DESCRIPTORS == False:
DESCRIPTOR._options = None
DESCRIPTOR._serialized_options = b'\n\030io.chirpstack.api.streamB\026BackendInterfacesProtoP\001Z1github.com/chirpstack/chirpstack/api/go/v4/stream\252\002\021Chirpstack.Stream'
_globals['_BACKENDINTERFACESREQUEST']._serialized_start=92
_globals['_BACKENDINTERFACESREQUEST']._serialized_end=335
# @@protoc_insertion_point(module_scope)

View File

@ -0,0 +1,28 @@
from google.protobuf import timestamp_pb2 as _timestamp_pb2
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union
DESCRIPTOR: _descriptor.FileDescriptor
class BackendInterfacesRequest(_message.Message):
__slots__ = ["sender_id", "receiver_id", "time", "transaction_id", "message_type", "result_code", "request_body", "request_error", "response_body"]
SENDER_ID_FIELD_NUMBER: _ClassVar[int]
RECEIVER_ID_FIELD_NUMBER: _ClassVar[int]
TIME_FIELD_NUMBER: _ClassVar[int]
TRANSACTION_ID_FIELD_NUMBER: _ClassVar[int]
MESSAGE_TYPE_FIELD_NUMBER: _ClassVar[int]
RESULT_CODE_FIELD_NUMBER: _ClassVar[int]
REQUEST_BODY_FIELD_NUMBER: _ClassVar[int]
REQUEST_ERROR_FIELD_NUMBER: _ClassVar[int]
RESPONSE_BODY_FIELD_NUMBER: _ClassVar[int]
sender_id: str
receiver_id: str
time: _timestamp_pb2.Timestamp
transaction_id: int
message_type: str
result_code: str
request_body: str
request_error: str
response_body: str
def __init__(self, sender_id: _Optional[str] = ..., receiver_id: _Optional[str] = ..., time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., transaction_id: _Optional[int] = ..., message_type: _Optional[str] = ..., result_code: _Optional[str] = ..., request_body: _Optional[str] = ..., request_error: _Optional[str] = ..., response_body: _Optional[str] = ...) -> None: ...

View File

@ -0,0 +1,32 @@
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: chirpstack-api/stream/frame.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import symbol_database as _symbol_database
from google.protobuf.internal import builder as _builder
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
from chirpstack_api.common import common_pb2 as chirpstack__api_dot_common_dot_common__pb2
from chirpstack_api.gw import gw_pb2 as chirpstack__api_dot_gw_dot_gw__pb2
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!chirpstack-api/stream/frame.proto\x12\x06stream\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\"chirpstack-api/common/common.proto\x1a\x1a\x63hirpstack-api/gw/gw.proto\"\x90\x02\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\x18\n\x10plaintext_f_opts\x18\x08 \x01(\x08\x12\x1d\n\x15plaintext_frm_payload\x18\t \x01(\x08\"\x9a\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\x18\n\x10plaintext_f_opts\x18\t \x01(\x08\x12\x1d\n\x15plaintext_frm_payload\x18\n \x01(\x08\x42o\n\x18io.chirpstack.api.streamB\nFrameProtoP\x01Z1github.com/chirpstack/chirpstack/api/go/v4/stream\xaa\x02\x11\x43hirpstack.Streamb\x06proto3')
_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'chirpstack_api.stream.frame_pb2', _globals)
if _descriptor._USE_C_DESCRIPTORS == False:
DESCRIPTOR._options = None
DESCRIPTOR._serialized_options = b'\n\030io.chirpstack.api.streamB\nFrameProtoP\001Z1github.com/chirpstack/chirpstack/api/go/v4/stream\252\002\021Chirpstack.Stream'
_globals['_UPLINKFRAMELOG']._serialized_start=143
_globals['_UPLINKFRAMELOG']._serialized_end=415
_globals['_DOWNLINKFRAMELOG']._serialized_start=418
_globals['_DOWNLINKFRAMELOG']._serialized_end=700
# @@protoc_insertion_point(module_scope)

View File

@ -0,0 +1,55 @@
from google.protobuf import timestamp_pb2 as _timestamp_pb2
from chirpstack_api.common import common_pb2 as _common_pb2
from chirpstack_api.gw import gw_pb2 as _gw_pb2
from google.protobuf.internal import containers as _containers
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
DESCRIPTOR: _descriptor.FileDescriptor
class UplinkFrameLog(_message.Message):
__slots__ = ["phy_payload", "tx_info", "rx_info", "m_type", "dev_addr", "dev_eui", "time", "plaintext_f_opts", "plaintext_frm_payload"]
PHY_PAYLOAD_FIELD_NUMBER: _ClassVar[int]
TX_INFO_FIELD_NUMBER: _ClassVar[int]
RX_INFO_FIELD_NUMBER: _ClassVar[int]
M_TYPE_FIELD_NUMBER: _ClassVar[int]
DEV_ADDR_FIELD_NUMBER: _ClassVar[int]
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
TIME_FIELD_NUMBER: _ClassVar[int]
PLAINTEXT_F_OPTS_FIELD_NUMBER: _ClassVar[int]
PLAINTEXT_FRM_PAYLOAD_FIELD_NUMBER: _ClassVar[int]
phy_payload: bytes
tx_info: _gw_pb2.UplinkTxInfo
rx_info: _containers.RepeatedCompositeFieldContainer[_gw_pb2.UplinkRxInfo]
m_type: _common_pb2.MType
dev_addr: str
dev_eui: str
time: _timestamp_pb2.Timestamp
plaintext_f_opts: bool
plaintext_frm_payload: bool
def __init__(self, phy_payload: _Optional[bytes] = ..., tx_info: _Optional[_Union[_gw_pb2.UplinkTxInfo, _Mapping]] = ..., rx_info: _Optional[_Iterable[_Union[_gw_pb2.UplinkRxInfo, _Mapping]]] = ..., m_type: _Optional[_Union[_common_pb2.MType, str]] = ..., dev_addr: _Optional[str] = ..., dev_eui: _Optional[str] = ..., time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., plaintext_f_opts: bool = ..., plaintext_frm_payload: bool = ...) -> None: ...
class DownlinkFrameLog(_message.Message):
__slots__ = ["time", "phy_payload", "tx_info", "downlink_id", "gateway_id", "m_type", "dev_addr", "dev_eui", "plaintext_f_opts", "plaintext_frm_payload"]
TIME_FIELD_NUMBER: _ClassVar[int]
PHY_PAYLOAD_FIELD_NUMBER: _ClassVar[int]
TX_INFO_FIELD_NUMBER: _ClassVar[int]
DOWNLINK_ID_FIELD_NUMBER: _ClassVar[int]
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
M_TYPE_FIELD_NUMBER: _ClassVar[int]
DEV_ADDR_FIELD_NUMBER: _ClassVar[int]
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
PLAINTEXT_F_OPTS_FIELD_NUMBER: _ClassVar[int]
PLAINTEXT_FRM_PAYLOAD_FIELD_NUMBER: _ClassVar[int]
time: _timestamp_pb2.Timestamp
phy_payload: bytes
tx_info: _gw_pb2.DownlinkTxInfo
downlink_id: int
gateway_id: str
m_type: _common_pb2.MType
dev_addr: str
dev_eui: str
plaintext_f_opts: bool
plaintext_frm_payload: bool
def __init__(self, time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., phy_payload: _Optional[bytes] = ..., tx_info: _Optional[_Union[_gw_pb2.DownlinkTxInfo, _Mapping]] = ..., downlink_id: _Optional[int] = ..., gateway_id: _Optional[str] = ..., m_type: _Optional[_Union[_common_pb2.MType, str]] = ..., dev_addr: _Optional[str] = ..., dev_eui: _Optional[str] = ..., plaintext_f_opts: bool = ..., plaintext_frm_payload: bool = ...) -> None: ...

View File

@ -0,0 +1,4 @@
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
"""Client and server classes corresponding to protobuf-defined services."""
import grpc

View File

@ -0,0 +1,31 @@
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: chirpstack-api/stream/meta.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import symbol_database as _symbol_database
from google.protobuf.internal import builder as _builder
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
from chirpstack_api.common import common_pb2 as chirpstack__api_dot_common_dot_common__pb2
from chirpstack_api.gw import gw_pb2 as chirpstack__api_dot_gw_dot_gw__pb2
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n chirpstack-api/stream/meta.proto\x12\x06stream\x1a\"chirpstack-api/common/common.proto\x1a\x1a\x63hirpstack-api/gw/gw.proto\"\xf0\x01\n\nUplinkMeta\x12\x0f\n\x07\x64\x65v_eui\x18\x01 \x01(\t\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\x1e\n\x16phy_payload_byte_count\x18\x04 \x01(\r\x12\x1e\n\x16mac_command_byte_count\x18\x05 \x01(\r\x12&\n\x1e\x61pplication_payload_byte_count\x18\x06 \x01(\r\x12#\n\x0cmessage_type\x18\x07 \x01(\x0e\x32\r.common.MType\"\x81\x02\n\x0c\x44ownlinkMeta\x12\x0f\n\x07\x64\x65v_eui\x18\x01 \x01(\t\x12\x1a\n\x12multicast_group_id\x18\x02 \x01(\t\x12#\n\x07tx_info\x18\x03 \x01(\x0b\x32\x12.gw.DownlinkTxInfo\x12\x1e\n\x16phy_payload_byte_count\x18\x04 \x01(\r\x12\x1e\n\x16mac_command_byte_count\x18\x05 \x01(\r\x12&\n\x1e\x61pplication_payload_byte_count\x18\x06 \x01(\r\x12#\n\x0cmessage_type\x18\x07 \x01(\x0e\x32\r.common.MType\x12\x12\n\ngateway_id\x18\x08 \x01(\tBn\n\x18io.chirpstack.api.streamB\tMetaProtoP\x01Z1github.com/chirpstack/chirpstack/api/go/v4/stream\xaa\x02\x11\x43hirpstack.Streamb\x06proto3')
_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'chirpstack_api.stream.meta_pb2', _globals)
if _descriptor._USE_C_DESCRIPTORS == False:
DESCRIPTOR._options = None
DESCRIPTOR._serialized_options = b'\n\030io.chirpstack.api.streamB\tMetaProtoP\001Z1github.com/chirpstack/chirpstack/api/go/v4/stream\252\002\021Chirpstack.Stream'
_globals['_UPLINKMETA']._serialized_start=109
_globals['_UPLINKMETA']._serialized_end=349
_globals['_DOWNLINKMETA']._serialized_start=352
_globals['_DOWNLINKMETA']._serialized_end=609
# @@protoc_insertion_point(module_scope)

View File

@ -0,0 +1,4 @@
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
"""Client and server classes corresponding to protobuf-defined services."""
import grpc

View File

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

2
api/rust/Cargo.lock generated vendored
View File

@ -172,7 +172,7 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "chirpstack_api"
version = "4.6.0-test.1"
version = "4.6.0-test.3"
dependencies = [
"hex",
"pbjson",

2
api/rust/Cargo.toml vendored
View File

@ -1,7 +1,7 @@
[package]
name = "chirpstack_api"
description = "ChirpStack Protobuf / gRPC API definitions."
version = "4.6.0-test.1"
version = "4.6.0-test.3"
authors = ["Orne Brocaar <info@brocaar.com>"]
license = "MIT"
homepage = "https://www.chirpstack.io"

41
api/rust/build.rs vendored
View File

@ -13,7 +13,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
std::fs::create_dir_all(out_dir.join("gw")).unwrap();
std::fs::create_dir_all(out_dir.join("internal")).unwrap();
std::fs::create_dir_all(out_dir.join("integration")).unwrap();
std::fs::create_dir_all(out_dir.join("meta")).unwrap();
std::fs::create_dir_all(out_dir.join("stream")).unwrap();
std::fs::create_dir_all(out_dir.join("api")).unwrap();
#[cfg(feature = "json")]
@ -136,28 +136,45 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
.build(&[".integration"])?;
}
// meta
// streams
tonic_build::configure()
.out_dir(out_dir.join("meta"))
.file_descriptor_set_path(out_dir.join("meta").join("proto_descriptor.bin"))
.out_dir(out_dir.join("stream"))
.file_descriptor_set_path(out_dir.join("stream").join("proto_descriptor.bin"))
.compile_well_known_types(true)
.extern_path(".google.protobuf", well_known_types_path)
.extern_path(".common", "crate::common")
.extern_path(".gw", "crate::gw")
.compile(
&[cs_dir.join("meta").join("meta.proto").to_str().unwrap()],
&[proto_dir.join("chirpstack").to_str().unwrap()],
&[
cs_dir.join("stream").join("meta.proto").to_str().unwrap(),
cs_dir.join("stream").join("frame.proto").to_str().unwrap(),
cs_dir
.join("stream")
.join("api_request.proto")
.to_str()
.unwrap(),
cs_dir
.join("stream")
.join("backend_interfaces.proto")
.to_str()
.unwrap(),
],
&[
proto_dir.join("chirpstack").to_str().unwrap(),
proto_dir.join("google").to_str().unwrap(),
],
)?;
#[cfg(feature = "json")]
{
let descriptor_set = std::fs::read(out_dir.join("meta").join("proto_descriptor.bin"))?;
let descriptor_set = std::fs::read(out_dir.join("stream").join("proto_descriptor.bin"))?;
pbjson_build::Builder::new()
.register_descriptors(&descriptor_set)?
.ignore_unknown_fields()
.out_dir(out_dir.join("meta"))
.out_dir(out_dir.join("stream"))
.extern_path(".common", "crate::common")
.extern_path(".gw", "crate::gw")
.build(&[".meta"])?;
.build(&[".stream"])?;
}
// api
@ -188,17 +205,11 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
.unwrap(),
cs_dir.join("api").join("device.proto").to_str().unwrap(),
cs_dir.join("api").join("gateway.proto").to_str().unwrap(),
cs_dir.join("api").join("frame_log.proto").to_str().unwrap(),
cs_dir
.join("api")
.join("multicast_group.proto")
.to_str()
.unwrap(),
cs_dir
.join("api")
.join("request_log.proto")
.to_str()
.unwrap(),
cs_dir.join("api").join("relay.proto").to_str().unwrap(),
],
&[

View File

@ -1,74 +0,0 @@
syntax = "proto3";
package api;
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
option java_package = "io.chirpstack.api";
option java_multiple_files = true;
option java_outer_classname = "FrameLogProto";
option csharp_namespace = "Chirpstack.Api";
import "google/protobuf/timestamp.proto";
import "common/common.proto";
import "gw/gw.proto";
message UplinkFrameLog {
// PHYPayload.
bytes phy_payload = 1;
// TX meta-data.
gw.UplinkTxInfo tx_info = 2;
// RX meta-data.
repeated gw.UplinkRxInfo rx_info = 3;
// Message type.
common.MType m_type = 4;
// Device address (optional).
string dev_addr = 5;
// Device EUI (optional).
string dev_eui = 6;
// Time.
google.protobuf.Timestamp time = 7;
// Plaintext f_opts mac-commands.
bool plaintext_f_opts = 8;
// Plaintext frm_payload.
bool plaintext_frm_payload = 9;
}
message DownlinkFrameLog {
// Time.
google.protobuf.Timestamp time = 1;
// PHYPayload.
bytes phy_payload = 2;
// TX meta-data.
gw.DownlinkTxInfo tx_info = 3;
// Downlink ID.
uint32 downlink_id = 4;
// Gateway ID (EUI64).
string gateway_id = 5;
// Message type.
common.MType m_type = 6;
// Device address (optional).
string dev_addr = 7;
// Device EUI (optional).
string dev_eui = 8;
// Plaintext f_opts mac-commands.
bool plaintext_f_opts = 9;
// Plaintext frm_payload.
bool plaintext_frm_payload = 10;
}

View File

@ -1,24 +0,0 @@
syntax = "proto3";
package api;
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
option java_package = "io.chirpstack.api";
option java_multiple_files = true;
option java_outer_classname = "RequestLogProto";
option csharp_namespace = "Chirpstack.Api";
import "google/protobuf/timestamp.proto";
import "common/common.proto";
import "gw/gw.proto";
message RequestLog {
// API service name.
string service = 1;
// API method name.
string method = 2;
// Metadata.
map<string, string> metadata = 3;
}

View File

@ -1,62 +0,0 @@
syntax = "proto3";
package meta;
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/meta";
option java_package = "io.chirpstack.api.meta";
option java_multiple_files = true;
option java_outer_classname = "MetaProto";
option csharp_namespace = "Chirpstack.Meta";
import "common/common.proto";
import "gw/gw.proto";
message UplinkMeta {
// Device EUI (EUI64).
string dev_eui = 1;
// TX meta-data.
gw.UplinkTxInfo tx_info = 2;
// RX meta-data.
repeated gw.UplinkRxInfo rx_info = 3;
// PHYPayload byte count.
uint32 phy_payload_byte_count = 4;
// MAC-Command byte count.
uint32 mac_command_byte_count = 5;
// Application payload byte count.
uint32 application_payload_byte_count = 6;
// Message type.
common.MType message_type = 7;
}
message DownlinkMeta {
// Device EUI (EUI64).
string dev_eui = 1;
// Multicast Group ID (UUID).
string multicast_group_id = 2;
// TX meta-data.
gw.DownlinkTxInfo tx_info = 3;
// PHYPayload byte count.
uint32 phy_payload_byte_count = 4;
// MAC-Command byte count.
uint32 mac_command_byte_count = 5;
// Application payload byte count.
uint32 application_payload_byte_count = 6;
// Message type.
common.MType message_type = 7;
// Gateway ID (EUI64).
string gateway_id = 8;
}

View File

@ -0,0 +1,24 @@
syntax = "proto3";
package stream;
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/stream";
option java_package = "io.chirpstack.api.stream";
option java_multiple_files = true;
option java_outer_classname = "ApiRequestProto";
option csharp_namespace = "Chirpstack.Stream";
import "google/protobuf/timestamp.proto";
import "common/common.proto";
import "gw/gw.proto";
message ApiRequestLog {
// API service name.
string service = 1;
// API method name.
string method = 2;
// Metadata.
map<string, string> metadata = 3;
}

View File

@ -0,0 +1,40 @@
syntax = "proto3";
package stream;
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/stream";
option java_package = "io.chirpstack.api.stream";
option java_multiple_files = true;
option java_outer_classname = "BackendInterfacesProto";
option csharp_namespace = "Chirpstack.Stream";
import "google/protobuf/timestamp.proto";
message BackendInterfacesRequest {
// Sender ID.
string sender_id = 1;
// Receiver ID.
string receiver_id = 2;
// Timestamp.
google.protobuf.Timestamp time = 3;
// Transaction ID.
uint32 transaction_id = 4;
// Message-type.
string message_type = 5;
// Result code.
string result_code = 6;
// Request body.
string request_body = 7;
// Request error.
string request_error = 8;
// Response body.
string response_body = 9;
}

View File

@ -0,0 +1,74 @@
syntax = "proto3";
package stream;
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/stream";
option java_package = "io.chirpstack.api.stream";
option java_multiple_files = true;
option java_outer_classname = "FrameProto";
option csharp_namespace = "Chirpstack.Stream";
import "google/protobuf/timestamp.proto";
import "common/common.proto";
import "gw/gw.proto";
message UplinkFrameLog {
// PHYPayload.
bytes phy_payload = 1;
// TX meta-data.
gw.UplinkTxInfo tx_info = 2;
// RX meta-data.
repeated gw.UplinkRxInfo rx_info = 3;
// Message type.
common.MType m_type = 4;
// Device address (optional).
string dev_addr = 5;
// Device EUI (optional).
string dev_eui = 6;
// Time.
google.protobuf.Timestamp time = 7;
// Plaintext f_opts mac-commands.
bool plaintext_f_opts = 8;
// Plaintext frm_payload.
bool plaintext_frm_payload = 9;
}
message DownlinkFrameLog {
// Time.
google.protobuf.Timestamp time = 1;
// PHYPayload.
bytes phy_payload = 2;
// TX meta-data.
gw.DownlinkTxInfo tx_info = 3;
// Downlink ID.
uint32 downlink_id = 4;
// Gateway ID (EUI64).
string gateway_id = 5;
// Message type.
common.MType m_type = 6;
// Device address (optional).
string dev_addr = 7;
// Device EUI (optional).
string dev_eui = 8;
// Plaintext f_opts mac-commands.
bool plaintext_f_opts = 9;
// Plaintext frm_payload.
bool plaintext_frm_payload = 10;
}

View File

@ -0,0 +1,61 @@
syntax = "proto3";
package stream;
option go_package = "github.com/chirpstack/chirpstack/api/go/v4/stream";
option java_package = "io.chirpstack.api.stream";
option java_multiple_files = true;
option java_outer_classname = "MetaProto";
option csharp_namespace = "Chirpstack.Stream";
import "common/common.proto";
import "gw/gw.proto";
message UplinkMeta {
// Device EUI (EUI64).
string dev_eui = 1;
// TX meta-data.
gw.UplinkTxInfo tx_info = 2;
// RX meta-data.
repeated gw.UplinkRxInfo rx_info = 3;
// PHYPayload byte count.
uint32 phy_payload_byte_count = 4;
// MAC-Command byte count.
uint32 mac_command_byte_count = 5;
// Application payload byte count.
uint32 application_payload_byte_count = 6;
// Message type.
common.MType message_type = 7;
}
message DownlinkMeta {
// Device EUI (EUI64).
string dev_eui = 1;
// Multicast Group ID (UUID).
string multicast_group_id = 2;
// TX meta-data.
gw.DownlinkTxInfo tx_info = 3;
// PHYPayload byte count.
uint32 phy_payload_byte_count = 4;
// MAC-Command byte count.
uint32 mac_command_byte_count = 5;
// Application payload byte count.
uint32 application_payload_byte_count = 6;
// Message type.
common.MType message_type = 7;
// Gateway ID (EUI64).
string gateway_id = 8;
}

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

@ -6,4 +6,4 @@ pub mod gw;
pub mod integration;
#[cfg(feature = "internal")]
pub mod internal;
pub mod meta;
pub mod stream;

View File

@ -1,3 +0,0 @@
include!(concat!(env!("OUT_DIR"), "/meta/meta.rs"));
#[cfg(feature = "json")]
include!(concat!(env!("OUT_DIR"), "/meta/meta.serde.rs"));

3
api/rust/src/stream.rs vendored Normal file
View File

@ -0,0 +1,3 @@
include!(concat!(env!("OUT_DIR"), "/stream/stream.rs"));
#[cfg(feature = "json")]
include!(concat!(env!("OUT_DIR"), "/stream/stream.serde.rs"));

View File

@ -1,6 +1,6 @@
[package]
name = "backend"
version = "4.6.0-test.1"
version = "4.6.0-test.3"
authors = ["Orne Brocaar <info@brocaar.com>"]
edition = "2018"
publish = false
@ -17,6 +17,7 @@ aes-kw = "0.2"
reqwest = { version = "0.11", features = ["json", "rustls-tls"], default-features = false }
chrono = { version = "0.4", features = ["serde"] }
tokio = { version = "1.32", features = ["macros" ] }
chirpstack_api = { path = "../api/rust", default-features = false, features = ["json"] }
# Development and testing
[dev-dependencies]

View File

@ -2,7 +2,9 @@
extern crate anyhow;
use std::fs::File;
use std::future::Future;
use std::io::Read;
use std::pin::Pin;
use std::time::Duration;
use aes_kw::Kek;
@ -12,7 +14,9 @@ use reqwest::header::{HeaderMap, AUTHORIZATION, CONTENT_TYPE};
use reqwest::{Certificate, Identity};
use serde::{Deserialize, Serialize};
use tokio::sync::oneshot::Receiver;
use tracing::{debug, error, info, trace};
use tracing::{debug, error, info, span, trace, Instrument, Level};
use chirpstack_api::stream;
const PROTOCOL_VERSION: &str = "1.0";
@ -31,6 +35,14 @@ pub trait BasePayloadResultProvider {
fn base_payload(&self) -> &BasePayloadResult;
}
pub type RequestLogFn = Box<
dyn Fn(
stream::BackendInterfacesRequest,
) -> Pin<Box<dyn Future<Output = Result<()>> + Sync + Send>>
+ Sync
+ Send,
>;
pub struct ClientConfig {
pub sender_id: Vec<u8>,
pub receiver_id: Vec<u8>,
@ -49,6 +61,9 @@ pub struct ClientConfig {
// Use target-role URL suffix (e.g. /fns, /sns, ...).
pub use_target_role_suffix: bool,
// Request log function.
pub request_log_fn: Option<RequestLogFn>,
}
impl Default for ClientConfig {
@ -63,6 +78,7 @@ impl Default for ClientConfig {
authorization: None,
async_timeout: Duration::from_secs(0),
use_target_role_suffix: false,
request_log_fn: None,
}
}
}
@ -149,11 +165,12 @@ impl Client {
pub async fn join_req(
&self,
receiver_id: Vec<u8>,
pl: &mut JoinReqPayload,
async_resp: Option<Receiver<Vec<u8>>>,
) -> Result<JoinAnsPayload> {
pl.base.sender_id = self.config.sender_id.clone();
pl.base.receiver_id = self.config.receiver_id.clone();
pl.base.receiver_id = receiver_id;
pl.base.message_type = MessageType::JoinReq;
let mut ans: JoinAnsPayload = Default::default();
@ -231,11 +248,12 @@ impl Client {
pub async fn home_ns_req(
&self,
receiver_id: Vec<u8>,
pl: &mut HomeNSReqPayload,
async_resp: Option<Receiver<Vec<u8>>>,
) -> Result<HomeNSAnsPayload> {
pl.base.sender_id = self.config.sender_id.clone();
pl.base.receiver_id = self.config.receiver_id.clone();
pl.base.receiver_id = receiver_id;
pl.base.message_type = MessageType::HomeNSReq;
let mut ans: HomeNSAnsPayload = Default::default();
@ -301,6 +319,49 @@ impl Client {
ans: &mut D,
async_resp: Option<Receiver<Vec<u8>>>,
) -> Result<()>
where
S: ?Sized + serde::ser::Serialize + BasePayloadProvider,
D: serde::de::DeserializeOwned + BasePayloadResultProvider,
{
let bp = pl.base_payload().clone();
let mut be_req_log = stream::BackendInterfacesRequest {
time: Some(Utc::now().into()),
sender_id: hex::encode(&bp.sender_id),
receiver_id: hex::encode(&bp.receiver_id),
transaction_id: bp.transaction_id,
message_type: format!("{:?}", bp.message_type),
..Default::default()
};
let span = span!(Level::INFO, "request", message_type = ?bp.message_type, sender_id = %be_req_log.sender_id, receiver_id = %be_req_log.receiver_id, transaction_id = bp.transaction_id);
let res = self
._request(target_role, pl, ans, async_resp, &mut be_req_log)
.instrument(span)
.await;
if let Err(e) = &res {
be_req_log.request_error = format!("{:#}", e);
}
if let Some(log_fn) = &self.config.request_log_fn {
if let Err(e) = log_fn(be_req_log).await {
error!(error = %e, "Log request error");
}
}
res
}
async fn _request<S, D>(
&self,
target_role: Option<Role>,
pl: &S,
ans: &mut D,
async_resp: Option<Receiver<Vec<u8>>>,
be_req_log: &mut stream::BackendInterfacesRequest,
) -> Result<()>
where
S: ?Sized + serde::ser::Serialize + BasePayloadProvider,
D: serde::de::DeserializeOwned + BasePayloadResultProvider,
@ -316,11 +377,10 @@ impl Client {
self.config.server.clone()
};
let bp = pl.base_payload().clone();
let body = serde_json::to_string(&pl)?;
be_req_log.request_body = body.clone();
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);
info!(server = %server, async_interface = %async_resp.is_some(), "Making request");
let res = self
.client
@ -337,10 +397,11 @@ impl Client {
tokio::select! {
rx_ans = rx => {
info!("Async response received");
String::from_utf8(rx_ans?)?
}
_ = sleep => {
error!(receiver_id = %hex::encode(&bp.receiver_id), transaction_id = bp.transaction_id, message_type = ?bp.message_type, "Async request timeout");
error!("Async response timeout");
return Err(anyhow!("Async timeout"));
}
}
@ -348,10 +409,13 @@ impl Client {
None => res.text().await?,
};
debug!("JSON: {}", resp_json);
be_req_log.response_body = resp_json.clone();
let base: BasePayloadResult = serde_json::from_str(&resp_json)?;
be_req_log.result_code = format!("{:?}", base.result.result_code);
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");
error!(result_code = ?base.result.result_code, description = %base.result.description, "Response error");
return Err(anyhow!(
"Response error, code: {:?}, description: {:?}",
base.result.result_code,
@ -360,6 +424,7 @@ impl Client {
}
*ans = serde_json::from_str(&resp_json)?;
Ok(())
}
}
@ -401,6 +466,7 @@ pub enum ResultCode {
UnknownDevAddr,
UnknownSender,
UnknownReceiver,
UnkownReceiver, //Value in Backend Interfaces Spec 1.0/1.1 is misspelled
Deferred,
XmitFailed,
InvalidFPort,
@ -524,6 +590,12 @@ pub struct BasePayloadResult {
pub result: ResultPayload,
}
impl BasePayloadResultProvider for BasePayloadResult {
fn base_payload(&self) -> &BasePayloadResult {
self
}
}
#[derive(Serialize, Deserialize, Default, Debug, PartialEq, Eq, Clone)]
pub struct ResultPayload {
#[serde(rename = "ResultCode")]
@ -612,17 +684,17 @@ pub struct JoinAnsPayload {
pub base: BasePayloadResult,
#[serde(rename = "PHYPayload", with = "hex_encode")]
pub phy_payload: Vec<u8>,
#[serde(rename = "Lifetime")]
#[serde(rename = "Lifetime", skip_serializing_if = "Option::is_none")]
pub lifetime: Option<usize>,
#[serde(rename = "SNwkSIntKey")]
#[serde(rename = "SNwkSIntKey", skip_serializing_if = "Option::is_none")]
pub s_nwk_s_int_key: Option<KeyEnvelope>,
#[serde(rename = "FNwkSIntKey")]
#[serde(rename = "FNwkSIntKey", skip_serializing_if = "Option::is_none")]
pub f_nwk_s_int_key: Option<KeyEnvelope>,
#[serde(rename = "NwkSEncKey")]
#[serde(rename = "NwkSEncKey", skip_serializing_if = "Option::is_none")]
pub nwk_s_enc_key: Option<KeyEnvelope>,
#[serde(rename = "NwkSKey")]
#[serde(rename = "NwkSKey", skip_serializing_if = "Option::is_none")]
pub nwk_s_key: Option<KeyEnvelope>,
#[serde(rename = "AppSKey")]
#[serde(rename = "AppSKey", skip_serializing_if = "Option::is_none")]
pub app_s_key: Option<KeyEnvelope>,
#[serde(
default,
@ -676,17 +748,17 @@ pub struct RejoinAnsPayload {
pub base: BasePayloadResult,
#[serde(rename = "PHYPayload", with = "hex_encode")]
pub phy_payload: Vec<u8>,
#[serde(rename = "Lifetime")]
#[serde(rename = "Lifetime", skip_serializing_if = "Option::is_none")]
pub lifetime: Option<usize>,
#[serde(rename = "SNwkSIntKey")]
#[serde(rename = "SNwkSIntKey", skip_serializing_if = "Option::is_none")]
pub s_nwk_s_int_key: Option<KeyEnvelope>,
#[serde(rename = "FNwkSIntKey")]
#[serde(rename = "FNwkSIntKey", skip_serializing_if = "Option::is_none")]
pub f_nwk_s_int_key: Option<KeyEnvelope>,
#[serde(rename = "NwkSEncKey")]
#[serde(rename = "NwkSEncKey", skip_serializing_if = "Option::is_none")]
pub nwk_s_enc_key: Option<KeyEnvelope>,
#[serde(rename = "NwkSKey")]
#[serde(rename = "NwkSKey", skip_serializing_if = "Option::is_none")]
pub nwk_s_key: Option<KeyEnvelope>,
#[serde(rename = "AppSKey")]
#[serde(rename = "AppSKey", skip_serializing_if = "Option::is_none")]
pub app_s_key: Option<KeyEnvelope>,
#[serde(
default,
@ -725,7 +797,7 @@ pub struct AppSKeyAnsPayload {
pub base: BasePayloadResult,
#[serde(rename = "DevEUI", with = "hex_encode")]
pub dev_eui: Vec<u8>,
#[serde(rename = "AppSKey")]
#[serde(rename = "AppSKey", skip_serializing_if = "Option::is_none")]
pub app_s_key: Option<KeyEnvelope>,
#[serde(rename = "SessionKeyID", with = "hex_encode")]
pub session_key_id: Vec<u8>,
@ -771,17 +843,17 @@ pub struct PRStartAnsPayload {
skip_serializing_if = "Vec::is_empty"
)]
pub dev_eui: Vec<u8>,
#[serde(rename = "Lifetime")]
#[serde(rename = "Lifetime", skip_serializing_if = "Option::is_none")]
pub lifetime: Option<usize>,
#[serde(rename = "FNwkSIntKey")]
#[serde(rename = "FNwkSIntKey", skip_serializing_if = "Option::is_none")]
pub f_nwk_s_int_key: Option<KeyEnvelope>,
#[serde(rename = "NwkSKey")]
#[serde(rename = "NwkSKey", skip_serializing_if = "Option::is_none")]
pub nwk_s_key: Option<KeyEnvelope>,
#[serde(rename = "FCntUp")]
#[serde(rename = "FCntUp", skip_serializing_if = "Option::is_none")]
pub f_cnt_up: Option<u32>,
#[serde(rename = "ServiceProfile")]
#[serde(rename = "ServiceProfile", skip_serializing_if = "Option::is_none")]
pub service_profile: Option<ServiceProfile>,
#[serde(rename = "DLMetaData")]
#[serde(rename = "DLMetaData", skip_serializing_if = "Option::is_none")]
pub dl_meta_data: Option<DLMetaData>,
#[serde(
default,
@ -804,7 +876,7 @@ pub struct PRStopReqPayload {
pub base: BasePayload,
#[serde(rename = "DevEUI", with = "hex_encode")]
pub dev_eui: Vec<u8>,
#[serde(rename = "Lifetime")]
#[serde(rename = "Lifetime", skip_serializing_if = "Option::is_none")]
pub lifetime: Option<usize>,
}
@ -844,9 +916,9 @@ pub struct XmitDataReqPayload {
skip_serializing_if = "Vec::is_empty"
)]
pub frm_payload: Vec<u8>,
#[serde(rename = "ULMetaData")]
#[serde(rename = "ULMetaData", skip_serializing_if = "Option::is_none")]
pub ul_meta_data: Option<ULMetaData>,
#[serde(rename = "DLMetaData")]
#[serde(rename = "DLMetaData", skip_serializing_if = "Option::is_none")]
pub dl_meta_data: Option<DLMetaData>,
}
@ -917,21 +989,21 @@ pub struct ULMetaData {
skip_serializing_if = "Vec::is_empty"
)]
pub dev_addr: Vec<u8>,
#[serde(rename = "FPort")]
#[serde(rename = "FPort", skip_serializing_if = "Option::is_none")]
pub f_port: Option<u8>,
#[serde(rename = "FCntDown")]
#[serde(rename = "FCntDown", skip_serializing_if = "Option::is_none")]
pub f_cnt_down: Option<u32>,
#[serde(rename = "FCntUp")]
#[serde(rename = "FCntUp", skip_serializing_if = "Option::is_none")]
pub f_cnt_up: Option<u32>,
#[serde(rename = "Confirmed")]
#[serde(rename = "Confirmed", skip_serializing_if = "Option::is_none")]
pub confirmed: Option<bool>,
#[serde(rename = "DataRate")]
#[serde(rename = "DataRate", skip_serializing_if = "Option::is_none")]
pub data_rate: Option<u8>,
#[serde(rename = "ULFreq")]
#[serde(rename = "ULFreq", skip_serializing_if = "Option::is_none")]
pub ul_freq: Option<f64>,
#[serde(rename = "Margin")]
#[serde(rename = "Margin", skip_serializing_if = "Option::is_none")]
pub margin: Option<isize>,
#[serde(rename = "Battery")]
#[serde(rename = "Battery", skip_serializing_if = "Option::is_none")]
pub battery: Option<isize>,
#[serde(
default,
@ -949,7 +1021,7 @@ pub struct ULMetaData {
skip_serializing_if = "String::is_empty"
)]
pub rf_region: String,
#[serde(rename = "GWCnt")]
#[serde(rename = "GWCnt", skip_serializing_if = "Option::is_none")]
pub gw_cnt: Option<usize>,
#[serde(rename = "GWInfo")]
pub gw_info: Vec<GWInfoElement>,
@ -986,7 +1058,7 @@ pub struct GWInfoElement {
skip_serializing_if = "Vec::is_empty"
)]
pub id: Vec<u8>,
#[serde(rename = "FineRecvTime")]
#[serde(rename = "FineRecvTime", skip_serializing_if = "Option::is_none")]
pub fine_recv_time: Option<usize>,
#[serde(
default,
@ -995,13 +1067,13 @@ pub struct GWInfoElement {
skip_serializing_if = "String::is_empty"
)]
pub rf_region: String,
#[serde(rename = "RSSI")]
#[serde(rename = "RSSI", skip_serializing_if = "Option::is_none")]
pub rssi: Option<isize>,
#[serde(rename = "SNR")]
#[serde(rename = "SNR", skip_serializing_if = "Option::is_none")]
pub snr: Option<f32>,
#[serde(rename = "Lat")]
#[serde(rename = "Lat", skip_serializing_if = "Option::is_none")]
pub lat: Option<f64>,
#[serde(rename = "Lon")]
#[serde(rename = "Lon", skip_serializing_if = "Option::is_none")]
pub lon: Option<f64>,
#[serde(
default,
@ -1010,7 +1082,7 @@ pub struct GWInfoElement {
skip_serializing_if = "Vec::is_empty"
)]
pub ul_token: Vec<u8>,
#[serde(rename = "DLAllowed")]
#[serde(rename = "DLAllowed", skip_serializing_if = "Option::is_none")]
pub dl_allowed: Option<bool>,
}
@ -1067,23 +1139,23 @@ pub struct DLMetaData {
skip_serializing_if = "Vec::is_empty"
)]
pub dev_eui: Vec<u8>,
#[serde(rename = "FPort")]
#[serde(rename = "FPort", skip_serializing_if = "Option::is_none")]
pub f_port: Option<u8>,
#[serde(rename = "FCntDown")]
#[serde(rename = "FCntDown", skip_serializing_if = "Option::is_none")]
pub f_cnt_down: Option<u32>,
#[serde(default, rename = "Confirmed")]
pub confirmed: bool,
#[serde(rename = "DLFreq1")]
#[serde(rename = "DLFreq1", skip_serializing_if = "Option::is_none")]
pub dl_freq_1: Option<f64>,
#[serde(rename = "DLFreq2")]
#[serde(rename = "DLFreq2", skip_serializing_if = "Option::is_none")]
pub dl_freq_2: Option<f64>,
#[serde(rename = "RXDelay1")]
#[serde(rename = "RXDelay1", skip_serializing_if = "Option::is_none")]
pub rx_delay_1: Option<usize>,
#[serde(rename = "ClassMode")]
#[serde(rename = "ClassMode", skip_serializing_if = "Option::is_none")]
pub class_mode: Option<String>,
#[serde(rename = "DataRate1")]
#[serde(rename = "DataRate1", skip_serializing_if = "Option::is_none")]
pub data_rate_1: Option<u8>,
#[serde(rename = "DataRate2")]
#[serde(rename = "DataRate2", skip_serializing_if = "Option::is_none")]
pub data_rate_2: Option<u8>,
#[serde(
default,
@ -1146,7 +1218,7 @@ mod hex_encode {
pub mod test {
use super::*;
use httpmock::prelude::*;
use tokio::sync::oneshot;
use tokio::sync::{mpsc, oneshot};
#[test]
fn test_key_envelope() {
@ -1176,8 +1248,7 @@ pub mod test {
let server = MockServer::start();
let c = Client::new(ClientConfig {
sender_id: "010203".into(),
receiver_id: "0102030405060708".into(),
sender_id: vec![1, 2, 3],
server: server.url("/"),
async_timeout: Duration::from_secs(1),
..Default::default()
@ -1186,8 +1257,8 @@ pub mod test {
let mut req = HomeNSReqPayload {
base: BasePayload {
sender_id: "010203".into(),
receiver_id: "0102030405060708".into(),
sender_id: vec![1, 2, 3],
receiver_id: vec![1, 2, 3, 4, 5, 6, 7, 8],
message_type: MessageType::HomeNSReq,
transaction_id: 1234,
..Default::default()
@ -1198,8 +1269,8 @@ pub mod test {
let ans = HomeNSAnsPayload {
base: BasePayloadResult {
base: BasePayload {
sender_id: "0102030405060708".into(),
receiver_id: "010203".into(),
sender_id: vec![1, 2, 3, 4, 5, 6, 7, 8],
receiver_id: vec![1, 2, 3],
message_type: MessageType::HomeNSAns,
transaction_id: 1234,
..Default::default()
@ -1222,14 +1293,19 @@ pub mod test {
// OK
let (tx, rx) = oneshot::channel();
tx.send(serde_json::to_vec(&ans).unwrap()).unwrap();
let resp = c.home_ns_req(&mut req, Some(rx)).await.unwrap();
let resp = c
.home_ns_req(vec![1, 2, 3, 4, 5, 6, 7, 8], &mut req, Some(rx))
.await
.unwrap();
mock.assert();
mock.delete();
assert_eq!(resp, ans);
// Timeout
let (_tx, rx) = oneshot::channel();
let resp = c.home_ns_req(&mut req, Some(rx)).await;
let resp = c
.home_ns_req(vec![1, 2, 3, 4, 5, 6, 7, 8], &mut req, Some(rx))
.await;
assert!(resp.is_err());
}
@ -1238,8 +1314,7 @@ pub mod test {
let server = MockServer::start();
let c = Client::new(ClientConfig {
sender_id: "010203".into(),
receiver_id: "0102030405060708".into(),
sender_id: vec![1, 2, 3],
server: server.url("/"),
async_timeout: Duration::from_secs(1),
..Default::default()
@ -1248,8 +1323,8 @@ pub mod test {
let mut req = HomeNSReqPayload {
base: BasePayload {
sender_id: "010203".into(),
receiver_id: "0102030405060708".into(),
sender_id: vec![1, 2, 3],
receiver_id: vec![1, 2, 3, 4, 5, 6, 7, 8],
message_type: MessageType::HomeNSReq,
transaction_id: 1234,
..Default::default()
@ -1260,8 +1335,8 @@ pub mod test {
let ans = HomeNSAnsPayload {
base: BasePayloadResult {
base: BasePayload {
sender_id: "0102030405060708".into(),
receiver_id: "010203".into(),
sender_id: vec![1, 2, 3, 4, 5, 6, 7, 8],
receiver_id: vec![1, 2, 3],
message_type: MessageType::HomeNSAns,
transaction_id: 1234,
..Default::default()
@ -1284,14 +1359,19 @@ pub mod test {
// OK
let (tx, rx) = oneshot::channel();
tx.send(serde_json::to_vec(&ans).unwrap()).unwrap();
let resp = c.home_ns_req(&mut req, Some(rx)).await.unwrap();
let resp = c
.home_ns_req(vec![1, 2, 3, 4, 5, 6, 7, 8], &mut req, Some(rx))
.await
.unwrap();
mock.assert();
mock.delete();
assert_eq!(resp, ans);
// Timeout
let (_tx, rx) = oneshot::channel();
let resp = c.home_ns_req(&mut req, Some(rx)).await;
let resp = c
.home_ns_req(vec![1, 2, 3, 4, 5, 6, 7, 8], &mut req, Some(rx))
.await;
assert!(resp.is_err());
}
@ -1300,8 +1380,7 @@ pub mod test {
let server = MockServer::start();
let c = Client::new(ClientConfig {
sender_id: "010203".into(),
receiver_id: "0102030405060708".into(),
sender_id: vec![1, 2, 3],
server: server.url("/"),
..Default::default()
})
@ -1309,8 +1388,8 @@ pub mod test {
let mut req = HomeNSReqPayload {
base: BasePayload {
sender_id: "010203".into(),
receiver_id: "0102030405060708".into(),
sender_id: vec![1, 2, 3],
receiver_id: vec![1, 2, 3, 4, 5, 6, 7, 8],
message_type: MessageType::HomeNSReq,
transaction_id: 1234,
..Default::default()
@ -1321,8 +1400,8 @@ pub mod test {
let ans = HomeNSAnsPayload {
base: BasePayloadResult {
base: BasePayload {
sender_id: "0102030405060708".into(),
receiver_id: "010203".into(),
sender_id: vec![1, 2, 3, 4, 5, 6, 7, 8],
receiver_id: vec![1, 2, 3],
message_type: MessageType::HomeNSAns,
transaction_id: 1234,
..Default::default()
@ -1342,7 +1421,10 @@ pub mod test {
.body(serde_json::to_string(&req).unwrap());
then.body(serde_json::to_vec(&ans).unwrap()).status(200);
});
let resp = c.home_ns_req(&mut req, None).await.unwrap();
let resp = c
.home_ns_req(vec![1, 2, 3, 4, 5, 6, 7, 8], &mut req, None)
.await
.unwrap();
mock.assert();
mock.delete();
assert_eq!(resp, ans);
@ -1354,9 +1436,125 @@ pub mod test {
.body(serde_json::to_string(&req).unwrap());
then.status(500);
});
let resp = c.home_ns_req(&mut req, None).await;
let resp = c
.home_ns_req(vec![1, 2, 3, 4, 5, 6, 7, 8], &mut req, None)
.await;
mock.assert();
mock.delete();
assert!(resp.is_err());
}
#[tokio::test]
async fn test_log_fn_ok() {
let (tx, mut rx) = mpsc::channel(1);
let server = MockServer::start();
let c = Client::new(ClientConfig {
sender_id: vec![1, 2, 3],
server: server.url("/"),
request_log_fn: Some(Box::new(move |log| {
let tx = tx.clone();
Box::pin(async move { tx.send(log).await.map_err(|e| anyhow!("{}", e)) })
})),
..Default::default()
})
.unwrap();
let mut req = HomeNSReqPayload {
base: BasePayload {
sender_id: vec![1, 2, 3],
receiver_id: vec![1, 2, 3, 4, 5, 6, 7, 8],
message_type: MessageType::HomeNSReq,
transaction_id: 1234,
..Default::default()
},
dev_eui: vec![8, 7, 6, 5, 4, 3, 2, 1],
};
let ans = HomeNSAnsPayload {
base: BasePayloadResult {
base: BasePayload {
sender_id: vec![1, 2, 3, 4, 5, 6, 7, 8],
receiver_id: vec![1, 2, 3],
message_type: MessageType::HomeNSAns,
transaction_id: 1234,
..Default::default()
},
result: ResultPayload {
result_code: ResultCode::Success,
description: "".into(),
},
},
h_net_id: vec![3, 2, 1],
};
// OK
let mut mock = server.mock(|when, then| {
when.method(POST)
.path("/")
.body(serde_json::to_string(&req).unwrap());
then.body(serde_json::to_vec(&ans).unwrap()).status(200);
});
c.home_ns_req(vec![1, 2, 3, 4, 5, 6, 7, 8], &mut req, None)
.await
.unwrap();
mock.assert();
mock.delete();
let be_req_log = rx.recv().await.unwrap();
assert_eq!("010203", be_req_log.sender_id);
assert_eq!("0102030405060708", be_req_log.receiver_id);
assert_eq!(1234, be_req_log.transaction_id);
assert!(be_req_log.request_error.is_empty());
}
#[tokio::test]
async fn test_log_fn_error() {
let (tx, mut rx) = mpsc::channel(1);
let server = MockServer::start();
let c = Client::new(ClientConfig {
sender_id: vec![1, 2, 3],
server: server.url("/"),
request_log_fn: Some(Box::new(move |log| {
let tx = tx.clone();
Box::pin(async move { tx.send(log).await.map_err(|e| anyhow!("{}", e)) })
})),
..Default::default()
})
.unwrap();
let mut req = HomeNSReqPayload {
base: BasePayload {
sender_id: vec![1, 2, 3],
receiver_id: vec![1, 2, 3, 4, 5, 6, 7, 8],
message_type: MessageType::HomeNSReq,
transaction_id: 1234,
..Default::default()
},
dev_eui: vec![8, 7, 6, 5, 4, 3, 2, 1],
};
// OK
let mut mock = server.mock(|when, then| {
when.method(POST)
.path("/")
.body(serde_json::to_string(&req).unwrap());
then.status(500);
});
assert!(c
.home_ns_req(vec![1, 2, 3, 4, 5, 6, 7, 8], &mut req, None)
.await
.is_err());
mock.assert();
mock.delete();
let be_req_log = rx.recv().await.unwrap();
assert_eq!("010203", be_req_log.sender_id);
assert_eq!("0102030405060708", be_req_log.receiver_id);
assert_eq!(1234, be_req_log.transaction_id);
assert!(!be_req_log.request_error.is_empty());
}
}

View File

@ -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.6.0-test.1"
version = "4.6.0-test.3"
authors = ["Orne Brocaar <info@brocaar.com>"]
edition = "2021"
publish = false
@ -17,6 +17,7 @@ clap = { version = "4.4", features = ["derive"] }
serde = { version = "1.0", features = ["derive", "rc"] }
serde_yaml = "0.9"
serde_json = "1.0"
serde_urlencoded = "0.7"
humantime-serde = "1.1"
toml = "0.7"
handlebars = "4.4"
@ -57,10 +58,7 @@ reqwest = { version = "0.11", features = [
], default-features = false }
# Integrations
aws-types = "0.56"
aws-credential-types = "0.56"
aws-config = { version = "0.56", default-features = false }
aws-sdk-sns = "0.30"
aws-sign-v4 = "0.2"
hmac = "0.12"
sha2 = "0.10"
urlencoding = "2.1"
@ -203,10 +201,6 @@ post_install_script = '''
chown -R chirpstack:chirpstack /etc/chirpstack
chmod 750 /etc/chirpstack
chmod 640 /etc/chirpstack/*.toml
sed -i "s/\$MQTT_BROKER_HOST/localhost/" /etc/chirpstack/*.toml
sed -i "s/\$POSTGRESQL_HOST/localhost/" /etc/chirpstack/*.toml
sed -i "s/\$REDIS_HOST/localhost/" /etc/chirpstack/*.toml
'''
assets = [

View File

@ -19,7 +19,7 @@
# * require - Always SSL (skip verification)
# * verify-ca - Always SSL (verify that the certificate presented by the server was signed by a trusted CA)
# * verify-full - Always SSL (verify that the certification presented by the server was signed by a trusted CA and the server host name matches the one in the certificate)
dsn="postgres://chirpstack:chirpstack@$POSTGRESQL_HOST/chirpstack?sslmode=disable"
dsn="postgres://chirpstack:chirpstack@localhost/chirpstack?sslmode=disable"
# Max open connections.
#
@ -41,7 +41,7 @@
#
# Set multiple addresses when connecting to a cluster.
servers=[
"redis://$REDIS_HOST/",
"redis://localhost/",
]
# Redis Cluster.
@ -99,5 +99,5 @@
enabled=["mqtt"]
[integration.mqtt]
server="tcp://$MQTT_BROKER_HOST:1883/"
server="tcp://localhost:1883/"
json=true

View File

@ -38,7 +38,7 @@
topic_prefix="as923"
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
server="tcp://$MQTT_BROKER_HOST:1883"
server="tcp://localhost:1883"
# Connect with the given username (optional)
username=""

View File

@ -38,7 +38,7 @@
topic_prefix="as923_2"
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
server="tcp://$MQTT_BROKER_HOST:1883"
server="tcp://localhost:1883"
# Connect with the given username (optional)
username=""

View File

@ -38,7 +38,7 @@
topic_prefix="as923_3"
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
server="tcp://$MQTT_BROKER_HOST:1883"
server="tcp://localhost:1883"
# Connect with the given username (optional)
username=""

View File

@ -38,7 +38,7 @@
topic_prefix="as923_4"
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
server="tcp://$MQTT_BROKER_HOST:1883"
server="tcp://localhost:1883"
# Connect with the given username (optional)
username=""

View File

@ -38,7 +38,7 @@
topic_prefix="au915_0"
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
server="tcp://$MQTT_BROKER_HOST:1883"
server="tcp://localhost:1883"
# Connect with the given username (optional)
username=""

View File

@ -38,7 +38,7 @@
topic_prefix="au915_1"
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
server="tcp://$MQTT_BROKER_HOST:1883"
server="tcp://localhost:1883"
# Connect with the given username (optional)
username=""

View File

@ -38,7 +38,7 @@
topic_prefix="au915_2"
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
server="tcp://$MQTT_BROKER_HOST:1883"
server="tcp://localhost:1883"
# Connect with the given username (optional)
username=""

View File

@ -38,7 +38,7 @@
topic_prefix="au915_3"
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
server="tcp://$MQTT_BROKER_HOST:1883"
server="tcp://localhost:1883"
# Connect with the given username (optional)
username=""

View File

@ -38,7 +38,7 @@
topic_prefix="au915_4"
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
server="tcp://$MQTT_BROKER_HOST:1883"
server="tcp://localhost:1883"
# Connect with the given username (optional)
username=""

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