Compare commits

...

36 Commits

Author SHA1 Message Date
4b41893f42 Bump version to 4.3.0-test.2 2023-02-28 12:07:16 +00:00
1d9caaef46 Bump golang.org/x/net in /examples/frame_log/go (#130)
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.0.0-20210428140749-89ef3d95e781 to 0.7.0.
- [Release notes](https://github.com/golang/net/releases)
- [Commits](https://github.com/golang/net/commits/v0.7.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-28 11:50:31 +00:00
c5fc87e29b Bump golang.org/x/net in /examples/request_log/go (#129)
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.0.0-20210428140749-89ef3d95e781 to 0.7.0.
- [Release notes](https://github.com/golang/net/releases)
- [Commits](https://github.com/golang/net/commits/v0.7.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-28 11:50:21 +00:00
e60aafc553 Bump golang.org/x/text from 0.3.6 to 0.3.8 in /examples/frame_log/go (#126)
Bumps [golang.org/x/text](https://github.com/golang/text) from 0.3.6 to 0.3.8.
- [Release notes](https://github.com/golang/text/releases)
- [Commits](https://github.com/golang/text/compare/v0.3.6...v0.3.8)

---
updated-dependencies:
- dependency-name: golang.org/x/text
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-28 11:47:34 +00:00
40e22647d5 Bump golang.org/x/text from 0.3.6 to 0.3.8 in /examples/request_log/go (#127)
Bumps [golang.org/x/text](https://github.com/golang/text) from 0.3.6 to 0.3.8.
- [Release notes](https://github.com/golang/text/releases)
- [Commits](https://github.com/golang/text/compare/v0.3.6...v0.3.8)

---
updated-dependencies:
- dependency-name: golang.org/x/text
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-28 11:47:15 +00:00
1d4de3bd7f Update dependencies (cargo update). 2023-02-28 11:45:39 +00:00
de6054c45a Remove tls_enabled as this config option is not actually used.
Closes #128.
2023-02-28 11:45:39 +00:00
0dd67702aa Bump golang.org/x/sys in /examples/frame_log/go (#131)
Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.0.0-20211216021012-1d35b9e2eb4e to 0.1.0.
- [Release notes](https://github.com/golang/sys/releases)
- [Commits](https://github.com/golang/sys/commits/v0.1.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sys
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-28 11:38:43 +00:00
3a851abf3b Bump golang.org/x/sys in /examples/request_log/go (#132)
Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.0.0-20211216021012-1d35b9e2eb4e to 0.1.0.
- [Release notes](https://github.com/golang/sys/releases)
- [Commits](https://github.com/golang/sys/commits/v0.1.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sys
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-28 11:38:37 +00:00
ed1c84e0f1 To not log stats handing NotFound error if allow_unknown_gateways.
In this case it is expected that (some) gateways can't be found in the
database.
2023-02-28 11:33:58 +00:00
a76a198ec6 Do not overwrite RxInfo location if it is already set. 2023-02-28 10:39:25 +00:00
3db01e66c0 Bump version to 4.3.0-test.1 2023-02-24 11:59:12 +00:00
f71cea7716 Fix configfile command template (#124)
The template was not rendering integration.mqtt.client.ca_key  and  integration.mqtt.client.ca_cert correctly.
2023-02-22 13:19:47 +00:00
a3c1638c75 Fix region config defaults + use region id if description is missing.
In case the region description was missing, EU868 was set as default. As
well the default configuration (in case no regions were set) would
always fallback to EU868 which was used for testing. This removes the
default EU868 configuration and moves this configuration to tests.

This updates the region API methods to use the region id as description,
in case the description is not configured.

Closes #120.
2023-02-20 11:01:08 +00:00
c568586281 Fix test after adding f_port validation. 2023-02-15 12:19:32 +00:00
6f10bd907e Add missing validation to avoid multicast enqueue on fPort=0. 2023-02-15 12:15:04 +00:00
0126286f75 Add missing validation to avoid enqueue on fPort=0. 2023-02-15 12:04:11 +00:00
ce0df4b723 Run cargo update. 2023-02-14 14:47:59 +00:00
fcdc432812 Update US902-928 to right Downlink MinDR according to RP2-1.0.3 (#115)
RP2-1.0.3 defines that the MinDR for US902-928 is 8 (SF12BW500) not 10 (SF10BW500)
2023-02-14 14:37:23 +00:00
eda5753bb9 Improve error messages. Fix gateway_id is missing ... errors.
The error would occur when the uplink was also received by an unknown
gateway. In this case fetching the metadata for this gateway would fail,
causing the gateway_private_up and _down not to be populated with the
gateway_id.
2023-02-14 14:32:49 +00:00
f776dd3898 Split private gateways under tenant in uplink / downlink.
This makes it possible to share uplink data with other tenants, but do
not allow other tenants to use these gateways for downlinks.
2023-02-14 13:41:22 +00:00
d3defb7dff Fix auth when listing adr algorithms using api key.
Closes #112.
2023-02-10 11:23:35 +00:00
154c4cde38 Commit generated C# API code. 2023-02-09 15:29:40 +00:00
f657c3e971 Implement adding gws to multicast-group + Class-C scheduling config.
This makes it possible to add gateways to a multicast-group, which in
case configured will always be used for transmitting the multicast
downlinks.

This also moves the multicast class-c scheduling to the multicast-group
configuration. Options are delay between multiple gateways, or GPS time
synchronized transmission.
2023-02-09 15:29:23 +00:00
8d34bb0d0c Remove usage of deprecated date() method.
As the date_naive() method (recommended replacement for date()) does not
contain tz information, we need to add it back using
and_local_timezone().
2023-02-06 12:34:15 +00:00
5953542a72 Update dependencies. 2023-02-06 12:23:44 +00:00
38e79563ca Bump handlebars from 4.3.4 to 4.3.6 (#102)
Bumps [handlebars](https://github.com/sunng87/handlebars-rust) from 4.3.4 to 4.3.6.
- [Release notes](https://github.com/sunng87/handlebars-rust/releases)
- [Changelog](https://github.com/sunng87/handlebars-rust/blob/v4.3.6/CHANGELOG.md)
- [Commits](https://github.com/sunng87/handlebars-rust/compare/v4.3.4...v4.3.6)

---
updated-dependencies:
- dependency-name: handlebars
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-01 11:07:58 +00:00
7ebd930324 Bump tower-http from 0.3.4 to 0.3.5 (#103)
Bumps [tower-http](https://github.com/tower-rs/tower-http) from 0.3.4 to 0.3.5.
- [Release notes](https://github.com/tower-rs/tower-http/releases)
- [Commits](https://github.com/tower-rs/tower-http/compare/tower-http-0.3.4...tower-http-0.3.5)

---
updated-dependencies:
- dependency-name: tower-http
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-01 11:07:43 +00:00
3cb4f3d7f2 Bump redis from 0.21.6 to 0.22.3 (#104)
Bumps [redis](https://github.com/redis-rs/redis-rs) from 0.21.6 to 0.22.3.
- [Release notes](https://github.com/redis-rs/redis-rs/releases)
- [Commits](https://github.com/redis-rs/redis-rs/compare/0.21.6...redis-0.22.3)

---
updated-dependencies:
- dependency-name: redis
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-01 11:07:30 +00:00
22d2cc3f20 Bump serde_yaml from 0.9.13 to 0.9.17 (#105)
Bumps [serde_yaml](https://github.com/dtolnay/serde-yaml) from 0.9.13 to 0.9.17.
- [Release notes](https://github.com/dtolnay/serde-yaml/releases)
- [Commits](https://github.com/dtolnay/serde-yaml/compare/0.9.13...0.9.17)

---
updated-dependencies:
- dependency-name: serde_yaml
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-01 11:06:41 +00:00
256cde5b14 Bump warp from 0.3.2 to 0.3.3 (#106)
Bumps [warp](https://github.com/seanmonstar/warp) from 0.3.2 to 0.3.3.
- [Release notes](https://github.com/seanmonstar/warp/releases)
- [Changelog](https://github.com/seanmonstar/warp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/seanmonstar/warp/compare/v0.3.2...v0.3.3)

---
updated-dependencies:
- dependency-name: warp
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-01 11:06:22 +00:00
837e13a586 Adds C# builds and namespaces (#100)
Co-authored-by: Max Reble <max.reble@aco.com>
2023-01-31 18:29:21 +00:00
81ce56a9a0 Implement get_downlink_data_delay config.
This config option was present in v3 to set a delay before starting the
downlink flow (Class-A) so that an end-application can enqueue a
downlink to be used within the same uplink / downlink transaction.
However, this option was still missing in v4.
2023-01-31 11:28:18 +00:00
7c35fff849 Fix multcast > multicast typo. 2023-01-31 08:41:31 +00:00
66290b9eeb Update README. 2023-01-26 15:32:01 +00:00
aa09d23492 Create FUNDING.yml 2023-01-24 15:11:28 +00:00
211 changed files with 100082 additions and 2082 deletions

1
.github/FUNDING.yml vendored Normal file
View File

@ -0,0 +1 @@
github: chirpstack

1350
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -1,13 +1,13 @@
# ChirpStack open-source LoRaWAN Network Server
# ChirpStack open-source LoRaWAN(R) Network Server
![CI](https://github.com/chirpstack/chirpstack/actions/workflows/main.yml/badge.svg?branch=master)
ChirpStack is an open-source LoRaWAN Network Server, part of the
[ChirpStack](https://www.chirpstack.io/) project.
This repository contains the source-code of ChirpStack v4, which merges the
ChirpStack Application Server (v3) and ChirpStack Network Server (v3) into a
single binary, making it easier to setup and use.
ChirpStack is an open-source LoRaWAN(R) Network Server which can be used to set
up LoRaWAN networks. ChirpStack provides a web-interface for the management of
gateways, devices and tenants as well to set up data integrations with the major
cloud providers, databases and services commonly used for handling device data.
ChirpStack provides a gRPC based API that can be used to integrate or extend
ChirpStack.
## Documentation

11
api/Dockerfile-csharp vendored Normal file
View File

@ -0,0 +1,11 @@
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
ENV PROJECT_PATH=/chirpstack/api
RUN apt update && apt install -y make git
RUN git clone --depth=1 --branch=master https://github.com/googleapis/googleapis.git /googleapis
RUN mkdir -p /googleproto/google/api/
RUN mv /googleapis/google/api/http.proto /googleproto/google/api/ && mv /googleapis/google/api/annotations.proto /googleproto/google/api/
RUN rm -rf /googleapis
WORKDIR $PROJECT_PATH

5
api/Makefile vendored
View File

@ -1,4 +1,4 @@
.PHONY: rust grpc-web go js python md java kotlin
.PHONY: rust grpc-web go js python md java kotlin csharp
all:
docker-compose up
@ -26,3 +26,6 @@ java:
kotlin:
docker-compose run --rm chirpstack-api-kotlin
csharp:
docker-compose run --rm chirpstack-csharp

37
api/csharp/Chirpstack.Api.csproj vendored Normal file
View File

@ -0,0 +1,37 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<Protobuf Include="../proto/common/common.proto" ProtoRoot="../proto/" OutputDir="Chirpstack/" CompileOutputs="false" AdditionalImportDirs="/googleproto" />
<Protobuf Include="../proto/gw/gw.proto" ProtoRoot="../proto/" OutputDir="Chirpstack/" CompileOutputs="false" AdditionalImportDirs="/googleproto" />
<Protobuf Include="../proto/api/internal.proto" ProtoRoot="../proto/" OutputDir="Chirpstack/" CompileOutputs="false" AdditionalImportDirs="/googleproto" />
<Protobuf Include="../proto/api/user.proto" ProtoRoot="../proto/" OutputDir="Chirpstack/" CompileOutputs="false" AdditionalImportDirs="/googleproto" />
<Protobuf Include="../proto/api/tenant.proto" ProtoRoot="../proto/" OutputDir="Chirpstack/" CompileOutputs="false" AdditionalImportDirs="/googleproto" />
<Protobuf Include="../proto/api/application.proto" ProtoRoot="../proto/" OutputDir="Chirpstack/" CompileOutputs="false" AdditionalImportDirs="/googleproto" />
<Protobuf Include="../proto/api/device_profile.proto" ProtoRoot="../proto/" OutputDir="Chirpstack/" CompileOutputs="false" AdditionalImportDirs="/googleproto" />
<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/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="/googleproto/google/api/*.proto" ProtoRoot="/googleproto" OutputDir="Chirpstack/" CompileOutputs="false" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Google.Protobuf" Version="3.21.12" />
<PackageReference Include="Grpc.Core" Version="2.46.6" />
<PackageReference Include="Grpc.Tools" Version="2.51.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
</Project>

17979
api/csharp/Chirpstack/api/Application.cs vendored Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

9583
api/csharp/Chirpstack/api/Device.cs vendored Normal file

File diff suppressed because it is too large Load Diff

1516
api/csharp/Chirpstack/api/DeviceGrpc.cs vendored Normal file

File diff suppressed because it is too large Load Diff

4543
api/csharp/Chirpstack/api/DeviceProfile.cs vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,558 @@
// <auto-generated>
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: api/device_profile.proto
// </auto-generated>
#pragma warning disable 0414, 1591, 8981
#region Designer generated code
using grpc = global::Grpc.Core;
namespace Chirpstack.Api {
/// <summary>
/// DeviceProfileService is the service providing API methods for managing device-profiles.
/// </summary>
public static partial class DeviceProfileService
{
static readonly string __ServiceName = "api.DeviceProfileService";
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static void __Helper_SerializeMessage(global::Google.Protobuf.IMessage message, grpc::SerializationContext context)
{
#if !GRPC_DISABLE_PROTOBUF_BUFFER_SERIALIZATION
if (message is global::Google.Protobuf.IBufferMessage)
{
context.SetPayloadLength(message.CalculateSize());
global::Google.Protobuf.MessageExtensions.WriteTo(message, context.GetBufferWriter());
context.Complete();
return;
}
#endif
context.Complete(global::Google.Protobuf.MessageExtensions.ToByteArray(message));
}
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static class __Helper_MessageCache<T>
{
public static readonly bool IsBufferMessage = global::System.Reflection.IntrospectionExtensions.GetTypeInfo(typeof(global::Google.Protobuf.IBufferMessage)).IsAssignableFrom(typeof(T));
}
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static T __Helper_DeserializeMessage<T>(grpc::DeserializationContext context, global::Google.Protobuf.MessageParser<T> parser) where T : global::Google.Protobuf.IMessage<T>
{
#if !GRPC_DISABLE_PROTOBUF_BUFFER_SERIALIZATION
if (__Helper_MessageCache<T>.IsBufferMessage)
{
return parser.ParseFrom(context.PayloadAsReadOnlySequence());
}
#endif
return parser.ParseFrom(context.PayloadAsNewBuffer());
}
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.CreateDeviceProfileRequest> __Marshaller_api_CreateDeviceProfileRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.CreateDeviceProfileRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.CreateDeviceProfileResponse> __Marshaller_api_CreateDeviceProfileResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.CreateDeviceProfileResponse.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.GetDeviceProfileRequest> __Marshaller_api_GetDeviceProfileRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.GetDeviceProfileRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.GetDeviceProfileResponse> __Marshaller_api_GetDeviceProfileResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.GetDeviceProfileResponse.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.UpdateDeviceProfileRequest> __Marshaller_api_UpdateDeviceProfileRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.UpdateDeviceProfileRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Google.Protobuf.WellKnownTypes.Empty> __Marshaller_google_protobuf_Empty = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Google.Protobuf.WellKnownTypes.Empty.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.DeleteDeviceProfileRequest> __Marshaller_api_DeleteDeviceProfileRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.DeleteDeviceProfileRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.ListDeviceProfilesRequest> __Marshaller_api_ListDeviceProfilesRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.ListDeviceProfilesRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.ListDeviceProfilesResponse> __Marshaller_api_ListDeviceProfilesResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.ListDeviceProfilesResponse.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.ListDeviceProfileAdrAlgorithmsResponse> __Marshaller_api_ListDeviceProfileAdrAlgorithmsResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.ListDeviceProfileAdrAlgorithmsResponse.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.CreateDeviceProfileRequest, global::Chirpstack.Api.CreateDeviceProfileResponse> __Method_Create = new grpc::Method<global::Chirpstack.Api.CreateDeviceProfileRequest, global::Chirpstack.Api.CreateDeviceProfileResponse>(
grpc::MethodType.Unary,
__ServiceName,
"Create",
__Marshaller_api_CreateDeviceProfileRequest,
__Marshaller_api_CreateDeviceProfileResponse);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.GetDeviceProfileRequest, global::Chirpstack.Api.GetDeviceProfileResponse> __Method_Get = new grpc::Method<global::Chirpstack.Api.GetDeviceProfileRequest, global::Chirpstack.Api.GetDeviceProfileResponse>(
grpc::MethodType.Unary,
__ServiceName,
"Get",
__Marshaller_api_GetDeviceProfileRequest,
__Marshaller_api_GetDeviceProfileResponse);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.UpdateDeviceProfileRequest, global::Google.Protobuf.WellKnownTypes.Empty> __Method_Update = new grpc::Method<global::Chirpstack.Api.UpdateDeviceProfileRequest, global::Google.Protobuf.WellKnownTypes.Empty>(
grpc::MethodType.Unary,
__ServiceName,
"Update",
__Marshaller_api_UpdateDeviceProfileRequest,
__Marshaller_google_protobuf_Empty);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.DeleteDeviceProfileRequest, global::Google.Protobuf.WellKnownTypes.Empty> __Method_Delete = new grpc::Method<global::Chirpstack.Api.DeleteDeviceProfileRequest, global::Google.Protobuf.WellKnownTypes.Empty>(
grpc::MethodType.Unary,
__ServiceName,
"Delete",
__Marshaller_api_DeleteDeviceProfileRequest,
__Marshaller_google_protobuf_Empty);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.ListDeviceProfilesRequest, global::Chirpstack.Api.ListDeviceProfilesResponse> __Method_List = new grpc::Method<global::Chirpstack.Api.ListDeviceProfilesRequest, global::Chirpstack.Api.ListDeviceProfilesResponse>(
grpc::MethodType.Unary,
__ServiceName,
"List",
__Marshaller_api_ListDeviceProfilesRequest,
__Marshaller_api_ListDeviceProfilesResponse);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Google.Protobuf.WellKnownTypes.Empty, global::Chirpstack.Api.ListDeviceProfileAdrAlgorithmsResponse> __Method_ListAdrAlgorithms = new grpc::Method<global::Google.Protobuf.WellKnownTypes.Empty, global::Chirpstack.Api.ListDeviceProfileAdrAlgorithmsResponse>(
grpc::MethodType.Unary,
__ServiceName,
"ListAdrAlgorithms",
__Marshaller_google_protobuf_Empty,
__Marshaller_api_ListDeviceProfileAdrAlgorithmsResponse);
/// <summary>Service descriptor</summary>
public static global::Google.Protobuf.Reflection.ServiceDescriptor Descriptor
{
get { return global::Chirpstack.Api.DeviceProfileReflection.Descriptor.Services[0]; }
}
/// <summary>Base class for server-side implementations of DeviceProfileService</summary>
[grpc::BindServiceMethod(typeof(DeviceProfileService), "BindService")]
public abstract partial class DeviceProfileServiceBase
{
/// <summary>
/// Create the given device-profile.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Chirpstack.Api.CreateDeviceProfileResponse> Create(global::Chirpstack.Api.CreateDeviceProfileRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Get the device-profile for the given ID.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Chirpstack.Api.GetDeviceProfileResponse> Get(global::Chirpstack.Api.GetDeviceProfileRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Update the given device-profile.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Google.Protobuf.WellKnownTypes.Empty> Update(global::Chirpstack.Api.UpdateDeviceProfileRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Delete the device-profile with the given ID.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Google.Protobuf.WellKnownTypes.Empty> Delete(global::Chirpstack.Api.DeleteDeviceProfileRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// List the available device-profiles.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Chirpstack.Api.ListDeviceProfilesResponse> List(global::Chirpstack.Api.ListDeviceProfilesRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// List available ADR algorithms.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Chirpstack.Api.ListDeviceProfileAdrAlgorithmsResponse> ListAdrAlgorithms(global::Google.Protobuf.WellKnownTypes.Empty request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
}
/// <summary>Client for DeviceProfileService</summary>
public partial class DeviceProfileServiceClient : grpc::ClientBase<DeviceProfileServiceClient>
{
/// <summary>Creates a new client for DeviceProfileService</summary>
/// <param name="channel">The channel to use to make remote calls.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public DeviceProfileServiceClient(grpc::ChannelBase channel) : base(channel)
{
}
/// <summary>Creates a new client for DeviceProfileService that uses a custom <c>CallInvoker</c>.</summary>
/// <param name="callInvoker">The callInvoker to use to make remote calls.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public DeviceProfileServiceClient(grpc::CallInvoker callInvoker) : base(callInvoker)
{
}
/// <summary>Protected parameterless constructor to allow creation of test doubles.</summary>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
protected DeviceProfileServiceClient() : base()
{
}
/// <summary>Protected constructor to allow creation of configured clients.</summary>
/// <param name="configuration">The client configuration.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
protected DeviceProfileServiceClient(ClientBaseConfiguration configuration) : base(configuration)
{
}
/// <summary>
/// Create the given device-profile.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.CreateDeviceProfileResponse Create(global::Chirpstack.Api.CreateDeviceProfileRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return Create(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Create the given device-profile.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.CreateDeviceProfileResponse Create(global::Chirpstack.Api.CreateDeviceProfileRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_Create, null, options, request);
}
/// <summary>
/// Create the given device-profile.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.CreateDeviceProfileResponse> CreateAsync(global::Chirpstack.Api.CreateDeviceProfileRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return CreateAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Create the given device-profile.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.CreateDeviceProfileResponse> CreateAsync(global::Chirpstack.Api.CreateDeviceProfileRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_Create, null, options, request);
}
/// <summary>
/// Get the device-profile for the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.GetDeviceProfileResponse Get(global::Chirpstack.Api.GetDeviceProfileRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return Get(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Get the device-profile for the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.GetDeviceProfileResponse Get(global::Chirpstack.Api.GetDeviceProfileRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_Get, null, options, request);
}
/// <summary>
/// Get the device-profile for the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.GetDeviceProfileResponse> GetAsync(global::Chirpstack.Api.GetDeviceProfileRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return GetAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Get the device-profile for the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.GetDeviceProfileResponse> GetAsync(global::Chirpstack.Api.GetDeviceProfileRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_Get, null, options, request);
}
/// <summary>
/// Update the given device-profile.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty Update(global::Chirpstack.Api.UpdateDeviceProfileRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return Update(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Update the given device-profile.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty Update(global::Chirpstack.Api.UpdateDeviceProfileRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_Update, null, options, request);
}
/// <summary>
/// Update the given device-profile.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> UpdateAsync(global::Chirpstack.Api.UpdateDeviceProfileRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return UpdateAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Update the given device-profile.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> UpdateAsync(global::Chirpstack.Api.UpdateDeviceProfileRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_Update, null, options, request);
}
/// <summary>
/// Delete the device-profile with the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty Delete(global::Chirpstack.Api.DeleteDeviceProfileRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return Delete(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Delete the device-profile with the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty Delete(global::Chirpstack.Api.DeleteDeviceProfileRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_Delete, null, options, request);
}
/// <summary>
/// Delete the device-profile with the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> DeleteAsync(global::Chirpstack.Api.DeleteDeviceProfileRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return DeleteAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Delete the device-profile with the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> DeleteAsync(global::Chirpstack.Api.DeleteDeviceProfileRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_Delete, null, options, request);
}
/// <summary>
/// List the available device-profiles.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.ListDeviceProfilesResponse List(global::Chirpstack.Api.ListDeviceProfilesRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return List(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// List the available device-profiles.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.ListDeviceProfilesResponse List(global::Chirpstack.Api.ListDeviceProfilesRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_List, null, options, request);
}
/// <summary>
/// List the available device-profiles.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.ListDeviceProfilesResponse> ListAsync(global::Chirpstack.Api.ListDeviceProfilesRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return ListAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// List the available device-profiles.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.ListDeviceProfilesResponse> ListAsync(global::Chirpstack.Api.ListDeviceProfilesRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_List, null, options, request);
}
/// <summary>
/// List available ADR algorithms.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.ListDeviceProfileAdrAlgorithmsResponse ListAdrAlgorithms(global::Google.Protobuf.WellKnownTypes.Empty request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return ListAdrAlgorithms(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// List available ADR algorithms.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.ListDeviceProfileAdrAlgorithmsResponse ListAdrAlgorithms(global::Google.Protobuf.WellKnownTypes.Empty request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_ListAdrAlgorithms, null, options, request);
}
/// <summary>
/// List available ADR algorithms.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.ListDeviceProfileAdrAlgorithmsResponse> ListAdrAlgorithmsAsync(global::Google.Protobuf.WellKnownTypes.Empty request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return ListAdrAlgorithmsAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// List available ADR algorithms.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.ListDeviceProfileAdrAlgorithmsResponse> ListAdrAlgorithmsAsync(global::Google.Protobuf.WellKnownTypes.Empty request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_ListAdrAlgorithms, null, options, request);
}
/// <summary>Creates a new instance of client from given <c>ClientBaseConfiguration</c>.</summary>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
protected override DeviceProfileServiceClient NewInstance(ClientBaseConfiguration configuration)
{
return new DeviceProfileServiceClient(configuration);
}
}
/// <summary>Creates service definition that can be registered with a server</summary>
/// <param name="serviceImpl">An object implementing the server-side handling logic.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public static grpc::ServerServiceDefinition BindService(DeviceProfileServiceBase serviceImpl)
{
return grpc::ServerServiceDefinition.CreateBuilder()
.AddMethod(__Method_Create, serviceImpl.Create)
.AddMethod(__Method_Get, serviceImpl.Get)
.AddMethod(__Method_Update, serviceImpl.Update)
.AddMethod(__Method_Delete, serviceImpl.Delete)
.AddMethod(__Method_List, serviceImpl.List)
.AddMethod(__Method_ListAdrAlgorithms, serviceImpl.ListAdrAlgorithms).Build();
}
/// <summary>Register service method with a service binder with or without implementation. Useful when customizing the service binding logic.
/// Note: this method is part of an experimental API that can change or be removed without any prior notice.</summary>
/// <param name="serviceBinder">Service methods will be bound by calling <c>AddMethod</c> on this object.</param>
/// <param name="serviceImpl">An object implementing the server-side handling logic.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public static void BindService(grpc::ServiceBinderBase serviceBinder, DeviceProfileServiceBase serviceImpl)
{
serviceBinder.AddMethod(__Method_Create, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.CreateDeviceProfileRequest, global::Chirpstack.Api.CreateDeviceProfileResponse>(serviceImpl.Create));
serviceBinder.AddMethod(__Method_Get, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.GetDeviceProfileRequest, global::Chirpstack.Api.GetDeviceProfileResponse>(serviceImpl.Get));
serviceBinder.AddMethod(__Method_Update, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.UpdateDeviceProfileRequest, global::Google.Protobuf.WellKnownTypes.Empty>(serviceImpl.Update));
serviceBinder.AddMethod(__Method_Delete, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.DeleteDeviceProfileRequest, global::Google.Protobuf.WellKnownTypes.Empty>(serviceImpl.Delete));
serviceBinder.AddMethod(__Method_List, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.ListDeviceProfilesRequest, global::Chirpstack.Api.ListDeviceProfilesResponse>(serviceImpl.List));
serviceBinder.AddMethod(__Method_ListAdrAlgorithms, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Google.Protobuf.WellKnownTypes.Empty, global::Chirpstack.Api.ListDeviceProfileAdrAlgorithmsResponse>(serviceImpl.ListAdrAlgorithms));
}
}
}
#endregion

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,484 @@
// <auto-generated>
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: api/device_profile_template.proto
// </auto-generated>
#pragma warning disable 0414, 1591, 8981
#region Designer generated code
using grpc = global::Grpc.Core;
namespace Chirpstack.Api {
/// <summary>
/// DeviceProfileTemplateService is the service providing API methods for managing device-profile templates.
/// </summary>
public static partial class DeviceProfileTemplateService
{
static readonly string __ServiceName = "api.DeviceProfileTemplateService";
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static void __Helper_SerializeMessage(global::Google.Protobuf.IMessage message, grpc::SerializationContext context)
{
#if !GRPC_DISABLE_PROTOBUF_BUFFER_SERIALIZATION
if (message is global::Google.Protobuf.IBufferMessage)
{
context.SetPayloadLength(message.CalculateSize());
global::Google.Protobuf.MessageExtensions.WriteTo(message, context.GetBufferWriter());
context.Complete();
return;
}
#endif
context.Complete(global::Google.Protobuf.MessageExtensions.ToByteArray(message));
}
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static class __Helper_MessageCache<T>
{
public static readonly bool IsBufferMessage = global::System.Reflection.IntrospectionExtensions.GetTypeInfo(typeof(global::Google.Protobuf.IBufferMessage)).IsAssignableFrom(typeof(T));
}
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static T __Helper_DeserializeMessage<T>(grpc::DeserializationContext context, global::Google.Protobuf.MessageParser<T> parser) where T : global::Google.Protobuf.IMessage<T>
{
#if !GRPC_DISABLE_PROTOBUF_BUFFER_SERIALIZATION
if (__Helper_MessageCache<T>.IsBufferMessage)
{
return parser.ParseFrom(context.PayloadAsReadOnlySequence());
}
#endif
return parser.ParseFrom(context.PayloadAsNewBuffer());
}
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.CreateDeviceProfileTemplateRequest> __Marshaller_api_CreateDeviceProfileTemplateRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.CreateDeviceProfileTemplateRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Google.Protobuf.WellKnownTypes.Empty> __Marshaller_google_protobuf_Empty = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Google.Protobuf.WellKnownTypes.Empty.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.GetDeviceProfileTemplateRequest> __Marshaller_api_GetDeviceProfileTemplateRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.GetDeviceProfileTemplateRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.GetDeviceProfileTemplateResponse> __Marshaller_api_GetDeviceProfileTemplateResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.GetDeviceProfileTemplateResponse.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.UpdateDeviceProfileTemplateRequest> __Marshaller_api_UpdateDeviceProfileTemplateRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.UpdateDeviceProfileTemplateRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.DeleteDeviceProfileTemplateRequest> __Marshaller_api_DeleteDeviceProfileTemplateRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.DeleteDeviceProfileTemplateRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.ListDeviceProfileTemplatesRequest> __Marshaller_api_ListDeviceProfileTemplatesRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.ListDeviceProfileTemplatesRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.ListDeviceProfileTemplatesResponse> __Marshaller_api_ListDeviceProfileTemplatesResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.ListDeviceProfileTemplatesResponse.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.CreateDeviceProfileTemplateRequest, global::Google.Protobuf.WellKnownTypes.Empty> __Method_Create = new grpc::Method<global::Chirpstack.Api.CreateDeviceProfileTemplateRequest, global::Google.Protobuf.WellKnownTypes.Empty>(
grpc::MethodType.Unary,
__ServiceName,
"Create",
__Marshaller_api_CreateDeviceProfileTemplateRequest,
__Marshaller_google_protobuf_Empty);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.GetDeviceProfileTemplateRequest, global::Chirpstack.Api.GetDeviceProfileTemplateResponse> __Method_Get = new grpc::Method<global::Chirpstack.Api.GetDeviceProfileTemplateRequest, global::Chirpstack.Api.GetDeviceProfileTemplateResponse>(
grpc::MethodType.Unary,
__ServiceName,
"Get",
__Marshaller_api_GetDeviceProfileTemplateRequest,
__Marshaller_api_GetDeviceProfileTemplateResponse);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.UpdateDeviceProfileTemplateRequest, global::Google.Protobuf.WellKnownTypes.Empty> __Method_Update = new grpc::Method<global::Chirpstack.Api.UpdateDeviceProfileTemplateRequest, global::Google.Protobuf.WellKnownTypes.Empty>(
grpc::MethodType.Unary,
__ServiceName,
"Update",
__Marshaller_api_UpdateDeviceProfileTemplateRequest,
__Marshaller_google_protobuf_Empty);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.DeleteDeviceProfileTemplateRequest, global::Google.Protobuf.WellKnownTypes.Empty> __Method_Delete = new grpc::Method<global::Chirpstack.Api.DeleteDeviceProfileTemplateRequest, global::Google.Protobuf.WellKnownTypes.Empty>(
grpc::MethodType.Unary,
__ServiceName,
"Delete",
__Marshaller_api_DeleteDeviceProfileTemplateRequest,
__Marshaller_google_protobuf_Empty);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.ListDeviceProfileTemplatesRequest, global::Chirpstack.Api.ListDeviceProfileTemplatesResponse> __Method_List = new grpc::Method<global::Chirpstack.Api.ListDeviceProfileTemplatesRequest, global::Chirpstack.Api.ListDeviceProfileTemplatesResponse>(
grpc::MethodType.Unary,
__ServiceName,
"List",
__Marshaller_api_ListDeviceProfileTemplatesRequest,
__Marshaller_api_ListDeviceProfileTemplatesResponse);
/// <summary>Service descriptor</summary>
public static global::Google.Protobuf.Reflection.ServiceDescriptor Descriptor
{
get { return global::Chirpstack.Api.DeviceProfileTemplateReflection.Descriptor.Services[0]; }
}
/// <summary>Base class for server-side implementations of DeviceProfileTemplateService</summary>
[grpc::BindServiceMethod(typeof(DeviceProfileTemplateService), "BindService")]
public abstract partial class DeviceProfileTemplateServiceBase
{
/// <summary>
/// Create the given device-profile template.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Google.Protobuf.WellKnownTypes.Empty> Create(global::Chirpstack.Api.CreateDeviceProfileTemplateRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Get the device-profile template for the given ID.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Chirpstack.Api.GetDeviceProfileTemplateResponse> Get(global::Chirpstack.Api.GetDeviceProfileTemplateRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Update the given device-profile template.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Google.Protobuf.WellKnownTypes.Empty> Update(global::Chirpstack.Api.UpdateDeviceProfileTemplateRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Delete the device-profile template with the given ID.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Google.Protobuf.WellKnownTypes.Empty> Delete(global::Chirpstack.Api.DeleteDeviceProfileTemplateRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// List the available device-profile templates.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Chirpstack.Api.ListDeviceProfileTemplatesResponse> List(global::Chirpstack.Api.ListDeviceProfileTemplatesRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
}
/// <summary>Client for DeviceProfileTemplateService</summary>
public partial class DeviceProfileTemplateServiceClient : grpc::ClientBase<DeviceProfileTemplateServiceClient>
{
/// <summary>Creates a new client for DeviceProfileTemplateService</summary>
/// <param name="channel">The channel to use to make remote calls.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public DeviceProfileTemplateServiceClient(grpc::ChannelBase channel) : base(channel)
{
}
/// <summary>Creates a new client for DeviceProfileTemplateService that uses a custom <c>CallInvoker</c>.</summary>
/// <param name="callInvoker">The callInvoker to use to make remote calls.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public DeviceProfileTemplateServiceClient(grpc::CallInvoker callInvoker) : base(callInvoker)
{
}
/// <summary>Protected parameterless constructor to allow creation of test doubles.</summary>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
protected DeviceProfileTemplateServiceClient() : base()
{
}
/// <summary>Protected constructor to allow creation of configured clients.</summary>
/// <param name="configuration">The client configuration.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
protected DeviceProfileTemplateServiceClient(ClientBaseConfiguration configuration) : base(configuration)
{
}
/// <summary>
/// Create the given device-profile template.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty Create(global::Chirpstack.Api.CreateDeviceProfileTemplateRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return Create(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Create the given device-profile template.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty Create(global::Chirpstack.Api.CreateDeviceProfileTemplateRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_Create, null, options, request);
}
/// <summary>
/// Create the given device-profile template.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> CreateAsync(global::Chirpstack.Api.CreateDeviceProfileTemplateRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return CreateAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Create the given device-profile template.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> CreateAsync(global::Chirpstack.Api.CreateDeviceProfileTemplateRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_Create, null, options, request);
}
/// <summary>
/// Get the device-profile template for the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.GetDeviceProfileTemplateResponse Get(global::Chirpstack.Api.GetDeviceProfileTemplateRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return Get(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Get the device-profile template for the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.GetDeviceProfileTemplateResponse Get(global::Chirpstack.Api.GetDeviceProfileTemplateRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_Get, null, options, request);
}
/// <summary>
/// Get the device-profile template for the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.GetDeviceProfileTemplateResponse> GetAsync(global::Chirpstack.Api.GetDeviceProfileTemplateRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return GetAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Get the device-profile template for the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.GetDeviceProfileTemplateResponse> GetAsync(global::Chirpstack.Api.GetDeviceProfileTemplateRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_Get, null, options, request);
}
/// <summary>
/// Update the given device-profile template.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty Update(global::Chirpstack.Api.UpdateDeviceProfileTemplateRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return Update(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Update the given device-profile template.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty Update(global::Chirpstack.Api.UpdateDeviceProfileTemplateRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_Update, null, options, request);
}
/// <summary>
/// Update the given device-profile template.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> UpdateAsync(global::Chirpstack.Api.UpdateDeviceProfileTemplateRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return UpdateAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Update the given device-profile template.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> UpdateAsync(global::Chirpstack.Api.UpdateDeviceProfileTemplateRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_Update, null, options, request);
}
/// <summary>
/// Delete the device-profile template with the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty Delete(global::Chirpstack.Api.DeleteDeviceProfileTemplateRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return Delete(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Delete the device-profile template with the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty Delete(global::Chirpstack.Api.DeleteDeviceProfileTemplateRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_Delete, null, options, request);
}
/// <summary>
/// Delete the device-profile template with the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> DeleteAsync(global::Chirpstack.Api.DeleteDeviceProfileTemplateRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return DeleteAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Delete the device-profile template with the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> DeleteAsync(global::Chirpstack.Api.DeleteDeviceProfileTemplateRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_Delete, null, options, request);
}
/// <summary>
/// List the available device-profile templates.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.ListDeviceProfileTemplatesResponse List(global::Chirpstack.Api.ListDeviceProfileTemplatesRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return List(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// List the available device-profile templates.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.ListDeviceProfileTemplatesResponse List(global::Chirpstack.Api.ListDeviceProfileTemplatesRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_List, null, options, request);
}
/// <summary>
/// List the available device-profile templates.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.ListDeviceProfileTemplatesResponse> ListAsync(global::Chirpstack.Api.ListDeviceProfileTemplatesRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return ListAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// List the available device-profile templates.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.ListDeviceProfileTemplatesResponse> ListAsync(global::Chirpstack.Api.ListDeviceProfileTemplatesRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_List, null, options, request);
}
/// <summary>Creates a new instance of client from given <c>ClientBaseConfiguration</c>.</summary>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
protected override DeviceProfileTemplateServiceClient NewInstance(ClientBaseConfiguration configuration)
{
return new DeviceProfileTemplateServiceClient(configuration);
}
}
/// <summary>Creates service definition that can be registered with a server</summary>
/// <param name="serviceImpl">An object implementing the server-side handling logic.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public static grpc::ServerServiceDefinition BindService(DeviceProfileTemplateServiceBase serviceImpl)
{
return grpc::ServerServiceDefinition.CreateBuilder()
.AddMethod(__Method_Create, serviceImpl.Create)
.AddMethod(__Method_Get, serviceImpl.Get)
.AddMethod(__Method_Update, serviceImpl.Update)
.AddMethod(__Method_Delete, serviceImpl.Delete)
.AddMethod(__Method_List, serviceImpl.List).Build();
}
/// <summary>Register service method with a service binder with or without implementation. Useful when customizing the service binding logic.
/// Note: this method is part of an experimental API that can change or be removed without any prior notice.</summary>
/// <param name="serviceBinder">Service methods will be bound by calling <c>AddMethod</c> on this object.</param>
/// <param name="serviceImpl">An object implementing the server-side handling logic.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public static void BindService(grpc::ServiceBinderBase serviceBinder, DeviceProfileTemplateServiceBase serviceImpl)
{
serviceBinder.AddMethod(__Method_Create, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.CreateDeviceProfileTemplateRequest, global::Google.Protobuf.WellKnownTypes.Empty>(serviceImpl.Create));
serviceBinder.AddMethod(__Method_Get, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.GetDeviceProfileTemplateRequest, global::Chirpstack.Api.GetDeviceProfileTemplateResponse>(serviceImpl.Get));
serviceBinder.AddMethod(__Method_Update, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.UpdateDeviceProfileTemplateRequest, global::Google.Protobuf.WellKnownTypes.Empty>(serviceImpl.Update));
serviceBinder.AddMethod(__Method_Delete, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.DeleteDeviceProfileTemplateRequest, global::Google.Protobuf.WellKnownTypes.Empty>(serviceImpl.Delete));
serviceBinder.AddMethod(__Method_List, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.ListDeviceProfileTemplatesRequest, global::Chirpstack.Api.ListDeviceProfileTemplatesResponse>(serviceImpl.List));
}
}
}
#endregion

1067
api/csharp/Chirpstack/api/FrameLog.cs vendored Normal file

File diff suppressed because it is too large Load Diff

4227
api/csharp/Chirpstack/api/Gateway.cs vendored Normal file

File diff suppressed because it is too large Load Diff

632
api/csharp/Chirpstack/api/GatewayGrpc.cs vendored Normal file
View File

@ -0,0 +1,632 @@
// <auto-generated>
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: api/gateway.proto
// </auto-generated>
#pragma warning disable 0414, 1591, 8981
#region Designer generated code
using grpc = global::Grpc.Core;
namespace Chirpstack.Api {
/// <summary>
/// GatewayService is the service providing API methods for managing gateways.
/// </summary>
public static partial class GatewayService
{
static readonly string __ServiceName = "api.GatewayService";
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static void __Helper_SerializeMessage(global::Google.Protobuf.IMessage message, grpc::SerializationContext context)
{
#if !GRPC_DISABLE_PROTOBUF_BUFFER_SERIALIZATION
if (message is global::Google.Protobuf.IBufferMessage)
{
context.SetPayloadLength(message.CalculateSize());
global::Google.Protobuf.MessageExtensions.WriteTo(message, context.GetBufferWriter());
context.Complete();
return;
}
#endif
context.Complete(global::Google.Protobuf.MessageExtensions.ToByteArray(message));
}
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static class __Helper_MessageCache<T>
{
public static readonly bool IsBufferMessage = global::System.Reflection.IntrospectionExtensions.GetTypeInfo(typeof(global::Google.Protobuf.IBufferMessage)).IsAssignableFrom(typeof(T));
}
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static T __Helper_DeserializeMessage<T>(grpc::DeserializationContext context, global::Google.Protobuf.MessageParser<T> parser) where T : global::Google.Protobuf.IMessage<T>
{
#if !GRPC_DISABLE_PROTOBUF_BUFFER_SERIALIZATION
if (__Helper_MessageCache<T>.IsBufferMessage)
{
return parser.ParseFrom(context.PayloadAsReadOnlySequence());
}
#endif
return parser.ParseFrom(context.PayloadAsNewBuffer());
}
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.CreateGatewayRequest> __Marshaller_api_CreateGatewayRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.CreateGatewayRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Google.Protobuf.WellKnownTypes.Empty> __Marshaller_google_protobuf_Empty = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Google.Protobuf.WellKnownTypes.Empty.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.GetGatewayRequest> __Marshaller_api_GetGatewayRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.GetGatewayRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.GetGatewayResponse> __Marshaller_api_GetGatewayResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.GetGatewayResponse.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.UpdateGatewayRequest> __Marshaller_api_UpdateGatewayRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.UpdateGatewayRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.DeleteGatewayRequest> __Marshaller_api_DeleteGatewayRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.DeleteGatewayRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.ListGatewaysRequest> __Marshaller_api_ListGatewaysRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.ListGatewaysRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.ListGatewaysResponse> __Marshaller_api_ListGatewaysResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.ListGatewaysResponse.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.GenerateGatewayClientCertificateRequest> __Marshaller_api_GenerateGatewayClientCertificateRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.GenerateGatewayClientCertificateRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.GenerateGatewayClientCertificateResponse> __Marshaller_api_GenerateGatewayClientCertificateResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.GenerateGatewayClientCertificateResponse.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.GetGatewayMetricsRequest> __Marshaller_api_GetGatewayMetricsRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.GetGatewayMetricsRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.GetGatewayMetricsResponse> __Marshaller_api_GetGatewayMetricsResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.GetGatewayMetricsResponse.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.CreateGatewayRequest, global::Google.Protobuf.WellKnownTypes.Empty> __Method_Create = new grpc::Method<global::Chirpstack.Api.CreateGatewayRequest, global::Google.Protobuf.WellKnownTypes.Empty>(
grpc::MethodType.Unary,
__ServiceName,
"Create",
__Marshaller_api_CreateGatewayRequest,
__Marshaller_google_protobuf_Empty);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.GetGatewayRequest, global::Chirpstack.Api.GetGatewayResponse> __Method_Get = new grpc::Method<global::Chirpstack.Api.GetGatewayRequest, global::Chirpstack.Api.GetGatewayResponse>(
grpc::MethodType.Unary,
__ServiceName,
"Get",
__Marshaller_api_GetGatewayRequest,
__Marshaller_api_GetGatewayResponse);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.UpdateGatewayRequest, global::Google.Protobuf.WellKnownTypes.Empty> __Method_Update = new grpc::Method<global::Chirpstack.Api.UpdateGatewayRequest, global::Google.Protobuf.WellKnownTypes.Empty>(
grpc::MethodType.Unary,
__ServiceName,
"Update",
__Marshaller_api_UpdateGatewayRequest,
__Marshaller_google_protobuf_Empty);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.DeleteGatewayRequest, global::Google.Protobuf.WellKnownTypes.Empty> __Method_Delete = new grpc::Method<global::Chirpstack.Api.DeleteGatewayRequest, global::Google.Protobuf.WellKnownTypes.Empty>(
grpc::MethodType.Unary,
__ServiceName,
"Delete",
__Marshaller_api_DeleteGatewayRequest,
__Marshaller_google_protobuf_Empty);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.ListGatewaysRequest, global::Chirpstack.Api.ListGatewaysResponse> __Method_List = new grpc::Method<global::Chirpstack.Api.ListGatewaysRequest, global::Chirpstack.Api.ListGatewaysResponse>(
grpc::MethodType.Unary,
__ServiceName,
"List",
__Marshaller_api_ListGatewaysRequest,
__Marshaller_api_ListGatewaysResponse);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.GenerateGatewayClientCertificateRequest, global::Chirpstack.Api.GenerateGatewayClientCertificateResponse> __Method_GenerateClientCertificate = new grpc::Method<global::Chirpstack.Api.GenerateGatewayClientCertificateRequest, global::Chirpstack.Api.GenerateGatewayClientCertificateResponse>(
grpc::MethodType.Unary,
__ServiceName,
"GenerateClientCertificate",
__Marshaller_api_GenerateGatewayClientCertificateRequest,
__Marshaller_api_GenerateGatewayClientCertificateResponse);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.GetGatewayMetricsRequest, global::Chirpstack.Api.GetGatewayMetricsResponse> __Method_GetMetrics = new grpc::Method<global::Chirpstack.Api.GetGatewayMetricsRequest, global::Chirpstack.Api.GetGatewayMetricsResponse>(
grpc::MethodType.Unary,
__ServiceName,
"GetMetrics",
__Marshaller_api_GetGatewayMetricsRequest,
__Marshaller_api_GetGatewayMetricsResponse);
/// <summary>Service descriptor</summary>
public static global::Google.Protobuf.Reflection.ServiceDescriptor Descriptor
{
get { return global::Chirpstack.Api.GatewayReflection.Descriptor.Services[0]; }
}
/// <summary>Base class for server-side implementations of GatewayService</summary>
[grpc::BindServiceMethod(typeof(GatewayService), "BindService")]
public abstract partial class GatewayServiceBase
{
/// <summary>
/// Create creates the given gateway.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Google.Protobuf.WellKnownTypes.Empty> Create(global::Chirpstack.Api.CreateGatewayRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Get returns the gateway for the given Gateway ID.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Chirpstack.Api.GetGatewayResponse> Get(global::Chirpstack.Api.GetGatewayRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Update updates the given gateway.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Google.Protobuf.WellKnownTypes.Empty> Update(global::Chirpstack.Api.UpdateGatewayRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Delete deletes the gateway matching the given Gateway ID.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Google.Protobuf.WellKnownTypes.Empty> Delete(global::Chirpstack.Api.DeleteGatewayRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Get the list of gateways.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Chirpstack.Api.ListGatewaysResponse> List(global::Chirpstack.Api.ListGatewaysRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Generate client-certificate for the gateway.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Chirpstack.Api.GenerateGatewayClientCertificateResponse> GenerateClientCertificate(global::Chirpstack.Api.GenerateGatewayClientCertificateRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// GetMetrics returns the gateway metrics.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Chirpstack.Api.GetGatewayMetricsResponse> GetMetrics(global::Chirpstack.Api.GetGatewayMetricsRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
}
/// <summary>Client for GatewayService</summary>
public partial class GatewayServiceClient : grpc::ClientBase<GatewayServiceClient>
{
/// <summary>Creates a new client for GatewayService</summary>
/// <param name="channel">The channel to use to make remote calls.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public GatewayServiceClient(grpc::ChannelBase channel) : base(channel)
{
}
/// <summary>Creates a new client for GatewayService that uses a custom <c>CallInvoker</c>.</summary>
/// <param name="callInvoker">The callInvoker to use to make remote calls.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public GatewayServiceClient(grpc::CallInvoker callInvoker) : base(callInvoker)
{
}
/// <summary>Protected parameterless constructor to allow creation of test doubles.</summary>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
protected GatewayServiceClient() : base()
{
}
/// <summary>Protected constructor to allow creation of configured clients.</summary>
/// <param name="configuration">The client configuration.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
protected GatewayServiceClient(ClientBaseConfiguration configuration) : base(configuration)
{
}
/// <summary>
/// Create creates the given gateway.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty Create(global::Chirpstack.Api.CreateGatewayRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return Create(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Create creates the given gateway.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty Create(global::Chirpstack.Api.CreateGatewayRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_Create, null, options, request);
}
/// <summary>
/// Create creates the given gateway.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> CreateAsync(global::Chirpstack.Api.CreateGatewayRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return CreateAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Create creates the given gateway.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> CreateAsync(global::Chirpstack.Api.CreateGatewayRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_Create, null, options, request);
}
/// <summary>
/// Get returns the gateway for the given Gateway ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.GetGatewayResponse Get(global::Chirpstack.Api.GetGatewayRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return Get(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Get returns the gateway for the given Gateway ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.GetGatewayResponse Get(global::Chirpstack.Api.GetGatewayRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_Get, null, options, request);
}
/// <summary>
/// Get returns the gateway for the given Gateway ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.GetGatewayResponse> GetAsync(global::Chirpstack.Api.GetGatewayRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return GetAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Get returns the gateway for the given Gateway ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.GetGatewayResponse> GetAsync(global::Chirpstack.Api.GetGatewayRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_Get, null, options, request);
}
/// <summary>
/// Update updates the given gateway.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty Update(global::Chirpstack.Api.UpdateGatewayRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return Update(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Update updates the given gateway.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty Update(global::Chirpstack.Api.UpdateGatewayRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_Update, null, options, request);
}
/// <summary>
/// Update updates the given gateway.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> UpdateAsync(global::Chirpstack.Api.UpdateGatewayRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return UpdateAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Update updates the given gateway.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> UpdateAsync(global::Chirpstack.Api.UpdateGatewayRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_Update, null, options, request);
}
/// <summary>
/// Delete deletes the gateway matching the given Gateway ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty Delete(global::Chirpstack.Api.DeleteGatewayRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return Delete(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Delete deletes the gateway matching the given Gateway ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty Delete(global::Chirpstack.Api.DeleteGatewayRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_Delete, null, options, request);
}
/// <summary>
/// Delete deletes the gateway matching the given Gateway ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> DeleteAsync(global::Chirpstack.Api.DeleteGatewayRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return DeleteAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Delete deletes the gateway matching the given Gateway ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> DeleteAsync(global::Chirpstack.Api.DeleteGatewayRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_Delete, null, options, request);
}
/// <summary>
/// Get the list of gateways.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.ListGatewaysResponse List(global::Chirpstack.Api.ListGatewaysRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return List(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Get the list of gateways.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.ListGatewaysResponse List(global::Chirpstack.Api.ListGatewaysRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_List, null, options, request);
}
/// <summary>
/// Get the list of gateways.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.ListGatewaysResponse> ListAsync(global::Chirpstack.Api.ListGatewaysRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return ListAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Get the list of gateways.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.ListGatewaysResponse> ListAsync(global::Chirpstack.Api.ListGatewaysRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_List, null, options, request);
}
/// <summary>
/// Generate client-certificate for the gateway.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.GenerateGatewayClientCertificateResponse GenerateClientCertificate(global::Chirpstack.Api.GenerateGatewayClientCertificateRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return GenerateClientCertificate(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Generate client-certificate for the gateway.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.GenerateGatewayClientCertificateResponse GenerateClientCertificate(global::Chirpstack.Api.GenerateGatewayClientCertificateRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_GenerateClientCertificate, null, options, request);
}
/// <summary>
/// Generate client-certificate for the gateway.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.GenerateGatewayClientCertificateResponse> GenerateClientCertificateAsync(global::Chirpstack.Api.GenerateGatewayClientCertificateRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return GenerateClientCertificateAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Generate client-certificate for the gateway.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.GenerateGatewayClientCertificateResponse> GenerateClientCertificateAsync(global::Chirpstack.Api.GenerateGatewayClientCertificateRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_GenerateClientCertificate, null, options, request);
}
/// <summary>
/// GetMetrics returns the gateway metrics.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.GetGatewayMetricsResponse GetMetrics(global::Chirpstack.Api.GetGatewayMetricsRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return GetMetrics(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// GetMetrics returns the gateway metrics.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.GetGatewayMetricsResponse GetMetrics(global::Chirpstack.Api.GetGatewayMetricsRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_GetMetrics, null, options, request);
}
/// <summary>
/// GetMetrics returns the gateway metrics.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.GetGatewayMetricsResponse> GetMetricsAsync(global::Chirpstack.Api.GetGatewayMetricsRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return GetMetricsAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// GetMetrics returns the gateway metrics.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.GetGatewayMetricsResponse> GetMetricsAsync(global::Chirpstack.Api.GetGatewayMetricsRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_GetMetrics, null, options, request);
}
/// <summary>Creates a new instance of client from given <c>ClientBaseConfiguration</c>.</summary>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
protected override GatewayServiceClient NewInstance(ClientBaseConfiguration configuration)
{
return new GatewayServiceClient(configuration);
}
}
/// <summary>Creates service definition that can be registered with a server</summary>
/// <param name="serviceImpl">An object implementing the server-side handling logic.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public static grpc::ServerServiceDefinition BindService(GatewayServiceBase serviceImpl)
{
return grpc::ServerServiceDefinition.CreateBuilder()
.AddMethod(__Method_Create, serviceImpl.Create)
.AddMethod(__Method_Get, serviceImpl.Get)
.AddMethod(__Method_Update, serviceImpl.Update)
.AddMethod(__Method_Delete, serviceImpl.Delete)
.AddMethod(__Method_List, serviceImpl.List)
.AddMethod(__Method_GenerateClientCertificate, serviceImpl.GenerateClientCertificate)
.AddMethod(__Method_GetMetrics, serviceImpl.GetMetrics).Build();
}
/// <summary>Register service method with a service binder with or without implementation. Useful when customizing the service binding logic.
/// Note: this method is part of an experimental API that can change or be removed without any prior notice.</summary>
/// <param name="serviceBinder">Service methods will be bound by calling <c>AddMethod</c> on this object.</param>
/// <param name="serviceImpl">An object implementing the server-side handling logic.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public static void BindService(grpc::ServiceBinderBase serviceBinder, GatewayServiceBase serviceImpl)
{
serviceBinder.AddMethod(__Method_Create, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.CreateGatewayRequest, global::Google.Protobuf.WellKnownTypes.Empty>(serviceImpl.Create));
serviceBinder.AddMethod(__Method_Get, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.GetGatewayRequest, global::Chirpstack.Api.GetGatewayResponse>(serviceImpl.Get));
serviceBinder.AddMethod(__Method_Update, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.UpdateGatewayRequest, global::Google.Protobuf.WellKnownTypes.Empty>(serviceImpl.Update));
serviceBinder.AddMethod(__Method_Delete, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.DeleteGatewayRequest, global::Google.Protobuf.WellKnownTypes.Empty>(serviceImpl.Delete));
serviceBinder.AddMethod(__Method_List, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.ListGatewaysRequest, global::Chirpstack.Api.ListGatewaysResponse>(serviceImpl.List));
serviceBinder.AddMethod(__Method_GenerateClientCertificate, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.GenerateGatewayClientCertificateRequest, global::Chirpstack.Api.GenerateGatewayClientCertificateResponse>(serviceImpl.GenerateClientCertificate));
serviceBinder.AddMethod(__Method_GetMetrics, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.GetGatewayMetricsRequest, global::Chirpstack.Api.GetGatewayMetricsResponse>(serviceImpl.GetMetrics));
}
}
}
#endregion

8018
api/csharp/Chirpstack/api/Internal.cs vendored Normal file

File diff suppressed because it is too large Load Diff

1149
api/csharp/Chirpstack/api/InternalGrpc.cs vendored Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,994 @@
// <auto-generated>
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: api/multicast_group.proto
// </auto-generated>
#pragma warning disable 0414, 1591, 8981
#region Designer generated code
using grpc = global::Grpc.Core;
namespace Chirpstack.Api {
/// <summary>
/// MulticastGroupService is the service managing multicast-groups.
/// </summary>
public static partial class MulticastGroupService
{
static readonly string __ServiceName = "api.MulticastGroupService";
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static void __Helper_SerializeMessage(global::Google.Protobuf.IMessage message, grpc::SerializationContext context)
{
#if !GRPC_DISABLE_PROTOBUF_BUFFER_SERIALIZATION
if (message is global::Google.Protobuf.IBufferMessage)
{
context.SetPayloadLength(message.CalculateSize());
global::Google.Protobuf.MessageExtensions.WriteTo(message, context.GetBufferWriter());
context.Complete();
return;
}
#endif
context.Complete(global::Google.Protobuf.MessageExtensions.ToByteArray(message));
}
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static class __Helper_MessageCache<T>
{
public static readonly bool IsBufferMessage = global::System.Reflection.IntrospectionExtensions.GetTypeInfo(typeof(global::Google.Protobuf.IBufferMessage)).IsAssignableFrom(typeof(T));
}
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static T __Helper_DeserializeMessage<T>(grpc::DeserializationContext context, global::Google.Protobuf.MessageParser<T> parser) where T : global::Google.Protobuf.IMessage<T>
{
#if !GRPC_DISABLE_PROTOBUF_BUFFER_SERIALIZATION
if (__Helper_MessageCache<T>.IsBufferMessage)
{
return parser.ParseFrom(context.PayloadAsReadOnlySequence());
}
#endif
return parser.ParseFrom(context.PayloadAsNewBuffer());
}
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.CreateMulticastGroupRequest> __Marshaller_api_CreateMulticastGroupRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.CreateMulticastGroupRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.CreateMulticastGroupResponse> __Marshaller_api_CreateMulticastGroupResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.CreateMulticastGroupResponse.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.GetMulticastGroupRequest> __Marshaller_api_GetMulticastGroupRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.GetMulticastGroupRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.GetMulticastGroupResponse> __Marshaller_api_GetMulticastGroupResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.GetMulticastGroupResponse.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.UpdateMulticastGroupRequest> __Marshaller_api_UpdateMulticastGroupRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.UpdateMulticastGroupRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Google.Protobuf.WellKnownTypes.Empty> __Marshaller_google_protobuf_Empty = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Google.Protobuf.WellKnownTypes.Empty.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.DeleteMulticastGroupRequest> __Marshaller_api_DeleteMulticastGroupRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.DeleteMulticastGroupRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.ListMulticastGroupsRequest> __Marshaller_api_ListMulticastGroupsRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.ListMulticastGroupsRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.ListMulticastGroupsResponse> __Marshaller_api_ListMulticastGroupsResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.ListMulticastGroupsResponse.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.AddDeviceToMulticastGroupRequest> __Marshaller_api_AddDeviceToMulticastGroupRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.AddDeviceToMulticastGroupRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.RemoveDeviceFromMulticastGroupRequest> __Marshaller_api_RemoveDeviceFromMulticastGroupRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.RemoveDeviceFromMulticastGroupRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.AddGatewayToMulticastGroupRequest> __Marshaller_api_AddGatewayToMulticastGroupRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.AddGatewayToMulticastGroupRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.RemoveGatewayFromMulticastGroupRequest> __Marshaller_api_RemoveGatewayFromMulticastGroupRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.RemoveGatewayFromMulticastGroupRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.EnqueueMulticastGroupQueueItemRequest> __Marshaller_api_EnqueueMulticastGroupQueueItemRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.EnqueueMulticastGroupQueueItemRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.EnqueueMulticastGroupQueueItemResponse> __Marshaller_api_EnqueueMulticastGroupQueueItemResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.EnqueueMulticastGroupQueueItemResponse.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.FlushMulticastGroupQueueRequest> __Marshaller_api_FlushMulticastGroupQueueRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.FlushMulticastGroupQueueRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.ListMulticastGroupQueueRequest> __Marshaller_api_ListMulticastGroupQueueRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.ListMulticastGroupQueueRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.ListMulticastGroupQueueResponse> __Marshaller_api_ListMulticastGroupQueueResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.ListMulticastGroupQueueResponse.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.CreateMulticastGroupRequest, global::Chirpstack.Api.CreateMulticastGroupResponse> __Method_Create = new grpc::Method<global::Chirpstack.Api.CreateMulticastGroupRequest, global::Chirpstack.Api.CreateMulticastGroupResponse>(
grpc::MethodType.Unary,
__ServiceName,
"Create",
__Marshaller_api_CreateMulticastGroupRequest,
__Marshaller_api_CreateMulticastGroupResponse);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.GetMulticastGroupRequest, global::Chirpstack.Api.GetMulticastGroupResponse> __Method_Get = new grpc::Method<global::Chirpstack.Api.GetMulticastGroupRequest, global::Chirpstack.Api.GetMulticastGroupResponse>(
grpc::MethodType.Unary,
__ServiceName,
"Get",
__Marshaller_api_GetMulticastGroupRequest,
__Marshaller_api_GetMulticastGroupResponse);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.UpdateMulticastGroupRequest, global::Google.Protobuf.WellKnownTypes.Empty> __Method_Update = new grpc::Method<global::Chirpstack.Api.UpdateMulticastGroupRequest, global::Google.Protobuf.WellKnownTypes.Empty>(
grpc::MethodType.Unary,
__ServiceName,
"Update",
__Marshaller_api_UpdateMulticastGroupRequest,
__Marshaller_google_protobuf_Empty);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.DeleteMulticastGroupRequest, global::Google.Protobuf.WellKnownTypes.Empty> __Method_Delete = new grpc::Method<global::Chirpstack.Api.DeleteMulticastGroupRequest, global::Google.Protobuf.WellKnownTypes.Empty>(
grpc::MethodType.Unary,
__ServiceName,
"Delete",
__Marshaller_api_DeleteMulticastGroupRequest,
__Marshaller_google_protobuf_Empty);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.ListMulticastGroupsRequest, global::Chirpstack.Api.ListMulticastGroupsResponse> __Method_List = new grpc::Method<global::Chirpstack.Api.ListMulticastGroupsRequest, global::Chirpstack.Api.ListMulticastGroupsResponse>(
grpc::MethodType.Unary,
__ServiceName,
"List",
__Marshaller_api_ListMulticastGroupsRequest,
__Marshaller_api_ListMulticastGroupsResponse);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.AddDeviceToMulticastGroupRequest, global::Google.Protobuf.WellKnownTypes.Empty> __Method_AddDevice = new grpc::Method<global::Chirpstack.Api.AddDeviceToMulticastGroupRequest, global::Google.Protobuf.WellKnownTypes.Empty>(
grpc::MethodType.Unary,
__ServiceName,
"AddDevice",
__Marshaller_api_AddDeviceToMulticastGroupRequest,
__Marshaller_google_protobuf_Empty);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.RemoveDeviceFromMulticastGroupRequest, global::Google.Protobuf.WellKnownTypes.Empty> __Method_RemoveDevice = new grpc::Method<global::Chirpstack.Api.RemoveDeviceFromMulticastGroupRequest, global::Google.Protobuf.WellKnownTypes.Empty>(
grpc::MethodType.Unary,
__ServiceName,
"RemoveDevice",
__Marshaller_api_RemoveDeviceFromMulticastGroupRequest,
__Marshaller_google_protobuf_Empty);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.AddGatewayToMulticastGroupRequest, global::Google.Protobuf.WellKnownTypes.Empty> __Method_AddGateway = new grpc::Method<global::Chirpstack.Api.AddGatewayToMulticastGroupRequest, global::Google.Protobuf.WellKnownTypes.Empty>(
grpc::MethodType.Unary,
__ServiceName,
"AddGateway",
__Marshaller_api_AddGatewayToMulticastGroupRequest,
__Marshaller_google_protobuf_Empty);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.RemoveGatewayFromMulticastGroupRequest, global::Google.Protobuf.WellKnownTypes.Empty> __Method_RemoveGateway = new grpc::Method<global::Chirpstack.Api.RemoveGatewayFromMulticastGroupRequest, global::Google.Protobuf.WellKnownTypes.Empty>(
grpc::MethodType.Unary,
__ServiceName,
"RemoveGateway",
__Marshaller_api_RemoveGatewayFromMulticastGroupRequest,
__Marshaller_google_protobuf_Empty);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.EnqueueMulticastGroupQueueItemRequest, global::Chirpstack.Api.EnqueueMulticastGroupQueueItemResponse> __Method_Enqueue = new grpc::Method<global::Chirpstack.Api.EnqueueMulticastGroupQueueItemRequest, global::Chirpstack.Api.EnqueueMulticastGroupQueueItemResponse>(
grpc::MethodType.Unary,
__ServiceName,
"Enqueue",
__Marshaller_api_EnqueueMulticastGroupQueueItemRequest,
__Marshaller_api_EnqueueMulticastGroupQueueItemResponse);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.FlushMulticastGroupQueueRequest, global::Google.Protobuf.WellKnownTypes.Empty> __Method_FlushQueue = new grpc::Method<global::Chirpstack.Api.FlushMulticastGroupQueueRequest, global::Google.Protobuf.WellKnownTypes.Empty>(
grpc::MethodType.Unary,
__ServiceName,
"FlushQueue",
__Marshaller_api_FlushMulticastGroupQueueRequest,
__Marshaller_google_protobuf_Empty);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.ListMulticastGroupQueueRequest, global::Chirpstack.Api.ListMulticastGroupQueueResponse> __Method_ListQueue = new grpc::Method<global::Chirpstack.Api.ListMulticastGroupQueueRequest, global::Chirpstack.Api.ListMulticastGroupQueueResponse>(
grpc::MethodType.Unary,
__ServiceName,
"ListQueue",
__Marshaller_api_ListMulticastGroupQueueRequest,
__Marshaller_api_ListMulticastGroupQueueResponse);
/// <summary>Service descriptor</summary>
public static global::Google.Protobuf.Reflection.ServiceDescriptor Descriptor
{
get { return global::Chirpstack.Api.MulticastGroupReflection.Descriptor.Services[0]; }
}
/// <summary>Base class for server-side implementations of MulticastGroupService</summary>
[grpc::BindServiceMethod(typeof(MulticastGroupService), "BindService")]
public abstract partial class MulticastGroupServiceBase
{
/// <summary>
/// Create the given multicast group.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Chirpstack.Api.CreateMulticastGroupResponse> Create(global::Chirpstack.Api.CreateMulticastGroupRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Get returns the multicast group for the given ID.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Chirpstack.Api.GetMulticastGroupResponse> Get(global::Chirpstack.Api.GetMulticastGroupRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Update the given multicast group.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Google.Protobuf.WellKnownTypes.Empty> Update(global::Chirpstack.Api.UpdateMulticastGroupRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Delete the multicast-group with the given ID.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Google.Protobuf.WellKnownTypes.Empty> Delete(global::Chirpstack.Api.DeleteMulticastGroupRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// List the available multicast groups.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Chirpstack.Api.ListMulticastGroupsResponse> List(global::Chirpstack.Api.ListMulticastGroupsRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Add a device to the multicast group.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Google.Protobuf.WellKnownTypes.Empty> AddDevice(global::Chirpstack.Api.AddDeviceToMulticastGroupRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Remove a device from the multicast group.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Google.Protobuf.WellKnownTypes.Empty> RemoveDevice(global::Chirpstack.Api.RemoveDeviceFromMulticastGroupRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Add a gateway to the multicast group.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Google.Protobuf.WellKnownTypes.Empty> AddGateway(global::Chirpstack.Api.AddGatewayToMulticastGroupRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Remove a gateway from the multicast group.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Google.Protobuf.WellKnownTypes.Empty> RemoveGateway(global::Chirpstack.Api.RemoveGatewayFromMulticastGroupRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Add the given item to the multicast group queue.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Chirpstack.Api.EnqueueMulticastGroupQueueItemResponse> Enqueue(global::Chirpstack.Api.EnqueueMulticastGroupQueueItemRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Flush the queue for the given multicast group.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Google.Protobuf.WellKnownTypes.Empty> FlushQueue(global::Chirpstack.Api.FlushMulticastGroupQueueRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// List the items in the multicast group queue.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Chirpstack.Api.ListMulticastGroupQueueResponse> ListQueue(global::Chirpstack.Api.ListMulticastGroupQueueRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
}
/// <summary>Client for MulticastGroupService</summary>
public partial class MulticastGroupServiceClient : grpc::ClientBase<MulticastGroupServiceClient>
{
/// <summary>Creates a new client for MulticastGroupService</summary>
/// <param name="channel">The channel to use to make remote calls.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public MulticastGroupServiceClient(grpc::ChannelBase channel) : base(channel)
{
}
/// <summary>Creates a new client for MulticastGroupService that uses a custom <c>CallInvoker</c>.</summary>
/// <param name="callInvoker">The callInvoker to use to make remote calls.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public MulticastGroupServiceClient(grpc::CallInvoker callInvoker) : base(callInvoker)
{
}
/// <summary>Protected parameterless constructor to allow creation of test doubles.</summary>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
protected MulticastGroupServiceClient() : base()
{
}
/// <summary>Protected constructor to allow creation of configured clients.</summary>
/// <param name="configuration">The client configuration.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
protected MulticastGroupServiceClient(ClientBaseConfiguration configuration) : base(configuration)
{
}
/// <summary>
/// Create the given multicast group.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.CreateMulticastGroupResponse Create(global::Chirpstack.Api.CreateMulticastGroupRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return Create(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Create the given multicast group.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.CreateMulticastGroupResponse Create(global::Chirpstack.Api.CreateMulticastGroupRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_Create, null, options, request);
}
/// <summary>
/// Create the given multicast group.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.CreateMulticastGroupResponse> CreateAsync(global::Chirpstack.Api.CreateMulticastGroupRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return CreateAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Create the given multicast group.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.CreateMulticastGroupResponse> CreateAsync(global::Chirpstack.Api.CreateMulticastGroupRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_Create, null, options, request);
}
/// <summary>
/// Get returns the multicast group for the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.GetMulticastGroupResponse Get(global::Chirpstack.Api.GetMulticastGroupRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return Get(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Get returns the multicast group for the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.GetMulticastGroupResponse Get(global::Chirpstack.Api.GetMulticastGroupRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_Get, null, options, request);
}
/// <summary>
/// Get returns the multicast group for the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.GetMulticastGroupResponse> GetAsync(global::Chirpstack.Api.GetMulticastGroupRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return GetAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Get returns the multicast group for the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.GetMulticastGroupResponse> GetAsync(global::Chirpstack.Api.GetMulticastGroupRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_Get, null, options, request);
}
/// <summary>
/// Update the given multicast group.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty Update(global::Chirpstack.Api.UpdateMulticastGroupRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return Update(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Update the given multicast group.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty Update(global::Chirpstack.Api.UpdateMulticastGroupRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_Update, null, options, request);
}
/// <summary>
/// Update the given multicast group.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> UpdateAsync(global::Chirpstack.Api.UpdateMulticastGroupRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return UpdateAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Update the given multicast group.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> UpdateAsync(global::Chirpstack.Api.UpdateMulticastGroupRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_Update, null, options, request);
}
/// <summary>
/// Delete the multicast-group with the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty Delete(global::Chirpstack.Api.DeleteMulticastGroupRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return Delete(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Delete the multicast-group with the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty Delete(global::Chirpstack.Api.DeleteMulticastGroupRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_Delete, null, options, request);
}
/// <summary>
/// Delete the multicast-group with the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> DeleteAsync(global::Chirpstack.Api.DeleteMulticastGroupRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return DeleteAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Delete the multicast-group with the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> DeleteAsync(global::Chirpstack.Api.DeleteMulticastGroupRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_Delete, null, options, request);
}
/// <summary>
/// List the available multicast groups.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.ListMulticastGroupsResponse List(global::Chirpstack.Api.ListMulticastGroupsRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return List(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// List the available multicast groups.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.ListMulticastGroupsResponse List(global::Chirpstack.Api.ListMulticastGroupsRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_List, null, options, request);
}
/// <summary>
/// List the available multicast groups.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.ListMulticastGroupsResponse> ListAsync(global::Chirpstack.Api.ListMulticastGroupsRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return ListAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// List the available multicast groups.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.ListMulticastGroupsResponse> ListAsync(global::Chirpstack.Api.ListMulticastGroupsRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_List, null, options, request);
}
/// <summary>
/// Add a device to the multicast group.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty AddDevice(global::Chirpstack.Api.AddDeviceToMulticastGroupRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return AddDevice(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Add a device to the multicast group.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty AddDevice(global::Chirpstack.Api.AddDeviceToMulticastGroupRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_AddDevice, null, options, request);
}
/// <summary>
/// Add a device to the multicast group.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> AddDeviceAsync(global::Chirpstack.Api.AddDeviceToMulticastGroupRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return AddDeviceAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Add a device to the multicast group.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> AddDeviceAsync(global::Chirpstack.Api.AddDeviceToMulticastGroupRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_AddDevice, null, options, request);
}
/// <summary>
/// Remove a device from the multicast group.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty RemoveDevice(global::Chirpstack.Api.RemoveDeviceFromMulticastGroupRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return RemoveDevice(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Remove a device from the multicast group.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty RemoveDevice(global::Chirpstack.Api.RemoveDeviceFromMulticastGroupRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_RemoveDevice, null, options, request);
}
/// <summary>
/// Remove a device from the multicast group.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> RemoveDeviceAsync(global::Chirpstack.Api.RemoveDeviceFromMulticastGroupRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return RemoveDeviceAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Remove a device from the multicast group.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> RemoveDeviceAsync(global::Chirpstack.Api.RemoveDeviceFromMulticastGroupRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_RemoveDevice, null, options, request);
}
/// <summary>
/// Add a gateway to the multicast group.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty AddGateway(global::Chirpstack.Api.AddGatewayToMulticastGroupRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return AddGateway(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Add a gateway to the multicast group.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty AddGateway(global::Chirpstack.Api.AddGatewayToMulticastGroupRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_AddGateway, null, options, request);
}
/// <summary>
/// Add a gateway to the multicast group.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> AddGatewayAsync(global::Chirpstack.Api.AddGatewayToMulticastGroupRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return AddGatewayAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Add a gateway to the multicast group.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> AddGatewayAsync(global::Chirpstack.Api.AddGatewayToMulticastGroupRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_AddGateway, null, options, request);
}
/// <summary>
/// Remove a gateway from the multicast group.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty RemoveGateway(global::Chirpstack.Api.RemoveGatewayFromMulticastGroupRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return RemoveGateway(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Remove a gateway from the multicast group.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty RemoveGateway(global::Chirpstack.Api.RemoveGatewayFromMulticastGroupRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_RemoveGateway, null, options, request);
}
/// <summary>
/// Remove a gateway from the multicast group.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> RemoveGatewayAsync(global::Chirpstack.Api.RemoveGatewayFromMulticastGroupRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return RemoveGatewayAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Remove a gateway from the multicast group.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> RemoveGatewayAsync(global::Chirpstack.Api.RemoveGatewayFromMulticastGroupRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_RemoveGateway, null, options, request);
}
/// <summary>
/// Add the given item to the multicast group queue.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.EnqueueMulticastGroupQueueItemResponse Enqueue(global::Chirpstack.Api.EnqueueMulticastGroupQueueItemRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return Enqueue(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Add the given item to the multicast group queue.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.EnqueueMulticastGroupQueueItemResponse Enqueue(global::Chirpstack.Api.EnqueueMulticastGroupQueueItemRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_Enqueue, null, options, request);
}
/// <summary>
/// Add the given item to the multicast group queue.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.EnqueueMulticastGroupQueueItemResponse> EnqueueAsync(global::Chirpstack.Api.EnqueueMulticastGroupQueueItemRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return EnqueueAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Add the given item to the multicast group queue.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.EnqueueMulticastGroupQueueItemResponse> EnqueueAsync(global::Chirpstack.Api.EnqueueMulticastGroupQueueItemRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_Enqueue, null, options, request);
}
/// <summary>
/// Flush the queue for the given multicast group.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty FlushQueue(global::Chirpstack.Api.FlushMulticastGroupQueueRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return FlushQueue(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Flush the queue for the given multicast group.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty FlushQueue(global::Chirpstack.Api.FlushMulticastGroupQueueRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_FlushQueue, null, options, request);
}
/// <summary>
/// Flush the queue for the given multicast group.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> FlushQueueAsync(global::Chirpstack.Api.FlushMulticastGroupQueueRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return FlushQueueAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Flush the queue for the given multicast group.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> FlushQueueAsync(global::Chirpstack.Api.FlushMulticastGroupQueueRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_FlushQueue, null, options, request);
}
/// <summary>
/// List the items in the multicast group queue.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.ListMulticastGroupQueueResponse ListQueue(global::Chirpstack.Api.ListMulticastGroupQueueRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return ListQueue(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// List the items in the multicast group queue.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.ListMulticastGroupQueueResponse ListQueue(global::Chirpstack.Api.ListMulticastGroupQueueRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_ListQueue, null, options, request);
}
/// <summary>
/// List the items in the multicast group queue.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.ListMulticastGroupQueueResponse> ListQueueAsync(global::Chirpstack.Api.ListMulticastGroupQueueRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return ListQueueAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// List the items in the multicast group queue.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.ListMulticastGroupQueueResponse> ListQueueAsync(global::Chirpstack.Api.ListMulticastGroupQueueRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_ListQueue, null, options, request);
}
/// <summary>Creates a new instance of client from given <c>ClientBaseConfiguration</c>.</summary>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
protected override MulticastGroupServiceClient NewInstance(ClientBaseConfiguration configuration)
{
return new MulticastGroupServiceClient(configuration);
}
}
/// <summary>Creates service definition that can be registered with a server</summary>
/// <param name="serviceImpl">An object implementing the server-side handling logic.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public static grpc::ServerServiceDefinition BindService(MulticastGroupServiceBase serviceImpl)
{
return grpc::ServerServiceDefinition.CreateBuilder()
.AddMethod(__Method_Create, serviceImpl.Create)
.AddMethod(__Method_Get, serviceImpl.Get)
.AddMethod(__Method_Update, serviceImpl.Update)
.AddMethod(__Method_Delete, serviceImpl.Delete)
.AddMethod(__Method_List, serviceImpl.List)
.AddMethod(__Method_AddDevice, serviceImpl.AddDevice)
.AddMethod(__Method_RemoveDevice, serviceImpl.RemoveDevice)
.AddMethod(__Method_AddGateway, serviceImpl.AddGateway)
.AddMethod(__Method_RemoveGateway, serviceImpl.RemoveGateway)
.AddMethod(__Method_Enqueue, serviceImpl.Enqueue)
.AddMethod(__Method_FlushQueue, serviceImpl.FlushQueue)
.AddMethod(__Method_ListQueue, serviceImpl.ListQueue).Build();
}
/// <summary>Register service method with a service binder with or without implementation. Useful when customizing the service binding logic.
/// Note: this method is part of an experimental API that can change or be removed without any prior notice.</summary>
/// <param name="serviceBinder">Service methods will be bound by calling <c>AddMethod</c> on this object.</param>
/// <param name="serviceImpl">An object implementing the server-side handling logic.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public static void BindService(grpc::ServiceBinderBase serviceBinder, MulticastGroupServiceBase serviceImpl)
{
serviceBinder.AddMethod(__Method_Create, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.CreateMulticastGroupRequest, global::Chirpstack.Api.CreateMulticastGroupResponse>(serviceImpl.Create));
serviceBinder.AddMethod(__Method_Get, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.GetMulticastGroupRequest, global::Chirpstack.Api.GetMulticastGroupResponse>(serviceImpl.Get));
serviceBinder.AddMethod(__Method_Update, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.UpdateMulticastGroupRequest, global::Google.Protobuf.WellKnownTypes.Empty>(serviceImpl.Update));
serviceBinder.AddMethod(__Method_Delete, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.DeleteMulticastGroupRequest, global::Google.Protobuf.WellKnownTypes.Empty>(serviceImpl.Delete));
serviceBinder.AddMethod(__Method_List, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.ListMulticastGroupsRequest, global::Chirpstack.Api.ListMulticastGroupsResponse>(serviceImpl.List));
serviceBinder.AddMethod(__Method_AddDevice, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.AddDeviceToMulticastGroupRequest, global::Google.Protobuf.WellKnownTypes.Empty>(serviceImpl.AddDevice));
serviceBinder.AddMethod(__Method_RemoveDevice, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.RemoveDeviceFromMulticastGroupRequest, global::Google.Protobuf.WellKnownTypes.Empty>(serviceImpl.RemoveDevice));
serviceBinder.AddMethod(__Method_AddGateway, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.AddGatewayToMulticastGroupRequest, global::Google.Protobuf.WellKnownTypes.Empty>(serviceImpl.AddGateway));
serviceBinder.AddMethod(__Method_RemoveGateway, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.RemoveGatewayFromMulticastGroupRequest, global::Google.Protobuf.WellKnownTypes.Empty>(serviceImpl.RemoveGateway));
serviceBinder.AddMethod(__Method_Enqueue, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.EnqueueMulticastGroupQueueItemRequest, global::Chirpstack.Api.EnqueueMulticastGroupQueueItemResponse>(serviceImpl.Enqueue));
serviceBinder.AddMethod(__Method_FlushQueue, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.FlushMulticastGroupQueueRequest, global::Google.Protobuf.WellKnownTypes.Empty>(serviceImpl.FlushQueue));
serviceBinder.AddMethod(__Method_ListQueue, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.ListMulticastGroupQueueRequest, global::Chirpstack.Api.ListMulticastGroupQueueResponse>(serviceImpl.ListQueue));
}
}
}
#endregion

310
api/csharp/Chirpstack/api/RequestLog.cs vendored Normal file
View File

@ -0,0 +1,310 @@
// <auto-generated>
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: api/request_log.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.Api {
/// <summary>Holder for reflection information generated from api/request_log.proto</summary>
public static partial class RequestLogReflection {
#region Descriptor
/// <summary>File descriptor for api/request_log.proto</summary>
public static pbr::FileDescriptor Descriptor {
get { return descriptor; }
}
private static pbr::FileDescriptor descriptor;
static RequestLogReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"ChVhcGkvcmVxdWVzdF9sb2cucHJvdG8SA2FwaRofZ29vZ2xlL3Byb3RvYnVm",
"L3RpbWVzdGFtcC5wcm90bxoTY29tbW9uL2NvbW1vbi5wcm90bxoLZ3cvZ3cu",
"cHJvdG8ijwEKClJlcXVlc3RMb2cSDwoHc2VydmljZRgBIAEoCRIOCgZtZXRo",
"b2QYAiABKAkSLwoIbWV0YWRhdGEYAyADKAsyHS5hcGkuUmVxdWVzdExvZy5N",
"ZXRhZGF0YUVudHJ5Gi8KDU1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0K",
"BXZhbHVlGAIgASgJOgI4AUJnChFpby5jaGlycHN0YWNrLmFwaUIPUmVxdWVz",
"dExvZ1Byb3RvUAFaLmdpdGh1Yi5jb20vY2hpcnBzdGFjay9jaGlycHN0YWNr",
"L2FwaS9nby92NC9hcGmqAg5DaGlycHN0YWNrLkFwaWIGcHJvdG8z"));
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, })
}));
}
#endregion
}
#region Messages
public sealed partial class RequestLog : pb::IMessage<RequestLog>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage
#endif
{
private static readonly pb::MessageParser<RequestLog> _parser = new pb::MessageParser<RequestLog>(() => new RequestLog());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pb::MessageParser<RequestLog> 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]; }
}
[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 RequestLog() {
OnConstruction();
}
partial void OnConstruction();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public RequestLog(RequestLog other) : this() {
service_ = other.service_;
method_ = other.method_;
metadata_ = other.metadata_.Clone();
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public RequestLog Clone() {
return new RequestLog(this);
}
/// <summary>Field number for the "service" field.</summary>
public const int ServiceFieldNumber = 1;
private string service_ = "";
/// <summary>
/// API service name.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public string Service {
get { return service_; }
set {
service_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}
/// <summary>Field number for the "method" field.</summary>
public const int MethodFieldNumber = 2;
private string method_ = "";
/// <summary>
/// API method name.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public string Method {
get { return method_; }
set {
method_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}
/// <summary>Field number for the "metadata" field.</summary>
public const int MetadataFieldNumber = 3;
private static readonly pbc::MapField<string, string>.Codec _map_metadata_codec
= new pbc::MapField<string, string>.Codec(pb::FieldCodec.ForString(10, ""), pb::FieldCodec.ForString(18, ""), 26);
private readonly pbc::MapField<string, string> metadata_ = new pbc::MapField<string, string>();
/// <summary>
/// Metadata.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public pbc::MapField<string, string> Metadata {
get { return metadata_; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override bool Equals(object other) {
return Equals(other as RequestLog);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public bool Equals(RequestLog other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
if (Service != other.Service) return false;
if (Method != other.Method) return false;
if (!Metadata.Equals(other.Metadata)) 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 (Service.Length != 0) hash ^= Service.GetHashCode();
if (Method.Length != 0) hash ^= Method.GetHashCode();
hash ^= Metadata.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 (Service.Length != 0) {
output.WriteRawTag(10);
output.WriteString(Service);
}
if (Method.Length != 0) {
output.WriteRawTag(18);
output.WriteString(Method);
}
metadata_.WriteTo(output, _map_metadata_codec);
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 (Service.Length != 0) {
output.WriteRawTag(10);
output.WriteString(Service);
}
if (Method.Length != 0) {
output.WriteRawTag(18);
output.WriteString(Method);
}
metadata_.WriteTo(ref output, _map_metadata_codec);
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 (Service.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(Service);
}
if (Method.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(Method);
}
size += metadata_.CalculateSize(_map_metadata_codec);
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void MergeFrom(RequestLog other) {
if (other == null) {
return;
}
if (other.Service.Length != 0) {
Service = other.Service;
}
if (other.Method.Length != 0) {
Method = other.Method;
}
metadata_.Add(other.metadata_);
_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: {
Service = input.ReadString();
break;
}
case 18: {
Method = input.ReadString();
break;
}
case 26: {
metadata_.AddEntriesFrom(input, _map_metadata_codec);
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: {
Service = input.ReadString();
break;
}
case 18: {
Method = input.ReadString();
break;
}
case 26: {
metadata_.AddEntriesFrom(ref input, _map_metadata_codec);
break;
}
}
}
}
#endif
}
#endregion
}
#endregion Designer generated code

5498
api/csharp/Chirpstack/api/Tenant.cs vendored Normal file

File diff suppressed because it is too large Load Diff

855
api/csharp/Chirpstack/api/TenantGrpc.cs vendored Normal file
View File

@ -0,0 +1,855 @@
// <auto-generated>
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: api/tenant.proto
// </auto-generated>
#pragma warning disable 0414, 1591, 8981
#region Designer generated code
using grpc = global::Grpc.Core;
namespace Chirpstack.Api {
/// <summary>
/// TenantService is the service providing API methods for managing tenants.
/// </summary>
public static partial class TenantService
{
static readonly string __ServiceName = "api.TenantService";
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static void __Helper_SerializeMessage(global::Google.Protobuf.IMessage message, grpc::SerializationContext context)
{
#if !GRPC_DISABLE_PROTOBUF_BUFFER_SERIALIZATION
if (message is global::Google.Protobuf.IBufferMessage)
{
context.SetPayloadLength(message.CalculateSize());
global::Google.Protobuf.MessageExtensions.WriteTo(message, context.GetBufferWriter());
context.Complete();
return;
}
#endif
context.Complete(global::Google.Protobuf.MessageExtensions.ToByteArray(message));
}
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static class __Helper_MessageCache<T>
{
public static readonly bool IsBufferMessage = global::System.Reflection.IntrospectionExtensions.GetTypeInfo(typeof(global::Google.Protobuf.IBufferMessage)).IsAssignableFrom(typeof(T));
}
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static T __Helper_DeserializeMessage<T>(grpc::DeserializationContext context, global::Google.Protobuf.MessageParser<T> parser) where T : global::Google.Protobuf.IMessage<T>
{
#if !GRPC_DISABLE_PROTOBUF_BUFFER_SERIALIZATION
if (__Helper_MessageCache<T>.IsBufferMessage)
{
return parser.ParseFrom(context.PayloadAsReadOnlySequence());
}
#endif
return parser.ParseFrom(context.PayloadAsNewBuffer());
}
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.CreateTenantRequest> __Marshaller_api_CreateTenantRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.CreateTenantRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.CreateTenantResponse> __Marshaller_api_CreateTenantResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.CreateTenantResponse.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.GetTenantRequest> __Marshaller_api_GetTenantRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.GetTenantRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.GetTenantResponse> __Marshaller_api_GetTenantResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.GetTenantResponse.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.UpdateTenantRequest> __Marshaller_api_UpdateTenantRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.UpdateTenantRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Google.Protobuf.WellKnownTypes.Empty> __Marshaller_google_protobuf_Empty = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Google.Protobuf.WellKnownTypes.Empty.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.DeleteTenantRequest> __Marshaller_api_DeleteTenantRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.DeleteTenantRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.ListTenantsRequest> __Marshaller_api_ListTenantsRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.ListTenantsRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.ListTenantsResponse> __Marshaller_api_ListTenantsResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.ListTenantsResponse.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.AddTenantUserRequest> __Marshaller_api_AddTenantUserRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.AddTenantUserRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.GetTenantUserRequest> __Marshaller_api_GetTenantUserRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.GetTenantUserRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.GetTenantUserResponse> __Marshaller_api_GetTenantUserResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.GetTenantUserResponse.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.UpdateTenantUserRequest> __Marshaller_api_UpdateTenantUserRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.UpdateTenantUserRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.DeleteTenantUserRequest> __Marshaller_api_DeleteTenantUserRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.DeleteTenantUserRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.ListTenantUsersRequest> __Marshaller_api_ListTenantUsersRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.ListTenantUsersRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.ListTenantUsersResponse> __Marshaller_api_ListTenantUsersResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.ListTenantUsersResponse.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.CreateTenantRequest, global::Chirpstack.Api.CreateTenantResponse> __Method_Create = new grpc::Method<global::Chirpstack.Api.CreateTenantRequest, global::Chirpstack.Api.CreateTenantResponse>(
grpc::MethodType.Unary,
__ServiceName,
"Create",
__Marshaller_api_CreateTenantRequest,
__Marshaller_api_CreateTenantResponse);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.GetTenantRequest, global::Chirpstack.Api.GetTenantResponse> __Method_Get = new grpc::Method<global::Chirpstack.Api.GetTenantRequest, global::Chirpstack.Api.GetTenantResponse>(
grpc::MethodType.Unary,
__ServiceName,
"Get",
__Marshaller_api_GetTenantRequest,
__Marshaller_api_GetTenantResponse);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.UpdateTenantRequest, global::Google.Protobuf.WellKnownTypes.Empty> __Method_Update = new grpc::Method<global::Chirpstack.Api.UpdateTenantRequest, global::Google.Protobuf.WellKnownTypes.Empty>(
grpc::MethodType.Unary,
__ServiceName,
"Update",
__Marshaller_api_UpdateTenantRequest,
__Marshaller_google_protobuf_Empty);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.DeleteTenantRequest, global::Google.Protobuf.WellKnownTypes.Empty> __Method_Delete = new grpc::Method<global::Chirpstack.Api.DeleteTenantRequest, global::Google.Protobuf.WellKnownTypes.Empty>(
grpc::MethodType.Unary,
__ServiceName,
"Delete",
__Marshaller_api_DeleteTenantRequest,
__Marshaller_google_protobuf_Empty);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.ListTenantsRequest, global::Chirpstack.Api.ListTenantsResponse> __Method_List = new grpc::Method<global::Chirpstack.Api.ListTenantsRequest, global::Chirpstack.Api.ListTenantsResponse>(
grpc::MethodType.Unary,
__ServiceName,
"List",
__Marshaller_api_ListTenantsRequest,
__Marshaller_api_ListTenantsResponse);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.AddTenantUserRequest, global::Google.Protobuf.WellKnownTypes.Empty> __Method_AddUser = new grpc::Method<global::Chirpstack.Api.AddTenantUserRequest, global::Google.Protobuf.WellKnownTypes.Empty>(
grpc::MethodType.Unary,
__ServiceName,
"AddUser",
__Marshaller_api_AddTenantUserRequest,
__Marshaller_google_protobuf_Empty);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.GetTenantUserRequest, global::Chirpstack.Api.GetTenantUserResponse> __Method_GetUser = new grpc::Method<global::Chirpstack.Api.GetTenantUserRequest, global::Chirpstack.Api.GetTenantUserResponse>(
grpc::MethodType.Unary,
__ServiceName,
"GetUser",
__Marshaller_api_GetTenantUserRequest,
__Marshaller_api_GetTenantUserResponse);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.UpdateTenantUserRequest, global::Google.Protobuf.WellKnownTypes.Empty> __Method_UpdateUser = new grpc::Method<global::Chirpstack.Api.UpdateTenantUserRequest, global::Google.Protobuf.WellKnownTypes.Empty>(
grpc::MethodType.Unary,
__ServiceName,
"UpdateUser",
__Marshaller_api_UpdateTenantUserRequest,
__Marshaller_google_protobuf_Empty);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.DeleteTenantUserRequest, global::Google.Protobuf.WellKnownTypes.Empty> __Method_DeleteUser = new grpc::Method<global::Chirpstack.Api.DeleteTenantUserRequest, global::Google.Protobuf.WellKnownTypes.Empty>(
grpc::MethodType.Unary,
__ServiceName,
"DeleteUser",
__Marshaller_api_DeleteTenantUserRequest,
__Marshaller_google_protobuf_Empty);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.ListTenantUsersRequest, global::Chirpstack.Api.ListTenantUsersResponse> __Method_ListUsers = new grpc::Method<global::Chirpstack.Api.ListTenantUsersRequest, global::Chirpstack.Api.ListTenantUsersResponse>(
grpc::MethodType.Unary,
__ServiceName,
"ListUsers",
__Marshaller_api_ListTenantUsersRequest,
__Marshaller_api_ListTenantUsersResponse);
/// <summary>Service descriptor</summary>
public static global::Google.Protobuf.Reflection.ServiceDescriptor Descriptor
{
get { return global::Chirpstack.Api.TenantReflection.Descriptor.Services[0]; }
}
/// <summary>Base class for server-side implementations of TenantService</summary>
[grpc::BindServiceMethod(typeof(TenantService), "BindService")]
public abstract partial class TenantServiceBase
{
/// <summary>
/// Create a new tenant.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Chirpstack.Api.CreateTenantResponse> Create(global::Chirpstack.Api.CreateTenantRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Get the tenant for the given ID.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Chirpstack.Api.GetTenantResponse> Get(global::Chirpstack.Api.GetTenantRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Update the given tenant.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Google.Protobuf.WellKnownTypes.Empty> Update(global::Chirpstack.Api.UpdateTenantRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Delete the tenant with the given ID.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Google.Protobuf.WellKnownTypes.Empty> Delete(global::Chirpstack.Api.DeleteTenantRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Get the list of tenants.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Chirpstack.Api.ListTenantsResponse> List(global::Chirpstack.Api.ListTenantsRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Add an user to the tenant.
/// Note: the user must already exist.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Google.Protobuf.WellKnownTypes.Empty> AddUser(global::Chirpstack.Api.AddTenantUserRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Get the the tenant user for the given tenant and user IDs.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Chirpstack.Api.GetTenantUserResponse> GetUser(global::Chirpstack.Api.GetTenantUserRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Update the given tenant user.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Google.Protobuf.WellKnownTypes.Empty> UpdateUser(global::Chirpstack.Api.UpdateTenantUserRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Delete the given tenant user.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Google.Protobuf.WellKnownTypes.Empty> DeleteUser(global::Chirpstack.Api.DeleteTenantUserRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Get the list of tenant users.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Chirpstack.Api.ListTenantUsersResponse> ListUsers(global::Chirpstack.Api.ListTenantUsersRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
}
/// <summary>Client for TenantService</summary>
public partial class TenantServiceClient : grpc::ClientBase<TenantServiceClient>
{
/// <summary>Creates a new client for TenantService</summary>
/// <param name="channel">The channel to use to make remote calls.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public TenantServiceClient(grpc::ChannelBase channel) : base(channel)
{
}
/// <summary>Creates a new client for TenantService that uses a custom <c>CallInvoker</c>.</summary>
/// <param name="callInvoker">The callInvoker to use to make remote calls.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public TenantServiceClient(grpc::CallInvoker callInvoker) : base(callInvoker)
{
}
/// <summary>Protected parameterless constructor to allow creation of test doubles.</summary>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
protected TenantServiceClient() : base()
{
}
/// <summary>Protected constructor to allow creation of configured clients.</summary>
/// <param name="configuration">The client configuration.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
protected TenantServiceClient(ClientBaseConfiguration configuration) : base(configuration)
{
}
/// <summary>
/// Create a new tenant.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.CreateTenantResponse Create(global::Chirpstack.Api.CreateTenantRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return Create(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Create a new tenant.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.CreateTenantResponse Create(global::Chirpstack.Api.CreateTenantRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_Create, null, options, request);
}
/// <summary>
/// Create a new tenant.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.CreateTenantResponse> CreateAsync(global::Chirpstack.Api.CreateTenantRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return CreateAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Create a new tenant.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.CreateTenantResponse> CreateAsync(global::Chirpstack.Api.CreateTenantRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_Create, null, options, request);
}
/// <summary>
/// Get the tenant for the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.GetTenantResponse Get(global::Chirpstack.Api.GetTenantRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return Get(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Get the tenant for the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.GetTenantResponse Get(global::Chirpstack.Api.GetTenantRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_Get, null, options, request);
}
/// <summary>
/// Get the tenant for the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.GetTenantResponse> GetAsync(global::Chirpstack.Api.GetTenantRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return GetAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Get the tenant for the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.GetTenantResponse> GetAsync(global::Chirpstack.Api.GetTenantRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_Get, null, options, request);
}
/// <summary>
/// Update the given tenant.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty Update(global::Chirpstack.Api.UpdateTenantRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return Update(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Update the given tenant.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty Update(global::Chirpstack.Api.UpdateTenantRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_Update, null, options, request);
}
/// <summary>
/// Update the given tenant.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> UpdateAsync(global::Chirpstack.Api.UpdateTenantRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return UpdateAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Update the given tenant.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> UpdateAsync(global::Chirpstack.Api.UpdateTenantRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_Update, null, options, request);
}
/// <summary>
/// Delete the tenant with the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty Delete(global::Chirpstack.Api.DeleteTenantRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return Delete(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Delete the tenant with the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty Delete(global::Chirpstack.Api.DeleteTenantRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_Delete, null, options, request);
}
/// <summary>
/// Delete the tenant with the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> DeleteAsync(global::Chirpstack.Api.DeleteTenantRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return DeleteAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Delete the tenant with the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> DeleteAsync(global::Chirpstack.Api.DeleteTenantRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_Delete, null, options, request);
}
/// <summary>
/// Get the list of tenants.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.ListTenantsResponse List(global::Chirpstack.Api.ListTenantsRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return List(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Get the list of tenants.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.ListTenantsResponse List(global::Chirpstack.Api.ListTenantsRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_List, null, options, request);
}
/// <summary>
/// Get the list of tenants.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.ListTenantsResponse> ListAsync(global::Chirpstack.Api.ListTenantsRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return ListAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Get the list of tenants.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.ListTenantsResponse> ListAsync(global::Chirpstack.Api.ListTenantsRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_List, null, options, request);
}
/// <summary>
/// Add an user to the tenant.
/// Note: the user must already exist.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty AddUser(global::Chirpstack.Api.AddTenantUserRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return AddUser(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Add an user to the tenant.
/// Note: the user must already exist.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty AddUser(global::Chirpstack.Api.AddTenantUserRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_AddUser, null, options, request);
}
/// <summary>
/// Add an user to the tenant.
/// Note: the user must already exist.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> AddUserAsync(global::Chirpstack.Api.AddTenantUserRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return AddUserAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Add an user to the tenant.
/// Note: the user must already exist.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> AddUserAsync(global::Chirpstack.Api.AddTenantUserRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_AddUser, null, options, request);
}
/// <summary>
/// Get the the tenant user for the given tenant and user IDs.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.GetTenantUserResponse GetUser(global::Chirpstack.Api.GetTenantUserRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return GetUser(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Get the the tenant user for the given tenant and user IDs.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.GetTenantUserResponse GetUser(global::Chirpstack.Api.GetTenantUserRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_GetUser, null, options, request);
}
/// <summary>
/// Get the the tenant user for the given tenant and user IDs.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.GetTenantUserResponse> GetUserAsync(global::Chirpstack.Api.GetTenantUserRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return GetUserAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Get the the tenant user for the given tenant and user IDs.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.GetTenantUserResponse> GetUserAsync(global::Chirpstack.Api.GetTenantUserRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_GetUser, null, options, request);
}
/// <summary>
/// Update the given tenant user.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty UpdateUser(global::Chirpstack.Api.UpdateTenantUserRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return UpdateUser(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Update the given tenant user.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty UpdateUser(global::Chirpstack.Api.UpdateTenantUserRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_UpdateUser, null, options, request);
}
/// <summary>
/// Update the given tenant user.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> UpdateUserAsync(global::Chirpstack.Api.UpdateTenantUserRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return UpdateUserAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Update the given tenant user.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> UpdateUserAsync(global::Chirpstack.Api.UpdateTenantUserRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_UpdateUser, null, options, request);
}
/// <summary>
/// Delete the given tenant user.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty DeleteUser(global::Chirpstack.Api.DeleteTenantUserRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return DeleteUser(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Delete the given tenant user.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty DeleteUser(global::Chirpstack.Api.DeleteTenantUserRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_DeleteUser, null, options, request);
}
/// <summary>
/// Delete the given tenant user.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> DeleteUserAsync(global::Chirpstack.Api.DeleteTenantUserRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return DeleteUserAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Delete the given tenant user.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> DeleteUserAsync(global::Chirpstack.Api.DeleteTenantUserRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_DeleteUser, null, options, request);
}
/// <summary>
/// Get the list of tenant users.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.ListTenantUsersResponse ListUsers(global::Chirpstack.Api.ListTenantUsersRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return ListUsers(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Get the list of tenant users.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.ListTenantUsersResponse ListUsers(global::Chirpstack.Api.ListTenantUsersRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_ListUsers, null, options, request);
}
/// <summary>
/// Get the list of tenant users.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.ListTenantUsersResponse> ListUsersAsync(global::Chirpstack.Api.ListTenantUsersRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return ListUsersAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Get the list of tenant users.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.ListTenantUsersResponse> ListUsersAsync(global::Chirpstack.Api.ListTenantUsersRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_ListUsers, null, options, request);
}
/// <summary>Creates a new instance of client from given <c>ClientBaseConfiguration</c>.</summary>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
protected override TenantServiceClient NewInstance(ClientBaseConfiguration configuration)
{
return new TenantServiceClient(configuration);
}
}
/// <summary>Creates service definition that can be registered with a server</summary>
/// <param name="serviceImpl">An object implementing the server-side handling logic.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public static grpc::ServerServiceDefinition BindService(TenantServiceBase serviceImpl)
{
return grpc::ServerServiceDefinition.CreateBuilder()
.AddMethod(__Method_Create, serviceImpl.Create)
.AddMethod(__Method_Get, serviceImpl.Get)
.AddMethod(__Method_Update, serviceImpl.Update)
.AddMethod(__Method_Delete, serviceImpl.Delete)
.AddMethod(__Method_List, serviceImpl.List)
.AddMethod(__Method_AddUser, serviceImpl.AddUser)
.AddMethod(__Method_GetUser, serviceImpl.GetUser)
.AddMethod(__Method_UpdateUser, serviceImpl.UpdateUser)
.AddMethod(__Method_DeleteUser, serviceImpl.DeleteUser)
.AddMethod(__Method_ListUsers, serviceImpl.ListUsers).Build();
}
/// <summary>Register service method with a service binder with or without implementation. Useful when customizing the service binding logic.
/// Note: this method is part of an experimental API that can change or be removed without any prior notice.</summary>
/// <param name="serviceBinder">Service methods will be bound by calling <c>AddMethod</c> on this object.</param>
/// <param name="serviceImpl">An object implementing the server-side handling logic.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public static void BindService(grpc::ServiceBinderBase serviceBinder, TenantServiceBase serviceImpl)
{
serviceBinder.AddMethod(__Method_Create, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.CreateTenantRequest, global::Chirpstack.Api.CreateTenantResponse>(serviceImpl.Create));
serviceBinder.AddMethod(__Method_Get, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.GetTenantRequest, global::Chirpstack.Api.GetTenantResponse>(serviceImpl.Get));
serviceBinder.AddMethod(__Method_Update, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.UpdateTenantRequest, global::Google.Protobuf.WellKnownTypes.Empty>(serviceImpl.Update));
serviceBinder.AddMethod(__Method_Delete, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.DeleteTenantRequest, global::Google.Protobuf.WellKnownTypes.Empty>(serviceImpl.Delete));
serviceBinder.AddMethod(__Method_List, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.ListTenantsRequest, global::Chirpstack.Api.ListTenantsResponse>(serviceImpl.List));
serviceBinder.AddMethod(__Method_AddUser, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.AddTenantUserRequest, global::Google.Protobuf.WellKnownTypes.Empty>(serviceImpl.AddUser));
serviceBinder.AddMethod(__Method_GetUser, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.GetTenantUserRequest, global::Chirpstack.Api.GetTenantUserResponse>(serviceImpl.GetUser));
serviceBinder.AddMethod(__Method_UpdateUser, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.UpdateTenantUserRequest, global::Google.Protobuf.WellKnownTypes.Empty>(serviceImpl.UpdateUser));
serviceBinder.AddMethod(__Method_DeleteUser, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.DeleteTenantUserRequest, global::Google.Protobuf.WellKnownTypes.Empty>(serviceImpl.DeleteUser));
serviceBinder.AddMethod(__Method_ListUsers, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.ListTenantUsersRequest, global::Chirpstack.Api.ListTenantUsersResponse>(serviceImpl.ListUsers));
}
}
}
#endregion

3198
api/csharp/Chirpstack/api/User.cs vendored Normal file

File diff suppressed because it is too large Load Diff

558
api/csharp/Chirpstack/api/UserGrpc.cs vendored Normal file
View File

@ -0,0 +1,558 @@
// <auto-generated>
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: api/user.proto
// </auto-generated>
#pragma warning disable 0414, 1591, 8981
#region Designer generated code
using grpc = global::Grpc.Core;
namespace Chirpstack.Api {
/// <summary>
/// UserService is the service providing API methods for managing users.
/// </summary>
public static partial class UserService
{
static readonly string __ServiceName = "api.UserService";
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static void __Helper_SerializeMessage(global::Google.Protobuf.IMessage message, grpc::SerializationContext context)
{
#if !GRPC_DISABLE_PROTOBUF_BUFFER_SERIALIZATION
if (message is global::Google.Protobuf.IBufferMessage)
{
context.SetPayloadLength(message.CalculateSize());
global::Google.Protobuf.MessageExtensions.WriteTo(message, context.GetBufferWriter());
context.Complete();
return;
}
#endif
context.Complete(global::Google.Protobuf.MessageExtensions.ToByteArray(message));
}
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static class __Helper_MessageCache<T>
{
public static readonly bool IsBufferMessage = global::System.Reflection.IntrospectionExtensions.GetTypeInfo(typeof(global::Google.Protobuf.IBufferMessage)).IsAssignableFrom(typeof(T));
}
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static T __Helper_DeserializeMessage<T>(grpc::DeserializationContext context, global::Google.Protobuf.MessageParser<T> parser) where T : global::Google.Protobuf.IMessage<T>
{
#if !GRPC_DISABLE_PROTOBUF_BUFFER_SERIALIZATION
if (__Helper_MessageCache<T>.IsBufferMessage)
{
return parser.ParseFrom(context.PayloadAsReadOnlySequence());
}
#endif
return parser.ParseFrom(context.PayloadAsNewBuffer());
}
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.CreateUserRequest> __Marshaller_api_CreateUserRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.CreateUserRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.CreateUserResponse> __Marshaller_api_CreateUserResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.CreateUserResponse.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.GetUserRequest> __Marshaller_api_GetUserRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.GetUserRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.GetUserResponse> __Marshaller_api_GetUserResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.GetUserResponse.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.UpdateUserRequest> __Marshaller_api_UpdateUserRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.UpdateUserRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Google.Protobuf.WellKnownTypes.Empty> __Marshaller_google_protobuf_Empty = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Google.Protobuf.WellKnownTypes.Empty.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.DeleteUserRequest> __Marshaller_api_DeleteUserRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.DeleteUserRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.ListUsersRequest> __Marshaller_api_ListUsersRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.ListUsersRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.ListUsersResponse> __Marshaller_api_ListUsersResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.ListUsersResponse.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Marshaller<global::Chirpstack.Api.UpdateUserPasswordRequest> __Marshaller_api_UpdateUserPasswordRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.UpdateUserPasswordRequest.Parser));
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.CreateUserRequest, global::Chirpstack.Api.CreateUserResponse> __Method_Create = new grpc::Method<global::Chirpstack.Api.CreateUserRequest, global::Chirpstack.Api.CreateUserResponse>(
grpc::MethodType.Unary,
__ServiceName,
"Create",
__Marshaller_api_CreateUserRequest,
__Marshaller_api_CreateUserResponse);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.GetUserRequest, global::Chirpstack.Api.GetUserResponse> __Method_Get = new grpc::Method<global::Chirpstack.Api.GetUserRequest, global::Chirpstack.Api.GetUserResponse>(
grpc::MethodType.Unary,
__ServiceName,
"Get",
__Marshaller_api_GetUserRequest,
__Marshaller_api_GetUserResponse);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.UpdateUserRequest, global::Google.Protobuf.WellKnownTypes.Empty> __Method_Update = new grpc::Method<global::Chirpstack.Api.UpdateUserRequest, global::Google.Protobuf.WellKnownTypes.Empty>(
grpc::MethodType.Unary,
__ServiceName,
"Update",
__Marshaller_api_UpdateUserRequest,
__Marshaller_google_protobuf_Empty);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.DeleteUserRequest, global::Google.Protobuf.WellKnownTypes.Empty> __Method_Delete = new grpc::Method<global::Chirpstack.Api.DeleteUserRequest, global::Google.Protobuf.WellKnownTypes.Empty>(
grpc::MethodType.Unary,
__ServiceName,
"Delete",
__Marshaller_api_DeleteUserRequest,
__Marshaller_google_protobuf_Empty);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.ListUsersRequest, global::Chirpstack.Api.ListUsersResponse> __Method_List = new grpc::Method<global::Chirpstack.Api.ListUsersRequest, global::Chirpstack.Api.ListUsersResponse>(
grpc::MethodType.Unary,
__ServiceName,
"List",
__Marshaller_api_ListUsersRequest,
__Marshaller_api_ListUsersResponse);
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
static readonly grpc::Method<global::Chirpstack.Api.UpdateUserPasswordRequest, global::Google.Protobuf.WellKnownTypes.Empty> __Method_UpdatePassword = new grpc::Method<global::Chirpstack.Api.UpdateUserPasswordRequest, global::Google.Protobuf.WellKnownTypes.Empty>(
grpc::MethodType.Unary,
__ServiceName,
"UpdatePassword",
__Marshaller_api_UpdateUserPasswordRequest,
__Marshaller_google_protobuf_Empty);
/// <summary>Service descriptor</summary>
public static global::Google.Protobuf.Reflection.ServiceDescriptor Descriptor
{
get { return global::Chirpstack.Api.UserReflection.Descriptor.Services[0]; }
}
/// <summary>Base class for server-side implementations of UserService</summary>
[grpc::BindServiceMethod(typeof(UserService), "BindService")]
public abstract partial class UserServiceBase
{
/// <summary>
/// Create a new user.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Chirpstack.Api.CreateUserResponse> Create(global::Chirpstack.Api.CreateUserRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Get the user for the given ID.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Chirpstack.Api.GetUserResponse> Get(global::Chirpstack.Api.GetUserRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Update the given user.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Google.Protobuf.WellKnownTypes.Empty> Update(global::Chirpstack.Api.UpdateUserRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Delete the user with the given ID.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Google.Protobuf.WellKnownTypes.Empty> Delete(global::Chirpstack.Api.DeleteUserRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Get the list of users.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Chirpstack.Api.ListUsersResponse> List(global::Chirpstack.Api.ListUsersRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
/// <summary>
/// Update the password for the given user.
/// </summary>
/// <param name="request">The request received from the client.</param>
/// <param name="context">The context of the server-side call handler being invoked.</param>
/// <returns>The response to send back to the client (wrapped by a task).</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::System.Threading.Tasks.Task<global::Google.Protobuf.WellKnownTypes.Empty> UpdatePassword(global::Chirpstack.Api.UpdateUserPasswordRequest request, grpc::ServerCallContext context)
{
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
}
}
/// <summary>Client for UserService</summary>
public partial class UserServiceClient : grpc::ClientBase<UserServiceClient>
{
/// <summary>Creates a new client for UserService</summary>
/// <param name="channel">The channel to use to make remote calls.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public UserServiceClient(grpc::ChannelBase channel) : base(channel)
{
}
/// <summary>Creates a new client for UserService that uses a custom <c>CallInvoker</c>.</summary>
/// <param name="callInvoker">The callInvoker to use to make remote calls.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public UserServiceClient(grpc::CallInvoker callInvoker) : base(callInvoker)
{
}
/// <summary>Protected parameterless constructor to allow creation of test doubles.</summary>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
protected UserServiceClient() : base()
{
}
/// <summary>Protected constructor to allow creation of configured clients.</summary>
/// <param name="configuration">The client configuration.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
protected UserServiceClient(ClientBaseConfiguration configuration) : base(configuration)
{
}
/// <summary>
/// Create a new user.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.CreateUserResponse Create(global::Chirpstack.Api.CreateUserRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return Create(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Create a new user.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.CreateUserResponse Create(global::Chirpstack.Api.CreateUserRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_Create, null, options, request);
}
/// <summary>
/// Create a new user.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.CreateUserResponse> CreateAsync(global::Chirpstack.Api.CreateUserRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return CreateAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Create a new user.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.CreateUserResponse> CreateAsync(global::Chirpstack.Api.CreateUserRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_Create, null, options, request);
}
/// <summary>
/// Get the user for the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.GetUserResponse Get(global::Chirpstack.Api.GetUserRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return Get(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Get the user for the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.GetUserResponse Get(global::Chirpstack.Api.GetUserRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_Get, null, options, request);
}
/// <summary>
/// Get the user for the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.GetUserResponse> GetAsync(global::Chirpstack.Api.GetUserRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return GetAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Get the user for the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.GetUserResponse> GetAsync(global::Chirpstack.Api.GetUserRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_Get, null, options, request);
}
/// <summary>
/// Update the given user.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty Update(global::Chirpstack.Api.UpdateUserRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return Update(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Update the given user.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty Update(global::Chirpstack.Api.UpdateUserRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_Update, null, options, request);
}
/// <summary>
/// Update the given user.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> UpdateAsync(global::Chirpstack.Api.UpdateUserRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return UpdateAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Update the given user.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> UpdateAsync(global::Chirpstack.Api.UpdateUserRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_Update, null, options, request);
}
/// <summary>
/// Delete the user with the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty Delete(global::Chirpstack.Api.DeleteUserRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return Delete(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Delete the user with the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty Delete(global::Chirpstack.Api.DeleteUserRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_Delete, null, options, request);
}
/// <summary>
/// Delete the user with the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> DeleteAsync(global::Chirpstack.Api.DeleteUserRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return DeleteAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Delete the user with the given ID.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> DeleteAsync(global::Chirpstack.Api.DeleteUserRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_Delete, null, options, request);
}
/// <summary>
/// Get the list of users.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.ListUsersResponse List(global::Chirpstack.Api.ListUsersRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return List(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Get the list of users.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Chirpstack.Api.ListUsersResponse List(global::Chirpstack.Api.ListUsersRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_List, null, options, request);
}
/// <summary>
/// Get the list of users.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.ListUsersResponse> ListAsync(global::Chirpstack.Api.ListUsersRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return ListAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Get the list of users.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Chirpstack.Api.ListUsersResponse> ListAsync(global::Chirpstack.Api.ListUsersRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_List, null, options, request);
}
/// <summary>
/// Update the password for the given user.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty UpdatePassword(global::Chirpstack.Api.UpdateUserPasswordRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return UpdatePassword(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Update the password for the given user.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The response received from the server.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual global::Google.Protobuf.WellKnownTypes.Empty UpdatePassword(global::Chirpstack.Api.UpdateUserPasswordRequest request, grpc::CallOptions options)
{
return CallInvoker.BlockingUnaryCall(__Method_UpdatePassword, null, options, request);
}
/// <summary>
/// Update the password for the given user.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
/// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
/// <param name="cancellationToken">An optional token for canceling the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> UpdatePasswordAsync(global::Chirpstack.Api.UpdateUserPasswordRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
{
return UpdatePasswordAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
}
/// <summary>
/// Update the password for the given user.
/// </summary>
/// <param name="request">The request to send to the server.</param>
/// <param name="options">The options for the call.</param>
/// <returns>The call object.</returns>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> UpdatePasswordAsync(global::Chirpstack.Api.UpdateUserPasswordRequest request, grpc::CallOptions options)
{
return CallInvoker.AsyncUnaryCall(__Method_UpdatePassword, null, options, request);
}
/// <summary>Creates a new instance of client from given <c>ClientBaseConfiguration</c>.</summary>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
protected override UserServiceClient NewInstance(ClientBaseConfiguration configuration)
{
return new UserServiceClient(configuration);
}
}
/// <summary>Creates service definition that can be registered with a server</summary>
/// <param name="serviceImpl">An object implementing the server-side handling logic.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public static grpc::ServerServiceDefinition BindService(UserServiceBase serviceImpl)
{
return grpc::ServerServiceDefinition.CreateBuilder()
.AddMethod(__Method_Create, serviceImpl.Create)
.AddMethod(__Method_Get, serviceImpl.Get)
.AddMethod(__Method_Update, serviceImpl.Update)
.AddMethod(__Method_Delete, serviceImpl.Delete)
.AddMethod(__Method_List, serviceImpl.List)
.AddMethod(__Method_UpdatePassword, serviceImpl.UpdatePassword).Build();
}
/// <summary>Register service method with a service binder with or without implementation. Useful when customizing the service binding logic.
/// Note: this method is part of an experimental API that can change or be removed without any prior notice.</summary>
/// <param name="serviceBinder">Service methods will be bound by calling <c>AddMethod</c> on this object.</param>
/// <param name="serviceImpl">An object implementing the server-side handling logic.</param>
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
public static void BindService(grpc::ServiceBinderBase serviceBinder, UserServiceBase serviceImpl)
{
serviceBinder.AddMethod(__Method_Create, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.CreateUserRequest, global::Chirpstack.Api.CreateUserResponse>(serviceImpl.Create));
serviceBinder.AddMethod(__Method_Get, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.GetUserRequest, global::Chirpstack.Api.GetUserResponse>(serviceImpl.Get));
serviceBinder.AddMethod(__Method_Update, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.UpdateUserRequest, global::Google.Protobuf.WellKnownTypes.Empty>(serviceImpl.Update));
serviceBinder.AddMethod(__Method_Delete, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.DeleteUserRequest, global::Google.Protobuf.WellKnownTypes.Empty>(serviceImpl.Delete));
serviceBinder.AddMethod(__Method_List, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.ListUsersRequest, global::Chirpstack.Api.ListUsersResponse>(serviceImpl.List));
serviceBinder.AddMethod(__Method_UpdatePassword, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.UpdateUserPasswordRequest, global::Google.Protobuf.WellKnownTypes.Empty>(serviceImpl.UpdatePassword));
}
}
}
#endregion

1365
api/csharp/Chirpstack/common/Common.cs vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,52 @@
// <auto-generated>
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/api/annotations.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 Google.Api {
/// <summary>Holder for reflection information generated from google/api/annotations.proto</summary>
public static partial class AnnotationsReflection {
#region Descriptor
/// <summary>File descriptor for google/api/annotations.proto</summary>
public static pbr::FileDescriptor Descriptor {
get { return descriptor; }
}
private static pbr::FileDescriptor descriptor;
static AnnotationsReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"Chxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvEgpnb29nbGUuYXBpGhVn",
"b29nbGUvYXBpL2h0dHAucHJvdG8aIGdvb2dsZS9wcm90b2J1Zi9kZXNjcmlw",
"dG9yLnByb3RvOkUKBGh0dHASHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0",
"aW9ucxiwyrwiIAEoCzIULmdvb2dsZS5hcGkuSHR0cFJ1bGVCbgoOY29tLmdv",
"b2dsZS5hcGlCEEFubm90YXRpb25zUHJvdG9QAVpBZ29vZ2xlLmdvbGFuZy5v",
"cmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9hcGkvYW5ub3RhdGlvbnM7YW5ub3Rh",
"dGlvbnOiAgRHQVBJYgZwcm90bzM="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::Google.Api.HttpReflection.Descriptor, global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, new pb::Extension[] { AnnotationsExtensions.Http }, null));
}
#endregion
}
/// <summary>Holder for extension identifiers generated from the top level of google/api/annotations.proto</summary>
public static partial class AnnotationsExtensions {
/// <summary>
/// See `HttpRule`.
/// </summary>
public static readonly pb::Extension<global::Google.Protobuf.Reflection.MethodOptions, global::Google.Api.HttpRule> Http =
new pb::Extension<global::Google.Protobuf.Reflection.MethodOptions, global::Google.Api.HttpRule>(72295728, pb::FieldCodec.ForMessage(578365826, global::Google.Api.HttpRule.Parser));
}
}
#endregion Designer generated code

1411
api/csharp/Chirpstack/google/api/Http.cs vendored Normal file

File diff suppressed because it is too large Load Diff

12325
api/csharp/Chirpstack/gw/Gw.cs vendored Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

968
api/csharp/Chirpstack/meta/Meta.cs vendored Normal file
View File

@ -0,0 +1,968 @@
// <auto-generated>
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: meta/meta.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.Meta {
/// <summary>Holder for reflection information generated from meta/meta.proto</summary>
public static partial class MetaReflection {
#region Descriptor
/// <summary>File descriptor for meta/meta.proto</summary>
public static pbr::FileDescriptor Descriptor {
get { return descriptor; }
}
private static pbr::FileDescriptor descriptor;
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="));
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)
}));
}
#endregion
}
#region Messages
public sealed partial class UplinkMeta : pb::IMessage<UplinkMeta>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage
#endif
{
private static readonly pb::MessageParser<UplinkMeta> _parser = new pb::MessageParser<UplinkMeta>(() => new UplinkMeta());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pb::MessageParser<UplinkMeta> Parser { get { return _parser; } }
[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]; }
}
[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 UplinkMeta() {
OnConstruction();
}
partial void OnConstruction();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public UplinkMeta(UplinkMeta other) : this() {
devEui_ = other.devEui_;
txInfo_ = other.txInfo_ != null ? other.txInfo_.Clone() : null;
rxInfo_ = other.rxInfo_.Clone();
phyPayloadByteCount_ = other.phyPayloadByteCount_;
macCommandByteCount_ = other.macCommandByteCount_;
applicationPayloadByteCount_ = other.applicationPayloadByteCount_;
messageType_ = other.messageType_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public UplinkMeta Clone() {
return new UplinkMeta(this);
}
/// <summary>Field number for the "dev_eui" field.</summary>
public const int DevEuiFieldNumber = 1;
private string devEui_ = "";
/// <summary>
/// Device EUI (EUI64).
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public string DevEui {
get { return devEui_; }
set {
devEui_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}
/// <summary>Field number for the "tx_info" field.</summary>
public const int TxInfoFieldNumber = 2;
private global::Chirpstack.Gateway.UplinkTxInfo txInfo_;
/// <summary>
/// TX meta-data.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public global::Chirpstack.Gateway.UplinkTxInfo TxInfo {
get { return txInfo_; }
set {
txInfo_ = value;
}
}
/// <summary>Field number for the "rx_info" field.</summary>
public const int RxInfoFieldNumber = 3;
private static readonly pb::FieldCodec<global::Chirpstack.Gateway.UplinkRxInfo> _repeated_rxInfo_codec
= pb::FieldCodec.ForMessage(26, global::Chirpstack.Gateway.UplinkRxInfo.Parser);
private readonly pbc::RepeatedField<global::Chirpstack.Gateway.UplinkRxInfo> rxInfo_ = new pbc::RepeatedField<global::Chirpstack.Gateway.UplinkRxInfo>();
/// <summary>
/// RX meta-data.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public pbc::RepeatedField<global::Chirpstack.Gateway.UplinkRxInfo> RxInfo {
get { return rxInfo_; }
}
/// <summary>Field number for the "phy_payload_byte_count" field.</summary>
public const int PhyPayloadByteCountFieldNumber = 4;
private uint phyPayloadByteCount_;
/// <summary>
/// PHYPayload byte count.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public uint PhyPayloadByteCount {
get { return phyPayloadByteCount_; }
set {
phyPayloadByteCount_ = value;
}
}
/// <summary>Field number for the "mac_command_byte_count" field.</summary>
public const int MacCommandByteCountFieldNumber = 5;
private uint macCommandByteCount_;
/// <summary>
/// MAC-Command byte count.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public uint MacCommandByteCount {
get { return macCommandByteCount_; }
set {
macCommandByteCount_ = value;
}
}
/// <summary>Field number for the "application_payload_byte_count" field.</summary>
public const int ApplicationPayloadByteCountFieldNumber = 6;
private uint applicationPayloadByteCount_;
/// <summary>
/// Application payload byte count.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public uint ApplicationPayloadByteCount {
get { return applicationPayloadByteCount_; }
set {
applicationPayloadByteCount_ = value;
}
}
/// <summary>Field number for the "message_type" field.</summary>
public const int MessageTypeFieldNumber = 7;
private global::Chirpstack.Common.MType messageType_ = global::Chirpstack.Common.MType.JoinRequest;
/// <summary>
/// Message type.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public global::Chirpstack.Common.MType MessageType {
get { return messageType_; }
set {
messageType_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override bool Equals(object other) {
return Equals(other as UplinkMeta);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public bool Equals(UplinkMeta other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
if (DevEui != other.DevEui) return false;
if (!object.Equals(TxInfo, other.TxInfo)) return false;
if(!rxInfo_.Equals(other.rxInfo_)) return false;
if (PhyPayloadByteCount != other.PhyPayloadByteCount) return false;
if (MacCommandByteCount != other.MacCommandByteCount) return false;
if (ApplicationPayloadByteCount != other.ApplicationPayloadByteCount) return false;
if (MessageType != other.MessageType) 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 (DevEui.Length != 0) hash ^= DevEui.GetHashCode();
if (txInfo_ != null) hash ^= TxInfo.GetHashCode();
hash ^= rxInfo_.GetHashCode();
if (PhyPayloadByteCount != 0) hash ^= PhyPayloadByteCount.GetHashCode();
if (MacCommandByteCount != 0) hash ^= MacCommandByteCount.GetHashCode();
if (ApplicationPayloadByteCount != 0) hash ^= ApplicationPayloadByteCount.GetHashCode();
if (MessageType != global::Chirpstack.Common.MType.JoinRequest) hash ^= MessageType.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 (DevEui.Length != 0) {
output.WriteRawTag(10);
output.WriteString(DevEui);
}
if (txInfo_ != null) {
output.WriteRawTag(18);
output.WriteMessage(TxInfo);
}
rxInfo_.WriteTo(output, _repeated_rxInfo_codec);
if (PhyPayloadByteCount != 0) {
output.WriteRawTag(32);
output.WriteUInt32(PhyPayloadByteCount);
}
if (MacCommandByteCount != 0) {
output.WriteRawTag(40);
output.WriteUInt32(MacCommandByteCount);
}
if (ApplicationPayloadByteCount != 0) {
output.WriteRawTag(48);
output.WriteUInt32(ApplicationPayloadByteCount);
}
if (MessageType != global::Chirpstack.Common.MType.JoinRequest) {
output.WriteRawTag(56);
output.WriteEnum((int) MessageType);
}
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 (DevEui.Length != 0) {
output.WriteRawTag(10);
output.WriteString(DevEui);
}
if (txInfo_ != null) {
output.WriteRawTag(18);
output.WriteMessage(TxInfo);
}
rxInfo_.WriteTo(ref output, _repeated_rxInfo_codec);
if (PhyPayloadByteCount != 0) {
output.WriteRawTag(32);
output.WriteUInt32(PhyPayloadByteCount);
}
if (MacCommandByteCount != 0) {
output.WriteRawTag(40);
output.WriteUInt32(MacCommandByteCount);
}
if (ApplicationPayloadByteCount != 0) {
output.WriteRawTag(48);
output.WriteUInt32(ApplicationPayloadByteCount);
}
if (MessageType != global::Chirpstack.Common.MType.JoinRequest) {
output.WriteRawTag(56);
output.WriteEnum((int) MessageType);
}
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 (DevEui.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(DevEui);
}
if (txInfo_ != null) {
size += 1 + pb::CodedOutputStream.ComputeMessageSize(TxInfo);
}
size += rxInfo_.CalculateSize(_repeated_rxInfo_codec);
if (PhyPayloadByteCount != 0) {
size += 1 + pb::CodedOutputStream.ComputeUInt32Size(PhyPayloadByteCount);
}
if (MacCommandByteCount != 0) {
size += 1 + pb::CodedOutputStream.ComputeUInt32Size(MacCommandByteCount);
}
if (ApplicationPayloadByteCount != 0) {
size += 1 + pb::CodedOutputStream.ComputeUInt32Size(ApplicationPayloadByteCount);
}
if (MessageType != global::Chirpstack.Common.MType.JoinRequest) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) MessageType);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void MergeFrom(UplinkMeta other) {
if (other == null) {
return;
}
if (other.DevEui.Length != 0) {
DevEui = other.DevEui;
}
if (other.txInfo_ != null) {
if (txInfo_ == null) {
TxInfo = new global::Chirpstack.Gateway.UplinkTxInfo();
}
TxInfo.MergeFrom(other.TxInfo);
}
rxInfo_.Add(other.rxInfo_);
if (other.PhyPayloadByteCount != 0) {
PhyPayloadByteCount = other.PhyPayloadByteCount;
}
if (other.MacCommandByteCount != 0) {
MacCommandByteCount = other.MacCommandByteCount;
}
if (other.ApplicationPayloadByteCount != 0) {
ApplicationPayloadByteCount = other.ApplicationPayloadByteCount;
}
if (other.MessageType != global::Chirpstack.Common.MType.JoinRequest) {
MessageType = other.MessageType;
}
_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: {
DevEui = input.ReadString();
break;
}
case 18: {
if (txInfo_ == null) {
TxInfo = new global::Chirpstack.Gateway.UplinkTxInfo();
}
input.ReadMessage(TxInfo);
break;
}
case 26: {
rxInfo_.AddEntriesFrom(input, _repeated_rxInfo_codec);
break;
}
case 32: {
PhyPayloadByteCount = input.ReadUInt32();
break;
}
case 40: {
MacCommandByteCount = input.ReadUInt32();
break;
}
case 48: {
ApplicationPayloadByteCount = input.ReadUInt32();
break;
}
case 56: {
MessageType = (global::Chirpstack.Common.MType) input.ReadEnum();
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: {
DevEui = input.ReadString();
break;
}
case 18: {
if (txInfo_ == null) {
TxInfo = new global::Chirpstack.Gateway.UplinkTxInfo();
}
input.ReadMessage(TxInfo);
break;
}
case 26: {
rxInfo_.AddEntriesFrom(ref input, _repeated_rxInfo_codec);
break;
}
case 32: {
PhyPayloadByteCount = input.ReadUInt32();
break;
}
case 40: {
MacCommandByteCount = input.ReadUInt32();
break;
}
case 48: {
ApplicationPayloadByteCount = input.ReadUInt32();
break;
}
case 56: {
MessageType = (global::Chirpstack.Common.MType) input.ReadEnum();
break;
}
}
}
}
#endif
}
public sealed partial class DownlinkMeta : pb::IMessage<DownlinkMeta>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage
#endif
{
private static readonly pb::MessageParser<DownlinkMeta> _parser = new pb::MessageParser<DownlinkMeta>(() => new DownlinkMeta());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pb::MessageParser<DownlinkMeta> Parser { get { return _parser; } }
[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]; }
}
[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 DownlinkMeta() {
OnConstruction();
}
partial void OnConstruction();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public DownlinkMeta(DownlinkMeta other) : this() {
devEui_ = other.devEui_;
multicastGroupId_ = other.multicastGroupId_;
txInfo_ = other.txInfo_ != null ? other.txInfo_.Clone() : null;
phyPayloadByteCount_ = other.phyPayloadByteCount_;
macCommandByteCount_ = other.macCommandByteCount_;
applicationPayloadByteCount_ = other.applicationPayloadByteCount_;
messageType_ = other.messageType_;
gatewayId_ = other.gatewayId_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public DownlinkMeta Clone() {
return new DownlinkMeta(this);
}
/// <summary>Field number for the "dev_eui" field.</summary>
public const int DevEuiFieldNumber = 1;
private string devEui_ = "";
/// <summary>
/// Device EUI (EUI64).
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public string DevEui {
get { return devEui_; }
set {
devEui_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}
/// <summary>Field number for the "multicast_group_id" field.</summary>
public const int MulticastGroupIdFieldNumber = 2;
private string multicastGroupId_ = "";
/// <summary>
/// Multicast Group ID (UUID).
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public string MulticastGroupId {
get { return multicastGroupId_; }
set {
multicastGroupId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}
/// <summary>Field number for the "tx_info" field.</summary>
public const int TxInfoFieldNumber = 3;
private global::Chirpstack.Gateway.DownlinkTxInfo txInfo_;
/// <summary>
/// TX meta-data.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public global::Chirpstack.Gateway.DownlinkTxInfo TxInfo {
get { return txInfo_; }
set {
txInfo_ = value;
}
}
/// <summary>Field number for the "phy_payload_byte_count" field.</summary>
public const int PhyPayloadByteCountFieldNumber = 4;
private uint phyPayloadByteCount_;
/// <summary>
/// PHYPayload byte count.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public uint PhyPayloadByteCount {
get { return phyPayloadByteCount_; }
set {
phyPayloadByteCount_ = value;
}
}
/// <summary>Field number for the "mac_command_byte_count" field.</summary>
public const int MacCommandByteCountFieldNumber = 5;
private uint macCommandByteCount_;
/// <summary>
/// MAC-Command byte count.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public uint MacCommandByteCount {
get { return macCommandByteCount_; }
set {
macCommandByteCount_ = value;
}
}
/// <summary>Field number for the "application_payload_byte_count" field.</summary>
public const int ApplicationPayloadByteCountFieldNumber = 6;
private uint applicationPayloadByteCount_;
/// <summary>
/// Application payload byte count.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public uint ApplicationPayloadByteCount {
get { return applicationPayloadByteCount_; }
set {
applicationPayloadByteCount_ = value;
}
}
/// <summary>Field number for the "message_type" field.</summary>
public const int MessageTypeFieldNumber = 7;
private global::Chirpstack.Common.MType messageType_ = global::Chirpstack.Common.MType.JoinRequest;
/// <summary>
/// Message type.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public global::Chirpstack.Common.MType MessageType {
get { return messageType_; }
set {
messageType_ = value;
}
}
/// <summary>Field number for the "gateway_id" field.</summary>
public const int GatewayIdFieldNumber = 8;
private string gatewayId_ = "";
/// <summary>
/// Gateway ID (EUI64).
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public string GatewayId {
get { return gatewayId_; }
set {
gatewayId_ = 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 DownlinkMeta);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public bool Equals(DownlinkMeta other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
if (DevEui != other.DevEui) return false;
if (MulticastGroupId != other.MulticastGroupId) return false;
if (!object.Equals(TxInfo, other.TxInfo)) return false;
if (PhyPayloadByteCount != other.PhyPayloadByteCount) return false;
if (MacCommandByteCount != other.MacCommandByteCount) return false;
if (ApplicationPayloadByteCount != other.ApplicationPayloadByteCount) return false;
if (MessageType != other.MessageType) return false;
if (GatewayId != other.GatewayId) 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 (DevEui.Length != 0) hash ^= DevEui.GetHashCode();
if (MulticastGroupId.Length != 0) hash ^= MulticastGroupId.GetHashCode();
if (txInfo_ != null) hash ^= TxInfo.GetHashCode();
if (PhyPayloadByteCount != 0) hash ^= PhyPayloadByteCount.GetHashCode();
if (MacCommandByteCount != 0) hash ^= MacCommandByteCount.GetHashCode();
if (ApplicationPayloadByteCount != 0) hash ^= ApplicationPayloadByteCount.GetHashCode();
if (MessageType != global::Chirpstack.Common.MType.JoinRequest) hash ^= MessageType.GetHashCode();
if (GatewayId.Length != 0) hash ^= GatewayId.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 (DevEui.Length != 0) {
output.WriteRawTag(10);
output.WriteString(DevEui);
}
if (MulticastGroupId.Length != 0) {
output.WriteRawTag(18);
output.WriteString(MulticastGroupId);
}
if (txInfo_ != null) {
output.WriteRawTag(26);
output.WriteMessage(TxInfo);
}
if (PhyPayloadByteCount != 0) {
output.WriteRawTag(32);
output.WriteUInt32(PhyPayloadByteCount);
}
if (MacCommandByteCount != 0) {
output.WriteRawTag(40);
output.WriteUInt32(MacCommandByteCount);
}
if (ApplicationPayloadByteCount != 0) {
output.WriteRawTag(48);
output.WriteUInt32(ApplicationPayloadByteCount);
}
if (MessageType != global::Chirpstack.Common.MType.JoinRequest) {
output.WriteRawTag(56);
output.WriteEnum((int) MessageType);
}
if (GatewayId.Length != 0) {
output.WriteRawTag(66);
output.WriteString(GatewayId);
}
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 (DevEui.Length != 0) {
output.WriteRawTag(10);
output.WriteString(DevEui);
}
if (MulticastGroupId.Length != 0) {
output.WriteRawTag(18);
output.WriteString(MulticastGroupId);
}
if (txInfo_ != null) {
output.WriteRawTag(26);
output.WriteMessage(TxInfo);
}
if (PhyPayloadByteCount != 0) {
output.WriteRawTag(32);
output.WriteUInt32(PhyPayloadByteCount);
}
if (MacCommandByteCount != 0) {
output.WriteRawTag(40);
output.WriteUInt32(MacCommandByteCount);
}
if (ApplicationPayloadByteCount != 0) {
output.WriteRawTag(48);
output.WriteUInt32(ApplicationPayloadByteCount);
}
if (MessageType != global::Chirpstack.Common.MType.JoinRequest) {
output.WriteRawTag(56);
output.WriteEnum((int) MessageType);
}
if (GatewayId.Length != 0) {
output.WriteRawTag(66);
output.WriteString(GatewayId);
}
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 (DevEui.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(DevEui);
}
if (MulticastGroupId.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(MulticastGroupId);
}
if (txInfo_ != null) {
size += 1 + pb::CodedOutputStream.ComputeMessageSize(TxInfo);
}
if (PhyPayloadByteCount != 0) {
size += 1 + pb::CodedOutputStream.ComputeUInt32Size(PhyPayloadByteCount);
}
if (MacCommandByteCount != 0) {
size += 1 + pb::CodedOutputStream.ComputeUInt32Size(MacCommandByteCount);
}
if (ApplicationPayloadByteCount != 0) {
size += 1 + pb::CodedOutputStream.ComputeUInt32Size(ApplicationPayloadByteCount);
}
if (MessageType != global::Chirpstack.Common.MType.JoinRequest) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) MessageType);
}
if (GatewayId.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(GatewayId);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void MergeFrom(DownlinkMeta other) {
if (other == null) {
return;
}
if (other.DevEui.Length != 0) {
DevEui = other.DevEui;
}
if (other.MulticastGroupId.Length != 0) {
MulticastGroupId = other.MulticastGroupId;
}
if (other.txInfo_ != null) {
if (txInfo_ == null) {
TxInfo = new global::Chirpstack.Gateway.DownlinkTxInfo();
}
TxInfo.MergeFrom(other.TxInfo);
}
if (other.PhyPayloadByteCount != 0) {
PhyPayloadByteCount = other.PhyPayloadByteCount;
}
if (other.MacCommandByteCount != 0) {
MacCommandByteCount = other.MacCommandByteCount;
}
if (other.ApplicationPayloadByteCount != 0) {
ApplicationPayloadByteCount = other.ApplicationPayloadByteCount;
}
if (other.MessageType != global::Chirpstack.Common.MType.JoinRequest) {
MessageType = other.MessageType;
}
if (other.GatewayId.Length != 0) {
GatewayId = other.GatewayId;
}
_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: {
DevEui = input.ReadString();
break;
}
case 18: {
MulticastGroupId = input.ReadString();
break;
}
case 26: {
if (txInfo_ == null) {
TxInfo = new global::Chirpstack.Gateway.DownlinkTxInfo();
}
input.ReadMessage(TxInfo);
break;
}
case 32: {
PhyPayloadByteCount = input.ReadUInt32();
break;
}
case 40: {
MacCommandByteCount = input.ReadUInt32();
break;
}
case 48: {
ApplicationPayloadByteCount = input.ReadUInt32();
break;
}
case 56: {
MessageType = (global::Chirpstack.Common.MType) input.ReadEnum();
break;
}
case 66: {
GatewayId = 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: {
DevEui = input.ReadString();
break;
}
case 18: {
MulticastGroupId = input.ReadString();
break;
}
case 26: {
if (txInfo_ == null) {
TxInfo = new global::Chirpstack.Gateway.DownlinkTxInfo();
}
input.ReadMessage(TxInfo);
break;
}
case 32: {
PhyPayloadByteCount = input.ReadUInt32();
break;
}
case 40: {
MacCommandByteCount = input.ReadUInt32();
break;
}
case 48: {
ApplicationPayloadByteCount = input.ReadUInt32();
break;
}
case 56: {
MessageType = (global::Chirpstack.Common.MType) input.ReadEnum();
break;
}
case 66: {
GatewayId = input.ReadString();
break;
}
}
}
}
#endif
}
#endregion
}
#endregion Designer generated code

12
api/csharp/Makefile vendored Normal file
View File

@ -0,0 +1,12 @@
.PHONY: requirements
all: requirements install clean-after
requirements:
rm -rf Chirpstack
dotnet clean
install:
dotnet build -c Release -o /app/build
clean-after:
rm -rf obj
rm -rf bin

View File

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

View File

@ -5568,13 +5568,14 @@ var file_api_application_proto_rawDesc = []byte{
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x73, 0x2f, 0x6d, 0x71, 0x74, 0x74, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
0x63, 0x61, 0x74, 0x65, 0x42, 0x57, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70,
0x63, 0x61, 0x74, 0x65, 0x42, 0x68, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70,
0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x10, 0x41, 0x70, 0x70, 0x6c, 0x69,
0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67,
0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73,
0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f,
0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x33,
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 (

View File

@ -2714,13 +2714,14 @@ var file_api_device_proto_rawDesc = []byte{
0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65,
0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f,
0x71, 0x75, 0x65, 0x75, 0x65, 0x42, 0x52, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72,
0x71, 0x75, 0x65, 0x75, 0x65, 0x42, 0x63, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72,
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x0b, 0x44, 0x65, 0x76, 0x69,
0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75,
0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b,
0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f,
0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x33,
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 (

View File

@ -1443,13 +1443,14 @@ var file_api_device_profile_proto_rawDesc = []byte{
0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x61, 0x70, 0x69,
0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73,
0x2f, 0x61, 0x64, 0x72, 0x2d, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x73, 0x42,
0x59, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b,
0x6a, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b,
0x2e, 0x61, 0x70, 0x69, 0x42, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66,
0x69, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68,
0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63,
0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69,
0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x33,
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 (

View File

@ -1088,13 +1088,14 @@ var file_api_device_profile_template_proto_rawDesc = []byte{
0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82,
0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69,
0x63, 0x65, 0x2d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2d, 0x74, 0x65, 0x6d, 0x70, 0x6c,
0x61, 0x74, 0x65, 0x73, 0x42, 0x61, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70,
0x61, 0x74, 0x65, 0x73, 0x42, 0x72, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70,
0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x1a, 0x44, 0x65, 0x76, 0x69, 0x63,
0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63,
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f,
0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
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 (

View File

@ -305,13 +305,14 @@ var file_api_frame_log_proto_rawDesc = []byte{
0x76, 0x45, 0x75, 0x69, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78,
0x74, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x09,
0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x4d,
0x61, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x42, 0x54, 0x0a, 0x11, 0x69, 0x6f,
0x61, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 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,
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
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 (

View File

@ -601,6 +601,8 @@ type ListGatewaysRequest struct {
// Tenant ID (UUID) to filter gateways on.
// To list all gateways as a global admin user, this field can be left blank.
TenantId string `protobuf:"bytes,4,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
// Multicast-group ID (UUID) to filter gateways on.
MulticastGroupId string `protobuf:"bytes,5,opt,name=multicast_group_id,json=multicastGroupId,proto3" json:"multicast_group_id,omitempty"`
}
func (x *ListGatewaysRequest) Reset() {
@ -663,6 +665,13 @@ func (x *ListGatewaysRequest) GetTenantId() string {
return ""
}
func (x *ListGatewaysRequest) GetMulticastGroupId() string {
if x != nil {
return x.MulticastGroupId
}
return ""
}
type ListGatewaysResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@ -1121,135 +1130,139 @@ var file_api_gateway_proto_rawDesc = []byte{
0x77, 0x61, 0x79, 0x22, 0x35, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x61, 0x74,
0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x67,
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x22, 0x78, 0x0a, 0x13, 0x4c, 0x69,
0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d,
0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65,
0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12,
0x16, 0x0a, 0x06, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
0x06, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e,
0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61,
0x6e, 0x74, 0x49, 0x64, 0x22, 0x65, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65,
0x77, 0x61, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b,
0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a,
0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e,
0x61, 0x70, 0x69, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x49,
0x74, 0x65, 0x6d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x48, 0x0a, 0x27, 0x47,
0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x6c,
0x69, 0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52,
0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x22, 0xa6, 0x01, 0x0a, 0x13, 0x4c,
0x69, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0d, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73,
0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74,
0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
0x52, 0x06, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61,
0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e,
0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28,
0x09, 0x52, 0x10, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75,
0x70, 0x49, 0x64, 0x22, 0x65, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77,
0x61, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74,
0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d,
0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x06,
0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61,
0x70, 0x69, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74,
0x65, 0x6d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x48, 0x0a, 0x27, 0x47, 0x65,
0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x6c, 0x69,
0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77,
0x61, 0x79, 0x49, 0x64, 0x22, 0xb2, 0x01, 0x0a, 0x28, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74,
0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x65,
0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07,
0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74,
0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x61, 0x5f, 0x63, 0x65, 0x72, 0x74,
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x43, 0x65, 0x72, 0x74, 0x12, 0x39,
0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09,
0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x41, 0x74, 0x22, 0xd0, 0x01, 0x0a, 0x18, 0x47, 0x65,
0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61,
0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65,
0x77, 0x61, 0x79, 0x49, 0x64, 0x22, 0xb2, 0x01, 0x0a, 0x28, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61,
0x74, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43,
0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a,
0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x61, 0x5f, 0x63, 0x65, 0x72,
0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x43, 0x65, 0x72, 0x74, 0x12,
0x39, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52,
0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x41, 0x74, 0x22, 0xd0, 0x01, 0x0a, 0x18, 0x47,
0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77,
0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74,
0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18,
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
0x70, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x65, 0x6e, 0x64, 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, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x35, 0x0a, 0x0b, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x63, 0x6f,
0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x52, 0x0b, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb0, 0x03,
0x0a, 0x19, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x65, 0x74, 0x72,
0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x0a, 0x72,
0x78, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x0e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52,
0x09, 0x72, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x2d, 0x0a, 0x0a, 0x74, 0x78,
0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e,
0x77, 0x61, 0x79, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x65, 0x6e, 0x64, 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, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x35, 0x0a, 0x0b, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6d,
0x6d, 0x6f, 0x6e, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
0x0b, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb0, 0x03, 0x0a,
0x19, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69,
0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x0a, 0x72, 0x78,
0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e,
0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x09,
0x74, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x3d, 0x0a, 0x13, 0x74, 0x78, 0x5f,
0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x66, 0x72, 0x65, 0x71,
0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x10, 0x74, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74,
0x73, 0x50, 0x65, 0x72, 0x46, 0x72, 0x65, 0x71, 0x12, 0x3d, 0x0a, 0x13, 0x72, 0x78, 0x5f, 0x70,
0x72, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x2d, 0x0a, 0x0a, 0x74, 0x78, 0x5f,
0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e,
0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x09, 0x74,
0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x3d, 0x0a, 0x13, 0x74, 0x78, 0x5f, 0x70,
0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x18,
0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d,
0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x10, 0x72, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73,
0x50, 0x65, 0x72, 0x46, 0x72, 0x65, 0x71, 0x12, 0x39, 0x0a, 0x11, 0x74, 0x78, 0x5f, 0x70, 0x61,
0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x64, 0x72, 0x18, 0x05, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72,
0x69, 0x63, 0x52, 0x0e, 0x74, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x50, 0x65, 0x72,
0x44, 0x72, 0x12, 0x39, 0x0a, 0x11, 0x72, 0x78, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73,
0x5f, 0x70, 0x65, 0x72, 0x5f, 0x64, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e,
0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0e, 0x72,
0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x50, 0x65, 0x72, 0x44, 0x72, 0x12, 0x41, 0x0a,
0x15, 0x74, 0x78, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f,
0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63,
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x12, 0x74, 0x78,
0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x50, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
0x2a, 0x37, 0x0a, 0x0c, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65,
0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x45, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x45, 0x45, 0x4e, 0x10, 0x00,
0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07,
0x4f, 0x46, 0x46, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x02, 0x32, 0x91, 0x06, 0x0a, 0x0e, 0x47, 0x61,
0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x55, 0x0a, 0x06,
0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65,
0x61, 0x74, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02,
0x12, 0x22, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73,
0x3a, 0x01, 0x2a, 0x12, 0x5a, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x69,
0x2e, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65,
0x77, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4,
0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61,
0x79, 0x73, 0x2f, 0x7b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x12,
0x6a, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e,
0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2d, 0x82, 0xd3,
0xe4, 0x93, 0x02, 0x27, 0x1a, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77,
0x61, 0x79, 0x73, 0x2f, 0x7b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x67, 0x61, 0x74,
0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x5f, 0x0a, 0x06, 0x44,
0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x6c, 0x65,
0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d,
0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x10, 0x74, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73,
0x50, 0x65, 0x72, 0x46, 0x72, 0x65, 0x71, 0x12, 0x3d, 0x0a, 0x13, 0x72, 0x78, 0x5f, 0x70, 0x61,
0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x18, 0x04,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65,
0x74, 0x72, 0x69, 0x63, 0x52, 0x10, 0x72, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x50,
0x65, 0x72, 0x46, 0x72, 0x65, 0x71, 0x12, 0x39, 0x0a, 0x11, 0x74, 0x78, 0x5f, 0x70, 0x61, 0x63,
0x6b, 0x65, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x64, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69,
0x63, 0x52, 0x0e, 0x74, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x50, 0x65, 0x72, 0x44,
0x72, 0x12, 0x39, 0x0a, 0x11, 0x72, 0x78, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f,
0x70, 0x65, 0x72, 0x5f, 0x64, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63,
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0e, 0x72, 0x78,
0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x50, 0x65, 0x72, 0x44, 0x72, 0x12, 0x41, 0x0a, 0x15,
0x74, 0x78, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73,
0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f,
0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x12, 0x74, 0x78, 0x50,
0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x50, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2a,
0x37, 0x0a, 0x0c, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12,
0x0e, 0x0a, 0x0a, 0x4e, 0x45, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x45, 0x45, 0x4e, 0x10, 0x00, 0x12,
0x0a, 0x0a, 0x06, 0x4f, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x4f,
0x46, 0x46, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x02, 0x32, 0x91, 0x06, 0x0a, 0x0e, 0x47, 0x61, 0x74,
0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x55, 0x0a, 0x06, 0x43,
0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61,
0x74, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c,
0x2a, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x2f,
0x7b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x52, 0x0a, 0x04,
0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47,
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19,
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02,
0x0f, 0x12, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73,
0x12, 0xb1, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69,
0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x2c,
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x61, 0x74,
0x65, 0x77, 0x61, 0x79, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66,
0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x61,
0x70, 0x69, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77,
0x61, 0x79, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4,
0x93, 0x02, 0x31, 0x22, 0x2f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61,
0x79, 0x73, 0x2f, 0x7b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x2f,
0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x2d, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
0x63, 0x61, 0x74, 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69,
0x63, 0x73, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65,
0x77, 0x61, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77,
0x61, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x12, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f,
0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x2f, 0x7b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61,
0x79, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x53, 0x0a,
0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61,
0x70, 0x69, 0x42, 0x0c, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f,
0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63,
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73,
0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61,
0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12,
0x22, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x3a,
0x01, 0x2a, 0x12, 0x5a, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e,
0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77,
0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93,
0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
0x73, 0x2f, 0x7b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x6a,
0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55,
0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2d, 0x82, 0xd3, 0xe4,
0x93, 0x02, 0x27, 0x1a, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61,
0x79, 0x73, 0x2f, 0x7b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x67, 0x61, 0x74, 0x65,
0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x5f, 0x0a, 0x06, 0x44, 0x65,
0x6c, 0x65, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74,
0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x2a,
0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x2f, 0x7b,
0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x52, 0x0a, 0x04, 0x4c,
0x69, 0x73, 0x74, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61,
0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e,
0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f,
0x12, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x12,
0xb1, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65,
0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x2e,
0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x61, 0x74, 0x65,
0x77, 0x61, 0x79, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x61, 0x70,
0x69, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61,
0x79, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93,
0x02, 0x31, 0x22, 0x2f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
0x73, 0x2f, 0x7b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67,
0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x2d, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
0x61, 0x74, 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63,
0x73, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77,
0x61, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61,
0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x12, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67,
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x2f, 0x7b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x64, 0x0a, 0x11,
0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70,
0x69, 0x42, 0x0c, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50,
0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68,
0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74,
0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70,
0x69, 0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41,
0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

View File

@ -2241,13 +2241,14 @@ var file_api_internal_proto_rawDesc = []byte{
0x47, 0x65, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e,
0x47, 0x65, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x54, 0x0a, 0x11, 0x69, 0x6f,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x65, 0x0a, 0x11, 0x69, 0x6f,
0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42,
0x0d, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01,
0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69,
0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61,
0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69,
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
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 diff suppressed because it is too large Load Diff

View File

@ -37,7 +37,11 @@ type MulticastGroupServiceClient interface {
AddDevice(ctx context.Context, in *AddDeviceToMulticastGroupRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
// Remove a device from the multicast group.
RemoveDevice(ctx context.Context, in *RemoveDeviceFromMulticastGroupRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
// Add the given item to the multcast group queue.
// Add a gateway to the multicast group.
AddGateway(ctx context.Context, in *AddGatewayToMulticastGroupRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
// Remove a gateway from the multicast group.
RemoveGateway(ctx context.Context, in *RemoveGatewayFromMulticastGroupRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
// Add the given item to the multicast group queue.
Enqueue(ctx context.Context, in *EnqueueMulticastGroupQueueItemRequest, opts ...grpc.CallOption) (*EnqueueMulticastGroupQueueItemResponse, error)
// Flush the queue for the given multicast group.
FlushQueue(ctx context.Context, in *FlushMulticastGroupQueueRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
@ -116,6 +120,24 @@ func (c *multicastGroupServiceClient) RemoveDevice(ctx context.Context, in *Remo
return out, nil
}
func (c *multicastGroupServiceClient) AddGateway(ctx context.Context, in *AddGatewayToMulticastGroupRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
out := new(emptypb.Empty)
err := c.cc.Invoke(ctx, "/api.MulticastGroupService/AddGateway", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *multicastGroupServiceClient) RemoveGateway(ctx context.Context, in *RemoveGatewayFromMulticastGroupRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
out := new(emptypb.Empty)
err := c.cc.Invoke(ctx, "/api.MulticastGroupService/RemoveGateway", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *multicastGroupServiceClient) Enqueue(ctx context.Context, in *EnqueueMulticastGroupQueueItemRequest, opts ...grpc.CallOption) (*EnqueueMulticastGroupQueueItemResponse, error) {
out := new(EnqueueMulticastGroupQueueItemResponse)
err := c.cc.Invoke(ctx, "/api.MulticastGroupService/Enqueue", in, out, opts...)
@ -161,7 +183,11 @@ type MulticastGroupServiceServer interface {
AddDevice(context.Context, *AddDeviceToMulticastGroupRequest) (*emptypb.Empty, error)
// Remove a device from the multicast group.
RemoveDevice(context.Context, *RemoveDeviceFromMulticastGroupRequest) (*emptypb.Empty, error)
// Add the given item to the multcast group queue.
// Add a gateway to the multicast group.
AddGateway(context.Context, *AddGatewayToMulticastGroupRequest) (*emptypb.Empty, error)
// Remove a gateway from the multicast group.
RemoveGateway(context.Context, *RemoveGatewayFromMulticastGroupRequest) (*emptypb.Empty, error)
// Add the given item to the multicast group queue.
Enqueue(context.Context, *EnqueueMulticastGroupQueueItemRequest) (*EnqueueMulticastGroupQueueItemResponse, error)
// Flush the queue for the given multicast group.
FlushQueue(context.Context, *FlushMulticastGroupQueueRequest) (*emptypb.Empty, error)
@ -195,6 +221,12 @@ func (UnimplementedMulticastGroupServiceServer) AddDevice(context.Context, *AddD
func (UnimplementedMulticastGroupServiceServer) RemoveDevice(context.Context, *RemoveDeviceFromMulticastGroupRequest) (*emptypb.Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method RemoveDevice not implemented")
}
func (UnimplementedMulticastGroupServiceServer) AddGateway(context.Context, *AddGatewayToMulticastGroupRequest) (*emptypb.Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method AddGateway not implemented")
}
func (UnimplementedMulticastGroupServiceServer) RemoveGateway(context.Context, *RemoveGatewayFromMulticastGroupRequest) (*emptypb.Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method RemoveGateway not implemented")
}
func (UnimplementedMulticastGroupServiceServer) Enqueue(context.Context, *EnqueueMulticastGroupQueueItemRequest) (*EnqueueMulticastGroupQueueItemResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method Enqueue not implemented")
}
@ -343,6 +375,42 @@ func _MulticastGroupService_RemoveDevice_Handler(srv interface{}, ctx context.Co
return interceptor(ctx, in, info, handler)
}
func _MulticastGroupService_AddGateway_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(AddGatewayToMulticastGroupRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(MulticastGroupServiceServer).AddGateway(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/api.MulticastGroupService/AddGateway",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(MulticastGroupServiceServer).AddGateway(ctx, req.(*AddGatewayToMulticastGroupRequest))
}
return interceptor(ctx, in, info, handler)
}
func _MulticastGroupService_RemoveGateway_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(RemoveGatewayFromMulticastGroupRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(MulticastGroupServiceServer).RemoveGateway(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/api.MulticastGroupService/RemoveGateway",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(MulticastGroupServiceServer).RemoveGateway(ctx, req.(*RemoveGatewayFromMulticastGroupRequest))
}
return interceptor(ctx, in, info, handler)
}
func _MulticastGroupService_Enqueue_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(EnqueueMulticastGroupQueueItemRequest)
if err := dec(in); err != nil {
@ -432,6 +500,14 @@ var MulticastGroupService_ServiceDesc = grpc.ServiceDesc{
MethodName: "RemoveDevice",
Handler: _MulticastGroupService_RemoveDevice_Handler,
},
{
MethodName: "AddGateway",
Handler: _MulticastGroupService_AddGateway_Handler,
},
{
MethodName: "RemoveGateway",
Handler: _MulticastGroupService_RemoveGateway_Handler,
},
{
MethodName: "Enqueue",
Handler: _MulticastGroupService_Enqueue_Handler,

View File

@ -109,13 +109,14 @@ var file_api_request_log_proto_rawDesc = []byte{
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, 0x56, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63,
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,
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
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 (

View File

@ -43,9 +43,15 @@ type Tenant struct {
// Max. device count for tenant.
// When set to 0, the tenant can have unlimited devices.
MaxDeviceCount uint32 `protobuf:"varint,6,opt,name=max_device_count,json=maxDeviceCount,proto3" json:"max_device_count,omitempty"`
// Private gateways.
// Gateways under this tenant are private.
PrivateGateways bool `protobuf:"varint,7,opt,name=private_gateways,json=privateGateways,proto3" json:"private_gateways,omitempty"`
// Private gateways (uplink).
// If enabled, then uplink messages will not be shared with other tenants.
PrivateGatewaysUp bool `protobuf:"varint,7,opt,name=private_gateways_up,json=privateGatewaysUp,proto3" json:"private_gateways_up,omitempty"`
// Private gateways (downlink).
// If enabled, then other tenants will not be able to schedule downlink
// messages through the gateways of this tenant. For example, in case you
// do want to share uplinks with other tenants (private_gateways_up=false),
// but you want to prevent other tenants from using gateway airtime.
PrivateGatewaysDown bool `protobuf:"varint,8,opt,name=private_gateways_down,json=privateGatewaysDown,proto3" json:"private_gateways_down,omitempty"`
}
func (x *Tenant) Reset() {
@ -122,9 +128,16 @@ func (x *Tenant) GetMaxDeviceCount() uint32 {
return 0
}
func (x *Tenant) GetPrivateGateways() bool {
func (x *Tenant) GetPrivateGatewaysUp() bool {
if x != nil {
return x.PrivateGateways
return x.PrivateGatewaysUp
}
return false
}
func (x *Tenant) GetPrivateGatewaysDown() bool {
if x != nil {
return x.PrivateGatewaysDown
}
return false
}
@ -144,8 +157,10 @@ type TenantListItem struct {
Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
// Can the tenant create and "own" Gateways?
CanHaveGateways bool `protobuf:"varint,5,opt,name=can_have_gateways,json=canHaveGateways,proto3" json:"can_have_gateways,omitempty"`
// Gateways are private to tenant.
PrivateGateways bool `protobuf:"varint,6,opt,name=private_gateways,json=privateGateways,proto3" json:"private_gateways,omitempty"`
// Private gateways (uplink).
PrivateGatewaysUp bool `protobuf:"varint,6,opt,name=private_gateways_up,json=privateGatewaysUp,proto3" json:"private_gateways_up,omitempty"`
// Private gateways (downlink).
PrivateGatewaysDown bool `protobuf:"varint,9,opt,name=private_gateways_down,json=privateGatewaysDown,proto3" json:"private_gateways_down,omitempty"`
// Max gateway count.
// 0 = unlimited.
MaxGatewayCount uint32 `protobuf:"varint,7,opt,name=max_gateway_count,json=maxGatewayCount,proto3" json:"max_gateway_count,omitempty"`
@ -221,9 +236,16 @@ func (x *TenantListItem) GetCanHaveGateways() bool {
return false
}
func (x *TenantListItem) GetPrivateGateways() bool {
func (x *TenantListItem) GetPrivateGatewaysUp() bool {
if x != nil {
return x.PrivateGateways
return x.PrivateGatewaysUp
}
return false
}
func (x *TenantListItem) GetPrivateGatewaysDown() bool {
if x != nil {
return x.PrivateGatewaysDown
}
return false
}
@ -1298,7 +1320,7 @@ var file_api_tenant_proto_rawDesc = []byte{
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x22, 0xfb, 0x01, 0x0a, 0x06, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x12, 0x0e,
0x6f, 0x74, 0x6f, 0x22, 0xb4, 0x02, 0x0a, 0x06, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x12, 0x0e,
0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12,
0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
@ -1311,220 +1333,228 @@ var file_api_tenant_proto_rawDesc = []byte{
0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x10,
0x6d, 0x61, 0x78, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74,
0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x44, 0x65, 0x76, 0x69, 0x63,
0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74,
0x65, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08,
0x52, 0x0f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
0x73, 0x22, 0xd7, 0x02, 0x0a, 0x0e, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74,
0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x02, 0x69, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f,
0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12,
0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52,
0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a,
0x0a, 0x11, 0x63, 0x61, 0x6e, 0x5f, 0x68, 0x61, 0x76, 0x65, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77,
0x61, 0x79, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x63, 0x61, 0x6e, 0x48, 0x61,
0x76, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x72,
0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x18, 0x06,
0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x47, 0x61, 0x74,
0x65, 0x77, 0x61, 0x79, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x67, 0x61, 0x74,
0x65, 0x77, 0x61, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d,
0x52, 0x0f, 0x6d, 0x61, 0x78, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x6f, 0x75, 0x6e,
0x74, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f,
0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6d, 0x61, 0x78,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x3a, 0x0a, 0x13, 0x43,
0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x12, 0x23, 0x0a, 0x06, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52,
0x06, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x22, 0x26, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74,
0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22,
0x22, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x02, 0x69, 0x64, 0x22, 0xae, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e,
0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x06, 0x74, 0x65, 0x6e,
0x61, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x70, 0x69, 0x2e,
0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52, 0x06, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x12, 0x39,
0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09,
0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64,
0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74,
0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65,
0x6e, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x06, 0x74,
0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74,
0x65, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x07, 0x20,
0x01, 0x28, 0x08, 0x52, 0x11, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x47, 0x61, 0x74, 0x65,
0x77, 0x61, 0x79, 0x73, 0x55, 0x70, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74,
0x65, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x18,
0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x47, 0x61,
0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x44, 0x6f, 0x77, 0x6e, 0x22, 0x90, 0x03, 0x0a, 0x0e, 0x54,
0x65, 0x6e, 0x61, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a,
0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x39, 0x0a,
0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63,
0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61,
0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x61, 0x6e, 0x5f, 0x68,
0x61, 0x76, 0x65, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x18, 0x05, 0x20, 0x01,
0x28, 0x08, 0x52, 0x0f, 0x63, 0x61, 0x6e, 0x48, 0x61, 0x76, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77,
0x61, 0x79, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x67,
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08,
0x52, 0x11, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
0x73, 0x55, 0x70, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x67,
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x09, 0x20, 0x01,
0x28, 0x08, 0x52, 0x13, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77,
0x61, 0x79, 0x73, 0x44, 0x6f, 0x77, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x67,
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01,
0x28, 0x0d, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x6f,
0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63,
0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6d,
0x61, 0x78, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x3a, 0x0a,
0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x06, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x65, 0x6e, 0x61, 0x6e,
0x74, 0x52, 0x06, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x22, 0x26, 0x0a, 0x14, 0x43, 0x72, 0x65,
0x61, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
0x64, 0x22, 0x22, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xae, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e,
0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x06, 0x74,
0x65, 0x6e, 0x61, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x70,
0x69, 0x2e, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52, 0x06, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74,
0x22, 0x25, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x73, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x54,
0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a,
0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x69,
0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73,
0x65, 0x61, 0x72, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x61,
0x72, 0x63, 0x68, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04,
0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x63, 0x0a, 0x13,
0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75,
0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43,
0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x65, 0x6e, 0x61, 0x6e,
0x74, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c,
0x74, 0x22, 0xc5, 0x01, 0x0a, 0x0a, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72,
0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a,
0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x61, 0x64, 0x6d,
0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x41, 0x64, 0x6d, 0x69,
0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61,
0x64, 0x6d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x44, 0x65,
0x76, 0x69, 0x63, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x73, 0x5f,
0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x05, 0x20,
0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64,
0x6d, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01,
0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0xc3, 0x02, 0x0a, 0x12, 0x54, 0x65,
0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d,
0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a,
0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41,
0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18,
0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x14, 0x0a, 0x05,
0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61,
0x69, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x06,
0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x26, 0x0a,
0x0f, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e,
0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x73, 0x5f, 0x67, 0x61, 0x74, 0x65,
0x77, 0x61, 0x79, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52,
0x0e, 0x69, 0x73, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x22,
0x48, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x0b, 0x74, 0x65, 0x6e, 0x61, 0x6e,
0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61,
0x70, 0x69, 0x2e, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x74,
0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x22, 0x4c, 0x0a, 0x14, 0x47, 0x65, 0x74,
0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17,
0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0xbf, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x54,
0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x12, 0x30, 0x0a, 0x0b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x65, 0x6e,
0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55,
0x73, 0x65, 0x72, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61,
0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75,
0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64,
0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a,
0x06, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e,
0x61, 0x70, 0x69, 0x2e, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52, 0x06, 0x74, 0x65, 0x6e, 0x61,
0x6e, 0x74, 0x22, 0x25, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61,
0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x73, 0x0a, 0x12, 0x4c, 0x69, 0x73,
0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05,
0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18,
0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a,
0x06, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73,
0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64,
0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x63,
0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73,
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63,
0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61,
0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x65, 0x6e,
0x61, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x06, 0x72, 0x65, 0x73,
0x75, 0x6c, 0x74, 0x22, 0xc5, 0x01, 0x0a, 0x0a, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73,
0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12,
0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x61,
0x64, 0x6d, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x41, 0x64,
0x6d, 0x69, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x69,
0x73, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18,
0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x06,
0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0xc3, 0x02, 0x0a, 0x12,
0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74,
0x65, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12,
0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61,
0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61,
0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39,
0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09,
0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x4b, 0x0a, 0x17, 0x55, 0x70, 0x64,
0x61, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x0b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x75,
0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e,
0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x74, 0x65, 0x6e, 0x61,
0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x22, 0x4f, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17,
0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x63, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x54,
0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14,
0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c,
0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03,
0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x6b, 0x0a, 0x17,
0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c,
0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f,
0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75,
0x6c, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54,
0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65,
0x6d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x32, 0xa2, 0x08, 0x0a, 0x0d, 0x54, 0x65,
0x6e, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x56, 0x0a, 0x06, 0x43,
0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61,
0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61,
0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93,
0x02, 0x11, 0x22, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73,
0x3a, 0x01, 0x2a, 0x12, 0x4f, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x69,
0x2e, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e,
0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02,
0x13, 0x12, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x2f,
0x7b, 0x69, 0x64, 0x7d, 0x12, 0x5f, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x18,
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e,
0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x1a, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74,
0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x2e, 0x69,
0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x55, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12,
0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61,
0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
0x79, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x2a, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f,
0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x4f, 0x0a, 0x04,
0x4c, 0x69, 0x73, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54,
0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e,
0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12,
0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x73, 0x0a,
0x07, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41,
0x64, 0x64, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x35, 0x82, 0xd3, 0xe4,
0x93, 0x02, 0x2f, 0x22, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74,
0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x74,
0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x3a,
0x01, 0x2a, 0x12, 0x72, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x19, 0x2e,
0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65,
0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47,
0x65, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x61,
0x70, 0x69, 0x2f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6e, 0x61,
0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x75, 0x73,
0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x8f, 0x01, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74,
0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61,
0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x14,
0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65,
0x6d, 0x61, 0x69, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e,
0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12,
0x26, 0x0a, 0x0f, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x64, 0x6d,
0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x44, 0x65, 0x76, 0x69,
0x63, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x73, 0x5f, 0x67, 0x61,
0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28,
0x08, 0x52, 0x0e, 0x69, 0x73, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x6d, 0x69,
0x6e, 0x22, 0x48, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73,
0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x0b, 0x74, 0x65, 0x6e,
0x61, 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f,
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52,
0x0a, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x22, 0x4c, 0x0a, 0x14, 0x47,
0x65, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64,
0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0xbf, 0x01, 0x0a, 0x15, 0x47, 0x65,
0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x0b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x75, 0x73,
0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54,
0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x74, 0x65, 0x6e, 0x61, 0x6e,
0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,
0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74,
0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x4b, 0x0a, 0x17, 0x55,
0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x0b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74,
0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70,
0x69, 0x2e, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x74, 0x65,
0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x22, 0x4f, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65,
0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x4b, 0x82, 0xd3, 0xe4,
0x93, 0x02, 0x45, 0x1a, 0x40, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74,
0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x74,
0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f,
0x7b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x75, 0x73, 0x65,
0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x74, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65,
0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x6c,
0x65, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x30, 0x82, 0xd3,
0xe4, 0x93, 0x02, 0x2a, 0x2a, 0x28, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, 0x6e, 0x61, 0x6e,
0x74, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x75,
0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x6e,
0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x1b, 0x2e, 0x61, 0x70,
0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72,
0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c,
0x69, 0x73, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e,
0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64,
0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x63, 0x0a, 0x16, 0x4c, 0x69, 0x73,
0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64,
0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74,
0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x6b,
0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72,
0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74,
0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a,
0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x72, 0x65,
0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69,
0x2e, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x49,
0x74, 0x65, 0x6d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x32, 0xa2, 0x08, 0x0a, 0x0d,
0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x56, 0x0a,
0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72,
0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65,
0x6e, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x17, 0x82, 0xd3,
0xe4, 0x93, 0x02, 0x11, 0x22, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, 0x6e, 0x61, 0x6e,
0x74, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x4f, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x15, 0x2e, 0x61,
0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e,
0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4,
0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74,
0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x5f, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6e,
0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
0x74, 0x79, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x1a, 0x18, 0x2f, 0x61, 0x70, 0x69,
0x2f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74,
0x2e, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x55, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74,
0x65, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65,
0x6e, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d,
0x70, 0x74, 0x79, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x2a, 0x11, 0x2f, 0x61, 0x70,
0x69, 0x2f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x4f,
0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73,
0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74,
0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02,
0x0e, 0x12, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x12,
0x73, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69,
0x2e, 0x41, 0x64, 0x64, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x35, 0x82,
0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x22, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, 0x6e, 0x61,
0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72,
0x2e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72,
0x73, 0x3a, 0x01, 0x2a, 0x12, 0x72, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12,
0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55,
0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x69,
0x2e, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28,
0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x74, 0x65,
0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x42, 0x52,
0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e,
0x61, 0x70, 0x69, 0x42, 0x0b, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f,
0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63,
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73,
0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61,
0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b,
0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x8f, 0x01, 0x0a, 0x0a, 0x55, 0x70, 0x64,
0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x70,
0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x4b, 0x82,
0xd3, 0xe4, 0x93, 0x02, 0x45, 0x1a, 0x40, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, 0x6e, 0x61,
0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72,
0x2e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72,
0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x75,
0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x74, 0x0a, 0x0a, 0x44, 0x65,
0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44,
0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x30,
0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x2a, 0x28, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, 0x6e,
0x61, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d,
0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d,
0x12, 0x6e, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x1b, 0x2e,
0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73,
0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69,
0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20,
0x12, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x7b,
0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73,
0x42, 0x63, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63,
0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x0b, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x50, 0x72, 0x6f,
0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72,
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34,
0x2f, 0x61, 0x70, 0x69, 0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63,
0x6b, 0x2e, 0x41, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (

View File

@ -891,13 +891,14 @@ var file_api_user_proto_rawDesc = []byte{
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d,
0x70, 0x74, 0x79, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x22, 0x1d, 0x2f, 0x61, 0x70,
0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64,
0x7d, 0x2f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x01, 0x2a, 0x42, 0x50, 0x0a,
0x7d, 0x2f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x01, 0x2a, 0x42, 0x61, 0x0a,
0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61,
0x70, 0x69, 0x42, 0x09, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a,
0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72,
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63,
0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0x62,
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
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 (

View File

@ -894,13 +894,14 @@ var file_common_common_proto_rawDesc = []byte{
0x0a, 0x05, 0x4d, 0x4f, 0x4e, 0x54, 0x48, 0x10, 0x02, 0x2a, 0x32, 0x0a, 0x0a, 0x4d, 0x65, 0x74,
0x72, 0x69, 0x63, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4f, 0x55, 0x4e, 0x54,
0x45, 0x52, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x42, 0x53, 0x4f, 0x4c, 0x55, 0x54, 0x45,
0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x41, 0x55, 0x47, 0x45, 0x10, 0x02, 0x42, 0x55, 0x0a,
0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x41, 0x55, 0x47, 0x45, 0x10, 0x02, 0x42, 0x69, 0x0a,
0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61,
0x70, 0x69, 0x42, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50,
0x01, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68,
0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74,
0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x63, 0x6f,
0x6d, 0x6d, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x6d, 0x6d, 0x6f, 0x6e, 0xaa, 0x02, 0x11, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63,
0x6b, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (

7
api/go/gw/gw.pb.go vendored
View File

@ -3918,13 +3918,14 @@ var file_gw_gw_proto_rawDesc = []byte{
0x47, 0x50, 0x53, 0x5f, 0x55, 0x4e, 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x08, 0x12, 0x0e,
0x0a, 0x0a, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x09, 0x12, 0x12,
0x0a, 0x0e, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52,
0x10, 0x0a, 0x42, 0x55, 0x0a, 0x14, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74,
0x10, 0x0a, 0x42, 0x6a, 0x0a, 0x14, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74,
0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x67, 0x77, 0x42, 0x0c, 0x47, 0x61, 0x74, 0x65,
0x77, 0x61, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x68,
0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63,
0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69,
0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x67, 0x77, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x33,
0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x67, 0x77, 0xaa, 0x02, 0x12, 0x43, 0x68, 0x69, 0x72,
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x62, 0x06,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (

View File

@ -1392,14 +1392,16 @@ var file_integration_integration_proto_rawDesc = []byte{
0x0a, 0x1b, 0x55, 0x50, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x46, 0x5f, 0x43, 0x4e, 0x54, 0x5f, 0x52,
0x45, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x07, 0x12,
0x14, 0x0a, 0x10, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x47, 0x41, 0x54, 0x45,
0x57, 0x41, 0x59, 0x10, 0x08, 0x42, 0x68, 0x0a, 0x1d, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72,
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x67,
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x68,
0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x72, 0x6f, 0x63, 0x61, 0x61, 0x72, 0x2f, 0x63,
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f,
0x2f, 0x76, 0x34, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x62,
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x57, 0x41, 0x59, 0x10, 0x08, 0x42, 0x81, 0x01, 0x0a, 0x1d, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69,
0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x74, 0x65,
0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x33, 0x67, 0x69, 0x74,
0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x72, 0x6f, 0x63, 0x61, 0x61, 0x72, 0x2f,
0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67,
0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0xaa, 0x02, 0x16, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x49, 0x6e,
0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x33,
}
var (

View File

@ -287,13 +287,14 @@ var file_meta_meta_proto_rawDesc = []byte{
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, 0x56, 0x0a,
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, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
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 (

View File

@ -243,6 +243,9 @@ export class ListGatewaysRequest extends jspb.Message {
getTenantId(): string;
setTenantId(value: string): ListGatewaysRequest;
getMulticastGroupId(): string;
setMulticastGroupId(value: string): ListGatewaysRequest;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): ListGatewaysRequest.AsObject;
static toObject(includeInstance: boolean, msg: ListGatewaysRequest): ListGatewaysRequest.AsObject;
@ -257,6 +260,7 @@ export namespace ListGatewaysRequest {
offset: number,
search: string,
tenantId: string,
multicastGroupId: string,
}
}

View File

@ -2062,7 +2062,8 @@ proto.api.ListGatewaysRequest.toObject = function(includeInstance, msg) {
limit: jspb.Message.getFieldWithDefault(msg, 1, 0),
offset: jspb.Message.getFieldWithDefault(msg, 2, 0),
search: jspb.Message.getFieldWithDefault(msg, 3, ""),
tenantId: jspb.Message.getFieldWithDefault(msg, 4, "")
tenantId: jspb.Message.getFieldWithDefault(msg, 4, ""),
multicastGroupId: jspb.Message.getFieldWithDefault(msg, 5, "")
};
if (includeInstance) {
@ -2115,6 +2116,10 @@ proto.api.ListGatewaysRequest.deserializeBinaryFromReader = function(msg, reader
var value = /** @type {string} */ (reader.readString());
msg.setTenantId(value);
break;
case 5:
var value = /** @type {string} */ (reader.readString());
msg.setMulticastGroupId(value);
break;
default:
reader.skipField();
break;
@ -2172,6 +2177,13 @@ proto.api.ListGatewaysRequest.serializeBinaryToWriter = function(message, writer
f
);
}
f = message.getMulticastGroupId();
if (f.length > 0) {
writer.writeString(
5,
f
);
}
};
@ -2247,6 +2259,24 @@ proto.api.ListGatewaysRequest.prototype.setTenantId = function(value) {
};
/**
* optional string multicast_group_id = 5;
* @return {string}
*/
proto.api.ListGatewaysRequest.prototype.getMulticastGroupId = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};
/**
* @param {string} value
* @return {!proto.api.ListGatewaysRequest} returns this
*/
proto.api.ListGatewaysRequest.prototype.setMulticastGroupId = function(value) {
return jspb.Message.setProto3StringField(this, 5, value);
};
/**
* List of repeated fields within this message type.

View File

@ -58,6 +58,20 @@ export class MulticastGroupServiceClient {
response: google_protobuf_empty_pb.Empty) => void
): grpcWeb.ClientReadableStream<google_protobuf_empty_pb.Empty>;
addGateway(
request: api_multicast_group_pb.AddGatewayToMulticastGroupRequest,
metadata: grpcWeb.Metadata | undefined,
callback: (err: grpcWeb.RpcError,
response: google_protobuf_empty_pb.Empty) => void
): grpcWeb.ClientReadableStream<google_protobuf_empty_pb.Empty>;
removeGateway(
request: api_multicast_group_pb.RemoveGatewayFromMulticastGroupRequest,
metadata: grpcWeb.Metadata | undefined,
callback: (err: grpcWeb.RpcError,
response: google_protobuf_empty_pb.Empty) => void
): grpcWeb.ClientReadableStream<google_protobuf_empty_pb.Empty>;
enqueue(
request: api_multicast_group_pb.EnqueueMulticastGroupQueueItemRequest,
metadata: grpcWeb.Metadata | undefined,
@ -121,6 +135,16 @@ export class MulticastGroupServicePromiseClient {
metadata?: grpcWeb.Metadata
): Promise<google_protobuf_empty_pb.Empty>;
addGateway(
request: api_multicast_group_pb.AddGatewayToMulticastGroupRequest,
metadata?: grpcWeb.Metadata
): Promise<google_protobuf_empty_pb.Empty>;
removeGateway(
request: api_multicast_group_pb.RemoveGatewayFromMulticastGroupRequest,
metadata?: grpcWeb.Metadata
): Promise<google_protobuf_empty_pb.Empty>;
enqueue(
request: api_multicast_group_pb.EnqueueMulticastGroupQueueItemRequest,
metadata?: grpcWeb.Metadata

View File

@ -509,6 +509,128 @@ proto.api.MulticastGroupServicePromiseClient.prototype.removeDevice =
};
/**
* @const
* @type {!grpc.web.MethodDescriptor<
* !proto.api.AddGatewayToMulticastGroupRequest,
* !proto.google.protobuf.Empty>}
*/
const methodDescriptor_MulticastGroupService_AddGateway = new grpc.web.MethodDescriptor(
'/api.MulticastGroupService/AddGateway',
grpc.web.MethodType.UNARY,
proto.api.AddGatewayToMulticastGroupRequest,
google_protobuf_empty_pb.Empty,
/**
* @param {!proto.api.AddGatewayToMulticastGroupRequest} request
* @return {!Uint8Array}
*/
function(request) {
return request.serializeBinary();
},
google_protobuf_empty_pb.Empty.deserializeBinary
);
/**
* @param {!proto.api.AddGatewayToMulticastGroupRequest} request The
* request proto
* @param {?Object<string, string>} metadata User defined
* call metadata
* @param {function(?grpc.web.RpcError, ?proto.google.protobuf.Empty)}
* callback The callback function(error, response)
* @return {!grpc.web.ClientReadableStream<!proto.google.protobuf.Empty>|undefined}
* The XHR Node Readable Stream
*/
proto.api.MulticastGroupServiceClient.prototype.addGateway =
function(request, metadata, callback) {
return this.client_.rpcCall(this.hostname_ +
'/api.MulticastGroupService/AddGateway',
request,
metadata || {},
methodDescriptor_MulticastGroupService_AddGateway,
callback);
};
/**
* @param {!proto.api.AddGatewayToMulticastGroupRequest} request The
* request proto
* @param {?Object<string, string>=} metadata User defined
* call metadata
* @return {!Promise<!proto.google.protobuf.Empty>}
* Promise that resolves to the response
*/
proto.api.MulticastGroupServicePromiseClient.prototype.addGateway =
function(request, metadata) {
return this.client_.unaryCall(this.hostname_ +
'/api.MulticastGroupService/AddGateway',
request,
metadata || {},
methodDescriptor_MulticastGroupService_AddGateway);
};
/**
* @const
* @type {!grpc.web.MethodDescriptor<
* !proto.api.RemoveGatewayFromMulticastGroupRequest,
* !proto.google.protobuf.Empty>}
*/
const methodDescriptor_MulticastGroupService_RemoveGateway = new grpc.web.MethodDescriptor(
'/api.MulticastGroupService/RemoveGateway',
grpc.web.MethodType.UNARY,
proto.api.RemoveGatewayFromMulticastGroupRequest,
google_protobuf_empty_pb.Empty,
/**
* @param {!proto.api.RemoveGatewayFromMulticastGroupRequest} request
* @return {!Uint8Array}
*/
function(request) {
return request.serializeBinary();
},
google_protobuf_empty_pb.Empty.deserializeBinary
);
/**
* @param {!proto.api.RemoveGatewayFromMulticastGroupRequest} request The
* request proto
* @param {?Object<string, string>} metadata User defined
* call metadata
* @param {function(?grpc.web.RpcError, ?proto.google.protobuf.Empty)}
* callback The callback function(error, response)
* @return {!grpc.web.ClientReadableStream<!proto.google.protobuf.Empty>|undefined}
* The XHR Node Readable Stream
*/
proto.api.MulticastGroupServiceClient.prototype.removeGateway =
function(request, metadata, callback) {
return this.client_.rpcCall(this.hostname_ +
'/api.MulticastGroupService/RemoveGateway',
request,
metadata || {},
methodDescriptor_MulticastGroupService_RemoveGateway,
callback);
};
/**
* @param {!proto.api.RemoveGatewayFromMulticastGroupRequest} request The
* request proto
* @param {?Object<string, string>=} metadata User defined
* call metadata
* @return {!Promise<!proto.google.protobuf.Empty>}
* Promise that resolves to the response
*/
proto.api.MulticastGroupServicePromiseClient.prototype.removeGateway =
function(request, metadata) {
return this.client_.unaryCall(this.hostname_ +
'/api.MulticastGroupService/RemoveGateway',
request,
metadata || {},
methodDescriptor_MulticastGroupService_RemoveGateway);
};
/**
* @const
* @type {!grpc.web.MethodDescriptor<

View File

@ -43,6 +43,9 @@ export class MulticastGroup extends jspb.Message {
getClassBPingSlotPeriod(): number;
setClassBPingSlotPeriod(value: number): MulticastGroup;
getClassCSchedulingType(): MulticastGroupSchedulingType;
setClassCSchedulingType(value: MulticastGroupSchedulingType): MulticastGroup;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): MulticastGroup.AsObject;
static toObject(includeInstance: boolean, msg: MulticastGroup): MulticastGroup.AsObject;
@ -65,6 +68,7 @@ export namespace MulticastGroup {
dr: number,
frequency: number,
classBPingSlotPeriod: number,
classCSchedulingType: MulticastGroupSchedulingType,
}
}
@ -334,6 +338,50 @@ export namespace RemoveDeviceFromMulticastGroupRequest {
}
}
export class AddGatewayToMulticastGroupRequest extends jspb.Message {
getMulticastGroupId(): string;
setMulticastGroupId(value: string): AddGatewayToMulticastGroupRequest;
getGatewayId(): string;
setGatewayId(value: string): AddGatewayToMulticastGroupRequest;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): AddGatewayToMulticastGroupRequest.AsObject;
static toObject(includeInstance: boolean, msg: AddGatewayToMulticastGroupRequest): AddGatewayToMulticastGroupRequest.AsObject;
static serializeBinaryToWriter(message: AddGatewayToMulticastGroupRequest, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): AddGatewayToMulticastGroupRequest;
static deserializeBinaryFromReader(message: AddGatewayToMulticastGroupRequest, reader: jspb.BinaryReader): AddGatewayToMulticastGroupRequest;
}
export namespace AddGatewayToMulticastGroupRequest {
export type AsObject = {
multicastGroupId: string,
gatewayId: string,
}
}
export class RemoveGatewayFromMulticastGroupRequest extends jspb.Message {
getMulticastGroupId(): string;
setMulticastGroupId(value: string): RemoveGatewayFromMulticastGroupRequest;
getGatewayId(): string;
setGatewayId(value: string): RemoveGatewayFromMulticastGroupRequest;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): RemoveGatewayFromMulticastGroupRequest.AsObject;
static toObject(includeInstance: boolean, msg: RemoveGatewayFromMulticastGroupRequest): RemoveGatewayFromMulticastGroupRequest.AsObject;
static serializeBinaryToWriter(message: RemoveGatewayFromMulticastGroupRequest, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): RemoveGatewayFromMulticastGroupRequest;
static deserializeBinaryFromReader(message: RemoveGatewayFromMulticastGroupRequest, reader: jspb.BinaryReader): RemoveGatewayFromMulticastGroupRequest;
}
export namespace RemoveGatewayFromMulticastGroupRequest {
export type AsObject = {
multicastGroupId: string,
gatewayId: string,
}
}
export class MulticastGroupQueueItem extends jspb.Message {
getMulticastGroupId(): string;
setMulticastGroupId(value: string): MulticastGroupQueueItem;
@ -464,3 +512,7 @@ export enum MulticastGroupType {
CLASS_C = 0,
CLASS_B = 1,
}
export enum MulticastGroupSchedulingType {
DELAY = 0,
GPS_TIME = 1,
}

View File

@ -21,6 +21,7 @@ goog.object.extend(proto, google_protobuf_empty_pb);
var common_common_pb = require('../common/common_pb.js');
goog.object.extend(proto, common_common_pb);
goog.exportSymbol('proto.api.AddDeviceToMulticastGroupRequest', null, global);
goog.exportSymbol('proto.api.AddGatewayToMulticastGroupRequest', null, global);
goog.exportSymbol('proto.api.CreateMulticastGroupRequest', null, global);
goog.exportSymbol('proto.api.CreateMulticastGroupResponse', null, global);
goog.exportSymbol('proto.api.DeleteMulticastGroupRequest', null, global);
@ -36,8 +37,10 @@ goog.exportSymbol('proto.api.ListMulticastGroupsResponse', null, global);
goog.exportSymbol('proto.api.MulticastGroup', null, global);
goog.exportSymbol('proto.api.MulticastGroupListItem', null, global);
goog.exportSymbol('proto.api.MulticastGroupQueueItem', null, global);
goog.exportSymbol('proto.api.MulticastGroupSchedulingType', null, global);
goog.exportSymbol('proto.api.MulticastGroupType', null, global);
goog.exportSymbol('proto.api.RemoveDeviceFromMulticastGroupRequest', null, global);
goog.exportSymbol('proto.api.RemoveGatewayFromMulticastGroupRequest', null, global);
goog.exportSymbol('proto.api.UpdateMulticastGroupRequest', null, global);
/**
* Generated by JsPbCodeGenerator.
@ -291,6 +294,48 @@ if (goog.DEBUG && !COMPILED) {
*/
proto.api.RemoveDeviceFromMulticastGroupRequest.displayName = 'proto.api.RemoveDeviceFromMulticastGroupRequest';
}
/**
* 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.AddGatewayToMulticastGroupRequest = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.AddGatewayToMulticastGroupRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
/**
* @public
* @override
*/
proto.api.AddGatewayToMulticastGroupRequest.displayName = 'proto.api.AddGatewayToMulticastGroupRequest';
}
/**
* 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.RemoveGatewayFromMulticastGroupRequest = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.RemoveGatewayFromMulticastGroupRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
/**
* @public
* @override
*/
proto.api.RemoveGatewayFromMulticastGroupRequest.displayName = 'proto.api.RemoveGatewayFromMulticastGroupRequest';
}
/**
* Generated by JsPbCodeGenerator.
* @param {Array=} opt_data Optional initial data array, typically from a
@ -460,7 +505,8 @@ proto.api.MulticastGroup.toObject = function(includeInstance, msg) {
groupType: jspb.Message.getFieldWithDefault(msg, 9, 0),
dr: jspb.Message.getFieldWithDefault(msg, 10, 0),
frequency: jspb.Message.getFieldWithDefault(msg, 11, 0),
classBPingSlotPeriod: jspb.Message.getFieldWithDefault(msg, 12, 0)
classBPingSlotPeriod: jspb.Message.getFieldWithDefault(msg, 12, 0),
classCSchedulingType: jspb.Message.getFieldWithDefault(msg, 13, 0)
};
if (includeInstance) {
@ -545,6 +591,10 @@ proto.api.MulticastGroup.deserializeBinaryFromReader = function(msg, reader) {
var value = /** @type {number} */ (reader.readUint32());
msg.setClassBPingSlotPeriod(value);
break;
case 13:
var value = /** @type {!proto.api.MulticastGroupSchedulingType} */ (reader.readEnum());
msg.setClassCSchedulingType(value);
break;
default:
reader.skipField();
break;
@ -658,6 +708,13 @@ proto.api.MulticastGroup.serializeBinaryToWriter = function(message, writer) {
f
);
}
f = message.getClassCSchedulingType();
if (f !== 0.0) {
writer.writeEnum(
13,
f
);
}
};
@ -877,6 +934,24 @@ proto.api.MulticastGroup.prototype.setClassBPingSlotPeriod = function(value) {
};
/**
* optional MulticastGroupSchedulingType class_c_scheduling_type = 13;
* @return {!proto.api.MulticastGroupSchedulingType}
*/
proto.api.MulticastGroup.prototype.getClassCSchedulingType = function() {
return /** @type {!proto.api.MulticastGroupSchedulingType} */ (jspb.Message.getFieldWithDefault(this, 13, 0));
};
/**
* @param {!proto.api.MulticastGroupSchedulingType} value
* @return {!proto.api.MulticastGroup} returns this
*/
proto.api.MulticastGroup.prototype.setClassCSchedulingType = function(value) {
return jspb.Message.setProto3EnumField(this, 13, value);
};
@ -2877,6 +2952,326 @@ proto.api.RemoveDeviceFromMulticastGroupRequest.prototype.setDevEui = function(v
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.AddGatewayToMulticastGroupRequest.prototype.toObject = function(opt_includeInstance) {
return proto.api.AddGatewayToMulticastGroupRequest.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.AddGatewayToMulticastGroupRequest} msg The msg instance to transform.
* @return {!Object}
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.api.AddGatewayToMulticastGroupRequest.toObject = function(includeInstance, msg) {
var f, obj = {
multicastGroupId: jspb.Message.getFieldWithDefault(msg, 1, ""),
gatewayId: jspb.Message.getFieldWithDefault(msg, 2, "")
};
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.AddGatewayToMulticastGroupRequest}
*/
proto.api.AddGatewayToMulticastGroupRequest.deserializeBinary = function(bytes) {
var reader = new jspb.BinaryReader(bytes);
var msg = new proto.api.AddGatewayToMulticastGroupRequest;
return proto.api.AddGatewayToMulticastGroupRequest.deserializeBinaryFromReader(msg, reader);
};
/**
* Deserializes binary data (in protobuf wire format) from the
* given reader into the given message object.
* @param {!proto.api.AddGatewayToMulticastGroupRequest} msg The message object to deserialize into.
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
* @return {!proto.api.AddGatewayToMulticastGroupRequest}
*/
proto.api.AddGatewayToMulticastGroupRequest.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.setMulticastGroupId(value);
break;
case 2:
var value = /** @type {string} */ (reader.readString());
msg.setGatewayId(value);
break;
default:
reader.skipField();
break;
}
}
return msg;
};
/**
* Serializes the message to binary data (in protobuf wire format).
* @return {!Uint8Array}
*/
proto.api.AddGatewayToMulticastGroupRequest.prototype.serializeBinary = function() {
var writer = new jspb.BinaryWriter();
proto.api.AddGatewayToMulticastGroupRequest.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.AddGatewayToMulticastGroupRequest} message
* @param {!jspb.BinaryWriter} writer
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.api.AddGatewayToMulticastGroupRequest.serializeBinaryToWriter = function(message, writer) {
var f = undefined;
f = message.getMulticastGroupId();
if (f.length > 0) {
writer.writeString(
1,
f
);
}
f = message.getGatewayId();
if (f.length > 0) {
writer.writeString(
2,
f
);
}
};
/**
* optional string multicast_group_id = 1;
* @return {string}
*/
proto.api.AddGatewayToMulticastGroupRequest.prototype.getMulticastGroupId = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};
/**
* @param {string} value
* @return {!proto.api.AddGatewayToMulticastGroupRequest} returns this
*/
proto.api.AddGatewayToMulticastGroupRequest.prototype.setMulticastGroupId = function(value) {
return jspb.Message.setProto3StringField(this, 1, value);
};
/**
* optional string gateway_id = 2;
* @return {string}
*/
proto.api.AddGatewayToMulticastGroupRequest.prototype.getGatewayId = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};
/**
* @param {string} value
* @return {!proto.api.AddGatewayToMulticastGroupRequest} returns this
*/
proto.api.AddGatewayToMulticastGroupRequest.prototype.setGatewayId = function(value) {
return jspb.Message.setProto3StringField(this, 2, 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.RemoveGatewayFromMulticastGroupRequest.prototype.toObject = function(opt_includeInstance) {
return proto.api.RemoveGatewayFromMulticastGroupRequest.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.RemoveGatewayFromMulticastGroupRequest} msg The msg instance to transform.
* @return {!Object}
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.api.RemoveGatewayFromMulticastGroupRequest.toObject = function(includeInstance, msg) {
var f, obj = {
multicastGroupId: jspb.Message.getFieldWithDefault(msg, 1, ""),
gatewayId: jspb.Message.getFieldWithDefault(msg, 2, "")
};
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.RemoveGatewayFromMulticastGroupRequest}
*/
proto.api.RemoveGatewayFromMulticastGroupRequest.deserializeBinary = function(bytes) {
var reader = new jspb.BinaryReader(bytes);
var msg = new proto.api.RemoveGatewayFromMulticastGroupRequest;
return proto.api.RemoveGatewayFromMulticastGroupRequest.deserializeBinaryFromReader(msg, reader);
};
/**
* Deserializes binary data (in protobuf wire format) from the
* given reader into the given message object.
* @param {!proto.api.RemoveGatewayFromMulticastGroupRequest} msg The message object to deserialize into.
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
* @return {!proto.api.RemoveGatewayFromMulticastGroupRequest}
*/
proto.api.RemoveGatewayFromMulticastGroupRequest.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.setMulticastGroupId(value);
break;
case 2:
var value = /** @type {string} */ (reader.readString());
msg.setGatewayId(value);
break;
default:
reader.skipField();
break;
}
}
return msg;
};
/**
* Serializes the message to binary data (in protobuf wire format).
* @return {!Uint8Array}
*/
proto.api.RemoveGatewayFromMulticastGroupRequest.prototype.serializeBinary = function() {
var writer = new jspb.BinaryWriter();
proto.api.RemoveGatewayFromMulticastGroupRequest.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.RemoveGatewayFromMulticastGroupRequest} message
* @param {!jspb.BinaryWriter} writer
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.api.RemoveGatewayFromMulticastGroupRequest.serializeBinaryToWriter = function(message, writer) {
var f = undefined;
f = message.getMulticastGroupId();
if (f.length > 0) {
writer.writeString(
1,
f
);
}
f = message.getGatewayId();
if (f.length > 0) {
writer.writeString(
2,
f
);
}
};
/**
* optional string multicast_group_id = 1;
* @return {string}
*/
proto.api.RemoveGatewayFromMulticastGroupRequest.prototype.getMulticastGroupId = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};
/**
* @param {string} value
* @return {!proto.api.RemoveGatewayFromMulticastGroupRequest} returns this
*/
proto.api.RemoveGatewayFromMulticastGroupRequest.prototype.setMulticastGroupId = function(value) {
return jspb.Message.setProto3StringField(this, 1, value);
};
/**
* optional string gateway_id = 2;
* @return {string}
*/
proto.api.RemoveGatewayFromMulticastGroupRequest.prototype.getGatewayId = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};
/**
* @param {string} value
* @return {!proto.api.RemoveGatewayFromMulticastGroupRequest} returns this
*/
proto.api.RemoveGatewayFromMulticastGroupRequest.prototype.setGatewayId = function(value) {
return jspb.Message.setProto3StringField(this, 2, value);
};
if (jspb.Message.GENERATE_TO_OBJECT) {
/**
* Creates an object representation of this proto.
@ -3827,4 +4222,12 @@ proto.api.MulticastGroupType = {
CLASS_B: 1
};
/**
* @enum {number}
*/
proto.api.MulticastGroupSchedulingType = {
DELAY: 0,
GPS_TIME: 1
};
goog.object.extend(exports, proto.api);

View File

@ -24,8 +24,11 @@ export class Tenant extends jspb.Message {
getMaxDeviceCount(): number;
setMaxDeviceCount(value: number): Tenant;
getPrivateGateways(): boolean;
setPrivateGateways(value: boolean): Tenant;
getPrivateGatewaysUp(): boolean;
setPrivateGatewaysUp(value: boolean): Tenant;
getPrivateGatewaysDown(): boolean;
setPrivateGatewaysDown(value: boolean): Tenant;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Tenant.AsObject;
@ -43,7 +46,8 @@ export namespace Tenant {
canHaveGateways: boolean,
maxGatewayCount: number,
maxDeviceCount: number,
privateGateways: boolean,
privateGatewaysUp: boolean,
privateGatewaysDown: boolean,
}
}
@ -67,8 +71,11 @@ export class TenantListItem extends jspb.Message {
getCanHaveGateways(): boolean;
setCanHaveGateways(value: boolean): TenantListItem;
getPrivateGateways(): boolean;
setPrivateGateways(value: boolean): TenantListItem;
getPrivateGatewaysUp(): boolean;
setPrivateGatewaysUp(value: boolean): TenantListItem;
getPrivateGatewaysDown(): boolean;
setPrivateGatewaysDown(value: boolean): TenantListItem;
getMaxGatewayCount(): number;
setMaxGatewayCount(value: number): TenantListItem;
@ -91,7 +98,8 @@ export namespace TenantListItem {
updatedAt?: google_protobuf_timestamp_pb.Timestamp.AsObject,
name: string,
canHaveGateways: boolean,
privateGateways: boolean,
privateGatewaysUp: boolean,
privateGatewaysDown: boolean,
maxGatewayCount: number,
maxDeviceCount: number,
}

View File

@ -474,7 +474,8 @@ proto.api.Tenant.toObject = function(includeInstance, msg) {
canHaveGateways: jspb.Message.getBooleanFieldWithDefault(msg, 4, false),
maxGatewayCount: jspb.Message.getFieldWithDefault(msg, 5, 0),
maxDeviceCount: jspb.Message.getFieldWithDefault(msg, 6, 0),
privateGateways: jspb.Message.getBooleanFieldWithDefault(msg, 7, false)
privateGatewaysUp: jspb.Message.getBooleanFieldWithDefault(msg, 7, false),
privateGatewaysDown: jspb.Message.getBooleanFieldWithDefault(msg, 8, false)
};
if (includeInstance) {
@ -537,7 +538,11 @@ proto.api.Tenant.deserializeBinaryFromReader = function(msg, reader) {
break;
case 7:
var value = /** @type {boolean} */ (reader.readBool());
msg.setPrivateGateways(value);
msg.setPrivateGatewaysUp(value);
break;
case 8:
var value = /** @type {boolean} */ (reader.readBool());
msg.setPrivateGatewaysDown(value);
break;
default:
reader.skipField();
@ -610,13 +615,20 @@ proto.api.Tenant.serializeBinaryToWriter = function(message, writer) {
f
);
}
f = message.getPrivateGateways();
f = message.getPrivateGatewaysUp();
if (f) {
writer.writeBool(
7,
f
);
}
f = message.getPrivateGatewaysDown();
if (f) {
writer.writeBool(
8,
f
);
}
};
@ -729,10 +741,10 @@ proto.api.Tenant.prototype.setMaxDeviceCount = function(value) {
/**
* optional bool private_gateways = 7;
* optional bool private_gateways_up = 7;
* @return {boolean}
*/
proto.api.Tenant.prototype.getPrivateGateways = function() {
proto.api.Tenant.prototype.getPrivateGatewaysUp = function() {
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 7, false));
};
@ -741,11 +753,29 @@ proto.api.Tenant.prototype.getPrivateGateways = function() {
* @param {boolean} value
* @return {!proto.api.Tenant} returns this
*/
proto.api.Tenant.prototype.setPrivateGateways = function(value) {
proto.api.Tenant.prototype.setPrivateGatewaysUp = function(value) {
return jspb.Message.setProto3BooleanField(this, 7, value);
};
/**
* optional bool private_gateways_down = 8;
* @return {boolean}
*/
proto.api.Tenant.prototype.getPrivateGatewaysDown = function() {
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false));
};
/**
* @param {boolean} value
* @return {!proto.api.Tenant} returns this
*/
proto.api.Tenant.prototype.setPrivateGatewaysDown = function(value) {
return jspb.Message.setProto3BooleanField(this, 8, value);
};
@ -783,7 +813,8 @@ proto.api.TenantListItem.toObject = function(includeInstance, msg) {
updatedAt: (f = msg.getUpdatedAt()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
name: jspb.Message.getFieldWithDefault(msg, 4, ""),
canHaveGateways: jspb.Message.getBooleanFieldWithDefault(msg, 5, false),
privateGateways: jspb.Message.getBooleanFieldWithDefault(msg, 6, false),
privateGatewaysUp: jspb.Message.getBooleanFieldWithDefault(msg, 6, false),
privateGatewaysDown: jspb.Message.getBooleanFieldWithDefault(msg, 9, false),
maxGatewayCount: jspb.Message.getFieldWithDefault(msg, 7, 0),
maxDeviceCount: jspb.Message.getFieldWithDefault(msg, 8, 0)
};
@ -846,7 +877,11 @@ proto.api.TenantListItem.deserializeBinaryFromReader = function(msg, reader) {
break;
case 6:
var value = /** @type {boolean} */ (reader.readBool());
msg.setPrivateGateways(value);
msg.setPrivateGatewaysUp(value);
break;
case 9:
var value = /** @type {boolean} */ (reader.readBool());
msg.setPrivateGatewaysDown(value);
break;
case 7:
var value = /** @type {number} */ (reader.readUint32());
@ -922,13 +957,20 @@ proto.api.TenantListItem.serializeBinaryToWriter = function(message, writer) {
f
);
}
f = message.getPrivateGateways();
f = message.getPrivateGatewaysUp();
if (f) {
writer.writeBool(
6,
f
);
}
f = message.getPrivateGatewaysDown();
if (f) {
writer.writeBool(
9,
f
);
}
f = message.getMaxGatewayCount();
if (f !== 0) {
writer.writeUint32(
@ -1075,10 +1117,10 @@ proto.api.TenantListItem.prototype.setCanHaveGateways = function(value) {
/**
* optional bool private_gateways = 6;
* optional bool private_gateways_up = 6;
* @return {boolean}
*/
proto.api.TenantListItem.prototype.getPrivateGateways = function() {
proto.api.TenantListItem.prototype.getPrivateGatewaysUp = function() {
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 6, false));
};
@ -1087,11 +1129,29 @@ proto.api.TenantListItem.prototype.getPrivateGateways = function() {
* @param {boolean} value
* @return {!proto.api.TenantListItem} returns this
*/
proto.api.TenantListItem.prototype.setPrivateGateways = function(value) {
proto.api.TenantListItem.prototype.setPrivateGatewaysUp = function(value) {
return jspb.Message.setProto3BooleanField(this, 6, value);
};
/**
* optional bool private_gateways_down = 9;
* @return {boolean}
*/
proto.api.TenantListItem.prototype.getPrivateGatewaysDown = function() {
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 9, false));
};
/**
* @param {boolean} value
* @return {!proto.api.TenantListItem} returns this
*/
proto.api.TenantListItem.prototype.setPrivateGatewaysDown = function(value) {
return jspb.Message.setProto3BooleanField(this, 9, value);
};
/**
* optional uint32 max_gateway_count = 7;
* @return {number}

View File

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

View File

@ -8,7 +8,7 @@ plugins {
}
group = "io.chirpstack"
version = "4.2.0"
version = "4.3.0-test.2"
repositories {
mavenCentral()

46
api/js/README.md vendored
View File

@ -18,48 +18,6 @@ yarn add @chirpstack/chirpstack-api
## Usage
All messages, services, constants, etc. are auto-generated from the ChirpStack protobuf definitions. The result is that
this package structure matches that of the protobuf definitions. There is no ES6 index gathering all of the exports, so
full import/require paths should be used. The generated code is all callback based, but can be promisified.
The protobuf definitions can be found here: https://github.com/brocaar/chirpstack-api/tree/master/protobuf
The generated code all depends on the `grpc` package, and for most use cases you will probably need to make use of the
`grpc` package directly as well. This is seen in the example below.
### Example
This example shows how to log in to ChirpStack via the gRPC API and then create a gRPC metadata object containing the
JWT. This metadata could then be passed to any future requests that require authorization.
```javascript
import * as grpc from '@grpc/grpc-js';
import * as internalService from '@chirpstack/chirpstack-api/as/external/api/internal_grpc_pb';
import * as internalMessages from '@chirpstack/chirpstack-api/as/external/api/internal_pb';
// Create the client for the 'internal' service
const internalServiceClient = new internalService.InternalServiceClient(
'localhost:8080',
grpc.credentials.createInsecure()
);
// Create and build the login request message
const loginRequest = new internalMessages.LoginRequest();
loginRequest.setEmail('email');
loginRequest.setPassword('password');
// Send the login request
internalServiceClient.login(loginRequest, (error, response) => {
// Build a gRPC metadata object, setting the authorization key to the JWT we
// got back from logging in.
const metadata = new grpc.Metadata();
metadata.set('authorization', response.getJwt());
// This metadata can now be passed for requests to APIs that require authorization
// e.g.
// deviceServiceClient.create(createDeviceRequest, metadata, callback);
});
```
Please refer to [https://www.chirpstack.io/chirpstack/api/js-examples.html](https://www.chirpstack.io/chirpstack/api/js-examples.html)
for code examples.

View File

@ -255,6 +255,9 @@ export class ListGatewaysRequest extends jspb.Message {
getTenantId(): string;
setTenantId(value: string): void;
getMulticastGroupId(): string;
setMulticastGroupId(value: string): void;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): ListGatewaysRequest.AsObject;
static toObject(includeInstance: boolean, msg: ListGatewaysRequest): ListGatewaysRequest.AsObject;
@ -271,6 +274,7 @@ export namespace ListGatewaysRequest {
offset: number,
search: string,
tenantId: string,
multicastGroupId: string,
}
}

View File

@ -2062,7 +2062,8 @@ proto.api.ListGatewaysRequest.toObject = function(includeInstance, msg) {
limit: jspb.Message.getFieldWithDefault(msg, 1, 0),
offset: jspb.Message.getFieldWithDefault(msg, 2, 0),
search: jspb.Message.getFieldWithDefault(msg, 3, ""),
tenantId: jspb.Message.getFieldWithDefault(msg, 4, "")
tenantId: jspb.Message.getFieldWithDefault(msg, 4, ""),
multicastGroupId: jspb.Message.getFieldWithDefault(msg, 5, "")
};
if (includeInstance) {
@ -2115,6 +2116,10 @@ proto.api.ListGatewaysRequest.deserializeBinaryFromReader = function(msg, reader
var value = /** @type {string} */ (reader.readString());
msg.setTenantId(value);
break;
case 5:
var value = /** @type {string} */ (reader.readString());
msg.setMulticastGroupId(value);
break;
default:
reader.skipField();
break;
@ -2172,6 +2177,13 @@ proto.api.ListGatewaysRequest.serializeBinaryToWriter = function(message, writer
f
);
}
f = message.getMulticastGroupId();
if (f.length > 0) {
writer.writeString(
5,
f
);
}
};
@ -2247,6 +2259,24 @@ proto.api.ListGatewaysRequest.prototype.setTenantId = function(value) {
};
/**
* optional string multicast_group_id = 5;
* @return {string}
*/
proto.api.ListGatewaysRequest.prototype.getMulticastGroupId = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};
/**
* @param {string} value
* @return {!proto.api.ListGatewaysRequest} returns this
*/
proto.api.ListGatewaysRequest.prototype.setMulticastGroupId = function(value) {
return jspb.Message.setProto3StringField(this, 5, value);
};
/**
* List of repeated fields within this message type.

View File

@ -15,6 +15,8 @@ interface IMulticastGroupServiceService extends grpc.ServiceDefinition<grpc.Unty
list: grpc.MethodDefinition<api_multicast_group_pb.ListMulticastGroupsRequest, api_multicast_group_pb.ListMulticastGroupsResponse>;
addDevice: grpc.MethodDefinition<api_multicast_group_pb.AddDeviceToMulticastGroupRequest, google_protobuf_empty_pb.Empty>;
removeDevice: grpc.MethodDefinition<api_multicast_group_pb.RemoveDeviceFromMulticastGroupRequest, google_protobuf_empty_pb.Empty>;
addGateway: grpc.MethodDefinition<api_multicast_group_pb.AddGatewayToMulticastGroupRequest, google_protobuf_empty_pb.Empty>;
removeGateway: grpc.MethodDefinition<api_multicast_group_pb.RemoveGatewayFromMulticastGroupRequest, google_protobuf_empty_pb.Empty>;
enqueue: grpc.MethodDefinition<api_multicast_group_pb.EnqueueMulticastGroupQueueItemRequest, api_multicast_group_pb.EnqueueMulticastGroupQueueItemResponse>;
flushQueue: grpc.MethodDefinition<api_multicast_group_pb.FlushMulticastGroupQueueRequest, google_protobuf_empty_pb.Empty>;
listQueue: grpc.MethodDefinition<api_multicast_group_pb.ListMulticastGroupQueueRequest, api_multicast_group_pb.ListMulticastGroupQueueResponse>;
@ -30,6 +32,8 @@ export interface IMulticastGroupServiceServer extends grpc.UntypedServiceImpleme
list: grpc.handleUnaryCall<api_multicast_group_pb.ListMulticastGroupsRequest, api_multicast_group_pb.ListMulticastGroupsResponse>;
addDevice: grpc.handleUnaryCall<api_multicast_group_pb.AddDeviceToMulticastGroupRequest, google_protobuf_empty_pb.Empty>;
removeDevice: grpc.handleUnaryCall<api_multicast_group_pb.RemoveDeviceFromMulticastGroupRequest, google_protobuf_empty_pb.Empty>;
addGateway: grpc.handleUnaryCall<api_multicast_group_pb.AddGatewayToMulticastGroupRequest, google_protobuf_empty_pb.Empty>;
removeGateway: grpc.handleUnaryCall<api_multicast_group_pb.RemoveGatewayFromMulticastGroupRequest, google_protobuf_empty_pb.Empty>;
enqueue: grpc.handleUnaryCall<api_multicast_group_pb.EnqueueMulticastGroupQueueItemRequest, api_multicast_group_pb.EnqueueMulticastGroupQueueItemResponse>;
flushQueue: grpc.handleUnaryCall<api_multicast_group_pb.FlushMulticastGroupQueueRequest, google_protobuf_empty_pb.Empty>;
listQueue: grpc.handleUnaryCall<api_multicast_group_pb.ListMulticastGroupQueueRequest, api_multicast_group_pb.ListMulticastGroupQueueResponse>;
@ -58,6 +62,12 @@ export class MulticastGroupServiceClient extends grpc.Client {
removeDevice(argument: api_multicast_group_pb.RemoveDeviceFromMulticastGroupRequest, callback: grpc.requestCallback<google_protobuf_empty_pb.Empty>): grpc.ClientUnaryCall;
removeDevice(argument: api_multicast_group_pb.RemoveDeviceFromMulticastGroupRequest, metadataOrOptions: grpc.Metadata | grpc.CallOptions | null, callback: grpc.requestCallback<google_protobuf_empty_pb.Empty>): grpc.ClientUnaryCall;
removeDevice(argument: api_multicast_group_pb.RemoveDeviceFromMulticastGroupRequest, metadata: grpc.Metadata | null, options: grpc.CallOptions | null, callback: grpc.requestCallback<google_protobuf_empty_pb.Empty>): grpc.ClientUnaryCall;
addGateway(argument: api_multicast_group_pb.AddGatewayToMulticastGroupRequest, callback: grpc.requestCallback<google_protobuf_empty_pb.Empty>): grpc.ClientUnaryCall;
addGateway(argument: api_multicast_group_pb.AddGatewayToMulticastGroupRequest, metadataOrOptions: grpc.Metadata | grpc.CallOptions | null, callback: grpc.requestCallback<google_protobuf_empty_pb.Empty>): grpc.ClientUnaryCall;
addGateway(argument: api_multicast_group_pb.AddGatewayToMulticastGroupRequest, metadata: grpc.Metadata | null, options: grpc.CallOptions | null, callback: grpc.requestCallback<google_protobuf_empty_pb.Empty>): grpc.ClientUnaryCall;
removeGateway(argument: api_multicast_group_pb.RemoveGatewayFromMulticastGroupRequest, callback: grpc.requestCallback<google_protobuf_empty_pb.Empty>): grpc.ClientUnaryCall;
removeGateway(argument: api_multicast_group_pb.RemoveGatewayFromMulticastGroupRequest, metadataOrOptions: grpc.Metadata | grpc.CallOptions | null, callback: grpc.requestCallback<google_protobuf_empty_pb.Empty>): grpc.ClientUnaryCall;
removeGateway(argument: api_multicast_group_pb.RemoveGatewayFromMulticastGroupRequest, metadata: grpc.Metadata | null, options: grpc.CallOptions | null, callback: grpc.requestCallback<google_protobuf_empty_pb.Empty>): grpc.ClientUnaryCall;
enqueue(argument: api_multicast_group_pb.EnqueueMulticastGroupQueueItemRequest, callback: grpc.requestCallback<api_multicast_group_pb.EnqueueMulticastGroupQueueItemResponse>): grpc.ClientUnaryCall;
enqueue(argument: api_multicast_group_pb.EnqueueMulticastGroupQueueItemRequest, metadataOrOptions: grpc.Metadata | grpc.CallOptions | null, callback: grpc.requestCallback<api_multicast_group_pb.EnqueueMulticastGroupQueueItemResponse>): grpc.ClientUnaryCall;
enqueue(argument: api_multicast_group_pb.EnqueueMulticastGroupQueueItemRequest, metadata: grpc.Metadata | null, options: grpc.CallOptions | null, callback: grpc.requestCallback<api_multicast_group_pb.EnqueueMulticastGroupQueueItemResponse>): grpc.ClientUnaryCall;

View File

@ -19,6 +19,17 @@ function deserialize_api_AddDeviceToMulticastGroupRequest(buffer_arg) {
return api_multicast_group_pb.AddDeviceToMulticastGroupRequest.deserializeBinary(new Uint8Array(buffer_arg));
}
function serialize_api_AddGatewayToMulticastGroupRequest(arg) {
if (!(arg instanceof api_multicast_group_pb.AddGatewayToMulticastGroupRequest)) {
throw new Error('Expected argument of type api.AddGatewayToMulticastGroupRequest');
}
return Buffer.from(arg.serializeBinary());
}
function deserialize_api_AddGatewayToMulticastGroupRequest(buffer_arg) {
return api_multicast_group_pb.AddGatewayToMulticastGroupRequest.deserializeBinary(new Uint8Array(buffer_arg));
}
function serialize_api_CreateMulticastGroupRequest(arg) {
if (!(arg instanceof api_multicast_group_pb.CreateMulticastGroupRequest)) {
throw new Error('Expected argument of type api.CreateMulticastGroupRequest');
@ -162,6 +173,17 @@ function deserialize_api_RemoveDeviceFromMulticastGroupRequest(buffer_arg) {
return api_multicast_group_pb.RemoveDeviceFromMulticastGroupRequest.deserializeBinary(new Uint8Array(buffer_arg));
}
function serialize_api_RemoveGatewayFromMulticastGroupRequest(arg) {
if (!(arg instanceof api_multicast_group_pb.RemoveGatewayFromMulticastGroupRequest)) {
throw new Error('Expected argument of type api.RemoveGatewayFromMulticastGroupRequest');
}
return Buffer.from(arg.serializeBinary());
}
function deserialize_api_RemoveGatewayFromMulticastGroupRequest(buffer_arg) {
return api_multicast_group_pb.RemoveGatewayFromMulticastGroupRequest.deserializeBinary(new Uint8Array(buffer_arg));
}
function serialize_api_UpdateMulticastGroupRequest(arg) {
if (!(arg instanceof api_multicast_group_pb.UpdateMulticastGroupRequest)) {
throw new Error('Expected argument of type api.UpdateMulticastGroupRequest');
@ -271,7 +293,31 @@ removeDevice: {
responseSerialize: serialize_google_protobuf_Empty,
responseDeserialize: deserialize_google_protobuf_Empty,
},
// Add the given item to the multcast group queue.
// Add a gateway to the multicast group.
addGateway: {
path: '/api.MulticastGroupService/AddGateway',
requestStream: false,
responseStream: false,
requestType: api_multicast_group_pb.AddGatewayToMulticastGroupRequest,
responseType: google_protobuf_empty_pb.Empty,
requestSerialize: serialize_api_AddGatewayToMulticastGroupRequest,
requestDeserialize: deserialize_api_AddGatewayToMulticastGroupRequest,
responseSerialize: serialize_google_protobuf_Empty,
responseDeserialize: deserialize_google_protobuf_Empty,
},
// Remove a gateway from the multicast group.
removeGateway: {
path: '/api.MulticastGroupService/RemoveGateway',
requestStream: false,
responseStream: false,
requestType: api_multicast_group_pb.RemoveGatewayFromMulticastGroupRequest,
responseType: google_protobuf_empty_pb.Empty,
requestSerialize: serialize_api_RemoveGatewayFromMulticastGroupRequest,
requestDeserialize: deserialize_api_RemoveGatewayFromMulticastGroupRequest,
responseSerialize: serialize_google_protobuf_Empty,
responseDeserialize: deserialize_google_protobuf_Empty,
},
// Add the given item to the multicast group queue.
enqueue: {
path: '/api.MulticastGroupService/Enqueue',
requestStream: false,

View File

@ -44,6 +44,9 @@ export class MulticastGroup extends jspb.Message {
getClassBPingSlotPeriod(): number;
setClassBPingSlotPeriod(value: number): void;
getClassCSchedulingType(): MulticastGroupSchedulingTypeMap[keyof MulticastGroupSchedulingTypeMap];
setClassCSchedulingType(value: MulticastGroupSchedulingTypeMap[keyof MulticastGroupSchedulingTypeMap]): void;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): MulticastGroup.AsObject;
static toObject(includeInstance: boolean, msg: MulticastGroup): MulticastGroup.AsObject;
@ -68,6 +71,7 @@ export namespace MulticastGroup {
dr: number,
frequency: number,
classBPingSlotPeriod: number,
classCSchedulingType: MulticastGroupSchedulingTypeMap[keyof MulticastGroupSchedulingTypeMap],
}
}
@ -359,6 +363,54 @@ export namespace RemoveDeviceFromMulticastGroupRequest {
}
}
export class AddGatewayToMulticastGroupRequest extends jspb.Message {
getMulticastGroupId(): string;
setMulticastGroupId(value: string): void;
getGatewayId(): string;
setGatewayId(value: string): void;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): AddGatewayToMulticastGroupRequest.AsObject;
static toObject(includeInstance: boolean, msg: AddGatewayToMulticastGroupRequest): AddGatewayToMulticastGroupRequest.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: AddGatewayToMulticastGroupRequest, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): AddGatewayToMulticastGroupRequest;
static deserializeBinaryFromReader(message: AddGatewayToMulticastGroupRequest, reader: jspb.BinaryReader): AddGatewayToMulticastGroupRequest;
}
export namespace AddGatewayToMulticastGroupRequest {
export type AsObject = {
multicastGroupId: string,
gatewayId: string,
}
}
export class RemoveGatewayFromMulticastGroupRequest extends jspb.Message {
getMulticastGroupId(): string;
setMulticastGroupId(value: string): void;
getGatewayId(): string;
setGatewayId(value: string): void;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): RemoveGatewayFromMulticastGroupRequest.AsObject;
static toObject(includeInstance: boolean, msg: RemoveGatewayFromMulticastGroupRequest): RemoveGatewayFromMulticastGroupRequest.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
static serializeBinaryToWriter(message: RemoveGatewayFromMulticastGroupRequest, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): RemoveGatewayFromMulticastGroupRequest;
static deserializeBinaryFromReader(message: RemoveGatewayFromMulticastGroupRequest, reader: jspb.BinaryReader): RemoveGatewayFromMulticastGroupRequest;
}
export namespace RemoveGatewayFromMulticastGroupRequest {
export type AsObject = {
multicastGroupId: string,
gatewayId: string,
}
}
export class MulticastGroupQueueItem extends jspb.Message {
getMulticastGroupId(): string;
setMulticastGroupId(value: string): void;
@ -504,3 +556,10 @@ export interface MulticastGroupTypeMap {
export const MulticastGroupType: MulticastGroupTypeMap;
export interface MulticastGroupSchedulingTypeMap {
DELAY: 0;
GPS_TIME: 1;
}
export const MulticastGroupSchedulingType: MulticastGroupSchedulingTypeMap;

View File

@ -21,6 +21,7 @@ goog.object.extend(proto, google_protobuf_empty_pb);
var common_common_pb = require('../common/common_pb.js');
goog.object.extend(proto, common_common_pb);
goog.exportSymbol('proto.api.AddDeviceToMulticastGroupRequest', null, global);
goog.exportSymbol('proto.api.AddGatewayToMulticastGroupRequest', null, global);
goog.exportSymbol('proto.api.CreateMulticastGroupRequest', null, global);
goog.exportSymbol('proto.api.CreateMulticastGroupResponse', null, global);
goog.exportSymbol('proto.api.DeleteMulticastGroupRequest', null, global);
@ -36,8 +37,10 @@ goog.exportSymbol('proto.api.ListMulticastGroupsResponse', null, global);
goog.exportSymbol('proto.api.MulticastGroup', null, global);
goog.exportSymbol('proto.api.MulticastGroupListItem', null, global);
goog.exportSymbol('proto.api.MulticastGroupQueueItem', null, global);
goog.exportSymbol('proto.api.MulticastGroupSchedulingType', null, global);
goog.exportSymbol('proto.api.MulticastGroupType', null, global);
goog.exportSymbol('proto.api.RemoveDeviceFromMulticastGroupRequest', null, global);
goog.exportSymbol('proto.api.RemoveGatewayFromMulticastGroupRequest', null, global);
goog.exportSymbol('proto.api.UpdateMulticastGroupRequest', null, global);
/**
* Generated by JsPbCodeGenerator.
@ -291,6 +294,48 @@ if (goog.DEBUG && !COMPILED) {
*/
proto.api.RemoveDeviceFromMulticastGroupRequest.displayName = 'proto.api.RemoveDeviceFromMulticastGroupRequest';
}
/**
* 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.AddGatewayToMulticastGroupRequest = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.AddGatewayToMulticastGroupRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
/**
* @public
* @override
*/
proto.api.AddGatewayToMulticastGroupRequest.displayName = 'proto.api.AddGatewayToMulticastGroupRequest';
}
/**
* 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.RemoveGatewayFromMulticastGroupRequest = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.RemoveGatewayFromMulticastGroupRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
/**
* @public
* @override
*/
proto.api.RemoveGatewayFromMulticastGroupRequest.displayName = 'proto.api.RemoveGatewayFromMulticastGroupRequest';
}
/**
* Generated by JsPbCodeGenerator.
* @param {Array=} opt_data Optional initial data array, typically from a
@ -460,7 +505,8 @@ proto.api.MulticastGroup.toObject = function(includeInstance, msg) {
groupType: jspb.Message.getFieldWithDefault(msg, 9, 0),
dr: jspb.Message.getFieldWithDefault(msg, 10, 0),
frequency: jspb.Message.getFieldWithDefault(msg, 11, 0),
classBPingSlotPeriod: jspb.Message.getFieldWithDefault(msg, 12, 0)
classBPingSlotPeriod: jspb.Message.getFieldWithDefault(msg, 12, 0),
classCSchedulingType: jspb.Message.getFieldWithDefault(msg, 13, 0)
};
if (includeInstance) {
@ -545,6 +591,10 @@ proto.api.MulticastGroup.deserializeBinaryFromReader = function(msg, reader) {
var value = /** @type {number} */ (reader.readUint32());
msg.setClassBPingSlotPeriod(value);
break;
case 13:
var value = /** @type {!proto.api.MulticastGroupSchedulingType} */ (reader.readEnum());
msg.setClassCSchedulingType(value);
break;
default:
reader.skipField();
break;
@ -658,6 +708,13 @@ proto.api.MulticastGroup.serializeBinaryToWriter = function(message, writer) {
f
);
}
f = message.getClassCSchedulingType();
if (f !== 0.0) {
writer.writeEnum(
13,
f
);
}
};
@ -877,6 +934,24 @@ proto.api.MulticastGroup.prototype.setClassBPingSlotPeriod = function(value) {
};
/**
* optional MulticastGroupSchedulingType class_c_scheduling_type = 13;
* @return {!proto.api.MulticastGroupSchedulingType}
*/
proto.api.MulticastGroup.prototype.getClassCSchedulingType = function() {
return /** @type {!proto.api.MulticastGroupSchedulingType} */ (jspb.Message.getFieldWithDefault(this, 13, 0));
};
/**
* @param {!proto.api.MulticastGroupSchedulingType} value
* @return {!proto.api.MulticastGroup} returns this
*/
proto.api.MulticastGroup.prototype.setClassCSchedulingType = function(value) {
return jspb.Message.setProto3EnumField(this, 13, value);
};
@ -2877,6 +2952,326 @@ proto.api.RemoveDeviceFromMulticastGroupRequest.prototype.setDevEui = function(v
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.AddGatewayToMulticastGroupRequest.prototype.toObject = function(opt_includeInstance) {
return proto.api.AddGatewayToMulticastGroupRequest.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.AddGatewayToMulticastGroupRequest} msg The msg instance to transform.
* @return {!Object}
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.api.AddGatewayToMulticastGroupRequest.toObject = function(includeInstance, msg) {
var f, obj = {
multicastGroupId: jspb.Message.getFieldWithDefault(msg, 1, ""),
gatewayId: jspb.Message.getFieldWithDefault(msg, 2, "")
};
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.AddGatewayToMulticastGroupRequest}
*/
proto.api.AddGatewayToMulticastGroupRequest.deserializeBinary = function(bytes) {
var reader = new jspb.BinaryReader(bytes);
var msg = new proto.api.AddGatewayToMulticastGroupRequest;
return proto.api.AddGatewayToMulticastGroupRequest.deserializeBinaryFromReader(msg, reader);
};
/**
* Deserializes binary data (in protobuf wire format) from the
* given reader into the given message object.
* @param {!proto.api.AddGatewayToMulticastGroupRequest} msg The message object to deserialize into.
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
* @return {!proto.api.AddGatewayToMulticastGroupRequest}
*/
proto.api.AddGatewayToMulticastGroupRequest.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.setMulticastGroupId(value);
break;
case 2:
var value = /** @type {string} */ (reader.readString());
msg.setGatewayId(value);
break;
default:
reader.skipField();
break;
}
}
return msg;
};
/**
* Serializes the message to binary data (in protobuf wire format).
* @return {!Uint8Array}
*/
proto.api.AddGatewayToMulticastGroupRequest.prototype.serializeBinary = function() {
var writer = new jspb.BinaryWriter();
proto.api.AddGatewayToMulticastGroupRequest.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.AddGatewayToMulticastGroupRequest} message
* @param {!jspb.BinaryWriter} writer
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.api.AddGatewayToMulticastGroupRequest.serializeBinaryToWriter = function(message, writer) {
var f = undefined;
f = message.getMulticastGroupId();
if (f.length > 0) {
writer.writeString(
1,
f
);
}
f = message.getGatewayId();
if (f.length > 0) {
writer.writeString(
2,
f
);
}
};
/**
* optional string multicast_group_id = 1;
* @return {string}
*/
proto.api.AddGatewayToMulticastGroupRequest.prototype.getMulticastGroupId = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};
/**
* @param {string} value
* @return {!proto.api.AddGatewayToMulticastGroupRequest} returns this
*/
proto.api.AddGatewayToMulticastGroupRequest.prototype.setMulticastGroupId = function(value) {
return jspb.Message.setProto3StringField(this, 1, value);
};
/**
* optional string gateway_id = 2;
* @return {string}
*/
proto.api.AddGatewayToMulticastGroupRequest.prototype.getGatewayId = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};
/**
* @param {string} value
* @return {!proto.api.AddGatewayToMulticastGroupRequest} returns this
*/
proto.api.AddGatewayToMulticastGroupRequest.prototype.setGatewayId = function(value) {
return jspb.Message.setProto3StringField(this, 2, 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.RemoveGatewayFromMulticastGroupRequest.prototype.toObject = function(opt_includeInstance) {
return proto.api.RemoveGatewayFromMulticastGroupRequest.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.RemoveGatewayFromMulticastGroupRequest} msg The msg instance to transform.
* @return {!Object}
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.api.RemoveGatewayFromMulticastGroupRequest.toObject = function(includeInstance, msg) {
var f, obj = {
multicastGroupId: jspb.Message.getFieldWithDefault(msg, 1, ""),
gatewayId: jspb.Message.getFieldWithDefault(msg, 2, "")
};
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.RemoveGatewayFromMulticastGroupRequest}
*/
proto.api.RemoveGatewayFromMulticastGroupRequest.deserializeBinary = function(bytes) {
var reader = new jspb.BinaryReader(bytes);
var msg = new proto.api.RemoveGatewayFromMulticastGroupRequest;
return proto.api.RemoveGatewayFromMulticastGroupRequest.deserializeBinaryFromReader(msg, reader);
};
/**
* Deserializes binary data (in protobuf wire format) from the
* given reader into the given message object.
* @param {!proto.api.RemoveGatewayFromMulticastGroupRequest} msg The message object to deserialize into.
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
* @return {!proto.api.RemoveGatewayFromMulticastGroupRequest}
*/
proto.api.RemoveGatewayFromMulticastGroupRequest.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.setMulticastGroupId(value);
break;
case 2:
var value = /** @type {string} */ (reader.readString());
msg.setGatewayId(value);
break;
default:
reader.skipField();
break;
}
}
return msg;
};
/**
* Serializes the message to binary data (in protobuf wire format).
* @return {!Uint8Array}
*/
proto.api.RemoveGatewayFromMulticastGroupRequest.prototype.serializeBinary = function() {
var writer = new jspb.BinaryWriter();
proto.api.RemoveGatewayFromMulticastGroupRequest.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.RemoveGatewayFromMulticastGroupRequest} message
* @param {!jspb.BinaryWriter} writer
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.api.RemoveGatewayFromMulticastGroupRequest.serializeBinaryToWriter = function(message, writer) {
var f = undefined;
f = message.getMulticastGroupId();
if (f.length > 0) {
writer.writeString(
1,
f
);
}
f = message.getGatewayId();
if (f.length > 0) {
writer.writeString(
2,
f
);
}
};
/**
* optional string multicast_group_id = 1;
* @return {string}
*/
proto.api.RemoveGatewayFromMulticastGroupRequest.prototype.getMulticastGroupId = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};
/**
* @param {string} value
* @return {!proto.api.RemoveGatewayFromMulticastGroupRequest} returns this
*/
proto.api.RemoveGatewayFromMulticastGroupRequest.prototype.setMulticastGroupId = function(value) {
return jspb.Message.setProto3StringField(this, 1, value);
};
/**
* optional string gateway_id = 2;
* @return {string}
*/
proto.api.RemoveGatewayFromMulticastGroupRequest.prototype.getGatewayId = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};
/**
* @param {string} value
* @return {!proto.api.RemoveGatewayFromMulticastGroupRequest} returns this
*/
proto.api.RemoveGatewayFromMulticastGroupRequest.prototype.setGatewayId = function(value) {
return jspb.Message.setProto3StringField(this, 2, value);
};
if (jspb.Message.GENERATE_TO_OBJECT) {
/**
* Creates an object representation of this proto.
@ -3827,4 +4222,12 @@ proto.api.MulticastGroupType = {
CLASS_B: 1
};
/**
* @enum {number}
*/
proto.api.MulticastGroupSchedulingType = {
DELAY: 0,
GPS_TIME: 1
};
goog.object.extend(exports, proto.api);

View File

@ -25,8 +25,11 @@ export class Tenant extends jspb.Message {
getMaxDeviceCount(): number;
setMaxDeviceCount(value: number): void;
getPrivateGateways(): boolean;
setPrivateGateways(value: boolean): void;
getPrivateGatewaysUp(): boolean;
setPrivateGatewaysUp(value: boolean): void;
getPrivateGatewaysDown(): boolean;
setPrivateGatewaysDown(value: boolean): void;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Tenant.AsObject;
@ -46,7 +49,8 @@ export namespace Tenant {
canHaveGateways: boolean,
maxGatewayCount: number,
maxDeviceCount: number,
privateGateways: boolean,
privateGatewaysUp: boolean,
privateGatewaysDown: boolean,
}
}
@ -70,8 +74,11 @@ export class TenantListItem extends jspb.Message {
getCanHaveGateways(): boolean;
setCanHaveGateways(value: boolean): void;
getPrivateGateways(): boolean;
setPrivateGateways(value: boolean): void;
getPrivateGatewaysUp(): boolean;
setPrivateGatewaysUp(value: boolean): void;
getPrivateGatewaysDown(): boolean;
setPrivateGatewaysDown(value: boolean): void;
getMaxGatewayCount(): number;
setMaxGatewayCount(value: number): void;
@ -96,7 +103,8 @@ export namespace TenantListItem {
updatedAt?: google_protobuf_timestamp_pb.Timestamp.AsObject,
name: string,
canHaveGateways: boolean,
privateGateways: boolean,
privateGatewaysUp: boolean,
privateGatewaysDown: boolean,
maxGatewayCount: number,
maxDeviceCount: number,
}

View File

@ -474,7 +474,8 @@ proto.api.Tenant.toObject = function(includeInstance, msg) {
canHaveGateways: jspb.Message.getBooleanFieldWithDefault(msg, 4, false),
maxGatewayCount: jspb.Message.getFieldWithDefault(msg, 5, 0),
maxDeviceCount: jspb.Message.getFieldWithDefault(msg, 6, 0),
privateGateways: jspb.Message.getBooleanFieldWithDefault(msg, 7, false)
privateGatewaysUp: jspb.Message.getBooleanFieldWithDefault(msg, 7, false),
privateGatewaysDown: jspb.Message.getBooleanFieldWithDefault(msg, 8, false)
};
if (includeInstance) {
@ -537,7 +538,11 @@ proto.api.Tenant.deserializeBinaryFromReader = function(msg, reader) {
break;
case 7:
var value = /** @type {boolean} */ (reader.readBool());
msg.setPrivateGateways(value);
msg.setPrivateGatewaysUp(value);
break;
case 8:
var value = /** @type {boolean} */ (reader.readBool());
msg.setPrivateGatewaysDown(value);
break;
default:
reader.skipField();
@ -610,13 +615,20 @@ proto.api.Tenant.serializeBinaryToWriter = function(message, writer) {
f
);
}
f = message.getPrivateGateways();
f = message.getPrivateGatewaysUp();
if (f) {
writer.writeBool(
7,
f
);
}
f = message.getPrivateGatewaysDown();
if (f) {
writer.writeBool(
8,
f
);
}
};
@ -729,10 +741,10 @@ proto.api.Tenant.prototype.setMaxDeviceCount = function(value) {
/**
* optional bool private_gateways = 7;
* optional bool private_gateways_up = 7;
* @return {boolean}
*/
proto.api.Tenant.prototype.getPrivateGateways = function() {
proto.api.Tenant.prototype.getPrivateGatewaysUp = function() {
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 7, false));
};
@ -741,11 +753,29 @@ proto.api.Tenant.prototype.getPrivateGateways = function() {
* @param {boolean} value
* @return {!proto.api.Tenant} returns this
*/
proto.api.Tenant.prototype.setPrivateGateways = function(value) {
proto.api.Tenant.prototype.setPrivateGatewaysUp = function(value) {
return jspb.Message.setProto3BooleanField(this, 7, value);
};
/**
* optional bool private_gateways_down = 8;
* @return {boolean}
*/
proto.api.Tenant.prototype.getPrivateGatewaysDown = function() {
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false));
};
/**
* @param {boolean} value
* @return {!proto.api.Tenant} returns this
*/
proto.api.Tenant.prototype.setPrivateGatewaysDown = function(value) {
return jspb.Message.setProto3BooleanField(this, 8, value);
};
@ -783,7 +813,8 @@ proto.api.TenantListItem.toObject = function(includeInstance, msg) {
updatedAt: (f = msg.getUpdatedAt()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
name: jspb.Message.getFieldWithDefault(msg, 4, ""),
canHaveGateways: jspb.Message.getBooleanFieldWithDefault(msg, 5, false),
privateGateways: jspb.Message.getBooleanFieldWithDefault(msg, 6, false),
privateGatewaysUp: jspb.Message.getBooleanFieldWithDefault(msg, 6, false),
privateGatewaysDown: jspb.Message.getBooleanFieldWithDefault(msg, 9, false),
maxGatewayCount: jspb.Message.getFieldWithDefault(msg, 7, 0),
maxDeviceCount: jspb.Message.getFieldWithDefault(msg, 8, 0)
};
@ -846,7 +877,11 @@ proto.api.TenantListItem.deserializeBinaryFromReader = function(msg, reader) {
break;
case 6:
var value = /** @type {boolean} */ (reader.readBool());
msg.setPrivateGateways(value);
msg.setPrivateGatewaysUp(value);
break;
case 9:
var value = /** @type {boolean} */ (reader.readBool());
msg.setPrivateGatewaysDown(value);
break;
case 7:
var value = /** @type {number} */ (reader.readUint32());
@ -922,13 +957,20 @@ proto.api.TenantListItem.serializeBinaryToWriter = function(message, writer) {
f
);
}
f = message.getPrivateGateways();
f = message.getPrivateGatewaysUp();
if (f) {
writer.writeBool(
6,
f
);
}
f = message.getPrivateGatewaysDown();
if (f) {
writer.writeBool(
9,
f
);
}
f = message.getMaxGatewayCount();
if (f !== 0) {
writer.writeUint32(
@ -1075,10 +1117,10 @@ proto.api.TenantListItem.prototype.setCanHaveGateways = function(value) {
/**
* optional bool private_gateways = 6;
* optional bool private_gateways_up = 6;
* @return {boolean}
*/
proto.api.TenantListItem.prototype.getPrivateGateways = function() {
proto.api.TenantListItem.prototype.getPrivateGatewaysUp = function() {
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 6, false));
};
@ -1087,11 +1129,29 @@ proto.api.TenantListItem.prototype.getPrivateGateways = function() {
* @param {boolean} value
* @return {!proto.api.TenantListItem} returns this
*/
proto.api.TenantListItem.prototype.setPrivateGateways = function(value) {
proto.api.TenantListItem.prototype.setPrivateGatewaysUp = function(value) {
return jspb.Message.setProto3BooleanField(this, 6, value);
};
/**
* optional bool private_gateways_down = 9;
* @return {boolean}
*/
proto.api.TenantListItem.prototype.getPrivateGatewaysDown = function() {
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 9, false));
};
/**
* @param {boolean} value
* @return {!proto.api.TenantListItem} returns this
*/
proto.api.TenantListItem.prototype.setPrivateGatewaysDown = function(value) {
return jspb.Message.setProto3BooleanField(this, 9, value);
};
/**
* optional uint32 max_gateway_count = 7;
* @return {number}

2
api/js/package.json vendored
View File

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

View File

@ -9,7 +9,7 @@ plugins {
}
group = "io.chirpstack"
version = "4.2.0"
version = "4.3.0-test.2"
repositories {
mavenCentral()

59
api/md/api/api.md vendored
View File

@ -182,6 +182,7 @@
- [api/multicast_group.proto](#api_multicast_group-proto)
- [AddDeviceToMulticastGroupRequest](#api-AddDeviceToMulticastGroupRequest)
- [AddGatewayToMulticastGroupRequest](#api-AddGatewayToMulticastGroupRequest)
- [CreateMulticastGroupRequest](#api-CreateMulticastGroupRequest)
- [CreateMulticastGroupResponse](#api-CreateMulticastGroupResponse)
- [DeleteMulticastGroupRequest](#api-DeleteMulticastGroupRequest)
@ -198,8 +199,10 @@
- [MulticastGroupListItem](#api-MulticastGroupListItem)
- [MulticastGroupQueueItem](#api-MulticastGroupQueueItem)
- [RemoveDeviceFromMulticastGroupRequest](#api-RemoveDeviceFromMulticastGroupRequest)
- [RemoveGatewayFromMulticastGroupRequest](#api-RemoveGatewayFromMulticastGroupRequest)
- [UpdateMulticastGroupRequest](#api-UpdateMulticastGroupRequest)
- [MulticastGroupSchedulingType](#api-MulticastGroupSchedulingType)
- [MulticastGroupType](#api-MulticastGroupType)
- [MulticastGroupService](#api-MulticastGroupService)
@ -2939,6 +2942,7 @@ DeviceProfileService is the service providing API methods for managing device-pr
| offset | [uint32](#uint32) | | Offset in the result-set (for pagination). |
| search | [string](#string) | | If set, the given string will be used to search on name (optional). |
| tenant_id | [string](#string) | | Tenant ID (UUID) to filter gateways on. To list all gateways as a global admin user, this field can be left blank. |
| multicast_group_id | [string](#string) | | Multicast-group ID (UUID) to filter gateways on. |
@ -3037,6 +3041,22 @@ GatewayService is the service providing API methods for managing gateways.
<a name="api-AddGatewayToMulticastGroupRequest"></a>
### AddGatewayToMulticastGroupRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| multicast_group_id | [string](#string) | | Multicast group ID. |
| gateway_id | [string](#string) | | Gateway ID (HEX encoded). |
<a name="api-CreateMulticastGroupRequest"></a>
### CreateMulticastGroupRequest
@ -3243,6 +3263,7 @@ GatewayService is the service providing API methods for managing gateways.
| dr | [uint32](#uint32) | | Data-rate. |
| frequency | [uint32](#uint32) | | Frequency (Hz). |
| class_b_ping_slot_period | [uint32](#uint32) | | Ping-slot period (only for Class-B). |
| class_c_scheduling_type | [MulticastGroupSchedulingType](#api-MulticastGroupSchedulingType) | | Scheduling type (only for Class-C). |
@ -3303,6 +3324,22 @@ GatewayService is the service providing API methods for managing gateways.
<a name="api-RemoveGatewayFromMulticastGroupRequest"></a>
### RemoveGatewayFromMulticastGroupRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| multicast_group_id | [string](#string) | | Multicast group ID. |
| gateway_id | [string](#string) | | Gateway ID (HEX encoded). |
<a name="api-UpdateMulticastGroupRequest"></a>
### UpdateMulticastGroupRequest
@ -3320,6 +3357,18 @@ GatewayService is the service providing API methods for managing gateways.
<a name="api-MulticastGroupSchedulingType"></a>
### MulticastGroupSchedulingType
| Name | Number | Description |
| ---- | ------ | ----------- |
| DELAY | 0 | Delay. If multicast downlinks must be sent through multiple gateways, then these will be sent one by one with a delay between each gateway. |
| GPS_TIME | 1 | Time. If multicast downlinks must be sent through multiple gateways, then these will be sent simultaneously using GPS time synchronization. Note that this does require GPS time-synchronized LoRa gateways. |
<a name="api-MulticastGroupType"></a>
### MulticastGroupType
@ -3350,7 +3399,9 @@ MulticastGroupService is the service managing multicast-groups.
| List | [ListMulticastGroupsRequest](#api-ListMulticastGroupsRequest) | [ListMulticastGroupsResponse](#api-ListMulticastGroupsResponse) | List the available multicast groups. |
| AddDevice | [AddDeviceToMulticastGroupRequest](#api-AddDeviceToMulticastGroupRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Add a device to the multicast group. |
| RemoveDevice | [RemoveDeviceFromMulticastGroupRequest](#api-RemoveDeviceFromMulticastGroupRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Remove a device from the multicast group. |
| Enqueue | [EnqueueMulticastGroupQueueItemRequest](#api-EnqueueMulticastGroupQueueItemRequest) | [EnqueueMulticastGroupQueueItemResponse](#api-EnqueueMulticastGroupQueueItemResponse) | Add the given item to the multcast group queue. |
| AddGateway | [AddGatewayToMulticastGroupRequest](#api-AddGatewayToMulticastGroupRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Add a gateway to the multicast group. |
| RemoveGateway | [RemoveGatewayFromMulticastGroupRequest](#api-RemoveGatewayFromMulticastGroupRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Remove a gateway from the multicast group. |
| Enqueue | [EnqueueMulticastGroupQueueItemRequest](#api-EnqueueMulticastGroupQueueItemRequest) | [EnqueueMulticastGroupQueueItemResponse](#api-EnqueueMulticastGroupQueueItemResponse) | Add the given item to the multicast group queue. |
| FlushQueue | [FlushMulticastGroupQueueRequest](#api-FlushMulticastGroupQueueRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | Flush the queue for the given multicast group. |
| ListQueue | [ListMulticastGroupQueueRequest](#api-ListMulticastGroupQueueRequest) | [ListMulticastGroupQueueResponse](#api-ListMulticastGroupQueueResponse) | List the items in the multicast group queue. |
@ -3587,7 +3638,8 @@ MulticastGroupService is the service managing multicast-groups.
| can_have_gateways | [bool](#bool) | | Can the tenant create and &#34;own&#34; Gateways? |
| max_gateway_count | [uint32](#uint32) | | Max. gateway count for tenant. When set to 0, the tenant can have unlimited gateways. |
| max_device_count | [uint32](#uint32) | | Max. device count for tenant. When set to 0, the tenant can have unlimited devices. |
| private_gateways | [bool](#bool) | | Private gateways. Gateways under this tenant are private. |
| private_gateways_up | [bool](#bool) | | Private gateways (uplink). If enabled, then uplink messages will not be shared with other tenants. |
| private_gateways_down | [bool](#bool) | | Private gateways (downlink). If enabled, then other tenants will not be able to schedule downlink messages through the gateways of this tenant. For example, in case you do want to share uplinks with other tenants (private_gateways_up=false), but you want to prevent other tenants from using gateway airtime. |
@ -3607,7 +3659,8 @@ MulticastGroupService is the service managing multicast-groups.
| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Last update timestamp. |
| name | [string](#string) | | Tenant name. |
| can_have_gateways | [bool](#bool) | | Can the tenant create and &#34;own&#34; Gateways? |
| private_gateways | [bool](#bool) | | Gateways are private to tenant. |
| private_gateways_up | [bool](#bool) | | Private gateways (uplink). |
| private_gateways_down | [bool](#bool) | | Private gateways (downlink). |
| max_gateway_count | [uint32](#uint32) | | Max gateway count. 0 = unlimited. |
| max_device_count | [uint32](#uint32) | | Max device count. 0 = unlimited. |

View File

@ -6,6 +6,7 @@ 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 = "ApplicationProto";
option csharp_namespace = "Chirpstack.Api";
import "google/api/annotations.proto";
import "google/protobuf/timestamp.proto";

View File

@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
option java_package = "io.chirpstack.api";
option java_multiple_files = true;
option java_outer_classname = "DeviceProto";
option csharp_namespace = "Chirpstack.Api";
import "common/common.proto";
import "google/api/annotations.proto";

View File

@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
option java_package = "io.chirpstack.api";
option java_multiple_files = true;
option java_outer_classname = "DeviceProfileProto";
option csharp_namespace = "Chirpstack.Api";
import "google/api/annotations.proto";
import "google/protobuf/timestamp.proto";

View File

@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
option java_package = "io.chirpstack.api";
option java_multiple_files = true;
option java_outer_classname = "DeviceProfileTemplateProto";
option csharp_namespace = "Chirpstack.Api";
import "google/api/annotations.proto";
import "google/protobuf/timestamp.proto";

View File

@ -6,6 +6,7 @@ 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";

View File

@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
option java_package = "io.chirpstack.api";
option java_multiple_files = true;
option java_outer_classname = "GatewayProto";
option csharp_namespace = "Chirpstack.Api";
import "google/api/annotations.proto";
import "google/protobuf/timestamp.proto";
@ -186,6 +187,9 @@ message ListGatewaysRequest {
// Tenant ID (UUID) to filter gateways on.
// To list all gateways as a global admin user, this field can be left blank.
string tenant_id = 4;
// Multicast-group ID (UUID) to filter gateways on.
string multicast_group_id = 5;
}
message ListGatewaysResponse {

View File

@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
option java_package = "io.chirpstack.api";
option java_multiple_files = true;
option java_outer_classname = "InternalProto";
option csharp_namespace = "Chirpstack.Api";
import "google/protobuf/timestamp.proto";
import "google/protobuf/empty.proto";

View File

@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
option java_package = "io.chirpstack.api";
option java_multiple_files = true;
option java_outer_classname = "MulticastGroupProto";
option csharp_namespace = "Chirpstack.Api";
import "google/api/annotations.proto";
import "google/protobuf/timestamp.proto";
@ -67,10 +68,25 @@ service MulticastGroupService {
};
}
// Add the given item to the multcast group queue.
// Add a gateway to the multicast group.
rpc AddGateway(AddGatewayToMulticastGroupRequest) returns (google.protobuf.Empty) {
option(google.api.http) = {
post: "/api/multicast-groups/{multicast_group_id}/gateways"
body: "*"
};
}
// Remove a gateway from the multicast group.
rpc RemoveGateway(RemoveGatewayFromMulticastGroupRequest) returns (google.protobuf.Empty) {
option(google.api.http) = {
delete: "/api/multicast-groups/{multicast_group_id}/gateways/{gateway_id}"
};
}
// Add the given item to the multicast group queue.
rpc Enqueue(EnqueueMulticastGroupQueueItemRequest) returns (EnqueueMulticastGroupQueueItemResponse) {
option(google.api.http) = {
post: "/api/multcast-groups/{queue_item.multicast_group_id}/queue"
post: "/api/multicast-groups/{queue_item.multicast_group_id}/queue"
body: "*"
};
}
@ -98,6 +114,19 @@ enum MulticastGroupType {
CLASS_B = 1;
}
enum MulticastGroupSchedulingType {
// Delay.
// If multicast downlinks must be sent through multiple gateways, then
// these will be sent one by one with a delay between each gateway.
DELAY = 0;
// Time.
// If multicast downlinks must be sent through multiple gateways, then
// these will be sent simultaneously using GPS time synchronization.
// Note that this does require GPS time-synchronized LoRa gateways.
GPS_TIME = 1;
}
message MulticastGroup {
// ID (UUID).
// This will be generated automatically on create.
@ -136,6 +165,9 @@ message MulticastGroup {
// Ping-slot period (only for Class-B).
uint32 class_b_ping_slot_period = 12;
// Scheduling type (only for Class-C).
MulticastGroupSchedulingType class_c_scheduling_type = 13;
}
message MulticastGroupListItem {
@ -232,6 +264,22 @@ message RemoveDeviceFromMulticastGroupRequest {
string dev_eui = 2;
}
message AddGatewayToMulticastGroupRequest {
// Multicast group ID.
string multicast_group_id = 1;
// Gateway ID (HEX encoded).
string gateway_id = 2;
}
message RemoveGatewayFromMulticastGroupRequest {
// Multicast group ID.
string multicast_group_id = 1;
// Gateway ID (HEX encoded).
string gateway_id = 2;
}
message MulticastGroupQueueItem {
// Multicast group ID.
string multicast_group_id = 1;

View File

@ -6,6 +6,7 @@ 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";

View File

@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
option java_package = "io.chirpstack.api";
option java_multiple_files = true;
option java_outer_classname = "TenantProto";
option csharp_namespace = "Chirpstack.Api";
import "google/api/annotations.proto";
import "google/protobuf/timestamp.proto";
@ -111,9 +112,16 @@ message Tenant {
// When set to 0, the tenant can have unlimited devices.
uint32 max_device_count = 6;
// Private gateways.
// Gateways under this tenant are private.
bool private_gateways = 7;
// Private gateways (uplink).
// If enabled, then uplink messages will not be shared with other tenants.
bool private_gateways_up = 7;
// Private gateways (downlink).
// If enabled, then other tenants will not be able to schedule downlink
// messages through the gateways of this tenant. For example, in case you
// do want to share uplinks with other tenants (private_gateways_up=false),
// but you want to prevent other tenants from using gateway airtime.
bool private_gateways_down = 8;
}
message TenantListItem {
@ -132,8 +140,11 @@ message TenantListItem {
// Can the tenant create and "own" Gateways?
bool can_have_gateways = 5;
// Gateways are private to tenant.
bool private_gateways = 6;
// Private gateways (uplink).
bool private_gateways_up = 6;
// Private gateways (downlink).
bool private_gateways_down = 9;
// Max gateway count.
// 0 = unlimited.

View File

@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
option java_package = "io.chirpstack.api";
option java_multiple_files = true;
option java_outer_classname = "UserProto";
option csharp_namespace = "Chirpstack.Api";
import "google/api/annotations.proto";
import "google/protobuf/timestamp.proto";

View File

@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/common";
option java_package = "io.chirpstack.api";
option java_multiple_files = true;
option java_outer_classname = "CommonProto";
option csharp_namespace = "Chirpstack.Common";
import "google/protobuf/timestamp.proto";

View File

@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/gw";
option java_package = "io.chirpstack.api.gw";
option java_multiple_files = true;
option java_outer_classname = "GatewayProto";
option csharp_namespace = "Chirpstack.Gateway";
import "common/common.proto";
import "google/protobuf/timestamp.proto";

View File

@ -6,6 +6,7 @@ option go_package = "github.com/brocaar/chirpstack/api/go/v4/integration";
option java_package = "io.chirpstack.api.integration";
option java_multiple_files = true;
option java_outer_classname = "IntegrationProto";
option csharp_namespace = "Chirpstack.Integration";
import "common/common.proto";
import "gw/gw.proto";

View File

@ -196,6 +196,15 @@ message DeviceGatewayRxInfoItem {
// Context blob.
bytes context = 6;
// Gateway is private (uplink).
bool is_private_up = 7;
// Gateway is private (downlink).
bool is_private_down = 8;
// Tenant ID (UUID).
bytes tenant_id = 9;
}
message DownlinkFrame {

View File

@ -6,6 +6,7 @@ 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";

View File

@ -6,6 +6,7 @@ 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 = "ApplicationProto";
option csharp_namespace = "Chirpstack.Api";
import "google/api/annotations.proto";
import "google/protobuf/timestamp.proto";

View File

@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
option java_package = "io.chirpstack.api";
option java_multiple_files = true;
option java_outer_classname = "DeviceProto";
option csharp_namespace = "Chirpstack.Api";
import "chirpstack-api/common/common.proto";
import "google/api/annotations.proto";

View File

@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
option java_package = "io.chirpstack.api";
option java_multiple_files = true;
option java_outer_classname = "DeviceProfileProto";
option csharp_namespace = "Chirpstack.Api";
import "google/api/annotations.proto";
import "google/protobuf/timestamp.proto";

View File

@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
option java_package = "io.chirpstack.api";
option java_multiple_files = true;
option java_outer_classname = "DeviceProfileTemplateProto";
option csharp_namespace = "Chirpstack.Api";
import "google/api/annotations.proto";
import "google/protobuf/timestamp.proto";

View File

@ -6,6 +6,7 @@ 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";

View File

@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
option java_package = "io.chirpstack.api";
option java_multiple_files = true;
option java_outer_classname = "GatewayProto";
option csharp_namespace = "Chirpstack.Api";
import "google/api/annotations.proto";
import "google/protobuf/timestamp.proto";
@ -186,6 +187,9 @@ message ListGatewaysRequest {
// Tenant ID (UUID) to filter gateways on.
// To list all gateways as a global admin user, this field can be left blank.
string tenant_id = 4;
// Multicast-group ID (UUID) to filter gateways on.
string multicast_group_id = 5;
}
message ListGatewaysResponse {

View File

@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
option java_package = "io.chirpstack.api";
option java_multiple_files = true;
option java_outer_classname = "InternalProto";
option csharp_namespace = "Chirpstack.Api";
import "google/protobuf/timestamp.proto";
import "google/protobuf/empty.proto";

View File

@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
option java_package = "io.chirpstack.api";
option java_multiple_files = true;
option java_outer_classname = "MulticastGroupProto";
option csharp_namespace = "Chirpstack.Api";
import "google/api/annotations.proto";
import "google/protobuf/timestamp.proto";
@ -67,10 +68,25 @@ service MulticastGroupService {
};
}
// Add the given item to the multcast group queue.
// Add a gateway to the multicast group.
rpc AddGateway(AddGatewayToMulticastGroupRequest) returns (google.protobuf.Empty) {
option(google.api.http) = {
post: "/api/multicast-groups/{multicast_group_id}/gateways"
body: "*"
};
}
// Remove a gateway from the multicast group.
rpc RemoveGateway(RemoveGatewayFromMulticastGroupRequest) returns (google.protobuf.Empty) {
option(google.api.http) = {
delete: "/api/multicast-groups/{multicast_group_id}/gateways/{gateway_id}"
};
}
// Add the given item to the multicast group queue.
rpc Enqueue(EnqueueMulticastGroupQueueItemRequest) returns (EnqueueMulticastGroupQueueItemResponse) {
option(google.api.http) = {
post: "/api/multcast-groups/{queue_item.multicast_group_id}/queue"
post: "/api/multicast-groups/{queue_item.multicast_group_id}/queue"
body: "*"
};
}
@ -98,6 +114,19 @@ enum MulticastGroupType {
CLASS_B = 1;
}
enum MulticastGroupSchedulingType {
// Delay.
// If multicast downlinks must be sent through multiple gateways, then
// these will be sent one by one with a delay between each gateway.
DELAY = 0;
// Time.
// If multicast downlinks must be sent through multiple gateways, then
// these will be sent simultaneously using GPS time synchronization.
// Note that this does require GPS time-synchronized LoRa gateways.
GPS_TIME = 1;
}
message MulticastGroup {
// ID (UUID).
// This will be generated automatically on create.
@ -136,6 +165,9 @@ message MulticastGroup {
// Ping-slot period (only for Class-B).
uint32 class_b_ping_slot_period = 12;
// Scheduling type (only for Class-C).
MulticastGroupSchedulingType class_c_scheduling_type = 13;
}
message MulticastGroupListItem {
@ -232,6 +264,22 @@ message RemoveDeviceFromMulticastGroupRequest {
string dev_eui = 2;
}
message AddGatewayToMulticastGroupRequest {
// Multicast group ID.
string multicast_group_id = 1;
// Gateway ID (HEX encoded).
string gateway_id = 2;
}
message RemoveGatewayFromMulticastGroupRequest {
// Multicast group ID.
string multicast_group_id = 1;
// Gateway ID (HEX encoded).
string gateway_id = 2;
}
message MulticastGroupQueueItem {
// Multicast group ID.
string multicast_group_id = 1;

View File

@ -6,6 +6,7 @@ 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";

View File

@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
option java_package = "io.chirpstack.api";
option java_multiple_files = true;
option java_outer_classname = "TenantProto";
option csharp_namespace = "Chirpstack.Api";
import "google/api/annotations.proto";
import "google/protobuf/timestamp.proto";
@ -111,9 +112,16 @@ message Tenant {
// When set to 0, the tenant can have unlimited devices.
uint32 max_device_count = 6;
// Private gateways.
// Gateways under this tenant are private.
bool private_gateways = 7;
// Private gateways (uplink).
// If enabled, then uplink messages will not be shared with other tenants.
bool private_gateways_up = 7;
// Private gateways (downlink).
// If enabled, then other tenants will not be able to schedule downlink
// messages through the gateways of this tenant. For example, in case you
// do want to share uplinks with other tenants (private_gateways_up=false),
// but you want to prevent other tenants from using gateway airtime.
bool private_gateways_down = 8;
}
message TenantListItem {
@ -132,8 +140,11 @@ message TenantListItem {
// Can the tenant create and "own" Gateways?
bool can_have_gateways = 5;
// Gateways are private to tenant.
bool private_gateways = 6;
// Private gateways (uplink).
bool private_gateways_up = 6;
// Private gateways (downlink).
bool private_gateways_down = 9;
// Max gateway count.
// 0 = unlimited.

View File

@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
option java_package = "io.chirpstack.api";
option java_multiple_files = true;
option java_outer_classname = "UserProto";
option csharp_namespace = "Chirpstack.Api";
import "google/api/annotations.proto";
import "google/protobuf/timestamp.proto";

View File

@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/common";
option java_package = "io.chirpstack.api";
option java_multiple_files = true;
option java_outer_classname = "CommonProto";
option csharp_namespace = "Chirpstack.Common";
import "google/protobuf/timestamp.proto";

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