mirror of
https://github.com/chirpstack/chirpstack.git
synced 2025-04-17 20:50:14 +00:00
Compare commits
27 Commits
v4.6.0
...
v4.7.0-tes
Author | SHA1 | Date | |
---|---|---|---|
cc47958839 | |||
3b7ab175b4 | |||
f248379259 | |||
e379e8738c | |||
9f67b9c221 | |||
9198d7d51b | |||
f45d12519c | |||
fcd0ef2ca5 | |||
c62f2b6474 | |||
fccf762c39 | |||
f57aa32f23 | |||
fb29d7f58d | |||
f0987af114 | |||
691cee7beb | |||
0ff05a9285 | |||
2774c51ea2 | |||
fe98673bbb | |||
a0d4e80720 | |||
53a570b0b0 | |||
5108f4451c | |||
5b6d037469 | |||
ed06de231e | |||
17f0d8c495 | |||
345d0d8462 | |||
8e2eda3d5b | |||
3f57609981 | |||
8e3f2aa3d2 |
1118
Cargo.lock
generated
1118
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@ -13,3 +13,10 @@ members = [
|
||||
opt-level = 'z'
|
||||
lto = true
|
||||
codegen-units = 1
|
||||
|
||||
[patch.crates-io]
|
||||
# Remove if diesel > 2.1.4
|
||||
diesel = { git = "https://github.com/diesel-rs/diesel.git", rev = "566dcccc6df6adb6ceddef8df5e1806e2a065c40" }
|
||||
|
||||
# Remove if diesel-async > 0.4.1
|
||||
diesel-async = { git = "https://github.com/weiznich/diesel_async.git", rev = "017ebe2fb7a2709ab5db92148dea5ce812a35e09" }
|
||||
|
1
Makefile
1
Makefile
@ -19,6 +19,7 @@ version:
|
||||
sed -i 's/^version.*/version = "$(VERSION)"/g' ./backend/Cargo.toml
|
||||
sed -i 's/^version.*/version = "$(VERSION)"/g' ./lrwn/Cargo.toml
|
||||
sed -i 's/^version.*/version = "$(VERSION)"/g' ./lrwn-filters/Cargo.toml
|
||||
sed -i 's/^version.*/version = "$(VERSION)"/g' ./chirpstack-integration/Cargo.toml
|
||||
sed -i 's/"version.*/"version": "$(VERSION)",/g' ./ui/package.json
|
||||
sed -i 's/"version.*/"version": "$(VERSION)",/g' ./api/grpc-web/package.json
|
||||
sed -i 's/"version.*/"version": "$(VERSION)",/g' ./api/js/package.json
|
||||
|
1033
api/csharp/Chirpstack/api/Internal.cs
vendored
1033
api/csharp/Chirpstack/api/Internal.cs
vendored
File diff suppressed because it is too large
Load Diff
74
api/csharp/Chirpstack/api/InternalGrpc.cs
vendored
74
api/csharp/Chirpstack/api/InternalGrpc.cs
vendored
@ -77,6 +77,10 @@ namespace Chirpstack.Api {
|
||||
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
|
||||
static readonly grpc::Marshaller<global::Chirpstack.Api.OpenIdConnectLoginResponse> __Marshaller_api_OpenIdConnectLoginResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.OpenIdConnectLoginResponse.Parser));
|
||||
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
|
||||
static readonly grpc::Marshaller<global::Chirpstack.Api.OAuth2LoginRequest> __Marshaller_api_OAuth2LoginRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.OAuth2LoginRequest.Parser));
|
||||
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
|
||||
static readonly grpc::Marshaller<global::Chirpstack.Api.OAuth2LoginResponse> __Marshaller_api_OAuth2LoginResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.OAuth2LoginResponse.Parser));
|
||||
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
|
||||
static readonly grpc::Marshaller<global::Chirpstack.Api.GetDevicesSummaryRequest> __Marshaller_api_GetDevicesSummaryRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.GetDevicesSummaryRequest.Parser));
|
||||
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
|
||||
static readonly grpc::Marshaller<global::Chirpstack.Api.GetDevicesSummaryResponse> __Marshaller_api_GetDevicesSummaryResponse = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Chirpstack.Api.GetDevicesSummaryResponse.Parser));
|
||||
@ -163,6 +167,14 @@ namespace Chirpstack.Api {
|
||||
__Marshaller_api_OpenIdConnectLoginRequest,
|
||||
__Marshaller_api_OpenIdConnectLoginResponse);
|
||||
|
||||
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
|
||||
static readonly grpc::Method<global::Chirpstack.Api.OAuth2LoginRequest, global::Chirpstack.Api.OAuth2LoginResponse> __Method_OAuth2Login = new grpc::Method<global::Chirpstack.Api.OAuth2LoginRequest, global::Chirpstack.Api.OAuth2LoginResponse>(
|
||||
grpc::MethodType.Unary,
|
||||
__ServiceName,
|
||||
"OAuth2Login",
|
||||
__Marshaller_api_OAuth2LoginRequest,
|
||||
__Marshaller_api_OAuth2LoginResponse);
|
||||
|
||||
[global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
|
||||
static readonly grpc::Method<global::Chirpstack.Api.GetDevicesSummaryRequest, global::Chirpstack.Api.GetDevicesSummaryResponse> __Method_GetDevicesSummary = new grpc::Method<global::Chirpstack.Api.GetDevicesSummaryRequest, global::Chirpstack.Api.GetDevicesSummaryResponse>(
|
||||
grpc::MethodType.Unary,
|
||||
@ -325,6 +337,18 @@ namespace Chirpstack.Api {
|
||||
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// OAuth2 login.
|
||||
/// </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.OAuth2LoginResponse> OAuth2Login(global::Chirpstack.Api.OAuth2LoginRequest request, grpc::ServerCallContext context)
|
||||
{
|
||||
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// GetDevicesSummary returns an aggregated summary of the devices.
|
||||
/// </summary>
|
||||
@ -826,6 +850,54 @@ namespace Chirpstack.Api {
|
||||
return CallInvoker.AsyncUnaryCall(__Method_OpenIdConnectLogin, null, options, request);
|
||||
}
|
||||
/// <summary>
|
||||
/// OAuth2 login.
|
||||
/// </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.OAuth2LoginResponse OAuth2Login(global::Chirpstack.Api.OAuth2LoginRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
|
||||
{
|
||||
return OAuth2Login(request, new grpc::CallOptions(headers, deadline, cancellationToken));
|
||||
}
|
||||
/// <summary>
|
||||
/// OAuth2 login.
|
||||
/// </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.OAuth2LoginResponse OAuth2Login(global::Chirpstack.Api.OAuth2LoginRequest request, grpc::CallOptions options)
|
||||
{
|
||||
return CallInvoker.BlockingUnaryCall(__Method_OAuth2Login, null, options, request);
|
||||
}
|
||||
/// <summary>
|
||||
/// OAuth2 login.
|
||||
/// </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.OAuth2LoginResponse> OAuth2LoginAsync(global::Chirpstack.Api.OAuth2LoginRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
|
||||
{
|
||||
return OAuth2LoginAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
|
||||
}
|
||||
/// <summary>
|
||||
/// OAuth2 login.
|
||||
/// </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.OAuth2LoginResponse> OAuth2LoginAsync(global::Chirpstack.Api.OAuth2LoginRequest request, grpc::CallOptions options)
|
||||
{
|
||||
return CallInvoker.AsyncUnaryCall(__Method_OAuth2Login, null, options, request);
|
||||
}
|
||||
/// <summary>
|
||||
/// GetDevicesSummary returns an aggregated summary of the devices.
|
||||
/// </summary>
|
||||
/// <param name="request">The request to send to the server.</param>
|
||||
@ -1111,6 +1183,7 @@ namespace Chirpstack.Api {
|
||||
.AddMethod(__Method_ListApiKeys, serviceImpl.ListApiKeys)
|
||||
.AddMethod(__Method_Settings, serviceImpl.Settings)
|
||||
.AddMethod(__Method_OpenIdConnectLogin, serviceImpl.OpenIdConnectLogin)
|
||||
.AddMethod(__Method_OAuth2Login, serviceImpl.OAuth2Login)
|
||||
.AddMethod(__Method_GetDevicesSummary, serviceImpl.GetDevicesSummary)
|
||||
.AddMethod(__Method_GetGatewaysSummary, serviceImpl.GetGatewaysSummary)
|
||||
.AddMethod(__Method_StreamGatewayFrames, serviceImpl.StreamGatewayFrames)
|
||||
@ -1135,6 +1208,7 @@ namespace Chirpstack.Api {
|
||||
serviceBinder.AddMethod(__Method_ListApiKeys, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.ListApiKeysRequest, global::Chirpstack.Api.ListApiKeysResponse>(serviceImpl.ListApiKeys));
|
||||
serviceBinder.AddMethod(__Method_Settings, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Google.Protobuf.WellKnownTypes.Empty, global::Chirpstack.Api.SettingsResponse>(serviceImpl.Settings));
|
||||
serviceBinder.AddMethod(__Method_OpenIdConnectLogin, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.OpenIdConnectLoginRequest, global::Chirpstack.Api.OpenIdConnectLoginResponse>(serviceImpl.OpenIdConnectLogin));
|
||||
serviceBinder.AddMethod(__Method_OAuth2Login, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.OAuth2LoginRequest, global::Chirpstack.Api.OAuth2LoginResponse>(serviceImpl.OAuth2Login));
|
||||
serviceBinder.AddMethod(__Method_GetDevicesSummary, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.GetDevicesSummaryRequest, global::Chirpstack.Api.GetDevicesSummaryResponse>(serviceImpl.GetDevicesSummary));
|
||||
serviceBinder.AddMethod(__Method_GetGatewaysSummary, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Chirpstack.Api.GetGatewaysSummaryRequest, global::Chirpstack.Api.GetGatewaysSummaryResponse>(serviceImpl.GetGatewaysSummary));
|
||||
serviceBinder.AddMethod(__Method_StreamGatewayFrames, serviceImpl == null ? null : new grpc::ServerStreamingServerMethod<global::Chirpstack.Api.StreamGatewayFramesRequest, global::Chirpstack.Api.LogItem>(serviceImpl.StreamGatewayFrames));
|
||||
|
929
api/go/api/internal.pb.go
vendored
929
api/go/api/internal.pb.go
vendored
File diff suppressed because it is too large
Load Diff
39
api/go/api/internal_grpc.pb.go
vendored
39
api/go/api/internal_grpc.pb.go
vendored
@ -28,6 +28,7 @@ const (
|
||||
InternalService_ListApiKeys_FullMethodName = "/api.InternalService/ListApiKeys"
|
||||
InternalService_Settings_FullMethodName = "/api.InternalService/Settings"
|
||||
InternalService_OpenIdConnectLogin_FullMethodName = "/api.InternalService/OpenIdConnectLogin"
|
||||
InternalService_OAuth2Login_FullMethodName = "/api.InternalService/OAuth2Login"
|
||||
InternalService_GetDevicesSummary_FullMethodName = "/api.InternalService/GetDevicesSummary"
|
||||
InternalService_GetGatewaysSummary_FullMethodName = "/api.InternalService/GetGatewaysSummary"
|
||||
InternalService_StreamGatewayFrames_FullMethodName = "/api.InternalService/StreamGatewayFrames"
|
||||
@ -57,6 +58,8 @@ type InternalServiceClient interface {
|
||||
Settings(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*SettingsResponse, error)
|
||||
// OpenId Connect login.
|
||||
OpenIdConnectLogin(ctx context.Context, in *OpenIdConnectLoginRequest, opts ...grpc.CallOption) (*OpenIdConnectLoginResponse, error)
|
||||
// OAuth2 login.
|
||||
OAuth2Login(ctx context.Context, in *OAuth2LoginRequest, opts ...grpc.CallOption) (*OAuth2LoginResponse, error)
|
||||
// GetDevicesSummary returns an aggregated summary of the devices.
|
||||
GetDevicesSummary(ctx context.Context, in *GetDevicesSummaryRequest, opts ...grpc.CallOption) (*GetDevicesSummaryResponse, error)
|
||||
// GetGatewaysSummary returns an aggregated summary of the gateways.
|
||||
@ -153,6 +156,15 @@ func (c *internalServiceClient) OpenIdConnectLogin(ctx context.Context, in *Open
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *internalServiceClient) OAuth2Login(ctx context.Context, in *OAuth2LoginRequest, opts ...grpc.CallOption) (*OAuth2LoginResponse, error) {
|
||||
out := new(OAuth2LoginResponse)
|
||||
err := c.cc.Invoke(ctx, InternalService_OAuth2Login_FullMethodName, in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *internalServiceClient) GetDevicesSummary(ctx context.Context, in *GetDevicesSummaryRequest, opts ...grpc.CallOption) (*GetDevicesSummaryResponse, error) {
|
||||
out := new(GetDevicesSummaryResponse)
|
||||
err := c.cc.Invoke(ctx, InternalService_GetDevicesSummary_FullMethodName, in, out, opts...)
|
||||
@ -305,6 +317,8 @@ type InternalServiceServer interface {
|
||||
Settings(context.Context, *emptypb.Empty) (*SettingsResponse, error)
|
||||
// OpenId Connect login.
|
||||
OpenIdConnectLogin(context.Context, *OpenIdConnectLoginRequest) (*OpenIdConnectLoginResponse, error)
|
||||
// OAuth2 login.
|
||||
OAuth2Login(context.Context, *OAuth2LoginRequest) (*OAuth2LoginResponse, error)
|
||||
// GetDevicesSummary returns an aggregated summary of the devices.
|
||||
GetDevicesSummary(context.Context, *GetDevicesSummaryRequest) (*GetDevicesSummaryResponse, error)
|
||||
// GetGatewaysSummary returns an aggregated summary of the gateways.
|
||||
@ -350,6 +364,9 @@ func (UnimplementedInternalServiceServer) Settings(context.Context, *emptypb.Emp
|
||||
func (UnimplementedInternalServiceServer) OpenIdConnectLogin(context.Context, *OpenIdConnectLoginRequest) (*OpenIdConnectLoginResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method OpenIdConnectLogin not implemented")
|
||||
}
|
||||
func (UnimplementedInternalServiceServer) OAuth2Login(context.Context, *OAuth2LoginRequest) (*OAuth2LoginResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method OAuth2Login not implemented")
|
||||
}
|
||||
func (UnimplementedInternalServiceServer) GetDevicesSummary(context.Context, *GetDevicesSummaryRequest) (*GetDevicesSummaryResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method GetDevicesSummary not implemented")
|
||||
}
|
||||
@ -528,6 +545,24 @@ func _InternalService_OpenIdConnectLogin_Handler(srv interface{}, ctx context.Co
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _InternalService_OAuth2Login_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(OAuth2LoginRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(InternalServiceServer).OAuth2Login(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: InternalService_OAuth2Login_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(InternalServiceServer).OAuth2Login(ctx, req.(*OAuth2LoginRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _InternalService_GetDevicesSummary_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(GetDevicesSummaryRequest)
|
||||
if err := dec(in); err != nil {
|
||||
@ -702,6 +737,10 @@ var InternalService_ServiceDesc = grpc.ServiceDesc{
|
||||
MethodName: "OpenIdConnectLogin",
|
||||
Handler: _InternalService_OpenIdConnectLogin_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "OAuth2Login",
|
||||
Handler: _InternalService_OAuth2Login_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "GetDevicesSummary",
|
||||
Handler: _InternalService_GetDevicesSummary_Handler,
|
||||
|
12
api/grpc-web/api/internal_grpc_web_pb.d.ts
vendored
12
api/grpc-web/api/internal_grpc_web_pb.d.ts
vendored
@ -65,6 +65,13 @@ export class InternalServiceClient {
|
||||
response: api_internal_pb.OpenIdConnectLoginResponse) => void
|
||||
): grpcWeb.ClientReadableStream<api_internal_pb.OpenIdConnectLoginResponse>;
|
||||
|
||||
oAuth2Login(
|
||||
request: api_internal_pb.OAuth2LoginRequest,
|
||||
metadata: grpcWeb.Metadata | undefined,
|
||||
callback: (err: grpcWeb.RpcError,
|
||||
response: api_internal_pb.OAuth2LoginResponse) => void
|
||||
): grpcWeb.ClientReadableStream<api_internal_pb.OAuth2LoginResponse>;
|
||||
|
||||
getDevicesSummary(
|
||||
request: api_internal_pb.GetDevicesSummaryRequest,
|
||||
metadata: grpcWeb.Metadata | undefined,
|
||||
@ -155,6 +162,11 @@ export class InternalServicePromiseClient {
|
||||
metadata?: grpcWeb.Metadata
|
||||
): Promise<api_internal_pb.OpenIdConnectLoginResponse>;
|
||||
|
||||
oAuth2Login(
|
||||
request: api_internal_pb.OAuth2LoginRequest,
|
||||
metadata?: grpcWeb.Metadata
|
||||
): Promise<api_internal_pb.OAuth2LoginResponse>;
|
||||
|
||||
getDevicesSummary(
|
||||
request: api_internal_pb.GetDevicesSummaryRequest,
|
||||
metadata?: grpcWeb.Metadata
|
||||
|
61
api/grpc-web/api/internal_grpc_web_pb.js
vendored
61
api/grpc-web/api/internal_grpc_web_pb.js
vendored
@ -570,6 +570,67 @@ proto.api.InternalServicePromiseClient.prototype.openIdConnectLogin =
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @const
|
||||
* @type {!grpc.web.MethodDescriptor<
|
||||
* !proto.api.OAuth2LoginRequest,
|
||||
* !proto.api.OAuth2LoginResponse>}
|
||||
*/
|
||||
const methodDescriptor_InternalService_OAuth2Login = new grpc.web.MethodDescriptor(
|
||||
'/api.InternalService/OAuth2Login',
|
||||
grpc.web.MethodType.UNARY,
|
||||
proto.api.OAuth2LoginRequest,
|
||||
proto.api.OAuth2LoginResponse,
|
||||
/**
|
||||
* @param {!proto.api.OAuth2LoginRequest} request
|
||||
* @return {!Uint8Array}
|
||||
*/
|
||||
function(request) {
|
||||
return request.serializeBinary();
|
||||
},
|
||||
proto.api.OAuth2LoginResponse.deserializeBinary
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
* @param {!proto.api.OAuth2LoginRequest} request The
|
||||
* request proto
|
||||
* @param {?Object<string, string>} metadata User defined
|
||||
* call metadata
|
||||
* @param {function(?grpc.web.RpcError, ?proto.api.OAuth2LoginResponse)}
|
||||
* callback The callback function(error, response)
|
||||
* @return {!grpc.web.ClientReadableStream<!proto.api.OAuth2LoginResponse>|undefined}
|
||||
* The XHR Node Readable Stream
|
||||
*/
|
||||
proto.api.InternalServiceClient.prototype.oAuth2Login =
|
||||
function(request, metadata, callback) {
|
||||
return this.client_.rpcCall(this.hostname_ +
|
||||
'/api.InternalService/OAuth2Login',
|
||||
request,
|
||||
metadata || {},
|
||||
methodDescriptor_InternalService_OAuth2Login,
|
||||
callback);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {!proto.api.OAuth2LoginRequest} request The
|
||||
* request proto
|
||||
* @param {?Object<string, string>=} metadata User defined
|
||||
* call metadata
|
||||
* @return {!Promise<!proto.api.OAuth2LoginResponse>}
|
||||
* Promise that resolves to the response
|
||||
*/
|
||||
proto.api.InternalServicePromiseClient.prototype.oAuth2Login =
|
||||
function(request, metadata) {
|
||||
return this.client_.unaryCall(this.hostname_ +
|
||||
'/api.InternalService/OAuth2Login',
|
||||
request,
|
||||
metadata || {},
|
||||
methodDescriptor_InternalService_OAuth2Login);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @const
|
||||
* @type {!grpc.web.MethodDescriptor<
|
||||
|
84
api/grpc-web/api/internal_pb.d.ts
vendored
84
api/grpc-web/api/internal_pb.d.ts
vendored
@ -364,6 +364,11 @@ export class SettingsResponse extends jspb.Message {
|
||||
hasOpenidConnect(): boolean;
|
||||
clearOpenidConnect(): SettingsResponse;
|
||||
|
||||
getOauth2(): OAuth2 | undefined;
|
||||
setOauth2(value?: OAuth2): SettingsResponse;
|
||||
hasOauth2(): boolean;
|
||||
clearOauth2(): SettingsResponse;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): SettingsResponse.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: SettingsResponse): SettingsResponse.AsObject;
|
||||
@ -375,6 +380,7 @@ export class SettingsResponse extends jspb.Message {
|
||||
export namespace SettingsResponse {
|
||||
export type AsObject = {
|
||||
openidConnect?: OpenIdConnect.AsObject,
|
||||
oauth2?: OAuth2.AsObject,
|
||||
}
|
||||
}
|
||||
|
||||
@ -391,6 +397,9 @@ export class OpenIdConnect extends jspb.Message {
|
||||
getLogoutUrl(): string;
|
||||
setLogoutUrl(value: string): OpenIdConnect;
|
||||
|
||||
getLoginRedirect(): boolean;
|
||||
setLoginRedirect(value: boolean): OpenIdConnect;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): OpenIdConnect.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: OpenIdConnect): OpenIdConnect.AsObject;
|
||||
@ -405,6 +414,41 @@ export namespace OpenIdConnect {
|
||||
loginUrl: string,
|
||||
loginLabel: string,
|
||||
logoutUrl: string,
|
||||
loginRedirect: boolean,
|
||||
}
|
||||
}
|
||||
|
||||
export class OAuth2 extends jspb.Message {
|
||||
getEnabled(): boolean;
|
||||
setEnabled(value: boolean): OAuth2;
|
||||
|
||||
getLoginUrl(): string;
|
||||
setLoginUrl(value: string): OAuth2;
|
||||
|
||||
getLoginLabel(): string;
|
||||
setLoginLabel(value: string): OAuth2;
|
||||
|
||||
getLogoutUrl(): string;
|
||||
setLogoutUrl(value: string): OAuth2;
|
||||
|
||||
getLoginRedirect(): boolean;
|
||||
setLoginRedirect(value: boolean): OAuth2;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): OAuth2.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: OAuth2): OAuth2.AsObject;
|
||||
static serializeBinaryToWriter(message: OAuth2, writer: jspb.BinaryWriter): void;
|
||||
static deserializeBinary(bytes: Uint8Array): OAuth2;
|
||||
static deserializeBinaryFromReader(message: OAuth2, reader: jspb.BinaryReader): OAuth2;
|
||||
}
|
||||
|
||||
export namespace OAuth2 {
|
||||
export type AsObject = {
|
||||
enabled: boolean,
|
||||
loginUrl: string,
|
||||
loginLabel: string,
|
||||
logoutUrl: string,
|
||||
loginRedirect: boolean,
|
||||
}
|
||||
}
|
||||
|
||||
@ -448,6 +492,46 @@ export namespace OpenIdConnectLoginResponse {
|
||||
}
|
||||
}
|
||||
|
||||
export class OAuth2LoginRequest extends jspb.Message {
|
||||
getCode(): string;
|
||||
setCode(value: string): OAuth2LoginRequest;
|
||||
|
||||
getState(): string;
|
||||
setState(value: string): OAuth2LoginRequest;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): OAuth2LoginRequest.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: OAuth2LoginRequest): OAuth2LoginRequest.AsObject;
|
||||
static serializeBinaryToWriter(message: OAuth2LoginRequest, writer: jspb.BinaryWriter): void;
|
||||
static deserializeBinary(bytes: Uint8Array): OAuth2LoginRequest;
|
||||
static deserializeBinaryFromReader(message: OAuth2LoginRequest, reader: jspb.BinaryReader): OAuth2LoginRequest;
|
||||
}
|
||||
|
||||
export namespace OAuth2LoginRequest {
|
||||
export type AsObject = {
|
||||
code: string,
|
||||
state: string,
|
||||
}
|
||||
}
|
||||
|
||||
export class OAuth2LoginResponse extends jspb.Message {
|
||||
getToken(): string;
|
||||
setToken(value: string): OAuth2LoginResponse;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): OAuth2LoginResponse.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: OAuth2LoginResponse): OAuth2LoginResponse.AsObject;
|
||||
static serializeBinaryToWriter(message: OAuth2LoginResponse, writer: jspb.BinaryWriter): void;
|
||||
static deserializeBinary(bytes: Uint8Array): OAuth2LoginResponse;
|
||||
static deserializeBinaryFromReader(message: OAuth2LoginResponse, reader: jspb.BinaryReader): OAuth2LoginResponse;
|
||||
}
|
||||
|
||||
export namespace OAuth2LoginResponse {
|
||||
export type AsObject = {
|
||||
token: string,
|
||||
}
|
||||
}
|
||||
|
||||
export class GetDevicesSummaryRequest extends jspb.Message {
|
||||
getTenantId(): string;
|
||||
setTenantId(value: string): GetDevicesSummaryRequest;
|
||||
|
691
api/grpc-web/api/internal_pb.js
vendored
691
api/grpc-web/api/internal_pb.js
vendored
@ -39,6 +39,9 @@ goog.exportSymbol('proto.api.ListRegionsResponse', null, global);
|
||||
goog.exportSymbol('proto.api.LogItem', null, global);
|
||||
goog.exportSymbol('proto.api.LoginRequest', null, global);
|
||||
goog.exportSymbol('proto.api.LoginResponse', null, global);
|
||||
goog.exportSymbol('proto.api.OAuth2', null, global);
|
||||
goog.exportSymbol('proto.api.OAuth2LoginRequest', null, global);
|
||||
goog.exportSymbol('proto.api.OAuth2LoginResponse', null, global);
|
||||
goog.exportSymbol('proto.api.OpenIdConnect', null, global);
|
||||
goog.exportSymbol('proto.api.OpenIdConnectLoginRequest', null, global);
|
||||
goog.exportSymbol('proto.api.OpenIdConnectLoginResponse', null, global);
|
||||
@ -365,6 +368,27 @@ if (goog.DEBUG && !COMPILED) {
|
||||
*/
|
||||
proto.api.OpenIdConnect.displayName = 'proto.api.OpenIdConnect';
|
||||
}
|
||||
/**
|
||||
* 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.OAuth2 = function(opt_data) {
|
||||
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
|
||||
};
|
||||
goog.inherits(proto.api.OAuth2, jspb.Message);
|
||||
if (goog.DEBUG && !COMPILED) {
|
||||
/**
|
||||
* @public
|
||||
* @override
|
||||
*/
|
||||
proto.api.OAuth2.displayName = 'proto.api.OAuth2';
|
||||
}
|
||||
/**
|
||||
* Generated by JsPbCodeGenerator.
|
||||
* @param {Array=} opt_data Optional initial data array, typically from a
|
||||
@ -407,6 +431,48 @@ if (goog.DEBUG && !COMPILED) {
|
||||
*/
|
||||
proto.api.OpenIdConnectLoginResponse.displayName = 'proto.api.OpenIdConnectLoginResponse';
|
||||
}
|
||||
/**
|
||||
* 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.OAuth2LoginRequest = function(opt_data) {
|
||||
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
|
||||
};
|
||||
goog.inherits(proto.api.OAuth2LoginRequest, jspb.Message);
|
||||
if (goog.DEBUG && !COMPILED) {
|
||||
/**
|
||||
* @public
|
||||
* @override
|
||||
*/
|
||||
proto.api.OAuth2LoginRequest.displayName = 'proto.api.OAuth2LoginRequest';
|
||||
}
|
||||
/**
|
||||
* 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.OAuth2LoginResponse = function(opt_data) {
|
||||
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
|
||||
};
|
||||
goog.inherits(proto.api.OAuth2LoginResponse, jspb.Message);
|
||||
if (goog.DEBUG && !COMPILED) {
|
||||
/**
|
||||
* @public
|
||||
* @override
|
||||
*/
|
||||
proto.api.OAuth2LoginResponse.displayName = 'proto.api.OAuth2LoginResponse';
|
||||
}
|
||||
/**
|
||||
* Generated by JsPbCodeGenerator.
|
||||
* @param {Array=} opt_data Optional initial data array, typically from a
|
||||
@ -3356,7 +3422,8 @@ proto.api.SettingsResponse.prototype.toObject = function(opt_includeInstance) {
|
||||
*/
|
||||
proto.api.SettingsResponse.toObject = function(includeInstance, msg) {
|
||||
var f, obj = {
|
||||
openidConnect: (f = msg.getOpenidConnect()) && proto.api.OpenIdConnect.toObject(includeInstance, f)
|
||||
openidConnect: (f = msg.getOpenidConnect()) && proto.api.OpenIdConnect.toObject(includeInstance, f),
|
||||
oauth2: (f = msg.getOauth2()) && proto.api.OAuth2.toObject(includeInstance, f)
|
||||
};
|
||||
|
||||
if (includeInstance) {
|
||||
@ -3398,6 +3465,11 @@ proto.api.SettingsResponse.deserializeBinaryFromReader = function(msg, reader) {
|
||||
reader.readMessage(value,proto.api.OpenIdConnect.deserializeBinaryFromReader);
|
||||
msg.setOpenidConnect(value);
|
||||
break;
|
||||
case 2:
|
||||
var value = new proto.api.OAuth2;
|
||||
reader.readMessage(value,proto.api.OAuth2.deserializeBinaryFromReader);
|
||||
msg.setOauth2(value);
|
||||
break;
|
||||
default:
|
||||
reader.skipField();
|
||||
break;
|
||||
@ -3435,6 +3507,14 @@ proto.api.SettingsResponse.serializeBinaryToWriter = function(message, writer) {
|
||||
proto.api.OpenIdConnect.serializeBinaryToWriter
|
||||
);
|
||||
}
|
||||
f = message.getOauth2();
|
||||
if (f != null) {
|
||||
writer.writeMessage(
|
||||
2,
|
||||
f,
|
||||
proto.api.OAuth2.serializeBinaryToWriter
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -3475,6 +3555,43 @@ proto.api.SettingsResponse.prototype.hasOpenidConnect = function() {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional OAuth2 oauth2 = 2;
|
||||
* @return {?proto.api.OAuth2}
|
||||
*/
|
||||
proto.api.SettingsResponse.prototype.getOauth2 = function() {
|
||||
return /** @type{?proto.api.OAuth2} */ (
|
||||
jspb.Message.getWrapperField(this, proto.api.OAuth2, 2));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {?proto.api.OAuth2|undefined} value
|
||||
* @return {!proto.api.SettingsResponse} returns this
|
||||
*/
|
||||
proto.api.SettingsResponse.prototype.setOauth2 = function(value) {
|
||||
return jspb.Message.setWrapperField(this, 2, value);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Clears the message field making it undefined.
|
||||
* @return {!proto.api.SettingsResponse} returns this
|
||||
*/
|
||||
proto.api.SettingsResponse.prototype.clearOauth2 = function() {
|
||||
return this.setOauth2(undefined);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Returns whether this field is set.
|
||||
* @return {boolean}
|
||||
*/
|
||||
proto.api.SettingsResponse.prototype.hasOauth2 = function() {
|
||||
return jspb.Message.getField(this, 2) != null;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -3510,7 +3627,8 @@ proto.api.OpenIdConnect.toObject = function(includeInstance, msg) {
|
||||
enabled: jspb.Message.getBooleanFieldWithDefault(msg, 1, false),
|
||||
loginUrl: jspb.Message.getFieldWithDefault(msg, 2, ""),
|
||||
loginLabel: jspb.Message.getFieldWithDefault(msg, 3, ""),
|
||||
logoutUrl: jspb.Message.getFieldWithDefault(msg, 4, "")
|
||||
logoutUrl: jspb.Message.getFieldWithDefault(msg, 4, ""),
|
||||
loginRedirect: jspb.Message.getBooleanFieldWithDefault(msg, 5, false)
|
||||
};
|
||||
|
||||
if (includeInstance) {
|
||||
@ -3563,6 +3681,10 @@ proto.api.OpenIdConnect.deserializeBinaryFromReader = function(msg, reader) {
|
||||
var value = /** @type {string} */ (reader.readString());
|
||||
msg.setLogoutUrl(value);
|
||||
break;
|
||||
case 5:
|
||||
var value = /** @type {boolean} */ (reader.readBool());
|
||||
msg.setLoginRedirect(value);
|
||||
break;
|
||||
default:
|
||||
reader.skipField();
|
||||
break;
|
||||
@ -3620,6 +3742,13 @@ proto.api.OpenIdConnect.serializeBinaryToWriter = function(message, writer) {
|
||||
f
|
||||
);
|
||||
}
|
||||
f = message.getLoginRedirect();
|
||||
if (f) {
|
||||
writer.writeBool(
|
||||
5,
|
||||
f
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -3695,6 +3824,274 @@ proto.api.OpenIdConnect.prototype.setLogoutUrl = function(value) {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional bool login_redirect = 5;
|
||||
* @return {boolean}
|
||||
*/
|
||||
proto.api.OpenIdConnect.prototype.getLoginRedirect = function() {
|
||||
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {boolean} value
|
||||
* @return {!proto.api.OpenIdConnect} returns this
|
||||
*/
|
||||
proto.api.OpenIdConnect.prototype.setLoginRedirect = function(value) {
|
||||
return jspb.Message.setProto3BooleanField(this, 5, 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.OAuth2.prototype.toObject = function(opt_includeInstance) {
|
||||
return proto.api.OAuth2.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.OAuth2} msg The msg instance to transform.
|
||||
* @return {!Object}
|
||||
* @suppress {unusedLocalVariables} f is only used for nested messages
|
||||
*/
|
||||
proto.api.OAuth2.toObject = function(includeInstance, msg) {
|
||||
var f, obj = {
|
||||
enabled: jspb.Message.getBooleanFieldWithDefault(msg, 1, false),
|
||||
loginUrl: jspb.Message.getFieldWithDefault(msg, 2, ""),
|
||||
loginLabel: jspb.Message.getFieldWithDefault(msg, 3, ""),
|
||||
logoutUrl: jspb.Message.getFieldWithDefault(msg, 4, ""),
|
||||
loginRedirect: jspb.Message.getBooleanFieldWithDefault(msg, 5, false)
|
||||
};
|
||||
|
||||
if (includeInstance) {
|
||||
obj.$jspbMessageInstance = msg;
|
||||
}
|
||||
return obj;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Deserializes binary data (in protobuf wire format).
|
||||
* @param {jspb.ByteSource} bytes The bytes to deserialize.
|
||||
* @return {!proto.api.OAuth2}
|
||||
*/
|
||||
proto.api.OAuth2.deserializeBinary = function(bytes) {
|
||||
var reader = new jspb.BinaryReader(bytes);
|
||||
var msg = new proto.api.OAuth2;
|
||||
return proto.api.OAuth2.deserializeBinaryFromReader(msg, reader);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Deserializes binary data (in protobuf wire format) from the
|
||||
* given reader into the given message object.
|
||||
* @param {!proto.api.OAuth2} msg The message object to deserialize into.
|
||||
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
|
||||
* @return {!proto.api.OAuth2}
|
||||
*/
|
||||
proto.api.OAuth2.deserializeBinaryFromReader = function(msg, reader) {
|
||||
while (reader.nextField()) {
|
||||
if (reader.isEndGroup()) {
|
||||
break;
|
||||
}
|
||||
var field = reader.getFieldNumber();
|
||||
switch (field) {
|
||||
case 1:
|
||||
var value = /** @type {boolean} */ (reader.readBool());
|
||||
msg.setEnabled(value);
|
||||
break;
|
||||
case 2:
|
||||
var value = /** @type {string} */ (reader.readString());
|
||||
msg.setLoginUrl(value);
|
||||
break;
|
||||
case 3:
|
||||
var value = /** @type {string} */ (reader.readString());
|
||||
msg.setLoginLabel(value);
|
||||
break;
|
||||
case 4:
|
||||
var value = /** @type {string} */ (reader.readString());
|
||||
msg.setLogoutUrl(value);
|
||||
break;
|
||||
case 5:
|
||||
var value = /** @type {boolean} */ (reader.readBool());
|
||||
msg.setLoginRedirect(value);
|
||||
break;
|
||||
default:
|
||||
reader.skipField();
|
||||
break;
|
||||
}
|
||||
}
|
||||
return msg;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Serializes the message to binary data (in protobuf wire format).
|
||||
* @return {!Uint8Array}
|
||||
*/
|
||||
proto.api.OAuth2.prototype.serializeBinary = function() {
|
||||
var writer = new jspb.BinaryWriter();
|
||||
proto.api.OAuth2.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.OAuth2} message
|
||||
* @param {!jspb.BinaryWriter} writer
|
||||
* @suppress {unusedLocalVariables} f is only used for nested messages
|
||||
*/
|
||||
proto.api.OAuth2.serializeBinaryToWriter = function(message, writer) {
|
||||
var f = undefined;
|
||||
f = message.getEnabled();
|
||||
if (f) {
|
||||
writer.writeBool(
|
||||
1,
|
||||
f
|
||||
);
|
||||
}
|
||||
f = message.getLoginUrl();
|
||||
if (f.length > 0) {
|
||||
writer.writeString(
|
||||
2,
|
||||
f
|
||||
);
|
||||
}
|
||||
f = message.getLoginLabel();
|
||||
if (f.length > 0) {
|
||||
writer.writeString(
|
||||
3,
|
||||
f
|
||||
);
|
||||
}
|
||||
f = message.getLogoutUrl();
|
||||
if (f.length > 0) {
|
||||
writer.writeString(
|
||||
4,
|
||||
f
|
||||
);
|
||||
}
|
||||
f = message.getLoginRedirect();
|
||||
if (f) {
|
||||
writer.writeBool(
|
||||
5,
|
||||
f
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional bool enabled = 1;
|
||||
* @return {boolean}
|
||||
*/
|
||||
proto.api.OAuth2.prototype.getEnabled = function() {
|
||||
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {boolean} value
|
||||
* @return {!proto.api.OAuth2} returns this
|
||||
*/
|
||||
proto.api.OAuth2.prototype.setEnabled = function(value) {
|
||||
return jspb.Message.setProto3BooleanField(this, 1, value);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional string login_url = 2;
|
||||
* @return {string}
|
||||
*/
|
||||
proto.api.OAuth2.prototype.getLoginUrl = function() {
|
||||
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {string} value
|
||||
* @return {!proto.api.OAuth2} returns this
|
||||
*/
|
||||
proto.api.OAuth2.prototype.setLoginUrl = function(value) {
|
||||
return jspb.Message.setProto3StringField(this, 2, value);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional string login_label = 3;
|
||||
* @return {string}
|
||||
*/
|
||||
proto.api.OAuth2.prototype.getLoginLabel = function() {
|
||||
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {string} value
|
||||
* @return {!proto.api.OAuth2} returns this
|
||||
*/
|
||||
proto.api.OAuth2.prototype.setLoginLabel = function(value) {
|
||||
return jspb.Message.setProto3StringField(this, 3, value);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional string logout_url = 4;
|
||||
* @return {string}
|
||||
*/
|
||||
proto.api.OAuth2.prototype.getLogoutUrl = function() {
|
||||
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {string} value
|
||||
* @return {!proto.api.OAuth2} returns this
|
||||
*/
|
||||
proto.api.OAuth2.prototype.setLogoutUrl = function(value) {
|
||||
return jspb.Message.setProto3StringField(this, 4, value);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional bool login_redirect = 5;
|
||||
* @return {boolean}
|
||||
*/
|
||||
proto.api.OAuth2.prototype.getLoginRedirect = function() {
|
||||
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {boolean} value
|
||||
* @return {!proto.api.OAuth2} returns this
|
||||
*/
|
||||
proto.api.OAuth2.prototype.setLoginRedirect = function(value) {
|
||||
return jspb.Message.setProto3BooleanField(this, 5, value);
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -3988,6 +4385,296 @@ proto.api.OpenIdConnectLoginResponse.prototype.setToken = function(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.OAuth2LoginRequest.prototype.toObject = function(opt_includeInstance) {
|
||||
return proto.api.OAuth2LoginRequest.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.OAuth2LoginRequest} msg The msg instance to transform.
|
||||
* @return {!Object}
|
||||
* @suppress {unusedLocalVariables} f is only used for nested messages
|
||||
*/
|
||||
proto.api.OAuth2LoginRequest.toObject = function(includeInstance, msg) {
|
||||
var f, obj = {
|
||||
code: jspb.Message.getFieldWithDefault(msg, 1, ""),
|
||||
state: 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.OAuth2LoginRequest}
|
||||
*/
|
||||
proto.api.OAuth2LoginRequest.deserializeBinary = function(bytes) {
|
||||
var reader = new jspb.BinaryReader(bytes);
|
||||
var msg = new proto.api.OAuth2LoginRequest;
|
||||
return proto.api.OAuth2LoginRequest.deserializeBinaryFromReader(msg, reader);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Deserializes binary data (in protobuf wire format) from the
|
||||
* given reader into the given message object.
|
||||
* @param {!proto.api.OAuth2LoginRequest} msg The message object to deserialize into.
|
||||
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
|
||||
* @return {!proto.api.OAuth2LoginRequest}
|
||||
*/
|
||||
proto.api.OAuth2LoginRequest.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.setCode(value);
|
||||
break;
|
||||
case 2:
|
||||
var value = /** @type {string} */ (reader.readString());
|
||||
msg.setState(value);
|
||||
break;
|
||||
default:
|
||||
reader.skipField();
|
||||
break;
|
||||
}
|
||||
}
|
||||
return msg;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Serializes the message to binary data (in protobuf wire format).
|
||||
* @return {!Uint8Array}
|
||||
*/
|
||||
proto.api.OAuth2LoginRequest.prototype.serializeBinary = function() {
|
||||
var writer = new jspb.BinaryWriter();
|
||||
proto.api.OAuth2LoginRequest.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.OAuth2LoginRequest} message
|
||||
* @param {!jspb.BinaryWriter} writer
|
||||
* @suppress {unusedLocalVariables} f is only used for nested messages
|
||||
*/
|
||||
proto.api.OAuth2LoginRequest.serializeBinaryToWriter = function(message, writer) {
|
||||
var f = undefined;
|
||||
f = message.getCode();
|
||||
if (f.length > 0) {
|
||||
writer.writeString(
|
||||
1,
|
||||
f
|
||||
);
|
||||
}
|
||||
f = message.getState();
|
||||
if (f.length > 0) {
|
||||
writer.writeString(
|
||||
2,
|
||||
f
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional string code = 1;
|
||||
* @return {string}
|
||||
*/
|
||||
proto.api.OAuth2LoginRequest.prototype.getCode = function() {
|
||||
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {string} value
|
||||
* @return {!proto.api.OAuth2LoginRequest} returns this
|
||||
*/
|
||||
proto.api.OAuth2LoginRequest.prototype.setCode = function(value) {
|
||||
return jspb.Message.setProto3StringField(this, 1, value);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional string state = 2;
|
||||
* @return {string}
|
||||
*/
|
||||
proto.api.OAuth2LoginRequest.prototype.getState = function() {
|
||||
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {string} value
|
||||
* @return {!proto.api.OAuth2LoginRequest} returns this
|
||||
*/
|
||||
proto.api.OAuth2LoginRequest.prototype.setState = 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.OAuth2LoginResponse.prototype.toObject = function(opt_includeInstance) {
|
||||
return proto.api.OAuth2LoginResponse.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.OAuth2LoginResponse} msg The msg instance to transform.
|
||||
* @return {!Object}
|
||||
* @suppress {unusedLocalVariables} f is only used for nested messages
|
||||
*/
|
||||
proto.api.OAuth2LoginResponse.toObject = function(includeInstance, msg) {
|
||||
var f, obj = {
|
||||
token: jspb.Message.getFieldWithDefault(msg, 1, "")
|
||||
};
|
||||
|
||||
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.OAuth2LoginResponse}
|
||||
*/
|
||||
proto.api.OAuth2LoginResponse.deserializeBinary = function(bytes) {
|
||||
var reader = new jspb.BinaryReader(bytes);
|
||||
var msg = new proto.api.OAuth2LoginResponse;
|
||||
return proto.api.OAuth2LoginResponse.deserializeBinaryFromReader(msg, reader);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Deserializes binary data (in protobuf wire format) from the
|
||||
* given reader into the given message object.
|
||||
* @param {!proto.api.OAuth2LoginResponse} msg The message object to deserialize into.
|
||||
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
|
||||
* @return {!proto.api.OAuth2LoginResponse}
|
||||
*/
|
||||
proto.api.OAuth2LoginResponse.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.setToken(value);
|
||||
break;
|
||||
default:
|
||||
reader.skipField();
|
||||
break;
|
||||
}
|
||||
}
|
||||
return msg;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Serializes the message to binary data (in protobuf wire format).
|
||||
* @return {!Uint8Array}
|
||||
*/
|
||||
proto.api.OAuth2LoginResponse.prototype.serializeBinary = function() {
|
||||
var writer = new jspb.BinaryWriter();
|
||||
proto.api.OAuth2LoginResponse.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.OAuth2LoginResponse} message
|
||||
* @param {!jspb.BinaryWriter} writer
|
||||
* @suppress {unusedLocalVariables} f is only used for nested messages
|
||||
*/
|
||||
proto.api.OAuth2LoginResponse.serializeBinaryToWriter = function(message, writer) {
|
||||
var f = undefined;
|
||||
f = message.getToken();
|
||||
if (f.length > 0) {
|
||||
writer.writeString(
|
||||
1,
|
||||
f
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional string token = 1;
|
||||
* @return {string}
|
||||
*/
|
||||
proto.api.OAuth2LoginResponse.prototype.getToken = function() {
|
||||
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {string} value
|
||||
* @return {!proto.api.OAuth2LoginResponse} returns this
|
||||
*/
|
||||
proto.api.OAuth2LoginResponse.prototype.setToken = function(value) {
|
||||
return jspb.Message.setProto3StringField(this, 1, value);
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if (jspb.Message.GENERATE_TO_OBJECT) {
|
||||
/**
|
||||
* Creates an object representation of this proto.
|
||||
|
2
api/grpc-web/package.json
vendored
2
api/grpc-web/package.json
vendored
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@chirpstack/chirpstack-api-grpc-web",
|
||||
"version": "4.6.0",
|
||||
"version": "4.7.0-test.1",
|
||||
"description": "Chirpstack gRPC-web API",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
|
2
api/java/build.gradle.kts
vendored
2
api/java/build.gradle.kts
vendored
@ -8,7 +8,7 @@ plugins {
|
||||
}
|
||||
|
||||
group = "io.chirpstack"
|
||||
version = "4.6.0"
|
||||
version = "4.7.0-test.1"
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
|
5
api/js/api/internal_grpc_pb.d.ts
vendored
5
api/js/api/internal_grpc_pb.d.ts
vendored
@ -16,6 +16,7 @@ interface IInternalServiceService extends grpc.ServiceDefinition<grpc.UntypedSer
|
||||
listApiKeys: grpc.MethodDefinition<api_internal_pb.ListApiKeysRequest, api_internal_pb.ListApiKeysResponse>;
|
||||
settings: grpc.MethodDefinition<google_protobuf_empty_pb.Empty, api_internal_pb.SettingsResponse>;
|
||||
openIdConnectLogin: grpc.MethodDefinition<api_internal_pb.OpenIdConnectLoginRequest, api_internal_pb.OpenIdConnectLoginResponse>;
|
||||
oAuth2Login: grpc.MethodDefinition<api_internal_pb.OAuth2LoginRequest, api_internal_pb.OAuth2LoginResponse>;
|
||||
getDevicesSummary: grpc.MethodDefinition<api_internal_pb.GetDevicesSummaryRequest, api_internal_pb.GetDevicesSummaryResponse>;
|
||||
getGatewaysSummary: grpc.MethodDefinition<api_internal_pb.GetGatewaysSummaryRequest, api_internal_pb.GetGatewaysSummaryResponse>;
|
||||
streamGatewayFrames: grpc.MethodDefinition<api_internal_pb.StreamGatewayFramesRequest, api_internal_pb.LogItem>;
|
||||
@ -36,6 +37,7 @@ export interface IInternalServiceServer extends grpc.UntypedServiceImplementatio
|
||||
listApiKeys: grpc.handleUnaryCall<api_internal_pb.ListApiKeysRequest, api_internal_pb.ListApiKeysResponse>;
|
||||
settings: grpc.handleUnaryCall<google_protobuf_empty_pb.Empty, api_internal_pb.SettingsResponse>;
|
||||
openIdConnectLogin: grpc.handleUnaryCall<api_internal_pb.OpenIdConnectLoginRequest, api_internal_pb.OpenIdConnectLoginResponse>;
|
||||
oAuth2Login: grpc.handleUnaryCall<api_internal_pb.OAuth2LoginRequest, api_internal_pb.OAuth2LoginResponse>;
|
||||
getDevicesSummary: grpc.handleUnaryCall<api_internal_pb.GetDevicesSummaryRequest, api_internal_pb.GetDevicesSummaryResponse>;
|
||||
getGatewaysSummary: grpc.handleUnaryCall<api_internal_pb.GetGatewaysSummaryRequest, api_internal_pb.GetGatewaysSummaryResponse>;
|
||||
streamGatewayFrames: grpc.handleServerStreamingCall<api_internal_pb.StreamGatewayFramesRequest, api_internal_pb.LogItem>;
|
||||
@ -71,6 +73,9 @@ export class InternalServiceClient extends grpc.Client {
|
||||
openIdConnectLogin(argument: api_internal_pb.OpenIdConnectLoginRequest, callback: grpc.requestCallback<api_internal_pb.OpenIdConnectLoginResponse>): grpc.ClientUnaryCall;
|
||||
openIdConnectLogin(argument: api_internal_pb.OpenIdConnectLoginRequest, metadataOrOptions: grpc.Metadata | grpc.CallOptions | null, callback: grpc.requestCallback<api_internal_pb.OpenIdConnectLoginResponse>): grpc.ClientUnaryCall;
|
||||
openIdConnectLogin(argument: api_internal_pb.OpenIdConnectLoginRequest, metadata: grpc.Metadata | null, options: grpc.CallOptions | null, callback: grpc.requestCallback<api_internal_pb.OpenIdConnectLoginResponse>): grpc.ClientUnaryCall;
|
||||
oAuth2Login(argument: api_internal_pb.OAuth2LoginRequest, callback: grpc.requestCallback<api_internal_pb.OAuth2LoginResponse>): grpc.ClientUnaryCall;
|
||||
oAuth2Login(argument: api_internal_pb.OAuth2LoginRequest, metadataOrOptions: grpc.Metadata | grpc.CallOptions | null, callback: grpc.requestCallback<api_internal_pb.OAuth2LoginResponse>): grpc.ClientUnaryCall;
|
||||
oAuth2Login(argument: api_internal_pb.OAuth2LoginRequest, metadata: grpc.Metadata | null, options: grpc.CallOptions | null, callback: grpc.requestCallback<api_internal_pb.OAuth2LoginResponse>): grpc.ClientUnaryCall;
|
||||
getDevicesSummary(argument: api_internal_pb.GetDevicesSummaryRequest, callback: grpc.requestCallback<api_internal_pb.GetDevicesSummaryResponse>): grpc.ClientUnaryCall;
|
||||
getDevicesSummary(argument: api_internal_pb.GetDevicesSummaryRequest, metadataOrOptions: grpc.Metadata | grpc.CallOptions | null, callback: grpc.requestCallback<api_internal_pb.GetDevicesSummaryResponse>): grpc.ClientUnaryCall;
|
||||
getDevicesSummary(argument: api_internal_pb.GetDevicesSummaryRequest, metadata: grpc.Metadata | null, options: grpc.CallOptions | null, callback: grpc.requestCallback<api_internal_pb.GetDevicesSummaryResponse>): grpc.ClientUnaryCall;
|
||||
|
34
api/js/api/internal_grpc_pb.js
vendored
34
api/js/api/internal_grpc_pb.js
vendored
@ -195,6 +195,28 @@ function deserialize_api_LoginResponse(buffer_arg) {
|
||||
return api_internal_pb.LoginResponse.deserializeBinary(new Uint8Array(buffer_arg));
|
||||
}
|
||||
|
||||
function serialize_api_OAuth2LoginRequest(arg) {
|
||||
if (!(arg instanceof api_internal_pb.OAuth2LoginRequest)) {
|
||||
throw new Error('Expected argument of type api.OAuth2LoginRequest');
|
||||
}
|
||||
return Buffer.from(arg.serializeBinary());
|
||||
}
|
||||
|
||||
function deserialize_api_OAuth2LoginRequest(buffer_arg) {
|
||||
return api_internal_pb.OAuth2LoginRequest.deserializeBinary(new Uint8Array(buffer_arg));
|
||||
}
|
||||
|
||||
function serialize_api_OAuth2LoginResponse(arg) {
|
||||
if (!(arg instanceof api_internal_pb.OAuth2LoginResponse)) {
|
||||
throw new Error('Expected argument of type api.OAuth2LoginResponse');
|
||||
}
|
||||
return Buffer.from(arg.serializeBinary());
|
||||
}
|
||||
|
||||
function deserialize_api_OAuth2LoginResponse(buffer_arg) {
|
||||
return api_internal_pb.OAuth2LoginResponse.deserializeBinary(new Uint8Array(buffer_arg));
|
||||
}
|
||||
|
||||
function serialize_api_OpenIdConnectLoginRequest(arg) {
|
||||
if (!(arg instanceof api_internal_pb.OpenIdConnectLoginRequest)) {
|
||||
throw new Error('Expected argument of type api.OpenIdConnectLoginRequest');
|
||||
@ -382,6 +404,18 @@ openIdConnectLogin: {
|
||||
responseSerialize: serialize_api_OpenIdConnectLoginResponse,
|
||||
responseDeserialize: deserialize_api_OpenIdConnectLoginResponse,
|
||||
},
|
||||
// OAuth2 login.
|
||||
oAuth2Login: {
|
||||
path: '/api.InternalService/OAuth2Login',
|
||||
requestStream: false,
|
||||
responseStream: false,
|
||||
requestType: api_internal_pb.OAuth2LoginRequest,
|
||||
responseType: api_internal_pb.OAuth2LoginResponse,
|
||||
requestSerialize: serialize_api_OAuth2LoginRequest,
|
||||
requestDeserialize: deserialize_api_OAuth2LoginRequest,
|
||||
responseSerialize: serialize_api_OAuth2LoginResponse,
|
||||
responseDeserialize: deserialize_api_OAuth2LoginResponse,
|
||||
},
|
||||
// GetDevicesSummary returns an aggregated summary of the devices.
|
||||
getDevicesSummary: {
|
||||
path: '/api.InternalService/GetDevicesSummary',
|
||||
|
90
api/js/api/internal_pb.d.ts
vendored
90
api/js/api/internal_pb.d.ts
vendored
@ -391,6 +391,11 @@ export class SettingsResponse extends jspb.Message {
|
||||
getOpenidConnect(): OpenIdConnect | undefined;
|
||||
setOpenidConnect(value?: OpenIdConnect): void;
|
||||
|
||||
hasOauth2(): boolean;
|
||||
clearOauth2(): void;
|
||||
getOauth2(): OAuth2 | undefined;
|
||||
setOauth2(value?: OAuth2): void;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): SettingsResponse.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: SettingsResponse): SettingsResponse.AsObject;
|
||||
@ -404,6 +409,7 @@ export class SettingsResponse extends jspb.Message {
|
||||
export namespace SettingsResponse {
|
||||
export type AsObject = {
|
||||
openidConnect?: OpenIdConnect.AsObject,
|
||||
oauth2?: OAuth2.AsObject,
|
||||
}
|
||||
}
|
||||
|
||||
@ -420,6 +426,9 @@ export class OpenIdConnect extends jspb.Message {
|
||||
getLogoutUrl(): string;
|
||||
setLogoutUrl(value: string): void;
|
||||
|
||||
getLoginRedirect(): boolean;
|
||||
setLoginRedirect(value: boolean): void;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): OpenIdConnect.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: OpenIdConnect): OpenIdConnect.AsObject;
|
||||
@ -436,6 +445,43 @@ export namespace OpenIdConnect {
|
||||
loginUrl: string,
|
||||
loginLabel: string,
|
||||
logoutUrl: string,
|
||||
loginRedirect: boolean,
|
||||
}
|
||||
}
|
||||
|
||||
export class OAuth2 extends jspb.Message {
|
||||
getEnabled(): boolean;
|
||||
setEnabled(value: boolean): void;
|
||||
|
||||
getLoginUrl(): string;
|
||||
setLoginUrl(value: string): void;
|
||||
|
||||
getLoginLabel(): string;
|
||||
setLoginLabel(value: string): void;
|
||||
|
||||
getLogoutUrl(): string;
|
||||
setLogoutUrl(value: string): void;
|
||||
|
||||
getLoginRedirect(): boolean;
|
||||
setLoginRedirect(value: boolean): void;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): OAuth2.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: OAuth2): OAuth2.AsObject;
|
||||
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
|
||||
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
|
||||
static serializeBinaryToWriter(message: OAuth2, writer: jspb.BinaryWriter): void;
|
||||
static deserializeBinary(bytes: Uint8Array): OAuth2;
|
||||
static deserializeBinaryFromReader(message: OAuth2, reader: jspb.BinaryReader): OAuth2;
|
||||
}
|
||||
|
||||
export namespace OAuth2 {
|
||||
export type AsObject = {
|
||||
enabled: boolean,
|
||||
loginUrl: string,
|
||||
loginLabel: string,
|
||||
logoutUrl: string,
|
||||
loginRedirect: boolean,
|
||||
}
|
||||
}
|
||||
|
||||
@ -483,6 +529,50 @@ export namespace OpenIdConnectLoginResponse {
|
||||
}
|
||||
}
|
||||
|
||||
export class OAuth2LoginRequest extends jspb.Message {
|
||||
getCode(): string;
|
||||
setCode(value: string): void;
|
||||
|
||||
getState(): string;
|
||||
setState(value: string): void;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): OAuth2LoginRequest.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: OAuth2LoginRequest): OAuth2LoginRequest.AsObject;
|
||||
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
|
||||
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
|
||||
static serializeBinaryToWriter(message: OAuth2LoginRequest, writer: jspb.BinaryWriter): void;
|
||||
static deserializeBinary(bytes: Uint8Array): OAuth2LoginRequest;
|
||||
static deserializeBinaryFromReader(message: OAuth2LoginRequest, reader: jspb.BinaryReader): OAuth2LoginRequest;
|
||||
}
|
||||
|
||||
export namespace OAuth2LoginRequest {
|
||||
export type AsObject = {
|
||||
code: string,
|
||||
state: string,
|
||||
}
|
||||
}
|
||||
|
||||
export class OAuth2LoginResponse extends jspb.Message {
|
||||
getToken(): string;
|
||||
setToken(value: string): void;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): OAuth2LoginResponse.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: OAuth2LoginResponse): OAuth2LoginResponse.AsObject;
|
||||
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
|
||||
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
|
||||
static serializeBinaryToWriter(message: OAuth2LoginResponse, writer: jspb.BinaryWriter): void;
|
||||
static deserializeBinary(bytes: Uint8Array): OAuth2LoginResponse;
|
||||
static deserializeBinaryFromReader(message: OAuth2LoginResponse, reader: jspb.BinaryReader): OAuth2LoginResponse;
|
||||
}
|
||||
|
||||
export namespace OAuth2LoginResponse {
|
||||
export type AsObject = {
|
||||
token: string,
|
||||
}
|
||||
}
|
||||
|
||||
export class GetDevicesSummaryRequest extends jspb.Message {
|
||||
getTenantId(): string;
|
||||
setTenantId(value: string): void;
|
||||
|
691
api/js/api/internal_pb.js
vendored
691
api/js/api/internal_pb.js
vendored
@ -39,6 +39,9 @@ goog.exportSymbol('proto.api.ListRegionsResponse', null, global);
|
||||
goog.exportSymbol('proto.api.LogItem', null, global);
|
||||
goog.exportSymbol('proto.api.LoginRequest', null, global);
|
||||
goog.exportSymbol('proto.api.LoginResponse', null, global);
|
||||
goog.exportSymbol('proto.api.OAuth2', null, global);
|
||||
goog.exportSymbol('proto.api.OAuth2LoginRequest', null, global);
|
||||
goog.exportSymbol('proto.api.OAuth2LoginResponse', null, global);
|
||||
goog.exportSymbol('proto.api.OpenIdConnect', null, global);
|
||||
goog.exportSymbol('proto.api.OpenIdConnectLoginRequest', null, global);
|
||||
goog.exportSymbol('proto.api.OpenIdConnectLoginResponse', null, global);
|
||||
@ -365,6 +368,27 @@ if (goog.DEBUG && !COMPILED) {
|
||||
*/
|
||||
proto.api.OpenIdConnect.displayName = 'proto.api.OpenIdConnect';
|
||||
}
|
||||
/**
|
||||
* 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.OAuth2 = function(opt_data) {
|
||||
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
|
||||
};
|
||||
goog.inherits(proto.api.OAuth2, jspb.Message);
|
||||
if (goog.DEBUG && !COMPILED) {
|
||||
/**
|
||||
* @public
|
||||
* @override
|
||||
*/
|
||||
proto.api.OAuth2.displayName = 'proto.api.OAuth2';
|
||||
}
|
||||
/**
|
||||
* Generated by JsPbCodeGenerator.
|
||||
* @param {Array=} opt_data Optional initial data array, typically from a
|
||||
@ -407,6 +431,48 @@ if (goog.DEBUG && !COMPILED) {
|
||||
*/
|
||||
proto.api.OpenIdConnectLoginResponse.displayName = 'proto.api.OpenIdConnectLoginResponse';
|
||||
}
|
||||
/**
|
||||
* 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.OAuth2LoginRequest = function(opt_data) {
|
||||
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
|
||||
};
|
||||
goog.inherits(proto.api.OAuth2LoginRequest, jspb.Message);
|
||||
if (goog.DEBUG && !COMPILED) {
|
||||
/**
|
||||
* @public
|
||||
* @override
|
||||
*/
|
||||
proto.api.OAuth2LoginRequest.displayName = 'proto.api.OAuth2LoginRequest';
|
||||
}
|
||||
/**
|
||||
* 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.OAuth2LoginResponse = function(opt_data) {
|
||||
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
|
||||
};
|
||||
goog.inherits(proto.api.OAuth2LoginResponse, jspb.Message);
|
||||
if (goog.DEBUG && !COMPILED) {
|
||||
/**
|
||||
* @public
|
||||
* @override
|
||||
*/
|
||||
proto.api.OAuth2LoginResponse.displayName = 'proto.api.OAuth2LoginResponse';
|
||||
}
|
||||
/**
|
||||
* Generated by JsPbCodeGenerator.
|
||||
* @param {Array=} opt_data Optional initial data array, typically from a
|
||||
@ -3356,7 +3422,8 @@ proto.api.SettingsResponse.prototype.toObject = function(opt_includeInstance) {
|
||||
*/
|
||||
proto.api.SettingsResponse.toObject = function(includeInstance, msg) {
|
||||
var f, obj = {
|
||||
openidConnect: (f = msg.getOpenidConnect()) && proto.api.OpenIdConnect.toObject(includeInstance, f)
|
||||
openidConnect: (f = msg.getOpenidConnect()) && proto.api.OpenIdConnect.toObject(includeInstance, f),
|
||||
oauth2: (f = msg.getOauth2()) && proto.api.OAuth2.toObject(includeInstance, f)
|
||||
};
|
||||
|
||||
if (includeInstance) {
|
||||
@ -3398,6 +3465,11 @@ proto.api.SettingsResponse.deserializeBinaryFromReader = function(msg, reader) {
|
||||
reader.readMessage(value,proto.api.OpenIdConnect.deserializeBinaryFromReader);
|
||||
msg.setOpenidConnect(value);
|
||||
break;
|
||||
case 2:
|
||||
var value = new proto.api.OAuth2;
|
||||
reader.readMessage(value,proto.api.OAuth2.deserializeBinaryFromReader);
|
||||
msg.setOauth2(value);
|
||||
break;
|
||||
default:
|
||||
reader.skipField();
|
||||
break;
|
||||
@ -3435,6 +3507,14 @@ proto.api.SettingsResponse.serializeBinaryToWriter = function(message, writer) {
|
||||
proto.api.OpenIdConnect.serializeBinaryToWriter
|
||||
);
|
||||
}
|
||||
f = message.getOauth2();
|
||||
if (f != null) {
|
||||
writer.writeMessage(
|
||||
2,
|
||||
f,
|
||||
proto.api.OAuth2.serializeBinaryToWriter
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -3475,6 +3555,43 @@ proto.api.SettingsResponse.prototype.hasOpenidConnect = function() {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional OAuth2 oauth2 = 2;
|
||||
* @return {?proto.api.OAuth2}
|
||||
*/
|
||||
proto.api.SettingsResponse.prototype.getOauth2 = function() {
|
||||
return /** @type{?proto.api.OAuth2} */ (
|
||||
jspb.Message.getWrapperField(this, proto.api.OAuth2, 2));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {?proto.api.OAuth2|undefined} value
|
||||
* @return {!proto.api.SettingsResponse} returns this
|
||||
*/
|
||||
proto.api.SettingsResponse.prototype.setOauth2 = function(value) {
|
||||
return jspb.Message.setWrapperField(this, 2, value);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Clears the message field making it undefined.
|
||||
* @return {!proto.api.SettingsResponse} returns this
|
||||
*/
|
||||
proto.api.SettingsResponse.prototype.clearOauth2 = function() {
|
||||
return this.setOauth2(undefined);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Returns whether this field is set.
|
||||
* @return {boolean}
|
||||
*/
|
||||
proto.api.SettingsResponse.prototype.hasOauth2 = function() {
|
||||
return jspb.Message.getField(this, 2) != null;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -3510,7 +3627,8 @@ proto.api.OpenIdConnect.toObject = function(includeInstance, msg) {
|
||||
enabled: jspb.Message.getBooleanFieldWithDefault(msg, 1, false),
|
||||
loginUrl: jspb.Message.getFieldWithDefault(msg, 2, ""),
|
||||
loginLabel: jspb.Message.getFieldWithDefault(msg, 3, ""),
|
||||
logoutUrl: jspb.Message.getFieldWithDefault(msg, 4, "")
|
||||
logoutUrl: jspb.Message.getFieldWithDefault(msg, 4, ""),
|
||||
loginRedirect: jspb.Message.getBooleanFieldWithDefault(msg, 5, false)
|
||||
};
|
||||
|
||||
if (includeInstance) {
|
||||
@ -3563,6 +3681,10 @@ proto.api.OpenIdConnect.deserializeBinaryFromReader = function(msg, reader) {
|
||||
var value = /** @type {string} */ (reader.readString());
|
||||
msg.setLogoutUrl(value);
|
||||
break;
|
||||
case 5:
|
||||
var value = /** @type {boolean} */ (reader.readBool());
|
||||
msg.setLoginRedirect(value);
|
||||
break;
|
||||
default:
|
||||
reader.skipField();
|
||||
break;
|
||||
@ -3620,6 +3742,13 @@ proto.api.OpenIdConnect.serializeBinaryToWriter = function(message, writer) {
|
||||
f
|
||||
);
|
||||
}
|
||||
f = message.getLoginRedirect();
|
||||
if (f) {
|
||||
writer.writeBool(
|
||||
5,
|
||||
f
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -3695,6 +3824,274 @@ proto.api.OpenIdConnect.prototype.setLogoutUrl = function(value) {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional bool login_redirect = 5;
|
||||
* @return {boolean}
|
||||
*/
|
||||
proto.api.OpenIdConnect.prototype.getLoginRedirect = function() {
|
||||
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {boolean} value
|
||||
* @return {!proto.api.OpenIdConnect} returns this
|
||||
*/
|
||||
proto.api.OpenIdConnect.prototype.setLoginRedirect = function(value) {
|
||||
return jspb.Message.setProto3BooleanField(this, 5, 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.OAuth2.prototype.toObject = function(opt_includeInstance) {
|
||||
return proto.api.OAuth2.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.OAuth2} msg The msg instance to transform.
|
||||
* @return {!Object}
|
||||
* @suppress {unusedLocalVariables} f is only used for nested messages
|
||||
*/
|
||||
proto.api.OAuth2.toObject = function(includeInstance, msg) {
|
||||
var f, obj = {
|
||||
enabled: jspb.Message.getBooleanFieldWithDefault(msg, 1, false),
|
||||
loginUrl: jspb.Message.getFieldWithDefault(msg, 2, ""),
|
||||
loginLabel: jspb.Message.getFieldWithDefault(msg, 3, ""),
|
||||
logoutUrl: jspb.Message.getFieldWithDefault(msg, 4, ""),
|
||||
loginRedirect: jspb.Message.getBooleanFieldWithDefault(msg, 5, false)
|
||||
};
|
||||
|
||||
if (includeInstance) {
|
||||
obj.$jspbMessageInstance = msg;
|
||||
}
|
||||
return obj;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Deserializes binary data (in protobuf wire format).
|
||||
* @param {jspb.ByteSource} bytes The bytes to deserialize.
|
||||
* @return {!proto.api.OAuth2}
|
||||
*/
|
||||
proto.api.OAuth2.deserializeBinary = function(bytes) {
|
||||
var reader = new jspb.BinaryReader(bytes);
|
||||
var msg = new proto.api.OAuth2;
|
||||
return proto.api.OAuth2.deserializeBinaryFromReader(msg, reader);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Deserializes binary data (in protobuf wire format) from the
|
||||
* given reader into the given message object.
|
||||
* @param {!proto.api.OAuth2} msg The message object to deserialize into.
|
||||
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
|
||||
* @return {!proto.api.OAuth2}
|
||||
*/
|
||||
proto.api.OAuth2.deserializeBinaryFromReader = function(msg, reader) {
|
||||
while (reader.nextField()) {
|
||||
if (reader.isEndGroup()) {
|
||||
break;
|
||||
}
|
||||
var field = reader.getFieldNumber();
|
||||
switch (field) {
|
||||
case 1:
|
||||
var value = /** @type {boolean} */ (reader.readBool());
|
||||
msg.setEnabled(value);
|
||||
break;
|
||||
case 2:
|
||||
var value = /** @type {string} */ (reader.readString());
|
||||
msg.setLoginUrl(value);
|
||||
break;
|
||||
case 3:
|
||||
var value = /** @type {string} */ (reader.readString());
|
||||
msg.setLoginLabel(value);
|
||||
break;
|
||||
case 4:
|
||||
var value = /** @type {string} */ (reader.readString());
|
||||
msg.setLogoutUrl(value);
|
||||
break;
|
||||
case 5:
|
||||
var value = /** @type {boolean} */ (reader.readBool());
|
||||
msg.setLoginRedirect(value);
|
||||
break;
|
||||
default:
|
||||
reader.skipField();
|
||||
break;
|
||||
}
|
||||
}
|
||||
return msg;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Serializes the message to binary data (in protobuf wire format).
|
||||
* @return {!Uint8Array}
|
||||
*/
|
||||
proto.api.OAuth2.prototype.serializeBinary = function() {
|
||||
var writer = new jspb.BinaryWriter();
|
||||
proto.api.OAuth2.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.OAuth2} message
|
||||
* @param {!jspb.BinaryWriter} writer
|
||||
* @suppress {unusedLocalVariables} f is only used for nested messages
|
||||
*/
|
||||
proto.api.OAuth2.serializeBinaryToWriter = function(message, writer) {
|
||||
var f = undefined;
|
||||
f = message.getEnabled();
|
||||
if (f) {
|
||||
writer.writeBool(
|
||||
1,
|
||||
f
|
||||
);
|
||||
}
|
||||
f = message.getLoginUrl();
|
||||
if (f.length > 0) {
|
||||
writer.writeString(
|
||||
2,
|
||||
f
|
||||
);
|
||||
}
|
||||
f = message.getLoginLabel();
|
||||
if (f.length > 0) {
|
||||
writer.writeString(
|
||||
3,
|
||||
f
|
||||
);
|
||||
}
|
||||
f = message.getLogoutUrl();
|
||||
if (f.length > 0) {
|
||||
writer.writeString(
|
||||
4,
|
||||
f
|
||||
);
|
||||
}
|
||||
f = message.getLoginRedirect();
|
||||
if (f) {
|
||||
writer.writeBool(
|
||||
5,
|
||||
f
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional bool enabled = 1;
|
||||
* @return {boolean}
|
||||
*/
|
||||
proto.api.OAuth2.prototype.getEnabled = function() {
|
||||
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {boolean} value
|
||||
* @return {!proto.api.OAuth2} returns this
|
||||
*/
|
||||
proto.api.OAuth2.prototype.setEnabled = function(value) {
|
||||
return jspb.Message.setProto3BooleanField(this, 1, value);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional string login_url = 2;
|
||||
* @return {string}
|
||||
*/
|
||||
proto.api.OAuth2.prototype.getLoginUrl = function() {
|
||||
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {string} value
|
||||
* @return {!proto.api.OAuth2} returns this
|
||||
*/
|
||||
proto.api.OAuth2.prototype.setLoginUrl = function(value) {
|
||||
return jspb.Message.setProto3StringField(this, 2, value);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional string login_label = 3;
|
||||
* @return {string}
|
||||
*/
|
||||
proto.api.OAuth2.prototype.getLoginLabel = function() {
|
||||
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {string} value
|
||||
* @return {!proto.api.OAuth2} returns this
|
||||
*/
|
||||
proto.api.OAuth2.prototype.setLoginLabel = function(value) {
|
||||
return jspb.Message.setProto3StringField(this, 3, value);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional string logout_url = 4;
|
||||
* @return {string}
|
||||
*/
|
||||
proto.api.OAuth2.prototype.getLogoutUrl = function() {
|
||||
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {string} value
|
||||
* @return {!proto.api.OAuth2} returns this
|
||||
*/
|
||||
proto.api.OAuth2.prototype.setLogoutUrl = function(value) {
|
||||
return jspb.Message.setProto3StringField(this, 4, value);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional bool login_redirect = 5;
|
||||
* @return {boolean}
|
||||
*/
|
||||
proto.api.OAuth2.prototype.getLoginRedirect = function() {
|
||||
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {boolean} value
|
||||
* @return {!proto.api.OAuth2} returns this
|
||||
*/
|
||||
proto.api.OAuth2.prototype.setLoginRedirect = function(value) {
|
||||
return jspb.Message.setProto3BooleanField(this, 5, value);
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -3988,6 +4385,296 @@ proto.api.OpenIdConnectLoginResponse.prototype.setToken = function(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.OAuth2LoginRequest.prototype.toObject = function(opt_includeInstance) {
|
||||
return proto.api.OAuth2LoginRequest.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.OAuth2LoginRequest} msg The msg instance to transform.
|
||||
* @return {!Object}
|
||||
* @suppress {unusedLocalVariables} f is only used for nested messages
|
||||
*/
|
||||
proto.api.OAuth2LoginRequest.toObject = function(includeInstance, msg) {
|
||||
var f, obj = {
|
||||
code: jspb.Message.getFieldWithDefault(msg, 1, ""),
|
||||
state: 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.OAuth2LoginRequest}
|
||||
*/
|
||||
proto.api.OAuth2LoginRequest.deserializeBinary = function(bytes) {
|
||||
var reader = new jspb.BinaryReader(bytes);
|
||||
var msg = new proto.api.OAuth2LoginRequest;
|
||||
return proto.api.OAuth2LoginRequest.deserializeBinaryFromReader(msg, reader);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Deserializes binary data (in protobuf wire format) from the
|
||||
* given reader into the given message object.
|
||||
* @param {!proto.api.OAuth2LoginRequest} msg The message object to deserialize into.
|
||||
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
|
||||
* @return {!proto.api.OAuth2LoginRequest}
|
||||
*/
|
||||
proto.api.OAuth2LoginRequest.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.setCode(value);
|
||||
break;
|
||||
case 2:
|
||||
var value = /** @type {string} */ (reader.readString());
|
||||
msg.setState(value);
|
||||
break;
|
||||
default:
|
||||
reader.skipField();
|
||||
break;
|
||||
}
|
||||
}
|
||||
return msg;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Serializes the message to binary data (in protobuf wire format).
|
||||
* @return {!Uint8Array}
|
||||
*/
|
||||
proto.api.OAuth2LoginRequest.prototype.serializeBinary = function() {
|
||||
var writer = new jspb.BinaryWriter();
|
||||
proto.api.OAuth2LoginRequest.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.OAuth2LoginRequest} message
|
||||
* @param {!jspb.BinaryWriter} writer
|
||||
* @suppress {unusedLocalVariables} f is only used for nested messages
|
||||
*/
|
||||
proto.api.OAuth2LoginRequest.serializeBinaryToWriter = function(message, writer) {
|
||||
var f = undefined;
|
||||
f = message.getCode();
|
||||
if (f.length > 0) {
|
||||
writer.writeString(
|
||||
1,
|
||||
f
|
||||
);
|
||||
}
|
||||
f = message.getState();
|
||||
if (f.length > 0) {
|
||||
writer.writeString(
|
||||
2,
|
||||
f
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional string code = 1;
|
||||
* @return {string}
|
||||
*/
|
||||
proto.api.OAuth2LoginRequest.prototype.getCode = function() {
|
||||
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {string} value
|
||||
* @return {!proto.api.OAuth2LoginRequest} returns this
|
||||
*/
|
||||
proto.api.OAuth2LoginRequest.prototype.setCode = function(value) {
|
||||
return jspb.Message.setProto3StringField(this, 1, value);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional string state = 2;
|
||||
* @return {string}
|
||||
*/
|
||||
proto.api.OAuth2LoginRequest.prototype.getState = function() {
|
||||
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {string} value
|
||||
* @return {!proto.api.OAuth2LoginRequest} returns this
|
||||
*/
|
||||
proto.api.OAuth2LoginRequest.prototype.setState = 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.OAuth2LoginResponse.prototype.toObject = function(opt_includeInstance) {
|
||||
return proto.api.OAuth2LoginResponse.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.OAuth2LoginResponse} msg The msg instance to transform.
|
||||
* @return {!Object}
|
||||
* @suppress {unusedLocalVariables} f is only used for nested messages
|
||||
*/
|
||||
proto.api.OAuth2LoginResponse.toObject = function(includeInstance, msg) {
|
||||
var f, obj = {
|
||||
token: jspb.Message.getFieldWithDefault(msg, 1, "")
|
||||
};
|
||||
|
||||
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.OAuth2LoginResponse}
|
||||
*/
|
||||
proto.api.OAuth2LoginResponse.deserializeBinary = function(bytes) {
|
||||
var reader = new jspb.BinaryReader(bytes);
|
||||
var msg = new proto.api.OAuth2LoginResponse;
|
||||
return proto.api.OAuth2LoginResponse.deserializeBinaryFromReader(msg, reader);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Deserializes binary data (in protobuf wire format) from the
|
||||
* given reader into the given message object.
|
||||
* @param {!proto.api.OAuth2LoginResponse} msg The message object to deserialize into.
|
||||
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
|
||||
* @return {!proto.api.OAuth2LoginResponse}
|
||||
*/
|
||||
proto.api.OAuth2LoginResponse.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.setToken(value);
|
||||
break;
|
||||
default:
|
||||
reader.skipField();
|
||||
break;
|
||||
}
|
||||
}
|
||||
return msg;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Serializes the message to binary data (in protobuf wire format).
|
||||
* @return {!Uint8Array}
|
||||
*/
|
||||
proto.api.OAuth2LoginResponse.prototype.serializeBinary = function() {
|
||||
var writer = new jspb.BinaryWriter();
|
||||
proto.api.OAuth2LoginResponse.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.OAuth2LoginResponse} message
|
||||
* @param {!jspb.BinaryWriter} writer
|
||||
* @suppress {unusedLocalVariables} f is only used for nested messages
|
||||
*/
|
||||
proto.api.OAuth2LoginResponse.serializeBinaryToWriter = function(message, writer) {
|
||||
var f = undefined;
|
||||
f = message.getToken();
|
||||
if (f.length > 0) {
|
||||
writer.writeString(
|
||||
1,
|
||||
f
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* optional string token = 1;
|
||||
* @return {string}
|
||||
*/
|
||||
proto.api.OAuth2LoginResponse.prototype.getToken = function() {
|
||||
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {string} value
|
||||
* @return {!proto.api.OAuth2LoginResponse} returns this
|
||||
*/
|
||||
proto.api.OAuth2LoginResponse.prototype.setToken = function(value) {
|
||||
return jspb.Message.setProto3StringField(this, 1, value);
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if (jspb.Message.GENERATE_TO_OBJECT) {
|
||||
/**
|
||||
* Creates an object representation of this proto.
|
||||
|
2
api/js/package.json
vendored
2
api/js/package.json
vendored
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@chirpstack/chirpstack-api",
|
||||
"version": "4.6.0",
|
||||
"version": "4.7.0-test.1",
|
||||
"description": "Chirpstack JS and TS API",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
|
2
api/kotlin/build.gradle.kts
vendored
2
api/kotlin/build.gradle.kts
vendored
@ -9,7 +9,7 @@ plugins {
|
||||
}
|
||||
|
||||
group = "io.chirpstack"
|
||||
version = "4.6.0"
|
||||
version = "4.7.0-test.1"
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
|
443
api/proto/api/internal.proto
vendored
443
api/proto/api/internal.proto
vendored
@ -15,361 +15,402 @@ import "api/user.proto";
|
||||
|
||||
// InternalService is the service providing API endpoints for internal usage.
|
||||
service InternalService {
|
||||
// Log in a user
|
||||
rpc Login(LoginRequest) returns (LoginResponse) {}
|
||||
// Log in a user
|
||||
rpc Login(LoginRequest) returns (LoginResponse) {}
|
||||
|
||||
// Get the current user's profile
|
||||
rpc Profile(google.protobuf.Empty) returns (ProfileResponse) {}
|
||||
// Get the current user's profile
|
||||
rpc Profile(google.protobuf.Empty) returns (ProfileResponse) {}
|
||||
|
||||
// Perform a global search.
|
||||
rpc GlobalSearch(GlobalSearchRequest) returns (GlobalSearchResponse) {}
|
||||
// Perform a global search.
|
||||
rpc GlobalSearch(GlobalSearchRequest) returns (GlobalSearchResponse) {}
|
||||
|
||||
// CreateApiKey creates the given API key.
|
||||
rpc CreateApiKey(CreateApiKeyRequest) returns (CreateApiKeyResponse) {}
|
||||
// CreateApiKey creates the given API key.
|
||||
rpc CreateApiKey(CreateApiKeyRequest) returns (CreateApiKeyResponse) {}
|
||||
|
||||
// DeleteApiKey deletes the API key.
|
||||
rpc DeleteApiKey(DeleteApiKeyRequest) returns (google.protobuf.Empty) {}
|
||||
// DeleteApiKey deletes the API key.
|
||||
rpc DeleteApiKey(DeleteApiKeyRequest) returns (google.protobuf.Empty) {}
|
||||
|
||||
// ListApiKeys lists the available API keys.
|
||||
rpc ListApiKeys(ListApiKeysRequest) returns (ListApiKeysResponse) {}
|
||||
// ListApiKeys lists the available API keys.
|
||||
rpc ListApiKeys(ListApiKeysRequest) returns (ListApiKeysResponse) {}
|
||||
|
||||
// Get the global settings.
|
||||
rpc Settings(google.protobuf.Empty) returns (SettingsResponse) {}
|
||||
// Get the global settings.
|
||||
rpc Settings(google.protobuf.Empty) returns (SettingsResponse) {}
|
||||
|
||||
// OpenId Connect login.
|
||||
rpc OpenIdConnectLogin(OpenIdConnectLoginRequest) returns (OpenIdConnectLoginResponse) {}
|
||||
// OpenId Connect login.
|
||||
rpc OpenIdConnectLogin(OpenIdConnectLoginRequest)
|
||||
returns (OpenIdConnectLoginResponse) {}
|
||||
|
||||
// GetDevicesSummary returns an aggregated summary of the devices.
|
||||
rpc GetDevicesSummary(GetDevicesSummaryRequest) returns (GetDevicesSummaryResponse) {}
|
||||
// OAuth2 login.
|
||||
rpc OAuth2Login(OAuth2LoginRequest) returns (OAuth2LoginResponse) {}
|
||||
|
||||
// GetGatewaysSummary returns an aggregated summary of the gateways.
|
||||
rpc GetGatewaysSummary(GetGatewaysSummaryRequest) returns (GetGatewaysSummaryResponse) {}
|
||||
// GetDevicesSummary returns an aggregated summary of the devices.
|
||||
rpc GetDevicesSummary(GetDevicesSummaryRequest)
|
||||
returns (GetDevicesSummaryResponse) {}
|
||||
|
||||
// Stream frame for the given Gateway ID.
|
||||
rpc StreamGatewayFrames(StreamGatewayFramesRequest) returns (stream LogItem) {}
|
||||
// GetGatewaysSummary returns an aggregated summary of the gateways.
|
||||
rpc GetGatewaysSummary(GetGatewaysSummaryRequest)
|
||||
returns (GetGatewaysSummaryResponse) {}
|
||||
|
||||
// Stream frames for the given Device EUI.
|
||||
rpc StreamDeviceFrames(StreamDeviceFramesRequest) returns (stream LogItem) {}
|
||||
// Stream frame for the given Gateway ID.
|
||||
rpc StreamGatewayFrames(StreamGatewayFramesRequest) returns (stream LogItem) {
|
||||
}
|
||||
|
||||
// Stream events for the given Device EUI.
|
||||
rpc StreamDeviceEvents(StreamDeviceEventsRequest) returns (stream LogItem) {}
|
||||
// Stream frames for the given Device EUI.
|
||||
rpc StreamDeviceFrames(StreamDeviceFramesRequest) returns (stream LogItem) {}
|
||||
|
||||
// ListRegions lists the available (configured) regions.
|
||||
rpc ListRegions(google.protobuf.Empty) returns (ListRegionsResponse) {}
|
||||
// Stream events for the given Device EUI.
|
||||
rpc StreamDeviceEvents(StreamDeviceEventsRequest) returns (stream LogItem) {}
|
||||
|
||||
// GetRegion returns the region details for the given region.
|
||||
rpc GetRegion(GetRegionRequest) returns (GetRegionResponse) {}
|
||||
// ListRegions lists the available (configured) regions.
|
||||
rpc ListRegions(google.protobuf.Empty) returns (ListRegionsResponse) {}
|
||||
|
||||
// GetRegion returns the region details for the given region.
|
||||
rpc GetRegion(GetRegionRequest) returns (GetRegionResponse) {}
|
||||
}
|
||||
|
||||
message ApiKey {
|
||||
// API key ID.
|
||||
// This value will be automatically generated on create.
|
||||
string id = 1;
|
||||
// API key ID.
|
||||
// This value will be automatically generated on create.
|
||||
string id = 1;
|
||||
|
||||
// Name.
|
||||
string name = 2;
|
||||
// Name.
|
||||
string name = 2;
|
||||
|
||||
// Is global admin key.
|
||||
bool is_admin = 3;
|
||||
// Is global admin key.
|
||||
bool is_admin = 3;
|
||||
|
||||
// Tenant ID.
|
||||
// In case the API key is intended to manage resources under a single tenant.
|
||||
string tenant_id = 4;
|
||||
// Tenant ID.
|
||||
// In case the API key is intended to manage resources under a single tenant.
|
||||
string tenant_id = 4;
|
||||
}
|
||||
|
||||
message CreateApiKeyRequest {
|
||||
// The API key to create.
|
||||
ApiKey api_key = 1;
|
||||
// The API key to create.
|
||||
ApiKey api_key = 1;
|
||||
}
|
||||
|
||||
message CreateApiKeyResponse {
|
||||
// API key ID.
|
||||
string id = 1;
|
||||
// API key ID.
|
||||
string id = 1;
|
||||
|
||||
// API token for authentication API requests.
|
||||
string token = 2;
|
||||
// API token for authentication API requests.
|
||||
string token = 2;
|
||||
}
|
||||
|
||||
message DeleteApiKeyRequest {
|
||||
// API key ID.
|
||||
string id = 1;
|
||||
// API key ID.
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message ListApiKeysRequest {
|
||||
// Max number of items to return.
|
||||
uint32 limit = 1;
|
||||
// Max number of items to return.
|
||||
uint32 limit = 1;
|
||||
|
||||
// Offset in the result-set (for pagination).
|
||||
uint32 offset = 2;
|
||||
// Offset in the result-set (for pagination).
|
||||
uint32 offset = 2;
|
||||
|
||||
// Return only admin keys.
|
||||
bool is_admin = 3;
|
||||
// Return only admin keys.
|
||||
bool is_admin = 3;
|
||||
|
||||
// Filter on tenant ID.
|
||||
string tenant_id = 4;
|
||||
// Filter on tenant ID.
|
||||
string tenant_id = 4;
|
||||
}
|
||||
|
||||
message ListApiKeysResponse {
|
||||
// Total number of API keys.
|
||||
uint32 total_count = 1;
|
||||
// Total number of API keys.
|
||||
uint32 total_count = 1;
|
||||
|
||||
repeated ApiKey result = 2;
|
||||
repeated ApiKey result = 2;
|
||||
}
|
||||
|
||||
// Defines a tenant to which the user is associated.
|
||||
message UserTenantLink {
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 1;
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 1;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 2;
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 2;
|
||||
|
||||
// Tenant ID.
|
||||
string tenant_id = 3;
|
||||
// Tenant ID.
|
||||
string tenant_id = 3;
|
||||
|
||||
// User is admin within the context of this tenant.
|
||||
// There is no need to set the is_device_admin and is_gateway_admin flags.
|
||||
bool is_admin = 4;
|
||||
// User is admin within the context of this tenant.
|
||||
// There is no need to set the is_device_admin and is_gateway_admin flags.
|
||||
bool is_admin = 4;
|
||||
|
||||
// User is able to modify device related resources (applications,
|
||||
// device-profiles, devices, multicast-groups).
|
||||
bool is_device_admin = 5;
|
||||
// User is able to modify device related resources (applications,
|
||||
// device-profiles, devices, multicast-groups).
|
||||
bool is_device_admin = 5;
|
||||
|
||||
// User is able to modify gateways.
|
||||
bool is_gateway_admin = 6;
|
||||
// User is able to modify gateways.
|
||||
bool is_gateway_admin = 6;
|
||||
}
|
||||
|
||||
message LoginRequest {
|
||||
// Email of the user.
|
||||
string email = 1;
|
||||
// Email of the user.
|
||||
string email = 1;
|
||||
|
||||
// Password of the user.
|
||||
string password = 2;
|
||||
// Password of the user.
|
||||
string password = 2;
|
||||
}
|
||||
|
||||
message LoginResponse {
|
||||
// The JWT tag to be used to access chirpstack-application-server interfaces.
|
||||
string jwt = 1;
|
||||
// The JWT tag to be used to access chirpstack-application-server interfaces.
|
||||
string jwt = 1;
|
||||
}
|
||||
|
||||
message ProfileResponse {
|
||||
// User object.
|
||||
User user = 1;
|
||||
// User object.
|
||||
User user = 1;
|
||||
|
||||
// Tenants to which the user is associated.
|
||||
repeated UserTenantLink tenants = 3;
|
||||
// Tenants to which the user is associated.
|
||||
repeated UserTenantLink tenants = 3;
|
||||
}
|
||||
|
||||
message GlobalSearchRequest {
|
||||
// Search query.
|
||||
string search = 1;
|
||||
// Search query.
|
||||
string search = 1;
|
||||
|
||||
// Max number of results to return.
|
||||
int64 limit = 2;
|
||||
// Max number of results to return.
|
||||
int64 limit = 2;
|
||||
|
||||
// Offset offset of the result-set (for pagination).
|
||||
int64 offset = 3;
|
||||
// Offset offset of the result-set (for pagination).
|
||||
int64 offset = 3;
|
||||
}
|
||||
|
||||
message GlobalSearchResponse {
|
||||
repeated GlobalSearchResult result = 1;
|
||||
}
|
||||
message GlobalSearchResponse { repeated GlobalSearchResult result = 1; }
|
||||
|
||||
message GlobalSearchResult {
|
||||
// Record kind.
|
||||
string kind = 1;
|
||||
// Record kind.
|
||||
string kind = 1;
|
||||
|
||||
// Search score.
|
||||
float score = 2;
|
||||
// Search score.
|
||||
float score = 2;
|
||||
|
||||
// Organization id.
|
||||
string tenant_id = 3;
|
||||
// Organization id.
|
||||
string tenant_id = 3;
|
||||
|
||||
// Organization name.
|
||||
string tenant_name = 4;
|
||||
// Organization name.
|
||||
string tenant_name = 4;
|
||||
|
||||
// Application id.
|
||||
string application_id = 5;
|
||||
// Application id.
|
||||
string application_id = 5;
|
||||
|
||||
// Application name.
|
||||
string application_name = 6;
|
||||
// Application name.
|
||||
string application_name = 6;
|
||||
|
||||
// Device DevEUI (hex encoded).
|
||||
string device_dev_eui = 7;
|
||||
// Device DevEUI (hex encoded).
|
||||
string device_dev_eui = 7;
|
||||
|
||||
// Device name.
|
||||
string device_name = 8;
|
||||
// Device name.
|
||||
string device_name = 8;
|
||||
|
||||
// Gateway MAC (hex encoded).
|
||||
string gateway_id = 9;
|
||||
// Gateway MAC (hex encoded).
|
||||
string gateway_id = 9;
|
||||
|
||||
// Gateway name.
|
||||
string gateway_name = 10;
|
||||
// Gateway name.
|
||||
string gateway_name = 10;
|
||||
}
|
||||
|
||||
message SettingsResponse {
|
||||
// OpenId Connect settings.
|
||||
OpenIdConnect openid_connect = 1;
|
||||
// OpenId Connect settings.
|
||||
OpenIdConnect openid_connect = 1;
|
||||
|
||||
// OAuth2 settings.
|
||||
OAuth2 oauth2 = 2;
|
||||
}
|
||||
|
||||
message OpenIdConnect {
|
||||
// Enable OpenId Connect authentication.
|
||||
bool enabled = 1;
|
||||
// Enable OpenId Connect authentication.
|
||||
bool enabled = 1;
|
||||
|
||||
// Login url.
|
||||
string login_url = 2 [json_name = "loginURL"];
|
||||
// Login url.
|
||||
string login_url = 2;
|
||||
|
||||
// Login label.
|
||||
string login_label = 3;
|
||||
// Login label.
|
||||
string login_label = 3;
|
||||
|
||||
// Logout url.
|
||||
string logout_url = 4 [json_name = "logoutURL"];
|
||||
// Logout url.
|
||||
string logout_url = 4;
|
||||
|
||||
// Login redirect.
|
||||
bool login_redirect = 5;
|
||||
}
|
||||
|
||||
message OAuth2 {
|
||||
// OAuth2 is enabled.
|
||||
bool enabled = 1;
|
||||
|
||||
// Login url.
|
||||
string login_url = 2;
|
||||
|
||||
// Login label.
|
||||
string login_label = 3;
|
||||
|
||||
// Logout url.
|
||||
string logout_url = 4;
|
||||
|
||||
// Login redirect.
|
||||
bool login_redirect = 5;
|
||||
}
|
||||
|
||||
message OpenIdConnectLoginRequest {
|
||||
// OpenId Connect callback code.
|
||||
string code = 1;
|
||||
// OpenId Connect callback code.
|
||||
string code = 1;
|
||||
|
||||
// OpenId Connect callback state.
|
||||
string state = 2;
|
||||
// OpenId Connect callback state.
|
||||
string state = 2;
|
||||
}
|
||||
|
||||
message OpenIdConnectLoginResponse {
|
||||
// Token to use for authentication.
|
||||
string token = 1;
|
||||
// Token to use for authentication.
|
||||
string token = 1;
|
||||
}
|
||||
|
||||
message OAuth2LoginRequest {
|
||||
// OAuth2 callback code.
|
||||
string code = 1;
|
||||
|
||||
// OAuth2 callback state.
|
||||
string state = 2;
|
||||
}
|
||||
|
||||
message OAuth2LoginResponse {
|
||||
// Token to use for authentication.
|
||||
string token = 1;
|
||||
}
|
||||
|
||||
message GetDevicesSummaryRequest {
|
||||
// Tenant ID (UUID).
|
||||
string tenant_id = 1;
|
||||
// Tenant ID (UUID).
|
||||
string tenant_id = 1;
|
||||
}
|
||||
|
||||
message GetDevicesSummaryResponse {
|
||||
// Active count.
|
||||
uint32 active_count = 1;
|
||||
// Active count.
|
||||
uint32 active_count = 1;
|
||||
|
||||
// Inactive count.
|
||||
uint32 inactive_count = 2;
|
||||
// Inactive count.
|
||||
uint32 inactive_count = 2;
|
||||
|
||||
// per data-rate count.
|
||||
// Devices that have never been seen are excluded.
|
||||
map<uint32, uint32> dr_count = 3;
|
||||
// per data-rate count.
|
||||
// Devices that have never been seen are excluded.
|
||||
map<uint32, uint32> dr_count = 3;
|
||||
|
||||
// Never seen count.
|
||||
uint32 never_seen_count = 4;
|
||||
// Never seen count.
|
||||
uint32 never_seen_count = 4;
|
||||
}
|
||||
|
||||
message GetGatewaysSummaryRequest {
|
||||
// Tenant ID (UUID).
|
||||
string tenant_id = 1;
|
||||
// Tenant ID (UUID).
|
||||
string tenant_id = 1;
|
||||
}
|
||||
|
||||
message GetGatewaysSummaryResponse {
|
||||
// Online count.
|
||||
uint32 online_count = 1;
|
||||
// Online count.
|
||||
uint32 online_count = 1;
|
||||
|
||||
// Offline count.
|
||||
uint32 offline_count = 2;
|
||||
// Offline count.
|
||||
uint32 offline_count = 2;
|
||||
|
||||
// Never seen count.
|
||||
uint32 never_seen_count = 3;
|
||||
// Never seen count.
|
||||
uint32 never_seen_count = 3;
|
||||
}
|
||||
|
||||
message LogItem {
|
||||
// ID.
|
||||
string id = 1;
|
||||
// ID.
|
||||
string id = 1;
|
||||
|
||||
// Timestamp.
|
||||
google.protobuf.Timestamp time = 2;
|
||||
// Timestamp.
|
||||
google.protobuf.Timestamp time = 2;
|
||||
|
||||
// Message.
|
||||
string description = 3;
|
||||
// Message.
|
||||
string description = 3;
|
||||
|
||||
// Body.
|
||||
string body = 4;
|
||||
// Body.
|
||||
string body = 4;
|
||||
|
||||
// Properties.
|
||||
map<string, string> properties = 5;
|
||||
// Properties.
|
||||
map<string, string> properties = 5;
|
||||
}
|
||||
|
||||
message StreamGatewayFramesRequest {
|
||||
// Gateway ID (EUI64).
|
||||
string gateway_id = 1;
|
||||
// Gateway ID (EUI64).
|
||||
string gateway_id = 1;
|
||||
}
|
||||
|
||||
message StreamDeviceFramesRequest {
|
||||
// Device EUI.
|
||||
string dev_eui = 1;
|
||||
// Device EUI.
|
||||
string dev_eui = 1;
|
||||
}
|
||||
|
||||
message StreamDeviceEventsRequest {
|
||||
// Device EUI.
|
||||
string dev_eui = 1;
|
||||
// Device EUI.
|
||||
string dev_eui = 1;
|
||||
}
|
||||
|
||||
message ListRegionsResponse {
|
||||
// Configured regions.
|
||||
repeated RegionListItem regions = 1;
|
||||
// Configured regions.
|
||||
repeated RegionListItem regions = 1;
|
||||
}
|
||||
|
||||
message RegionListItem {
|
||||
// ID.
|
||||
string id = 1;
|
||||
// ID.
|
||||
string id = 1;
|
||||
|
||||
// Region.
|
||||
common.Region region = 2;
|
||||
// Region.
|
||||
common.Region region = 2;
|
||||
|
||||
// Description.
|
||||
string description = 3;
|
||||
// Description.
|
||||
string description = 3;
|
||||
}
|
||||
|
||||
message GetRegionRequest {
|
||||
// Region ID.
|
||||
string id = 1;
|
||||
// Region ID.
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message GetRegionResponse {
|
||||
// ID.
|
||||
string id = 1;
|
||||
// ID.
|
||||
string id = 1;
|
||||
|
||||
// Region.
|
||||
common.Region region = 2;
|
||||
// Region.
|
||||
common.Region region = 2;
|
||||
|
||||
// User information.
|
||||
string user_info = 3;
|
||||
// User information.
|
||||
string user_info = 3;
|
||||
|
||||
// Uplink channels.
|
||||
repeated RegionChannel uplink_channels = 4;
|
||||
// Uplink channels.
|
||||
repeated RegionChannel uplink_channels = 4;
|
||||
|
||||
// RX1 delay.
|
||||
uint32 rx1_delay = 5;
|
||||
// RX1 delay.
|
||||
uint32 rx1_delay = 5;
|
||||
|
||||
// RX1 data-rate offset.
|
||||
uint32 rx1_dr_offset = 6;
|
||||
// RX1 data-rate offset.
|
||||
uint32 rx1_dr_offset = 6;
|
||||
|
||||
// RX2 DR.
|
||||
uint32 rx2_dr = 7;
|
||||
// RX2 DR.
|
||||
uint32 rx2_dr = 7;
|
||||
|
||||
// RX2 frequency.
|
||||
uint32 rx2_frequency = 8;
|
||||
// RX2 frequency.
|
||||
uint32 rx2_frequency = 8;
|
||||
|
||||
// Class-B ping-slot DR.
|
||||
uint32 class_b_ping_slot_dr = 9;
|
||||
// Class-B ping-slot DR.
|
||||
uint32 class_b_ping_slot_dr = 9;
|
||||
|
||||
// Class-B ping-slot frequency.
|
||||
uint32 class_b_ping_slot_frequency = 10;
|
||||
// Class-B ping-slot frequency.
|
||||
uint32 class_b_ping_slot_frequency = 10;
|
||||
|
||||
// Region description.
|
||||
string description = 11;
|
||||
// Region description.
|
||||
string description = 11;
|
||||
}
|
||||
|
||||
message RegionChannel {
|
||||
// Frequency (Hz).
|
||||
uint32 frequency = 1;
|
||||
// Frequency (Hz).
|
||||
uint32 frequency = 1;
|
||||
|
||||
// Min DR.
|
||||
uint32 dr_min = 2;
|
||||
// Min DR.
|
||||
uint32 dr_min = 2;
|
||||
|
||||
// Max DR.
|
||||
uint32 dr_max = 3;
|
||||
// Max DR.
|
||||
uint32 dr_max = 3;
|
||||
}
|
||||
|
443
api/python/proto/chirpstack-api/api/internal.proto
vendored
443
api/python/proto/chirpstack-api/api/internal.proto
vendored
@ -15,361 +15,402 @@ import "chirpstack-api/api/user.proto";
|
||||
|
||||
// InternalService is the service providing API endpoints for internal usage.
|
||||
service InternalService {
|
||||
// Log in a user
|
||||
rpc Login(LoginRequest) returns (LoginResponse) {}
|
||||
// Log in a user
|
||||
rpc Login(LoginRequest) returns (LoginResponse) {}
|
||||
|
||||
// Get the current user's profile
|
||||
rpc Profile(google.protobuf.Empty) returns (ProfileResponse) {}
|
||||
// Get the current user's profile
|
||||
rpc Profile(google.protobuf.Empty) returns (ProfileResponse) {}
|
||||
|
||||
// Perform a global search.
|
||||
rpc GlobalSearch(GlobalSearchRequest) returns (GlobalSearchResponse) {}
|
||||
// Perform a global search.
|
||||
rpc GlobalSearch(GlobalSearchRequest) returns (GlobalSearchResponse) {}
|
||||
|
||||
// CreateApiKey creates the given API key.
|
||||
rpc CreateApiKey(CreateApiKeyRequest) returns (CreateApiKeyResponse) {}
|
||||
// CreateApiKey creates the given API key.
|
||||
rpc CreateApiKey(CreateApiKeyRequest) returns (CreateApiKeyResponse) {}
|
||||
|
||||
// DeleteApiKey deletes the API key.
|
||||
rpc DeleteApiKey(DeleteApiKeyRequest) returns (google.protobuf.Empty) {}
|
||||
// DeleteApiKey deletes the API key.
|
||||
rpc DeleteApiKey(DeleteApiKeyRequest) returns (google.protobuf.Empty) {}
|
||||
|
||||
// ListApiKeys lists the available API keys.
|
||||
rpc ListApiKeys(ListApiKeysRequest) returns (ListApiKeysResponse) {}
|
||||
// ListApiKeys lists the available API keys.
|
||||
rpc ListApiKeys(ListApiKeysRequest) returns (ListApiKeysResponse) {}
|
||||
|
||||
// Get the global settings.
|
||||
rpc Settings(google.protobuf.Empty) returns (SettingsResponse) {}
|
||||
// Get the global settings.
|
||||
rpc Settings(google.protobuf.Empty) returns (SettingsResponse) {}
|
||||
|
||||
// OpenId Connect login.
|
||||
rpc OpenIdConnectLogin(OpenIdConnectLoginRequest) returns (OpenIdConnectLoginResponse) {}
|
||||
// OpenId Connect login.
|
||||
rpc OpenIdConnectLogin(OpenIdConnectLoginRequest)
|
||||
returns (OpenIdConnectLoginResponse) {}
|
||||
|
||||
// GetDevicesSummary returns an aggregated summary of the devices.
|
||||
rpc GetDevicesSummary(GetDevicesSummaryRequest) returns (GetDevicesSummaryResponse) {}
|
||||
// OAuth2 login.
|
||||
rpc OAuth2Login(OAuth2LoginRequest) returns (OAuth2LoginResponse) {}
|
||||
|
||||
// GetGatewaysSummary returns an aggregated summary of the gateways.
|
||||
rpc GetGatewaysSummary(GetGatewaysSummaryRequest) returns (GetGatewaysSummaryResponse) {}
|
||||
// GetDevicesSummary returns an aggregated summary of the devices.
|
||||
rpc GetDevicesSummary(GetDevicesSummaryRequest)
|
||||
returns (GetDevicesSummaryResponse) {}
|
||||
|
||||
// Stream frame for the given Gateway ID.
|
||||
rpc StreamGatewayFrames(StreamGatewayFramesRequest) returns (stream LogItem) {}
|
||||
// GetGatewaysSummary returns an aggregated summary of the gateways.
|
||||
rpc GetGatewaysSummary(GetGatewaysSummaryRequest)
|
||||
returns (GetGatewaysSummaryResponse) {}
|
||||
|
||||
// Stream frames for the given Device EUI.
|
||||
rpc StreamDeviceFrames(StreamDeviceFramesRequest) returns (stream LogItem) {}
|
||||
// Stream frame for the given Gateway ID.
|
||||
rpc StreamGatewayFrames(StreamGatewayFramesRequest) returns (stream LogItem) {
|
||||
}
|
||||
|
||||
// Stream events for the given Device EUI.
|
||||
rpc StreamDeviceEvents(StreamDeviceEventsRequest) returns (stream LogItem) {}
|
||||
// Stream frames for the given Device EUI.
|
||||
rpc StreamDeviceFrames(StreamDeviceFramesRequest) returns (stream LogItem) {}
|
||||
|
||||
// ListRegions lists the available (configured) regions.
|
||||
rpc ListRegions(google.protobuf.Empty) returns (ListRegionsResponse) {}
|
||||
// Stream events for the given Device EUI.
|
||||
rpc StreamDeviceEvents(StreamDeviceEventsRequest) returns (stream LogItem) {}
|
||||
|
||||
// GetRegion returns the region details for the given region.
|
||||
rpc GetRegion(GetRegionRequest) returns (GetRegionResponse) {}
|
||||
// ListRegions lists the available (configured) regions.
|
||||
rpc ListRegions(google.protobuf.Empty) returns (ListRegionsResponse) {}
|
||||
|
||||
// GetRegion returns the region details for the given region.
|
||||
rpc GetRegion(GetRegionRequest) returns (GetRegionResponse) {}
|
||||
}
|
||||
|
||||
message ApiKey {
|
||||
// API key ID.
|
||||
// This value will be automatically generated on create.
|
||||
string id = 1;
|
||||
// API key ID.
|
||||
// This value will be automatically generated on create.
|
||||
string id = 1;
|
||||
|
||||
// Name.
|
||||
string name = 2;
|
||||
// Name.
|
||||
string name = 2;
|
||||
|
||||
// Is global admin key.
|
||||
bool is_admin = 3;
|
||||
// Is global admin key.
|
||||
bool is_admin = 3;
|
||||
|
||||
// Tenant ID.
|
||||
// In case the API key is intended to manage resources under a single tenant.
|
||||
string tenant_id = 4;
|
||||
// Tenant ID.
|
||||
// In case the API key is intended to manage resources under a single tenant.
|
||||
string tenant_id = 4;
|
||||
}
|
||||
|
||||
message CreateApiKeyRequest {
|
||||
// The API key to create.
|
||||
ApiKey api_key = 1;
|
||||
// The API key to create.
|
||||
ApiKey api_key = 1;
|
||||
}
|
||||
|
||||
message CreateApiKeyResponse {
|
||||
// API key ID.
|
||||
string id = 1;
|
||||
// API key ID.
|
||||
string id = 1;
|
||||
|
||||
// API token for authentication API requests.
|
||||
string token = 2;
|
||||
// API token for authentication API requests.
|
||||
string token = 2;
|
||||
}
|
||||
|
||||
message DeleteApiKeyRequest {
|
||||
// API key ID.
|
||||
string id = 1;
|
||||
// API key ID.
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message ListApiKeysRequest {
|
||||
// Max number of items to return.
|
||||
uint32 limit = 1;
|
||||
// Max number of items to return.
|
||||
uint32 limit = 1;
|
||||
|
||||
// Offset in the result-set (for pagination).
|
||||
uint32 offset = 2;
|
||||
// Offset in the result-set (for pagination).
|
||||
uint32 offset = 2;
|
||||
|
||||
// Return only admin keys.
|
||||
bool is_admin = 3;
|
||||
// Return only admin keys.
|
||||
bool is_admin = 3;
|
||||
|
||||
// Filter on tenant ID.
|
||||
string tenant_id = 4;
|
||||
// Filter on tenant ID.
|
||||
string tenant_id = 4;
|
||||
}
|
||||
|
||||
message ListApiKeysResponse {
|
||||
// Total number of API keys.
|
||||
uint32 total_count = 1;
|
||||
// Total number of API keys.
|
||||
uint32 total_count = 1;
|
||||
|
||||
repeated ApiKey result = 2;
|
||||
repeated ApiKey result = 2;
|
||||
}
|
||||
|
||||
// Defines a tenant to which the user is associated.
|
||||
message UserTenantLink {
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 1;
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 1;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 2;
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 2;
|
||||
|
||||
// Tenant ID.
|
||||
string tenant_id = 3;
|
||||
// Tenant ID.
|
||||
string tenant_id = 3;
|
||||
|
||||
// User is admin within the context of this tenant.
|
||||
// There is no need to set the is_device_admin and is_gateway_admin flags.
|
||||
bool is_admin = 4;
|
||||
// User is admin within the context of this tenant.
|
||||
// There is no need to set the is_device_admin and is_gateway_admin flags.
|
||||
bool is_admin = 4;
|
||||
|
||||
// User is able to modify device related resources (applications,
|
||||
// device-profiles, devices, multicast-groups).
|
||||
bool is_device_admin = 5;
|
||||
// User is able to modify device related resources (applications,
|
||||
// device-profiles, devices, multicast-groups).
|
||||
bool is_device_admin = 5;
|
||||
|
||||
// User is able to modify gateways.
|
||||
bool is_gateway_admin = 6;
|
||||
// User is able to modify gateways.
|
||||
bool is_gateway_admin = 6;
|
||||
}
|
||||
|
||||
message LoginRequest {
|
||||
// Email of the user.
|
||||
string email = 1;
|
||||
// Email of the user.
|
||||
string email = 1;
|
||||
|
||||
// Password of the user.
|
||||
string password = 2;
|
||||
// Password of the user.
|
||||
string password = 2;
|
||||
}
|
||||
|
||||
message LoginResponse {
|
||||
// The JWT tag to be used to access chirpstack-application-server interfaces.
|
||||
string jwt = 1;
|
||||
// The JWT tag to be used to access chirpstack-application-server interfaces.
|
||||
string jwt = 1;
|
||||
}
|
||||
|
||||
message ProfileResponse {
|
||||
// User object.
|
||||
User user = 1;
|
||||
// User object.
|
||||
User user = 1;
|
||||
|
||||
// Tenants to which the user is associated.
|
||||
repeated UserTenantLink tenants = 3;
|
||||
// Tenants to which the user is associated.
|
||||
repeated UserTenantLink tenants = 3;
|
||||
}
|
||||
|
||||
message GlobalSearchRequest {
|
||||
// Search query.
|
||||
string search = 1;
|
||||
// Search query.
|
||||
string search = 1;
|
||||
|
||||
// Max number of results to return.
|
||||
int64 limit = 2;
|
||||
// Max number of results to return.
|
||||
int64 limit = 2;
|
||||
|
||||
// Offset offset of the result-set (for pagination).
|
||||
int64 offset = 3;
|
||||
// Offset offset of the result-set (for pagination).
|
||||
int64 offset = 3;
|
||||
}
|
||||
|
||||
message GlobalSearchResponse {
|
||||
repeated GlobalSearchResult result = 1;
|
||||
}
|
||||
message GlobalSearchResponse { repeated GlobalSearchResult result = 1; }
|
||||
|
||||
message GlobalSearchResult {
|
||||
// Record kind.
|
||||
string kind = 1;
|
||||
// Record kind.
|
||||
string kind = 1;
|
||||
|
||||
// Search score.
|
||||
float score = 2;
|
||||
// Search score.
|
||||
float score = 2;
|
||||
|
||||
// Organization id.
|
||||
string tenant_id = 3;
|
||||
// Organization id.
|
||||
string tenant_id = 3;
|
||||
|
||||
// Organization name.
|
||||
string tenant_name = 4;
|
||||
// Organization name.
|
||||
string tenant_name = 4;
|
||||
|
||||
// Application id.
|
||||
string application_id = 5;
|
||||
// Application id.
|
||||
string application_id = 5;
|
||||
|
||||
// Application name.
|
||||
string application_name = 6;
|
||||
// Application name.
|
||||
string application_name = 6;
|
||||
|
||||
// Device DevEUI (hex encoded).
|
||||
string device_dev_eui = 7;
|
||||
// Device DevEUI (hex encoded).
|
||||
string device_dev_eui = 7;
|
||||
|
||||
// Device name.
|
||||
string device_name = 8;
|
||||
// Device name.
|
||||
string device_name = 8;
|
||||
|
||||
// Gateway MAC (hex encoded).
|
||||
string gateway_id = 9;
|
||||
// Gateway MAC (hex encoded).
|
||||
string gateway_id = 9;
|
||||
|
||||
// Gateway name.
|
||||
string gateway_name = 10;
|
||||
// Gateway name.
|
||||
string gateway_name = 10;
|
||||
}
|
||||
|
||||
message SettingsResponse {
|
||||
// OpenId Connect settings.
|
||||
OpenIdConnect openid_connect = 1;
|
||||
// OpenId Connect settings.
|
||||
OpenIdConnect openid_connect = 1;
|
||||
|
||||
// OAuth2 settings.
|
||||
OAuth2 oauth2 = 2;
|
||||
}
|
||||
|
||||
message OpenIdConnect {
|
||||
// Enable OpenId Connect authentication.
|
||||
bool enabled = 1;
|
||||
// Enable OpenId Connect authentication.
|
||||
bool enabled = 1;
|
||||
|
||||
// Login url.
|
||||
string login_url = 2 [json_name = "loginURL"];
|
||||
// Login url.
|
||||
string login_url = 2;
|
||||
|
||||
// Login label.
|
||||
string login_label = 3;
|
||||
// Login label.
|
||||
string login_label = 3;
|
||||
|
||||
// Logout url.
|
||||
string logout_url = 4 [json_name = "logoutURL"];
|
||||
// Logout url.
|
||||
string logout_url = 4;
|
||||
|
||||
// Login redirect.
|
||||
bool login_redirect = 5;
|
||||
}
|
||||
|
||||
message OAuth2 {
|
||||
// OAuth2 is enabled.
|
||||
bool enabled = 1;
|
||||
|
||||
// Login url.
|
||||
string login_url = 2;
|
||||
|
||||
// Login label.
|
||||
string login_label = 3;
|
||||
|
||||
// Logout url.
|
||||
string logout_url = 4;
|
||||
|
||||
// Login redirect.
|
||||
bool login_redirect = 5;
|
||||
}
|
||||
|
||||
message OpenIdConnectLoginRequest {
|
||||
// OpenId Connect callback code.
|
||||
string code = 1;
|
||||
// OpenId Connect callback code.
|
||||
string code = 1;
|
||||
|
||||
// OpenId Connect callback state.
|
||||
string state = 2;
|
||||
// OpenId Connect callback state.
|
||||
string state = 2;
|
||||
}
|
||||
|
||||
message OpenIdConnectLoginResponse {
|
||||
// Token to use for authentication.
|
||||
string token = 1;
|
||||
// Token to use for authentication.
|
||||
string token = 1;
|
||||
}
|
||||
|
||||
message OAuth2LoginRequest {
|
||||
// OAuth2 callback code.
|
||||
string code = 1;
|
||||
|
||||
// OAuth2 callback state.
|
||||
string state = 2;
|
||||
}
|
||||
|
||||
message OAuth2LoginResponse {
|
||||
// Token to use for authentication.
|
||||
string token = 1;
|
||||
}
|
||||
|
||||
message GetDevicesSummaryRequest {
|
||||
// Tenant ID (UUID).
|
||||
string tenant_id = 1;
|
||||
// Tenant ID (UUID).
|
||||
string tenant_id = 1;
|
||||
}
|
||||
|
||||
message GetDevicesSummaryResponse {
|
||||
// Active count.
|
||||
uint32 active_count = 1;
|
||||
// Active count.
|
||||
uint32 active_count = 1;
|
||||
|
||||
// Inactive count.
|
||||
uint32 inactive_count = 2;
|
||||
// Inactive count.
|
||||
uint32 inactive_count = 2;
|
||||
|
||||
// per data-rate count.
|
||||
// Devices that have never been seen are excluded.
|
||||
map<uint32, uint32> dr_count = 3;
|
||||
// per data-rate count.
|
||||
// Devices that have never been seen are excluded.
|
||||
map<uint32, uint32> dr_count = 3;
|
||||
|
||||
// Never seen count.
|
||||
uint32 never_seen_count = 4;
|
||||
// Never seen count.
|
||||
uint32 never_seen_count = 4;
|
||||
}
|
||||
|
||||
message GetGatewaysSummaryRequest {
|
||||
// Tenant ID (UUID).
|
||||
string tenant_id = 1;
|
||||
// Tenant ID (UUID).
|
||||
string tenant_id = 1;
|
||||
}
|
||||
|
||||
message GetGatewaysSummaryResponse {
|
||||
// Online count.
|
||||
uint32 online_count = 1;
|
||||
// Online count.
|
||||
uint32 online_count = 1;
|
||||
|
||||
// Offline count.
|
||||
uint32 offline_count = 2;
|
||||
// Offline count.
|
||||
uint32 offline_count = 2;
|
||||
|
||||
// Never seen count.
|
||||
uint32 never_seen_count = 3;
|
||||
// Never seen count.
|
||||
uint32 never_seen_count = 3;
|
||||
}
|
||||
|
||||
message LogItem {
|
||||
// ID.
|
||||
string id = 1;
|
||||
// ID.
|
||||
string id = 1;
|
||||
|
||||
// Timestamp.
|
||||
google.protobuf.Timestamp time = 2;
|
||||
// Timestamp.
|
||||
google.protobuf.Timestamp time = 2;
|
||||
|
||||
// Message.
|
||||
string description = 3;
|
||||
// Message.
|
||||
string description = 3;
|
||||
|
||||
// Body.
|
||||
string body = 4;
|
||||
// Body.
|
||||
string body = 4;
|
||||
|
||||
// Properties.
|
||||
map<string, string> properties = 5;
|
||||
// Properties.
|
||||
map<string, string> properties = 5;
|
||||
}
|
||||
|
||||
message StreamGatewayFramesRequest {
|
||||
// Gateway ID (EUI64).
|
||||
string gateway_id = 1;
|
||||
// Gateway ID (EUI64).
|
||||
string gateway_id = 1;
|
||||
}
|
||||
|
||||
message StreamDeviceFramesRequest {
|
||||
// Device EUI.
|
||||
string dev_eui = 1;
|
||||
// Device EUI.
|
||||
string dev_eui = 1;
|
||||
}
|
||||
|
||||
message StreamDeviceEventsRequest {
|
||||
// Device EUI.
|
||||
string dev_eui = 1;
|
||||
// Device EUI.
|
||||
string dev_eui = 1;
|
||||
}
|
||||
|
||||
message ListRegionsResponse {
|
||||
// Configured regions.
|
||||
repeated RegionListItem regions = 1;
|
||||
// Configured regions.
|
||||
repeated RegionListItem regions = 1;
|
||||
}
|
||||
|
||||
message RegionListItem {
|
||||
// ID.
|
||||
string id = 1;
|
||||
// ID.
|
||||
string id = 1;
|
||||
|
||||
// Region.
|
||||
common.Region region = 2;
|
||||
// Region.
|
||||
common.Region region = 2;
|
||||
|
||||
// Description.
|
||||
string description = 3;
|
||||
// Description.
|
||||
string description = 3;
|
||||
}
|
||||
|
||||
message GetRegionRequest {
|
||||
// Region ID.
|
||||
string id = 1;
|
||||
// Region ID.
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message GetRegionResponse {
|
||||
// ID.
|
||||
string id = 1;
|
||||
// ID.
|
||||
string id = 1;
|
||||
|
||||
// Region.
|
||||
common.Region region = 2;
|
||||
// Region.
|
||||
common.Region region = 2;
|
||||
|
||||
// User information.
|
||||
string user_info = 3;
|
||||
// User information.
|
||||
string user_info = 3;
|
||||
|
||||
// Uplink channels.
|
||||
repeated RegionChannel uplink_channels = 4;
|
||||
// Uplink channels.
|
||||
repeated RegionChannel uplink_channels = 4;
|
||||
|
||||
// RX1 delay.
|
||||
uint32 rx1_delay = 5;
|
||||
// RX1 delay.
|
||||
uint32 rx1_delay = 5;
|
||||
|
||||
// RX1 data-rate offset.
|
||||
uint32 rx1_dr_offset = 6;
|
||||
// RX1 data-rate offset.
|
||||
uint32 rx1_dr_offset = 6;
|
||||
|
||||
// RX2 DR.
|
||||
uint32 rx2_dr = 7;
|
||||
// RX2 DR.
|
||||
uint32 rx2_dr = 7;
|
||||
|
||||
// RX2 frequency.
|
||||
uint32 rx2_frequency = 8;
|
||||
// RX2 frequency.
|
||||
uint32 rx2_frequency = 8;
|
||||
|
||||
// Class-B ping-slot DR.
|
||||
uint32 class_b_ping_slot_dr = 9;
|
||||
// Class-B ping-slot DR.
|
||||
uint32 class_b_ping_slot_dr = 9;
|
||||
|
||||
// Class-B ping-slot frequency.
|
||||
uint32 class_b_ping_slot_frequency = 10;
|
||||
// Class-B ping-slot frequency.
|
||||
uint32 class_b_ping_slot_frequency = 10;
|
||||
|
||||
// Region description.
|
||||
string description = 11;
|
||||
// Region description.
|
||||
string description = 11;
|
||||
}
|
||||
|
||||
message RegionChannel {
|
||||
// Frequency (Hz).
|
||||
uint32 frequency = 1;
|
||||
// Frequency (Hz).
|
||||
uint32 frequency = 1;
|
||||
|
||||
// Min DR.
|
||||
uint32 dr_min = 2;
|
||||
// Min DR.
|
||||
uint32 dr_min = 2;
|
||||
|
||||
// Max DR.
|
||||
uint32 dr_max = 3;
|
||||
// Max DR.
|
||||
uint32 dr_max = 3;
|
||||
}
|
||||
|
202
api/python/src/chirpstack_api/api/application_pb2.py
vendored
202
api/python/src/chirpstack_api/api/application_pb2.py
vendored
@ -1,6 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: chirpstack-api/api/application.proto
|
||||
# Protobuf Python Version: 4.25.0
|
||||
"""Generated protocol buffer code."""
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import descriptor_pool as _descriptor_pool
|
||||
@ -22,107 +23,106 @@ _globals = globals()
|
||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
||||
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'chirpstack_api.api.application_pb2', _globals)
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
|
||||
DESCRIPTOR._options = None
|
||||
DESCRIPTOR._serialized_options = b'\n\021io.chirpstack.apiB\020ApplicationProtoP\001Z.github.com/chirpstack/chirpstack/api/go/v4/api\252\002\016Chirpstack.Api'
|
||||
_APPLICATION_TAGSENTRY._options = None
|
||||
_APPLICATION_TAGSENTRY._serialized_options = b'8\001'
|
||||
_HTTPINTEGRATION_HEADERSENTRY._options = None
|
||||
_HTTPINTEGRATION_HEADERSENTRY._serialized_options = b'8\001'
|
||||
_APPLICATIONSERVICE.methods_by_name['Create']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['Create']._serialized_options = b'\202\323\344\223\002\026\"\021/api/applications:\001*'
|
||||
_APPLICATIONSERVICE.methods_by_name['Get']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['Get']._serialized_options = b'\202\323\344\223\002\030\022\026/api/applications/{id}'
|
||||
_APPLICATIONSERVICE.methods_by_name['Update']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['Update']._serialized_options = b'\202\323\344\223\002\'\032\"/api/applications/{application.id}:\001*'
|
||||
_APPLICATIONSERVICE.methods_by_name['Delete']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['Delete']._serialized_options = b'\202\323\344\223\002\030*\026/api/applications/{id}'
|
||||
_APPLICATIONSERVICE.methods_by_name['List']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['List']._serialized_options = b'\202\323\344\223\002\023\022\021/api/applications'
|
||||
_APPLICATIONSERVICE.methods_by_name['ListIntegrations']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['ListIntegrations']._serialized_options = b'\202\323\344\223\0021\022//api/applications/{application_id}/integrations'
|
||||
_APPLICATIONSERVICE.methods_by_name['CreateHttpIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['CreateHttpIntegration']._serialized_options = b'\202\323\344\223\002E\"@/api/applications/{integration.application_id}/integrations/http:\001*'
|
||||
_APPLICATIONSERVICE.methods_by_name['GetHttpIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['GetHttpIntegration']._serialized_options = b'\202\323\344\223\0026\0224/api/applications/{application_id}/integrations/http'
|
||||
_APPLICATIONSERVICE.methods_by_name['UpdateHttpIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['UpdateHttpIntegration']._serialized_options = b'\202\323\344\223\002E\032@/api/applications/{integration.application_id}/integrations/http:\001*'
|
||||
_APPLICATIONSERVICE.methods_by_name['DeleteHttpIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['DeleteHttpIntegration']._serialized_options = b'\202\323\344\223\0026*4/api/applications/{application_id}/integrations/http'
|
||||
_APPLICATIONSERVICE.methods_by_name['CreateInfluxDbIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['CreateInfluxDbIntegration']._serialized_options = b'\202\323\344\223\002I\"D/api/applications/{integration.application_id}/integrations/influxdb:\001*'
|
||||
_APPLICATIONSERVICE.methods_by_name['GetInfluxDbIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['GetInfluxDbIntegration']._serialized_options = b'\202\323\344\223\002:\0228/api/applications/{application_id}/integrations/influxdb'
|
||||
_APPLICATIONSERVICE.methods_by_name['UpdateInfluxDbIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['UpdateInfluxDbIntegration']._serialized_options = b'\202\323\344\223\002I\032D/api/applications/{integration.application_id}/integrations/influxdb:\001*'
|
||||
_APPLICATIONSERVICE.methods_by_name['DeleteInfluxDbIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['DeleteInfluxDbIntegration']._serialized_options = b'\202\323\344\223\002:*8/api/applications/{application_id}/integrations/influxdb'
|
||||
_APPLICATIONSERVICE.methods_by_name['CreateThingsBoardIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['CreateThingsBoardIntegration']._serialized_options = b'\202\323\344\223\002L\"G/api/applications/{integration.application_id}/integrations/thingsboard:\001*'
|
||||
_APPLICATIONSERVICE.methods_by_name['GetThingsBoardIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['GetThingsBoardIntegration']._serialized_options = b'\202\323\344\223\002=\022;/api/applications/{application_id}/integrations/thingsboard'
|
||||
_APPLICATIONSERVICE.methods_by_name['UpdateThingsBoardIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['UpdateThingsBoardIntegration']._serialized_options = b'\202\323\344\223\002L\032G/api/applications/{integration.application_id}/integrations/thingsboard:\001*'
|
||||
_APPLICATIONSERVICE.methods_by_name['DeleteThingsBoardIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['DeleteThingsBoardIntegration']._serialized_options = b'\202\323\344\223\002=*;/api/applications/{application_id}/integrations/thingsboard'
|
||||
_APPLICATIONSERVICE.methods_by_name['CreateMyDevicesIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['CreateMyDevicesIntegration']._serialized_options = b'\202\323\344\223\002J\"E/api/applications/{integration.application_id}/integrations/mydevices:\001*'
|
||||
_APPLICATIONSERVICE.methods_by_name['GetMyDevicesIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['GetMyDevicesIntegration']._serialized_options = b'\202\323\344\223\002;\0229/api/applications/{application_id}/integrations/mydevices'
|
||||
_APPLICATIONSERVICE.methods_by_name['UpdateMyDevicesIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['UpdateMyDevicesIntegration']._serialized_options = b'\202\323\344\223\002J\032E/api/applications/{integration.application_id}/integrations/mydevices:\001*'
|
||||
_APPLICATIONSERVICE.methods_by_name['DeleteMyDevicesIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['DeleteMyDevicesIntegration']._serialized_options = b'\202\323\344\223\002;*9/api/applications/{application_id}/integrations/mydevices'
|
||||
_APPLICATIONSERVICE.methods_by_name['CreateLoraCloudIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['CreateLoraCloudIntegration']._serialized_options = b'\202\323\344\223\002J\"E/api/applications/{integration.application_id}/integrations/loracloud:\001*'
|
||||
_APPLICATIONSERVICE.methods_by_name['GetLoraCloudIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['GetLoraCloudIntegration']._serialized_options = b'\202\323\344\223\002;\0229/api/applications/{application_id}/integrations/loracloud'
|
||||
_APPLICATIONSERVICE.methods_by_name['UpdateLoraCloudIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['UpdateLoraCloudIntegration']._serialized_options = b'\202\323\344\223\002J\032E/api/applications/{integration.application_id}/integrations/loracloud:\001*'
|
||||
_APPLICATIONSERVICE.methods_by_name['DeleteLoraCloudIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['DeleteLoraCloudIntegration']._serialized_options = b'\202\323\344\223\002;*9/api/applications/{application_id}/integrations/loracloud'
|
||||
_APPLICATIONSERVICE.methods_by_name['CreateGcpPubSubIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['CreateGcpPubSubIntegration']._serialized_options = b'\202\323\344\223\002L\"G/api/applications/{integration.application_id}/integrations/gcp-pub-sub:\001*'
|
||||
_APPLICATIONSERVICE.methods_by_name['GetGcpPubSubIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['GetGcpPubSubIntegration']._serialized_options = b'\202\323\344\223\002=\022;/api/applications/{application_id}/integrations/gcp-pub-sub'
|
||||
_APPLICATIONSERVICE.methods_by_name['UpdateGcpPubSubIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['UpdateGcpPubSubIntegration']._serialized_options = b'\202\323\344\223\002L\032G/api/applications/{integration.application_id}/integrations/gcp-pub-sub:\001*'
|
||||
_APPLICATIONSERVICE.methods_by_name['DeleteGcpPubSubIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['DeleteGcpPubSubIntegration']._serialized_options = b'\202\323\344\223\002=*;/api/applications/{application_id}/integrations/gcp-pub-sub'
|
||||
_APPLICATIONSERVICE.methods_by_name['CreateAwsSnsIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['CreateAwsSnsIntegration']._serialized_options = b'\202\323\344\223\002H\"C/api/applications/{integration.application_id}/integrations/aws-sns:\001*'
|
||||
_APPLICATIONSERVICE.methods_by_name['GetAwsSnsIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['GetAwsSnsIntegration']._serialized_options = b'\202\323\344\223\0029\0227/api/applications/{application_id}/integrations/aws-sns'
|
||||
_APPLICATIONSERVICE.methods_by_name['UpdateAwsSnsIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['UpdateAwsSnsIntegration']._serialized_options = b'\202\323\344\223\002H\032C/api/applications/{integration.application_id}/integrations/aws-sns:\001*'
|
||||
_APPLICATIONSERVICE.methods_by_name['DeleteAwsSnsIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['DeleteAwsSnsIntegration']._serialized_options = b'\202\323\344\223\0029*7/api/applications/{application_id}/integrations/aws-sns'
|
||||
_APPLICATIONSERVICE.methods_by_name['CreateAzureServiceBusIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['CreateAzureServiceBusIntegration']._serialized_options = b'\202\323\344\223\002R\"M/api/applications/{integration.application_id}/integrations/azure-service-bus:\001*'
|
||||
_APPLICATIONSERVICE.methods_by_name['GetAzureServiceBusIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['GetAzureServiceBusIntegration']._serialized_options = b'\202\323\344\223\002C\022A/api/applications/{application_id}/integrations/azure-service-bus'
|
||||
_APPLICATIONSERVICE.methods_by_name['UpdateAzureServiceBusIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['UpdateAzureServiceBusIntegration']._serialized_options = b'\202\323\344\223\002R\032M/api/applications/{integration.application_id}/integrations/azure-service-bus:\001*'
|
||||
_APPLICATIONSERVICE.methods_by_name['DeleteAzureServiceBusIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['DeleteAzureServiceBusIntegration']._serialized_options = b'\202\323\344\223\002C*A/api/applications/{application_id}/integrations/azure-service-bus'
|
||||
_APPLICATIONSERVICE.methods_by_name['CreatePilotThingsIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['CreatePilotThingsIntegration']._serialized_options = b'\202\323\344\223\002M\"H/api/applications/{integration.application_id}/integrations/pilot-things:\001*'
|
||||
_APPLICATIONSERVICE.methods_by_name['GetPilotThingsIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['GetPilotThingsIntegration']._serialized_options = b'\202\323\344\223\002>\022</api/applications/{application_id}/integrations/pilot-things'
|
||||
_APPLICATIONSERVICE.methods_by_name['UpdatePilotThingsIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['UpdatePilotThingsIntegration']._serialized_options = b'\202\323\344\223\002M\032H/api/applications/{integration.application_id}/integrations/pilot-things:\001*'
|
||||
_APPLICATIONSERVICE.methods_by_name['DeletePilotThingsIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['DeletePilotThingsIntegration']._serialized_options = b'\202\323\344\223\002>*</api/applications/{application_id}/integrations/pilot-things'
|
||||
_APPLICATIONSERVICE.methods_by_name['CreateIftttIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['CreateIftttIntegration']._serialized_options = b'\202\323\344\223\002F\"A/api/applications/{integration.application_id}/integrations/ifttt:\001*'
|
||||
_APPLICATIONSERVICE.methods_by_name['GetIftttIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['GetIftttIntegration']._serialized_options = b'\202\323\344\223\0027\0225/api/applications/{application_id}/integrations/ifttt'
|
||||
_APPLICATIONSERVICE.methods_by_name['UpdateIftttIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['UpdateIftttIntegration']._serialized_options = b'\202\323\344\223\002F\032A/api/applications/{integration.application_id}/integrations/ifttt:\001*'
|
||||
_APPLICATIONSERVICE.methods_by_name['DeleteIftttIntegration']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['DeleteIftttIntegration']._serialized_options = b'\202\323\344\223\0027*5/api/applications/{application_id}/integrations/ifttt'
|
||||
_APPLICATIONSERVICE.methods_by_name['GenerateMqttIntegrationClientCertificate']._options = None
|
||||
_APPLICATIONSERVICE.methods_by_name['GenerateMqttIntegrationClientCertificate']._serialized_options = b'\202\323\344\223\002B\"@/api/applications/{application_id}/integrations/mqtt/certificate'
|
||||
_globals['DESCRIPTOR']._options = None
|
||||
_globals['DESCRIPTOR']._serialized_options = b'\n\021io.chirpstack.apiB\020ApplicationProtoP\001Z.github.com/chirpstack/chirpstack/api/go/v4/api\252\002\016Chirpstack.Api'
|
||||
_globals['_APPLICATION_TAGSENTRY']._options = None
|
||||
_globals['_APPLICATION_TAGSENTRY']._serialized_options = b'8\001'
|
||||
_globals['_HTTPINTEGRATION_HEADERSENTRY']._options = None
|
||||
_globals['_HTTPINTEGRATION_HEADERSENTRY']._serialized_options = b'8\001'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['Create']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['Create']._serialized_options = b'\202\323\344\223\002\026\"\021/api/applications:\001*'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['Get']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['Get']._serialized_options = b'\202\323\344\223\002\030\022\026/api/applications/{id}'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['Update']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['Update']._serialized_options = b'\202\323\344\223\002\'\032\"/api/applications/{application.id}:\001*'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['Delete']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['Delete']._serialized_options = b'\202\323\344\223\002\030*\026/api/applications/{id}'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['List']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['List']._serialized_options = b'\202\323\344\223\002\023\022\021/api/applications'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['ListIntegrations']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['ListIntegrations']._serialized_options = b'\202\323\344\223\0021\022//api/applications/{application_id}/integrations'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['CreateHttpIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['CreateHttpIntegration']._serialized_options = b'\202\323\344\223\002E\"@/api/applications/{integration.application_id}/integrations/http:\001*'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['GetHttpIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['GetHttpIntegration']._serialized_options = b'\202\323\344\223\0026\0224/api/applications/{application_id}/integrations/http'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['UpdateHttpIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['UpdateHttpIntegration']._serialized_options = b'\202\323\344\223\002E\032@/api/applications/{integration.application_id}/integrations/http:\001*'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['DeleteHttpIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['DeleteHttpIntegration']._serialized_options = b'\202\323\344\223\0026*4/api/applications/{application_id}/integrations/http'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['CreateInfluxDbIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['CreateInfluxDbIntegration']._serialized_options = b'\202\323\344\223\002I\"D/api/applications/{integration.application_id}/integrations/influxdb:\001*'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['GetInfluxDbIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['GetInfluxDbIntegration']._serialized_options = b'\202\323\344\223\002:\0228/api/applications/{application_id}/integrations/influxdb'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['UpdateInfluxDbIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['UpdateInfluxDbIntegration']._serialized_options = b'\202\323\344\223\002I\032D/api/applications/{integration.application_id}/integrations/influxdb:\001*'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['DeleteInfluxDbIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['DeleteInfluxDbIntegration']._serialized_options = b'\202\323\344\223\002:*8/api/applications/{application_id}/integrations/influxdb'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['CreateThingsBoardIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['CreateThingsBoardIntegration']._serialized_options = b'\202\323\344\223\002L\"G/api/applications/{integration.application_id}/integrations/thingsboard:\001*'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['GetThingsBoardIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['GetThingsBoardIntegration']._serialized_options = b'\202\323\344\223\002=\022;/api/applications/{application_id}/integrations/thingsboard'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['UpdateThingsBoardIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['UpdateThingsBoardIntegration']._serialized_options = b'\202\323\344\223\002L\032G/api/applications/{integration.application_id}/integrations/thingsboard:\001*'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['DeleteThingsBoardIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['DeleteThingsBoardIntegration']._serialized_options = b'\202\323\344\223\002=*;/api/applications/{application_id}/integrations/thingsboard'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['CreateMyDevicesIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['CreateMyDevicesIntegration']._serialized_options = b'\202\323\344\223\002J\"E/api/applications/{integration.application_id}/integrations/mydevices:\001*'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['GetMyDevicesIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['GetMyDevicesIntegration']._serialized_options = b'\202\323\344\223\002;\0229/api/applications/{application_id}/integrations/mydevices'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['UpdateMyDevicesIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['UpdateMyDevicesIntegration']._serialized_options = b'\202\323\344\223\002J\032E/api/applications/{integration.application_id}/integrations/mydevices:\001*'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['DeleteMyDevicesIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['DeleteMyDevicesIntegration']._serialized_options = b'\202\323\344\223\002;*9/api/applications/{application_id}/integrations/mydevices'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['CreateLoraCloudIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['CreateLoraCloudIntegration']._serialized_options = b'\202\323\344\223\002J\"E/api/applications/{integration.application_id}/integrations/loracloud:\001*'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['GetLoraCloudIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['GetLoraCloudIntegration']._serialized_options = b'\202\323\344\223\002;\0229/api/applications/{application_id}/integrations/loracloud'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['UpdateLoraCloudIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['UpdateLoraCloudIntegration']._serialized_options = b'\202\323\344\223\002J\032E/api/applications/{integration.application_id}/integrations/loracloud:\001*'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['DeleteLoraCloudIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['DeleteLoraCloudIntegration']._serialized_options = b'\202\323\344\223\002;*9/api/applications/{application_id}/integrations/loracloud'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['CreateGcpPubSubIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['CreateGcpPubSubIntegration']._serialized_options = b'\202\323\344\223\002L\"G/api/applications/{integration.application_id}/integrations/gcp-pub-sub:\001*'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['GetGcpPubSubIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['GetGcpPubSubIntegration']._serialized_options = b'\202\323\344\223\002=\022;/api/applications/{application_id}/integrations/gcp-pub-sub'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['UpdateGcpPubSubIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['UpdateGcpPubSubIntegration']._serialized_options = b'\202\323\344\223\002L\032G/api/applications/{integration.application_id}/integrations/gcp-pub-sub:\001*'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['DeleteGcpPubSubIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['DeleteGcpPubSubIntegration']._serialized_options = b'\202\323\344\223\002=*;/api/applications/{application_id}/integrations/gcp-pub-sub'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['CreateAwsSnsIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['CreateAwsSnsIntegration']._serialized_options = b'\202\323\344\223\002H\"C/api/applications/{integration.application_id}/integrations/aws-sns:\001*'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['GetAwsSnsIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['GetAwsSnsIntegration']._serialized_options = b'\202\323\344\223\0029\0227/api/applications/{application_id}/integrations/aws-sns'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['UpdateAwsSnsIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['UpdateAwsSnsIntegration']._serialized_options = b'\202\323\344\223\002H\032C/api/applications/{integration.application_id}/integrations/aws-sns:\001*'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['DeleteAwsSnsIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['DeleteAwsSnsIntegration']._serialized_options = b'\202\323\344\223\0029*7/api/applications/{application_id}/integrations/aws-sns'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['CreateAzureServiceBusIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['CreateAzureServiceBusIntegration']._serialized_options = b'\202\323\344\223\002R\"M/api/applications/{integration.application_id}/integrations/azure-service-bus:\001*'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['GetAzureServiceBusIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['GetAzureServiceBusIntegration']._serialized_options = b'\202\323\344\223\002C\022A/api/applications/{application_id}/integrations/azure-service-bus'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['UpdateAzureServiceBusIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['UpdateAzureServiceBusIntegration']._serialized_options = b'\202\323\344\223\002R\032M/api/applications/{integration.application_id}/integrations/azure-service-bus:\001*'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['DeleteAzureServiceBusIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['DeleteAzureServiceBusIntegration']._serialized_options = b'\202\323\344\223\002C*A/api/applications/{application_id}/integrations/azure-service-bus'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['CreatePilotThingsIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['CreatePilotThingsIntegration']._serialized_options = b'\202\323\344\223\002M\"H/api/applications/{integration.application_id}/integrations/pilot-things:\001*'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['GetPilotThingsIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['GetPilotThingsIntegration']._serialized_options = b'\202\323\344\223\002>\022</api/applications/{application_id}/integrations/pilot-things'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['UpdatePilotThingsIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['UpdatePilotThingsIntegration']._serialized_options = b'\202\323\344\223\002M\032H/api/applications/{integration.application_id}/integrations/pilot-things:\001*'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['DeletePilotThingsIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['DeletePilotThingsIntegration']._serialized_options = b'\202\323\344\223\002>*</api/applications/{application_id}/integrations/pilot-things'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['CreateIftttIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['CreateIftttIntegration']._serialized_options = b'\202\323\344\223\002F\"A/api/applications/{integration.application_id}/integrations/ifttt:\001*'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['GetIftttIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['GetIftttIntegration']._serialized_options = b'\202\323\344\223\0027\0225/api/applications/{application_id}/integrations/ifttt'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['UpdateIftttIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['UpdateIftttIntegration']._serialized_options = b'\202\323\344\223\002F\032A/api/applications/{integration.application_id}/integrations/ifttt:\001*'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['DeleteIftttIntegration']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['DeleteIftttIntegration']._serialized_options = b'\202\323\344\223\0027*5/api/applications/{application_id}/integrations/ifttt'
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['GenerateMqttIntegrationClientCertificate']._options = None
|
||||
_globals['_APPLICATIONSERVICE'].methods_by_name['GenerateMqttIntegrationClientCertificate']._serialized_options = b'\202\323\344\223\002B\"@/api/applications/{application_id}/integrations/mqtt/certificate'
|
||||
_globals['_ENCODING']._serialized_start=7091
|
||||
_globals['_ENCODING']._serialized_end=7125
|
||||
_globals['_INTEGRATIONKIND']._serialized_start=7128
|
||||
|
@ -10,12 +10,12 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map
|
||||
DESCRIPTOR: _descriptor.FileDescriptor
|
||||
|
||||
class Encoding(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
JSON: _ClassVar[Encoding]
|
||||
PROTOBUF: _ClassVar[Encoding]
|
||||
|
||||
class IntegrationKind(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
HTTP: _ClassVar[IntegrationKind]
|
||||
INFLUX_DB: _ClassVar[IntegrationKind]
|
||||
THINGS_BOARD: _ClassVar[IntegrationKind]
|
||||
@ -29,7 +29,7 @@ class IntegrationKind(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
IFTTT: _ClassVar[IntegrationKind]
|
||||
|
||||
class InfluxDbPrecision(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
NS: _ClassVar[InfluxDbPrecision]
|
||||
U: _ClassVar[InfluxDbPrecision]
|
||||
MS: _ClassVar[InfluxDbPrecision]
|
||||
@ -38,7 +38,7 @@ class InfluxDbPrecision(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
H: _ClassVar[InfluxDbPrecision]
|
||||
|
||||
class InfluxDbVersion(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
INFLUXDB_1: _ClassVar[InfluxDbVersion]
|
||||
INFLUXDB_2: _ClassVar[InfluxDbVersion]
|
||||
JSON: Encoding
|
||||
@ -64,9 +64,9 @@ INFLUXDB_1: InfluxDbVersion
|
||||
INFLUXDB_2: InfluxDbVersion
|
||||
|
||||
class Application(_message.Message):
|
||||
__slots__ = ["id", "name", "description", "tenant_id", "tags"]
|
||||
__slots__ = ("id", "name", "description", "tenant_id", "tags")
|
||||
class TagsEntry(_message.Message):
|
||||
__slots__ = ["key", "value"]
|
||||
__slots__ = ("key", "value")
|
||||
KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
VALUE_FIELD_NUMBER: _ClassVar[int]
|
||||
key: str
|
||||
@ -85,7 +85,7 @@ class Application(_message.Message):
|
||||
def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., tenant_id: _Optional[str] = ..., tags: _Optional[_Mapping[str, str]] = ...) -> None: ...
|
||||
|
||||
class ApplicationListItem(_message.Message):
|
||||
__slots__ = ["id", "created_at", "updated_at", "name", "description"]
|
||||
__slots__ = ("id", "created_at", "updated_at", "name", "description")
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -99,25 +99,25 @@ class ApplicationListItem(_message.Message):
|
||||
def __init__(self, id: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., name: _Optional[str] = ..., description: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class CreateApplicationRequest(_message.Message):
|
||||
__slots__ = ["application"]
|
||||
__slots__ = ("application",)
|
||||
APPLICATION_FIELD_NUMBER: _ClassVar[int]
|
||||
application: Application
|
||||
def __init__(self, application: _Optional[_Union[Application, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class CreateApplicationResponse(_message.Message):
|
||||
__slots__ = ["id"]
|
||||
__slots__ = ("id",)
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
id: str
|
||||
def __init__(self, id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetApplicationRequest(_message.Message):
|
||||
__slots__ = ["id"]
|
||||
__slots__ = ("id",)
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
id: str
|
||||
def __init__(self, id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetApplicationResponse(_message.Message):
|
||||
__slots__ = ["application", "created_at", "updated_at", "measurement_keys"]
|
||||
__slots__ = ("application", "created_at", "updated_at", "measurement_keys")
|
||||
APPLICATION_FIELD_NUMBER: _ClassVar[int]
|
||||
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -129,19 +129,19 @@ class GetApplicationResponse(_message.Message):
|
||||
def __init__(self, application: _Optional[_Union[Application, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., measurement_keys: _Optional[_Iterable[str]] = ...) -> None: ...
|
||||
|
||||
class UpdateApplicationRequest(_message.Message):
|
||||
__slots__ = ["application"]
|
||||
__slots__ = ("application",)
|
||||
APPLICATION_FIELD_NUMBER: _ClassVar[int]
|
||||
application: Application
|
||||
def __init__(self, application: _Optional[_Union[Application, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class DeleteApplicationRequest(_message.Message):
|
||||
__slots__ = ["id"]
|
||||
__slots__ = ("id",)
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
id: str
|
||||
def __init__(self, id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class ListApplicationsRequest(_message.Message):
|
||||
__slots__ = ["limit", "offset", "search", "tenant_id"]
|
||||
__slots__ = ("limit", "offset", "search", "tenant_id")
|
||||
LIMIT_FIELD_NUMBER: _ClassVar[int]
|
||||
OFFSET_FIELD_NUMBER: _ClassVar[int]
|
||||
SEARCH_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -153,7 +153,7 @@ class ListApplicationsRequest(_message.Message):
|
||||
def __init__(self, limit: _Optional[int] = ..., offset: _Optional[int] = ..., search: _Optional[str] = ..., tenant_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class ListApplicationsResponse(_message.Message):
|
||||
__slots__ = ["total_count", "result"]
|
||||
__slots__ = ("total_count", "result")
|
||||
TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
|
||||
RESULT_FIELD_NUMBER: _ClassVar[int]
|
||||
total_count: int
|
||||
@ -161,19 +161,19 @@ class ListApplicationsResponse(_message.Message):
|
||||
def __init__(self, total_count: _Optional[int] = ..., result: _Optional[_Iterable[_Union[ApplicationListItem, _Mapping]]] = ...) -> None: ...
|
||||
|
||||
class ListIntegrationsRequest(_message.Message):
|
||||
__slots__ = ["application_id"]
|
||||
__slots__ = ("application_id",)
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
application_id: str
|
||||
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class IntegrationListItem(_message.Message):
|
||||
__slots__ = ["kind"]
|
||||
__slots__ = ("kind",)
|
||||
KIND_FIELD_NUMBER: _ClassVar[int]
|
||||
kind: IntegrationKind
|
||||
def __init__(self, kind: _Optional[_Union[IntegrationKind, str]] = ...) -> None: ...
|
||||
|
||||
class ListIntegrationsResponse(_message.Message):
|
||||
__slots__ = ["total_count", "result"]
|
||||
__slots__ = ("total_count", "result")
|
||||
TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
|
||||
RESULT_FIELD_NUMBER: _ClassVar[int]
|
||||
total_count: int
|
||||
@ -181,9 +181,9 @@ class ListIntegrationsResponse(_message.Message):
|
||||
def __init__(self, total_count: _Optional[int] = ..., result: _Optional[_Iterable[_Union[IntegrationListItem, _Mapping]]] = ...) -> None: ...
|
||||
|
||||
class HttpIntegration(_message.Message):
|
||||
__slots__ = ["application_id", "headers", "encoding", "event_endpoint_url"]
|
||||
__slots__ = ("application_id", "headers", "encoding", "event_endpoint_url")
|
||||
class HeadersEntry(_message.Message):
|
||||
__slots__ = ["key", "value"]
|
||||
__slots__ = ("key", "value")
|
||||
KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
VALUE_FIELD_NUMBER: _ClassVar[int]
|
||||
key: str
|
||||
@ -200,37 +200,37 @@ class HttpIntegration(_message.Message):
|
||||
def __init__(self, application_id: _Optional[str] = ..., headers: _Optional[_Mapping[str, str]] = ..., encoding: _Optional[_Union[Encoding, str]] = ..., event_endpoint_url: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class CreateHttpIntegrationRequest(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: HttpIntegration
|
||||
def __init__(self, integration: _Optional[_Union[HttpIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class GetHttpIntegrationRequest(_message.Message):
|
||||
__slots__ = ["application_id"]
|
||||
__slots__ = ("application_id",)
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
application_id: str
|
||||
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetHttpIntegrationResponse(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: HttpIntegration
|
||||
def __init__(self, integration: _Optional[_Union[HttpIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class UpdateHttpIntegrationRequest(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: HttpIntegration
|
||||
def __init__(self, integration: _Optional[_Union[HttpIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class DeleteHttpIntegrationRequest(_message.Message):
|
||||
__slots__ = ["application_id"]
|
||||
__slots__ = ("application_id",)
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
application_id: str
|
||||
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class InfluxDbIntegration(_message.Message):
|
||||
__slots__ = ["application_id", "endpoint", "db", "username", "password", "retention_policy_name", "precision", "version", "token", "organization", "bucket"]
|
||||
__slots__ = ("application_id", "endpoint", "db", "username", "password", "retention_policy_name", "precision", "version", "token", "organization", "bucket")
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
ENDPOINT_FIELD_NUMBER: _ClassVar[int]
|
||||
DB_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -256,37 +256,37 @@ class InfluxDbIntegration(_message.Message):
|
||||
def __init__(self, application_id: _Optional[str] = ..., endpoint: _Optional[str] = ..., db: _Optional[str] = ..., username: _Optional[str] = ..., password: _Optional[str] = ..., retention_policy_name: _Optional[str] = ..., precision: _Optional[_Union[InfluxDbPrecision, str]] = ..., version: _Optional[_Union[InfluxDbVersion, str]] = ..., token: _Optional[str] = ..., organization: _Optional[str] = ..., bucket: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class CreateInfluxDbIntegrationRequest(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: InfluxDbIntegration
|
||||
def __init__(self, integration: _Optional[_Union[InfluxDbIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class GetInfluxDbIntegrationRequest(_message.Message):
|
||||
__slots__ = ["application_id"]
|
||||
__slots__ = ("application_id",)
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
application_id: str
|
||||
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetInfluxDbIntegrationResponse(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: InfluxDbIntegration
|
||||
def __init__(self, integration: _Optional[_Union[InfluxDbIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class UpdateInfluxDbIntegrationRequest(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: InfluxDbIntegration
|
||||
def __init__(self, integration: _Optional[_Union[InfluxDbIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class DeleteInfluxDbIntegrationRequest(_message.Message):
|
||||
__slots__ = ["application_id"]
|
||||
__slots__ = ("application_id",)
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
application_id: str
|
||||
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class ThingsBoardIntegration(_message.Message):
|
||||
__slots__ = ["application_id", "server"]
|
||||
__slots__ = ("application_id", "server")
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
SERVER_FIELD_NUMBER: _ClassVar[int]
|
||||
application_id: str
|
||||
@ -294,37 +294,37 @@ class ThingsBoardIntegration(_message.Message):
|
||||
def __init__(self, application_id: _Optional[str] = ..., server: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class CreateThingsBoardIntegrationRequest(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: ThingsBoardIntegration
|
||||
def __init__(self, integration: _Optional[_Union[ThingsBoardIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class GetThingsBoardIntegrationRequest(_message.Message):
|
||||
__slots__ = ["application_id"]
|
||||
__slots__ = ("application_id",)
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
application_id: str
|
||||
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetThingsBoardIntegrationResponse(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: ThingsBoardIntegration
|
||||
def __init__(self, integration: _Optional[_Union[ThingsBoardIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class UpdateThingsBoardIntegrationRequest(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: ThingsBoardIntegration
|
||||
def __init__(self, integration: _Optional[_Union[ThingsBoardIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class DeleteThingsBoardIntegrationRequest(_message.Message):
|
||||
__slots__ = ["application_id"]
|
||||
__slots__ = ("application_id",)
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
application_id: str
|
||||
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class MyDevicesIntegration(_message.Message):
|
||||
__slots__ = ["application_id", "endpoint"]
|
||||
__slots__ = ("application_id", "endpoint")
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
ENDPOINT_FIELD_NUMBER: _ClassVar[int]
|
||||
application_id: str
|
||||
@ -332,37 +332,37 @@ class MyDevicesIntegration(_message.Message):
|
||||
def __init__(self, application_id: _Optional[str] = ..., endpoint: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class CreateMyDevicesIntegrationRequest(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: MyDevicesIntegration
|
||||
def __init__(self, integration: _Optional[_Union[MyDevicesIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class GetMyDevicesIntegrationRequest(_message.Message):
|
||||
__slots__ = ["application_id"]
|
||||
__slots__ = ("application_id",)
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
application_id: str
|
||||
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetMyDevicesIntegrationResponse(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: MyDevicesIntegration
|
||||
def __init__(self, integration: _Optional[_Union[MyDevicesIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class UpdateMyDevicesIntegrationRequest(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: MyDevicesIntegration
|
||||
def __init__(self, integration: _Optional[_Union[MyDevicesIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class DeleteMyDevicesIntegrationRequest(_message.Message):
|
||||
__slots__ = ["application_id"]
|
||||
__slots__ = ("application_id",)
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
application_id: str
|
||||
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class LoraCloudIntegration(_message.Message):
|
||||
__slots__ = ["application_id", "modem_geolocation_services"]
|
||||
__slots__ = ("application_id", "modem_geolocation_services")
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
MODEM_GEOLOCATION_SERVICES_FIELD_NUMBER: _ClassVar[int]
|
||||
application_id: str
|
||||
@ -370,7 +370,7 @@ class LoraCloudIntegration(_message.Message):
|
||||
def __init__(self, application_id: _Optional[str] = ..., modem_geolocation_services: _Optional[_Union[LoraCloudModemGeolocationServices, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class LoraCloudModemGeolocationServices(_message.Message):
|
||||
__slots__ = ["token", "modem_enabled", "forward_f_ports", "gnss_use_rx_time", "gnss_use_gateway_location", "parse_tlv", "geolocation_buffer_ttl", "geolocation_min_buffer_size", "geolocation_tdoa", "geolocation_rssi", "geolocation_gnss", "geolocation_gnss_payload_field", "geolocation_gnss_use_rx_time", "geolocation_wifi", "geolocation_wifi_payload_field"]
|
||||
__slots__ = ("token", "modem_enabled", "forward_f_ports", "gnss_use_rx_time", "gnss_use_gateway_location", "parse_tlv", "geolocation_buffer_ttl", "geolocation_min_buffer_size", "geolocation_tdoa", "geolocation_rssi", "geolocation_gnss", "geolocation_gnss_payload_field", "geolocation_gnss_use_rx_time", "geolocation_wifi", "geolocation_wifi_payload_field")
|
||||
TOKEN_FIELD_NUMBER: _ClassVar[int]
|
||||
MODEM_ENABLED_FIELD_NUMBER: _ClassVar[int]
|
||||
FORWARD_F_PORTS_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -404,37 +404,37 @@ class LoraCloudModemGeolocationServices(_message.Message):
|
||||
def __init__(self, token: _Optional[str] = ..., modem_enabled: bool = ..., forward_f_ports: _Optional[_Iterable[int]] = ..., gnss_use_rx_time: bool = ..., gnss_use_gateway_location: bool = ..., parse_tlv: bool = ..., geolocation_buffer_ttl: _Optional[int] = ..., geolocation_min_buffer_size: _Optional[int] = ..., geolocation_tdoa: bool = ..., geolocation_rssi: bool = ..., geolocation_gnss: bool = ..., geolocation_gnss_payload_field: _Optional[str] = ..., geolocation_gnss_use_rx_time: bool = ..., geolocation_wifi: bool = ..., geolocation_wifi_payload_field: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class CreateLoraCloudIntegrationRequest(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: LoraCloudIntegration
|
||||
def __init__(self, integration: _Optional[_Union[LoraCloudIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class GetLoraCloudIntegrationRequest(_message.Message):
|
||||
__slots__ = ["application_id"]
|
||||
__slots__ = ("application_id",)
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
application_id: str
|
||||
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetLoraCloudIntegrationResponse(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: LoraCloudIntegration
|
||||
def __init__(self, integration: _Optional[_Union[LoraCloudIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class UpdateLoraCloudIntegrationRequest(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: LoraCloudIntegration
|
||||
def __init__(self, integration: _Optional[_Union[LoraCloudIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class DeleteLoraCloudIntegrationRequest(_message.Message):
|
||||
__slots__ = ["application_id"]
|
||||
__slots__ = ("application_id",)
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
application_id: str
|
||||
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GcpPubSubIntegration(_message.Message):
|
||||
__slots__ = ["application_id", "encoding", "credentials_file", "project_id", "topic_name"]
|
||||
__slots__ = ("application_id", "encoding", "credentials_file", "project_id", "topic_name")
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
ENCODING_FIELD_NUMBER: _ClassVar[int]
|
||||
CREDENTIALS_FILE_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -448,37 +448,37 @@ class GcpPubSubIntegration(_message.Message):
|
||||
def __init__(self, application_id: _Optional[str] = ..., encoding: _Optional[_Union[Encoding, str]] = ..., credentials_file: _Optional[str] = ..., project_id: _Optional[str] = ..., topic_name: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class CreateGcpPubSubIntegrationRequest(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: GcpPubSubIntegration
|
||||
def __init__(self, integration: _Optional[_Union[GcpPubSubIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class GetGcpPubSubIntegrationRequest(_message.Message):
|
||||
__slots__ = ["application_id"]
|
||||
__slots__ = ("application_id",)
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
application_id: str
|
||||
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetGcpPubSubIntegrationResponse(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: GcpPubSubIntegration
|
||||
def __init__(self, integration: _Optional[_Union[GcpPubSubIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class UpdateGcpPubSubIntegrationRequest(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: GcpPubSubIntegration
|
||||
def __init__(self, integration: _Optional[_Union[GcpPubSubIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class DeleteGcpPubSubIntegrationRequest(_message.Message):
|
||||
__slots__ = ["application_id"]
|
||||
__slots__ = ("application_id",)
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
application_id: str
|
||||
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class AwsSnsIntegration(_message.Message):
|
||||
__slots__ = ["application_id", "encoding", "region", "access_key_id", "secret_access_key", "topic_arn"]
|
||||
__slots__ = ("application_id", "encoding", "region", "access_key_id", "secret_access_key", "topic_arn")
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
ENCODING_FIELD_NUMBER: _ClassVar[int]
|
||||
REGION_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -494,37 +494,37 @@ class AwsSnsIntegration(_message.Message):
|
||||
def __init__(self, application_id: _Optional[str] = ..., encoding: _Optional[_Union[Encoding, str]] = ..., region: _Optional[str] = ..., access_key_id: _Optional[str] = ..., secret_access_key: _Optional[str] = ..., topic_arn: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class CreateAwsSnsIntegrationRequest(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: AwsSnsIntegration
|
||||
def __init__(self, integration: _Optional[_Union[AwsSnsIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class GetAwsSnsIntegrationRequest(_message.Message):
|
||||
__slots__ = ["application_id"]
|
||||
__slots__ = ("application_id",)
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
application_id: str
|
||||
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetAwsSnsIntegrationResponse(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: AwsSnsIntegration
|
||||
def __init__(self, integration: _Optional[_Union[AwsSnsIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class UpdateAwsSnsIntegrationRequest(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: AwsSnsIntegration
|
||||
def __init__(self, integration: _Optional[_Union[AwsSnsIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class DeleteAwsSnsIntegrationRequest(_message.Message):
|
||||
__slots__ = ["application_id"]
|
||||
__slots__ = ("application_id",)
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
application_id: str
|
||||
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class AzureServiceBusIntegration(_message.Message):
|
||||
__slots__ = ["application_id", "encoding", "connection_string", "publish_name"]
|
||||
__slots__ = ("application_id", "encoding", "connection_string", "publish_name")
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
ENCODING_FIELD_NUMBER: _ClassVar[int]
|
||||
CONNECTION_STRING_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -536,37 +536,37 @@ class AzureServiceBusIntegration(_message.Message):
|
||||
def __init__(self, application_id: _Optional[str] = ..., encoding: _Optional[_Union[Encoding, str]] = ..., connection_string: _Optional[str] = ..., publish_name: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class CreateAzureServiceBusIntegrationRequest(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: AzureServiceBusIntegration
|
||||
def __init__(self, integration: _Optional[_Union[AzureServiceBusIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class GetAzureServiceBusIntegrationRequest(_message.Message):
|
||||
__slots__ = ["application_id"]
|
||||
__slots__ = ("application_id",)
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
application_id: str
|
||||
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetAzureServiceBusIntegrationResponse(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: AzureServiceBusIntegration
|
||||
def __init__(self, integration: _Optional[_Union[AzureServiceBusIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class UpdateAzureServiceBusIntegrationRequest(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: AzureServiceBusIntegration
|
||||
def __init__(self, integration: _Optional[_Union[AzureServiceBusIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class DeleteAzureServiceBusIntegrationRequest(_message.Message):
|
||||
__slots__ = ["application_id"]
|
||||
__slots__ = ("application_id",)
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
application_id: str
|
||||
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class PilotThingsIntegration(_message.Message):
|
||||
__slots__ = ["application_id", "server", "token"]
|
||||
__slots__ = ("application_id", "server", "token")
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
SERVER_FIELD_NUMBER: _ClassVar[int]
|
||||
TOKEN_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -576,37 +576,37 @@ class PilotThingsIntegration(_message.Message):
|
||||
def __init__(self, application_id: _Optional[str] = ..., server: _Optional[str] = ..., token: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class CreatePilotThingsIntegrationRequest(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: PilotThingsIntegration
|
||||
def __init__(self, integration: _Optional[_Union[PilotThingsIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class GetPilotThingsIntegrationRequest(_message.Message):
|
||||
__slots__ = ["application_id"]
|
||||
__slots__ = ("application_id",)
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
application_id: str
|
||||
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetPilotThingsIntegrationResponse(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: PilotThingsIntegration
|
||||
def __init__(self, integration: _Optional[_Union[PilotThingsIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class UpdatePilotThingsIntegrationRequest(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: PilotThingsIntegration
|
||||
def __init__(self, integration: _Optional[_Union[PilotThingsIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class DeletePilotThingsIntegrationRequest(_message.Message):
|
||||
__slots__ = ["application_id"]
|
||||
__slots__ = ("application_id",)
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
application_id: str
|
||||
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class IftttIntegration(_message.Message):
|
||||
__slots__ = ["application_id", "key", "uplink_values", "arbitrary_json", "event_prefix"]
|
||||
__slots__ = ("application_id", "key", "uplink_values", "arbitrary_json", "event_prefix")
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
UPLINK_VALUES_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -620,43 +620,43 @@ class IftttIntegration(_message.Message):
|
||||
def __init__(self, application_id: _Optional[str] = ..., key: _Optional[str] = ..., uplink_values: _Optional[_Iterable[str]] = ..., arbitrary_json: bool = ..., event_prefix: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class CreateIftttIntegrationRequest(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: IftttIntegration
|
||||
def __init__(self, integration: _Optional[_Union[IftttIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class GetIftttIntegrationRequest(_message.Message):
|
||||
__slots__ = ["application_id"]
|
||||
__slots__ = ("application_id",)
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
application_id: str
|
||||
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetIftttIntegrationResponse(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: IftttIntegration
|
||||
def __init__(self, integration: _Optional[_Union[IftttIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class UpdateIftttIntegrationRequest(_message.Message):
|
||||
__slots__ = ["integration"]
|
||||
__slots__ = ("integration",)
|
||||
INTEGRATION_FIELD_NUMBER: _ClassVar[int]
|
||||
integration: IftttIntegration
|
||||
def __init__(self, integration: _Optional[_Union[IftttIntegration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class DeleteIftttIntegrationRequest(_message.Message):
|
||||
__slots__ = ["application_id"]
|
||||
__slots__ = ("application_id",)
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
application_id: str
|
||||
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GenerateMqttIntegrationClientCertificateRequest(_message.Message):
|
||||
__slots__ = ["application_id"]
|
||||
__slots__ = ("application_id",)
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
application_id: str
|
||||
def __init__(self, application_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GenerateMqttIntegrationClientCertificateResponse(_message.Message):
|
||||
__slots__ = ["tls_cert", "tls_key", "ca_cert", "expires_at"]
|
||||
__slots__ = ("tls_cert", "tls_key", "ca_cert", "expires_at")
|
||||
TLS_CERT_FIELD_NUMBER: _ClassVar[int]
|
||||
TLS_KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
CA_CERT_FIELD_NUMBER: _ClassVar[int]
|
||||
|
102
api/python/src/chirpstack_api/api/device_pb2.py
vendored
102
api/python/src/chirpstack_api/api/device_pb2.py
vendored
@ -1,6 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: chirpstack-api/api/device.proto
|
||||
# Protobuf Python Version: 4.25.0
|
||||
"""Generated protocol buffer code."""
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import descriptor_pool as _descriptor_pool
|
||||
@ -24,57 +25,56 @@ _globals = globals()
|
||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
||||
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'chirpstack_api.api.device_pb2', _globals)
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
|
||||
DESCRIPTOR._options = None
|
||||
DESCRIPTOR._serialized_options = b'\n\021io.chirpstack.apiB\013DeviceProtoP\001Z.github.com/chirpstack/chirpstack/api/go/v4/api\252\002\016Chirpstack.Api'
|
||||
_DEVICE_VARIABLESENTRY._options = None
|
||||
_DEVICE_VARIABLESENTRY._serialized_options = b'8\001'
|
||||
_DEVICE_TAGSENTRY._options = None
|
||||
_DEVICE_TAGSENTRY._serialized_options = b'8\001'
|
||||
_GETDEVICEMETRICSRESPONSE_METRICSENTRY._options = None
|
||||
_GETDEVICEMETRICSRESPONSE_METRICSENTRY._serialized_options = b'8\001'
|
||||
_GETDEVICEMETRICSRESPONSE_STATESENTRY._options = None
|
||||
_GETDEVICEMETRICSRESPONSE_STATESENTRY._serialized_options = b'8\001'
|
||||
_DEVICESERVICE.methods_by_name['Create']._options = None
|
||||
_DEVICESERVICE.methods_by_name['Create']._serialized_options = b'\202\323\344\223\002\021\"\014/api/devices:\001*'
|
||||
_DEVICESERVICE.methods_by_name['Get']._options = None
|
||||
_DEVICESERVICE.methods_by_name['Get']._serialized_options = b'\202\323\344\223\002\030\022\026/api/devices/{dev_eui}'
|
||||
_DEVICESERVICE.methods_by_name['Update']._options = None
|
||||
_DEVICESERVICE.methods_by_name['Update']._serialized_options = b'\202\323\344\223\002\"\032\035/api/devices/{device.dev_eui}:\001*'
|
||||
_DEVICESERVICE.methods_by_name['Delete']._options = None
|
||||
_DEVICESERVICE.methods_by_name['Delete']._serialized_options = b'\202\323\344\223\002\030*\026/api/devices/{dev_eui}'
|
||||
_DEVICESERVICE.methods_by_name['List']._options = None
|
||||
_DEVICESERVICE.methods_by_name['List']._serialized_options = b'\202\323\344\223\002\016\022\014/api/devices'
|
||||
_DEVICESERVICE.methods_by_name['CreateKeys']._options = None
|
||||
_DEVICESERVICE.methods_by_name['CreateKeys']._serialized_options = b'\202\323\344\223\002,\"\'/api/devices/{device_keys.dev_eui}/keys:\001*'
|
||||
_DEVICESERVICE.methods_by_name['GetKeys']._options = None
|
||||
_DEVICESERVICE.methods_by_name['GetKeys']._serialized_options = b'\202\323\344\223\002\035\022\033/api/devices/{dev_eui}/keys'
|
||||
_DEVICESERVICE.methods_by_name['UpdateKeys']._options = None
|
||||
_DEVICESERVICE.methods_by_name['UpdateKeys']._serialized_options = b'\202\323\344\223\002,\032\'/api/devices/{device_keys.dev_eui}/keys:\001*'
|
||||
_DEVICESERVICE.methods_by_name['DeleteKeys']._options = None
|
||||
_DEVICESERVICE.methods_by_name['DeleteKeys']._serialized_options = b'\202\323\344\223\002\035*\033/api/devices/{dev_eui}/keys'
|
||||
_DEVICESERVICE.methods_by_name['FlushDevNonces']._options = None
|
||||
_DEVICESERVICE.methods_by_name['FlushDevNonces']._serialized_options = b'\202\323\344\223\002#*!/api/devices/{dev_eui}/dev-nonces'
|
||||
_DEVICESERVICE.methods_by_name['Activate']._options = None
|
||||
_DEVICESERVICE.methods_by_name['Activate']._serialized_options = b'\202\323\344\223\0026\"1/api/devices/{device_activation.dev_eui}/activate:\001*'
|
||||
_DEVICESERVICE.methods_by_name['Deactivate']._options = None
|
||||
_DEVICESERVICE.methods_by_name['Deactivate']._serialized_options = b'\202\323\344\223\002#*!/api/devices/{dev_eui}/activation'
|
||||
_DEVICESERVICE.methods_by_name['GetActivation']._options = None
|
||||
_DEVICESERVICE.methods_by_name['GetActivation']._serialized_options = b'\202\323\344\223\002#\022!/api/devices/{dev_eui}/activation'
|
||||
_DEVICESERVICE.methods_by_name['GetRandomDevAddr']._options = None
|
||||
_DEVICESERVICE.methods_by_name['GetRandomDevAddr']._serialized_options = b'\202\323\344\223\002,\"*/api/devices/{dev_eui}/get-random-dev-addr'
|
||||
_DEVICESERVICE.methods_by_name['GetMetrics']._options = None
|
||||
_DEVICESERVICE.methods_by_name['GetMetrics']._serialized_options = b'\202\323\344\223\002 \022\036/api/devices/{dev_eui}/metrics'
|
||||
_DEVICESERVICE.methods_by_name['GetLinkMetrics']._options = None
|
||||
_DEVICESERVICE.methods_by_name['GetLinkMetrics']._serialized_options = b'\202\323\344\223\002%\022#/api/devices/{dev_eui}/link-metrics'
|
||||
_DEVICESERVICE.methods_by_name['Enqueue']._options = None
|
||||
_DEVICESERVICE.methods_by_name['Enqueue']._serialized_options = b'\202\323\344\223\002,\"\'/api/devices/{queue_item.dev_eui}/queue:\001*'
|
||||
_DEVICESERVICE.methods_by_name['FlushQueue']._options = None
|
||||
_DEVICESERVICE.methods_by_name['FlushQueue']._serialized_options = b'\202\323\344\223\002\036*\034/api/devices/{dev_eui}/queue'
|
||||
_DEVICESERVICE.methods_by_name['GetQueue']._options = None
|
||||
_DEVICESERVICE.methods_by_name['GetQueue']._serialized_options = b'\202\323\344\223\002\036\022\034/api/devices/{dev_eui}/queue'
|
||||
_DEVICESERVICE.methods_by_name['GetNextFCntDown']._options = None
|
||||
_DEVICESERVICE.methods_by_name['GetNextFCntDown']._serialized_options = b'\202\323\344\223\002/\"*/api/devices/{dev_eui}/get-next-f-cnt-down:\001*'
|
||||
_globals['DESCRIPTOR']._options = None
|
||||
_globals['DESCRIPTOR']._serialized_options = b'\n\021io.chirpstack.apiB\013DeviceProtoP\001Z.github.com/chirpstack/chirpstack/api/go/v4/api\252\002\016Chirpstack.Api'
|
||||
_globals['_DEVICE_VARIABLESENTRY']._options = None
|
||||
_globals['_DEVICE_VARIABLESENTRY']._serialized_options = b'8\001'
|
||||
_globals['_DEVICE_TAGSENTRY']._options = None
|
||||
_globals['_DEVICE_TAGSENTRY']._serialized_options = b'8\001'
|
||||
_globals['_GETDEVICEMETRICSRESPONSE_METRICSENTRY']._options = None
|
||||
_globals['_GETDEVICEMETRICSRESPONSE_METRICSENTRY']._serialized_options = b'8\001'
|
||||
_globals['_GETDEVICEMETRICSRESPONSE_STATESENTRY']._options = None
|
||||
_globals['_GETDEVICEMETRICSRESPONSE_STATESENTRY']._serialized_options = b'8\001'
|
||||
_globals['_DEVICESERVICE'].methods_by_name['Create']._options = None
|
||||
_globals['_DEVICESERVICE'].methods_by_name['Create']._serialized_options = b'\202\323\344\223\002\021\"\014/api/devices:\001*'
|
||||
_globals['_DEVICESERVICE'].methods_by_name['Get']._options = None
|
||||
_globals['_DEVICESERVICE'].methods_by_name['Get']._serialized_options = b'\202\323\344\223\002\030\022\026/api/devices/{dev_eui}'
|
||||
_globals['_DEVICESERVICE'].methods_by_name['Update']._options = None
|
||||
_globals['_DEVICESERVICE'].methods_by_name['Update']._serialized_options = b'\202\323\344\223\002\"\032\035/api/devices/{device.dev_eui}:\001*'
|
||||
_globals['_DEVICESERVICE'].methods_by_name['Delete']._options = None
|
||||
_globals['_DEVICESERVICE'].methods_by_name['Delete']._serialized_options = b'\202\323\344\223\002\030*\026/api/devices/{dev_eui}'
|
||||
_globals['_DEVICESERVICE'].methods_by_name['List']._options = None
|
||||
_globals['_DEVICESERVICE'].methods_by_name['List']._serialized_options = b'\202\323\344\223\002\016\022\014/api/devices'
|
||||
_globals['_DEVICESERVICE'].methods_by_name['CreateKeys']._options = None
|
||||
_globals['_DEVICESERVICE'].methods_by_name['CreateKeys']._serialized_options = b'\202\323\344\223\002,\"\'/api/devices/{device_keys.dev_eui}/keys:\001*'
|
||||
_globals['_DEVICESERVICE'].methods_by_name['GetKeys']._options = None
|
||||
_globals['_DEVICESERVICE'].methods_by_name['GetKeys']._serialized_options = b'\202\323\344\223\002\035\022\033/api/devices/{dev_eui}/keys'
|
||||
_globals['_DEVICESERVICE'].methods_by_name['UpdateKeys']._options = None
|
||||
_globals['_DEVICESERVICE'].methods_by_name['UpdateKeys']._serialized_options = b'\202\323\344\223\002,\032\'/api/devices/{device_keys.dev_eui}/keys:\001*'
|
||||
_globals['_DEVICESERVICE'].methods_by_name['DeleteKeys']._options = None
|
||||
_globals['_DEVICESERVICE'].methods_by_name['DeleteKeys']._serialized_options = b'\202\323\344\223\002\035*\033/api/devices/{dev_eui}/keys'
|
||||
_globals['_DEVICESERVICE'].methods_by_name['FlushDevNonces']._options = None
|
||||
_globals['_DEVICESERVICE'].methods_by_name['FlushDevNonces']._serialized_options = b'\202\323\344\223\002#*!/api/devices/{dev_eui}/dev-nonces'
|
||||
_globals['_DEVICESERVICE'].methods_by_name['Activate']._options = None
|
||||
_globals['_DEVICESERVICE'].methods_by_name['Activate']._serialized_options = b'\202\323\344\223\0026\"1/api/devices/{device_activation.dev_eui}/activate:\001*'
|
||||
_globals['_DEVICESERVICE'].methods_by_name['Deactivate']._options = None
|
||||
_globals['_DEVICESERVICE'].methods_by_name['Deactivate']._serialized_options = b'\202\323\344\223\002#*!/api/devices/{dev_eui}/activation'
|
||||
_globals['_DEVICESERVICE'].methods_by_name['GetActivation']._options = None
|
||||
_globals['_DEVICESERVICE'].methods_by_name['GetActivation']._serialized_options = b'\202\323\344\223\002#\022!/api/devices/{dev_eui}/activation'
|
||||
_globals['_DEVICESERVICE'].methods_by_name['GetRandomDevAddr']._options = None
|
||||
_globals['_DEVICESERVICE'].methods_by_name['GetRandomDevAddr']._serialized_options = b'\202\323\344\223\002,\"*/api/devices/{dev_eui}/get-random-dev-addr'
|
||||
_globals['_DEVICESERVICE'].methods_by_name['GetMetrics']._options = None
|
||||
_globals['_DEVICESERVICE'].methods_by_name['GetMetrics']._serialized_options = b'\202\323\344\223\002 \022\036/api/devices/{dev_eui}/metrics'
|
||||
_globals['_DEVICESERVICE'].methods_by_name['GetLinkMetrics']._options = None
|
||||
_globals['_DEVICESERVICE'].methods_by_name['GetLinkMetrics']._serialized_options = b'\202\323\344\223\002%\022#/api/devices/{dev_eui}/link-metrics'
|
||||
_globals['_DEVICESERVICE'].methods_by_name['Enqueue']._options = None
|
||||
_globals['_DEVICESERVICE'].methods_by_name['Enqueue']._serialized_options = b'\202\323\344\223\002,\"\'/api/devices/{queue_item.dev_eui}/queue:\001*'
|
||||
_globals['_DEVICESERVICE'].methods_by_name['FlushQueue']._options = None
|
||||
_globals['_DEVICESERVICE'].methods_by_name['FlushQueue']._serialized_options = b'\202\323\344\223\002\036*\034/api/devices/{dev_eui}/queue'
|
||||
_globals['_DEVICESERVICE'].methods_by_name['GetQueue']._options = None
|
||||
_globals['_DEVICESERVICE'].methods_by_name['GetQueue']._serialized_options = b'\202\323\344\223\002\036\022\034/api/devices/{dev_eui}/queue'
|
||||
_globals['_DEVICESERVICE'].methods_by_name['GetNextFCntDown']._options = None
|
||||
_globals['_DEVICESERVICE'].methods_by_name['GetNextFCntDown']._serialized_options = b'\202\323\344\223\002/\"*/api/devices/{dev_eui}/get-next-f-cnt-down:\001*'
|
||||
_globals['_DEVICE']._serialized_start=199
|
||||
_globals['_DEVICE']._serialized_end=553
|
||||
_globals['_DEVICE_VARIABLESENTRY']._serialized_start=460
|
||||
|
82
api/python/src/chirpstack_api/api/device_pb2.pyi
vendored
82
api/python/src/chirpstack_api/api/device_pb2.pyi
vendored
@ -11,16 +11,16 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map
|
||||
DESCRIPTOR: _descriptor.FileDescriptor
|
||||
|
||||
class Device(_message.Message):
|
||||
__slots__ = ["dev_eui", "name", "description", "application_id", "device_profile_id", "skip_fcnt_check", "is_disabled", "variables", "tags", "join_eui"]
|
||||
__slots__ = ("dev_eui", "name", "description", "application_id", "device_profile_id", "skip_fcnt_check", "is_disabled", "variables", "tags", "join_eui")
|
||||
class VariablesEntry(_message.Message):
|
||||
__slots__ = ["key", "value"]
|
||||
__slots__ = ("key", "value")
|
||||
KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
VALUE_FIELD_NUMBER: _ClassVar[int]
|
||||
key: str
|
||||
value: str
|
||||
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
|
||||
class TagsEntry(_message.Message):
|
||||
__slots__ = ["key", "value"]
|
||||
__slots__ = ("key", "value")
|
||||
KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
VALUE_FIELD_NUMBER: _ClassVar[int]
|
||||
key: str
|
||||
@ -49,7 +49,7 @@ class Device(_message.Message):
|
||||
def __init__(self, dev_eui: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., application_id: _Optional[str] = ..., device_profile_id: _Optional[str] = ..., skip_fcnt_check: bool = ..., is_disabled: bool = ..., variables: _Optional[_Mapping[str, str]] = ..., tags: _Optional[_Mapping[str, str]] = ..., join_eui: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class DeviceStatus(_message.Message):
|
||||
__slots__ = ["margin", "external_power_source", "battery_level"]
|
||||
__slots__ = ("margin", "external_power_source", "battery_level")
|
||||
MARGIN_FIELD_NUMBER: _ClassVar[int]
|
||||
EXTERNAL_POWER_SOURCE_FIELD_NUMBER: _ClassVar[int]
|
||||
BATTERY_LEVEL_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -59,7 +59,7 @@ class DeviceStatus(_message.Message):
|
||||
def __init__(self, margin: _Optional[int] = ..., external_power_source: bool = ..., battery_level: _Optional[float] = ...) -> None: ...
|
||||
|
||||
class DeviceListItem(_message.Message):
|
||||
__slots__ = ["dev_eui", "created_at", "updated_at", "last_seen_at", "name", "description", "device_profile_id", "device_profile_name", "device_status"]
|
||||
__slots__ = ("dev_eui", "created_at", "updated_at", "last_seen_at", "name", "description", "device_profile_id", "device_profile_name", "device_status")
|
||||
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -81,7 +81,7 @@ class DeviceListItem(_message.Message):
|
||||
def __init__(self, dev_eui: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., last_seen_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., device_profile_id: _Optional[str] = ..., device_profile_name: _Optional[str] = ..., device_status: _Optional[_Union[DeviceStatus, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class DeviceKeys(_message.Message):
|
||||
__slots__ = ["dev_eui", "nwk_key", "app_key"]
|
||||
__slots__ = ("dev_eui", "nwk_key", "app_key")
|
||||
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
NWK_KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
APP_KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -91,19 +91,19 @@ class DeviceKeys(_message.Message):
|
||||
def __init__(self, dev_eui: _Optional[str] = ..., nwk_key: _Optional[str] = ..., app_key: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class CreateDeviceRequest(_message.Message):
|
||||
__slots__ = ["device"]
|
||||
__slots__ = ("device",)
|
||||
DEVICE_FIELD_NUMBER: _ClassVar[int]
|
||||
device: Device
|
||||
def __init__(self, device: _Optional[_Union[Device, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class GetDeviceRequest(_message.Message):
|
||||
__slots__ = ["dev_eui"]
|
||||
__slots__ = ("dev_eui",)
|
||||
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
dev_eui: str
|
||||
def __init__(self, dev_eui: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetDeviceResponse(_message.Message):
|
||||
__slots__ = ["device", "created_at", "updated_at", "last_seen_at", "device_status", "class_enabled"]
|
||||
__slots__ = ("device", "created_at", "updated_at", "last_seen_at", "device_status", "class_enabled")
|
||||
DEVICE_FIELD_NUMBER: _ClassVar[int]
|
||||
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -119,19 +119,19 @@ class GetDeviceResponse(_message.Message):
|
||||
def __init__(self, device: _Optional[_Union[Device, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., last_seen_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., device_status: _Optional[_Union[DeviceStatus, _Mapping]] = ..., class_enabled: _Optional[_Union[_common_pb2.DeviceClass, str]] = ...) -> None: ...
|
||||
|
||||
class UpdateDeviceRequest(_message.Message):
|
||||
__slots__ = ["device"]
|
||||
__slots__ = ("device",)
|
||||
DEVICE_FIELD_NUMBER: _ClassVar[int]
|
||||
device: Device
|
||||
def __init__(self, device: _Optional[_Union[Device, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class DeleteDeviceRequest(_message.Message):
|
||||
__slots__ = ["dev_eui"]
|
||||
__slots__ = ("dev_eui",)
|
||||
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
dev_eui: str
|
||||
def __init__(self, dev_eui: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class ListDevicesRequest(_message.Message):
|
||||
__slots__ = ["limit", "offset", "search", "application_id", "multicast_group_id"]
|
||||
__slots__ = ("limit", "offset", "search", "application_id", "multicast_group_id")
|
||||
LIMIT_FIELD_NUMBER: _ClassVar[int]
|
||||
OFFSET_FIELD_NUMBER: _ClassVar[int]
|
||||
SEARCH_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -145,7 +145,7 @@ class ListDevicesRequest(_message.Message):
|
||||
def __init__(self, limit: _Optional[int] = ..., offset: _Optional[int] = ..., search: _Optional[str] = ..., application_id: _Optional[str] = ..., multicast_group_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class ListDevicesResponse(_message.Message):
|
||||
__slots__ = ["total_count", "result"]
|
||||
__slots__ = ("total_count", "result")
|
||||
TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
|
||||
RESULT_FIELD_NUMBER: _ClassVar[int]
|
||||
total_count: int
|
||||
@ -153,19 +153,19 @@ class ListDevicesResponse(_message.Message):
|
||||
def __init__(self, total_count: _Optional[int] = ..., result: _Optional[_Iterable[_Union[DeviceListItem, _Mapping]]] = ...) -> None: ...
|
||||
|
||||
class CreateDeviceKeysRequest(_message.Message):
|
||||
__slots__ = ["device_keys"]
|
||||
__slots__ = ("device_keys",)
|
||||
DEVICE_KEYS_FIELD_NUMBER: _ClassVar[int]
|
||||
device_keys: DeviceKeys
|
||||
def __init__(self, device_keys: _Optional[_Union[DeviceKeys, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class GetDeviceKeysRequest(_message.Message):
|
||||
__slots__ = ["dev_eui"]
|
||||
__slots__ = ("dev_eui",)
|
||||
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
dev_eui: str
|
||||
def __init__(self, dev_eui: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetDeviceKeysResponse(_message.Message):
|
||||
__slots__ = ["device_keys", "created_at", "updated_at"]
|
||||
__slots__ = ("device_keys", "created_at", "updated_at")
|
||||
DEVICE_KEYS_FIELD_NUMBER: _ClassVar[int]
|
||||
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -175,19 +175,19 @@ class GetDeviceKeysResponse(_message.Message):
|
||||
def __init__(self, device_keys: _Optional[_Union[DeviceKeys, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class UpdateDeviceKeysRequest(_message.Message):
|
||||
__slots__ = ["device_keys"]
|
||||
__slots__ = ("device_keys",)
|
||||
DEVICE_KEYS_FIELD_NUMBER: _ClassVar[int]
|
||||
device_keys: DeviceKeys
|
||||
def __init__(self, device_keys: _Optional[_Union[DeviceKeys, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class DeleteDeviceKeysRequest(_message.Message):
|
||||
__slots__ = ["dev_eui"]
|
||||
__slots__ = ("dev_eui",)
|
||||
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
dev_eui: str
|
||||
def __init__(self, dev_eui: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class DeviceActivation(_message.Message):
|
||||
__slots__ = ["dev_eui", "dev_addr", "app_s_key", "nwk_s_enc_key", "s_nwk_s_int_key", "f_nwk_s_int_key", "f_cnt_up", "n_f_cnt_down", "a_f_cnt_down"]
|
||||
__slots__ = ("dev_eui", "dev_addr", "app_s_key", "nwk_s_enc_key", "s_nwk_s_int_key", "f_nwk_s_int_key", "f_cnt_up", "n_f_cnt_down", "a_f_cnt_down")
|
||||
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
DEV_ADDR_FIELD_NUMBER: _ClassVar[int]
|
||||
APP_S_KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -209,43 +209,43 @@ class DeviceActivation(_message.Message):
|
||||
def __init__(self, dev_eui: _Optional[str] = ..., dev_addr: _Optional[str] = ..., app_s_key: _Optional[str] = ..., nwk_s_enc_key: _Optional[str] = ..., s_nwk_s_int_key: _Optional[str] = ..., f_nwk_s_int_key: _Optional[str] = ..., f_cnt_up: _Optional[int] = ..., n_f_cnt_down: _Optional[int] = ..., a_f_cnt_down: _Optional[int] = ...) -> None: ...
|
||||
|
||||
class ActivateDeviceRequest(_message.Message):
|
||||
__slots__ = ["device_activation"]
|
||||
__slots__ = ("device_activation",)
|
||||
DEVICE_ACTIVATION_FIELD_NUMBER: _ClassVar[int]
|
||||
device_activation: DeviceActivation
|
||||
def __init__(self, device_activation: _Optional[_Union[DeviceActivation, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class DeactivateDeviceRequest(_message.Message):
|
||||
__slots__ = ["dev_eui"]
|
||||
__slots__ = ("dev_eui",)
|
||||
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
dev_eui: str
|
||||
def __init__(self, dev_eui: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetDeviceActivationRequest(_message.Message):
|
||||
__slots__ = ["dev_eui"]
|
||||
__slots__ = ("dev_eui",)
|
||||
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
dev_eui: str
|
||||
def __init__(self, dev_eui: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetDeviceActivationResponse(_message.Message):
|
||||
__slots__ = ["device_activation"]
|
||||
__slots__ = ("device_activation",)
|
||||
DEVICE_ACTIVATION_FIELD_NUMBER: _ClassVar[int]
|
||||
device_activation: DeviceActivation
|
||||
def __init__(self, device_activation: _Optional[_Union[DeviceActivation, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class GetRandomDevAddrRequest(_message.Message):
|
||||
__slots__ = ["dev_eui"]
|
||||
__slots__ = ("dev_eui",)
|
||||
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
dev_eui: str
|
||||
def __init__(self, dev_eui: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetRandomDevAddrResponse(_message.Message):
|
||||
__slots__ = ["dev_addr"]
|
||||
__slots__ = ("dev_addr",)
|
||||
DEV_ADDR_FIELD_NUMBER: _ClassVar[int]
|
||||
dev_addr: str
|
||||
def __init__(self, dev_addr: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetDeviceMetricsRequest(_message.Message):
|
||||
__slots__ = ["dev_eui", "start", "end", "aggregation"]
|
||||
__slots__ = ("dev_eui", "start", "end", "aggregation")
|
||||
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
START_FIELD_NUMBER: _ClassVar[int]
|
||||
END_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -257,16 +257,16 @@ class GetDeviceMetricsRequest(_message.Message):
|
||||
def __init__(self, dev_eui: _Optional[str] = ..., start: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., end: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., aggregation: _Optional[_Union[_common_pb2.Aggregation, str]] = ...) -> None: ...
|
||||
|
||||
class GetDeviceMetricsResponse(_message.Message):
|
||||
__slots__ = ["metrics", "states"]
|
||||
__slots__ = ("metrics", "states")
|
||||
class MetricsEntry(_message.Message):
|
||||
__slots__ = ["key", "value"]
|
||||
__slots__ = ("key", "value")
|
||||
KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
VALUE_FIELD_NUMBER: _ClassVar[int]
|
||||
key: str
|
||||
value: _common_pb2.Metric
|
||||
def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_common_pb2.Metric, _Mapping]] = ...) -> None: ...
|
||||
class StatesEntry(_message.Message):
|
||||
__slots__ = ["key", "value"]
|
||||
__slots__ = ("key", "value")
|
||||
KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
VALUE_FIELD_NUMBER: _ClassVar[int]
|
||||
key: str
|
||||
@ -279,7 +279,7 @@ class GetDeviceMetricsResponse(_message.Message):
|
||||
def __init__(self, metrics: _Optional[_Mapping[str, _common_pb2.Metric]] = ..., states: _Optional[_Mapping[str, DeviceState]] = ...) -> None: ...
|
||||
|
||||
class DeviceState(_message.Message):
|
||||
__slots__ = ["name", "value"]
|
||||
__slots__ = ("name", "value")
|
||||
NAME_FIELD_NUMBER: _ClassVar[int]
|
||||
VALUE_FIELD_NUMBER: _ClassVar[int]
|
||||
name: str
|
||||
@ -287,7 +287,7 @@ class DeviceState(_message.Message):
|
||||
def __init__(self, name: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetDeviceLinkMetricsRequest(_message.Message):
|
||||
__slots__ = ["dev_eui", "start", "end", "aggregation"]
|
||||
__slots__ = ("dev_eui", "start", "end", "aggregation")
|
||||
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
START_FIELD_NUMBER: _ClassVar[int]
|
||||
END_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -299,7 +299,7 @@ class GetDeviceLinkMetricsRequest(_message.Message):
|
||||
def __init__(self, dev_eui: _Optional[str] = ..., start: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., end: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., aggregation: _Optional[_Union[_common_pb2.Aggregation, str]] = ...) -> None: ...
|
||||
|
||||
class GetDeviceLinkMetricsResponse(_message.Message):
|
||||
__slots__ = ["rx_packets", "gw_rssi", "gw_snr", "rx_packets_per_freq", "rx_packets_per_dr", "errors"]
|
||||
__slots__ = ("rx_packets", "gw_rssi", "gw_snr", "rx_packets_per_freq", "rx_packets_per_dr", "errors")
|
||||
RX_PACKETS_FIELD_NUMBER: _ClassVar[int]
|
||||
GW_RSSI_FIELD_NUMBER: _ClassVar[int]
|
||||
GW_SNR_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -315,7 +315,7 @@ class GetDeviceLinkMetricsResponse(_message.Message):
|
||||
def __init__(self, rx_packets: _Optional[_Union[_common_pb2.Metric, _Mapping]] = ..., gw_rssi: _Optional[_Union[_common_pb2.Metric, _Mapping]] = ..., gw_snr: _Optional[_Union[_common_pb2.Metric, _Mapping]] = ..., rx_packets_per_freq: _Optional[_Union[_common_pb2.Metric, _Mapping]] = ..., rx_packets_per_dr: _Optional[_Union[_common_pb2.Metric, _Mapping]] = ..., errors: _Optional[_Union[_common_pb2.Metric, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class DeviceQueueItem(_message.Message):
|
||||
__slots__ = ["id", "dev_eui", "confirmed", "f_port", "data", "object", "is_pending", "f_cnt_down", "is_encrypted"]
|
||||
__slots__ = ("id", "dev_eui", "confirmed", "f_port", "data", "object", "is_pending", "f_cnt_down", "is_encrypted")
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
CONFIRMED_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -337,25 +337,25 @@ class DeviceQueueItem(_message.Message):
|
||||
def __init__(self, id: _Optional[str] = ..., dev_eui: _Optional[str] = ..., confirmed: bool = ..., f_port: _Optional[int] = ..., data: _Optional[bytes] = ..., object: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., is_pending: bool = ..., f_cnt_down: _Optional[int] = ..., is_encrypted: bool = ...) -> None: ...
|
||||
|
||||
class EnqueueDeviceQueueItemRequest(_message.Message):
|
||||
__slots__ = ["queue_item"]
|
||||
__slots__ = ("queue_item",)
|
||||
QUEUE_ITEM_FIELD_NUMBER: _ClassVar[int]
|
||||
queue_item: DeviceQueueItem
|
||||
def __init__(self, queue_item: _Optional[_Union[DeviceQueueItem, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class EnqueueDeviceQueueItemResponse(_message.Message):
|
||||
__slots__ = ["id"]
|
||||
__slots__ = ("id",)
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
id: str
|
||||
def __init__(self, id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class FlushDeviceQueueRequest(_message.Message):
|
||||
__slots__ = ["dev_eui"]
|
||||
__slots__ = ("dev_eui",)
|
||||
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
dev_eui: str
|
||||
def __init__(self, dev_eui: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetDeviceQueueItemsRequest(_message.Message):
|
||||
__slots__ = ["dev_eui", "count_only"]
|
||||
__slots__ = ("dev_eui", "count_only")
|
||||
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
COUNT_ONLY_FIELD_NUMBER: _ClassVar[int]
|
||||
dev_eui: str
|
||||
@ -363,7 +363,7 @@ class GetDeviceQueueItemsRequest(_message.Message):
|
||||
def __init__(self, dev_eui: _Optional[str] = ..., count_only: bool = ...) -> None: ...
|
||||
|
||||
class GetDeviceQueueItemsResponse(_message.Message):
|
||||
__slots__ = ["total_count", "result"]
|
||||
__slots__ = ("total_count", "result")
|
||||
TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
|
||||
RESULT_FIELD_NUMBER: _ClassVar[int]
|
||||
total_count: int
|
||||
@ -371,19 +371,19 @@ class GetDeviceQueueItemsResponse(_message.Message):
|
||||
def __init__(self, total_count: _Optional[int] = ..., result: _Optional[_Iterable[_Union[DeviceQueueItem, _Mapping]]] = ...) -> None: ...
|
||||
|
||||
class FlushDevNoncesRequest(_message.Message):
|
||||
__slots__ = ["dev_eui"]
|
||||
__slots__ = ("dev_eui",)
|
||||
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
dev_eui: str
|
||||
def __init__(self, dev_eui: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetDeviceNextFCntDownRequest(_message.Message):
|
||||
__slots__ = ["dev_eui"]
|
||||
__slots__ = ("dev_eui",)
|
||||
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
dev_eui: str
|
||||
def __init__(self, dev_eui: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetDeviceNextFCntDownResponse(_message.Message):
|
||||
__slots__ = ["f_cnt_down"]
|
||||
__slots__ = ("f_cnt_down",)
|
||||
F_CNT_DOWN_FIELD_NUMBER: _ClassVar[int]
|
||||
f_cnt_down: int
|
||||
def __init__(self, f_cnt_down: _Optional[int] = ...) -> None: ...
|
||||
|
@ -1,6 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: chirpstack-api/api/device_profile.proto
|
||||
# Protobuf Python Version: 4.25.0
|
||||
"""Generated protocol buffer code."""
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import descriptor_pool as _descriptor_pool
|
||||
@ -23,25 +24,24 @@ _globals = globals()
|
||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
||||
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'chirpstack_api.api.device_profile_pb2', _globals)
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
|
||||
DESCRIPTOR._options = None
|
||||
DESCRIPTOR._serialized_options = b'\n\021io.chirpstack.apiB\022DeviceProfileProtoP\001Z.github.com/chirpstack/chirpstack/api/go/v4/api\252\002\016Chirpstack.Api'
|
||||
_DEVICEPROFILE_TAGSENTRY._options = None
|
||||
_DEVICEPROFILE_TAGSENTRY._serialized_options = b'8\001'
|
||||
_DEVICEPROFILE_MEASUREMENTSENTRY._options = None
|
||||
_DEVICEPROFILE_MEASUREMENTSENTRY._serialized_options = b'8\001'
|
||||
_DEVICEPROFILESERVICE.methods_by_name['Create']._options = None
|
||||
_DEVICEPROFILESERVICE.methods_by_name['Create']._serialized_options = b'\202\323\344\223\002\031\"\024/api/device-profiles:\001*'
|
||||
_DEVICEPROFILESERVICE.methods_by_name['Get']._options = None
|
||||
_DEVICEPROFILESERVICE.methods_by_name['Get']._serialized_options = b'\202\323\344\223\002\033\022\031/api/device-profiles/{id}'
|
||||
_DEVICEPROFILESERVICE.methods_by_name['Update']._options = None
|
||||
_DEVICEPROFILESERVICE.methods_by_name['Update']._serialized_options = b'\202\323\344\223\002-\032(/api/device-profiles/{device_profile.id}:\001*'
|
||||
_DEVICEPROFILESERVICE.methods_by_name['Delete']._options = None
|
||||
_DEVICEPROFILESERVICE.methods_by_name['Delete']._serialized_options = b'\202\323\344\223\002\033*\031/api/device-profiles/{id}'
|
||||
_DEVICEPROFILESERVICE.methods_by_name['List']._options = None
|
||||
_DEVICEPROFILESERVICE.methods_by_name['List']._serialized_options = b'\202\323\344\223\002\026\022\024/api/device-profiles'
|
||||
_DEVICEPROFILESERVICE.methods_by_name['ListAdrAlgorithms']._options = None
|
||||
_DEVICEPROFILESERVICE.methods_by_name['ListAdrAlgorithms']._serialized_options = b'\202\323\344\223\002%\022#/api/device-profiles/adr-algorithms'
|
||||
_globals['DESCRIPTOR']._options = None
|
||||
_globals['DESCRIPTOR']._serialized_options = b'\n\021io.chirpstack.apiB\022DeviceProfileProtoP\001Z.github.com/chirpstack/chirpstack/api/go/v4/api\252\002\016Chirpstack.Api'
|
||||
_globals['_DEVICEPROFILE_TAGSENTRY']._options = None
|
||||
_globals['_DEVICEPROFILE_TAGSENTRY']._serialized_options = b'8\001'
|
||||
_globals['_DEVICEPROFILE_MEASUREMENTSENTRY']._options = None
|
||||
_globals['_DEVICEPROFILE_MEASUREMENTSENTRY']._serialized_options = b'8\001'
|
||||
_globals['_DEVICEPROFILESERVICE'].methods_by_name['Create']._options = None
|
||||
_globals['_DEVICEPROFILESERVICE'].methods_by_name['Create']._serialized_options = b'\202\323\344\223\002\031\"\024/api/device-profiles:\001*'
|
||||
_globals['_DEVICEPROFILESERVICE'].methods_by_name['Get']._options = None
|
||||
_globals['_DEVICEPROFILESERVICE'].methods_by_name['Get']._serialized_options = b'\202\323\344\223\002\033\022\031/api/device-profiles/{id}'
|
||||
_globals['_DEVICEPROFILESERVICE'].methods_by_name['Update']._options = None
|
||||
_globals['_DEVICEPROFILESERVICE'].methods_by_name['Update']._serialized_options = b'\202\323\344\223\002-\032(/api/device-profiles/{device_profile.id}:\001*'
|
||||
_globals['_DEVICEPROFILESERVICE'].methods_by_name['Delete']._options = None
|
||||
_globals['_DEVICEPROFILESERVICE'].methods_by_name['Delete']._serialized_options = b'\202\323\344\223\002\033*\031/api/device-profiles/{id}'
|
||||
_globals['_DEVICEPROFILESERVICE'].methods_by_name['List']._options = None
|
||||
_globals['_DEVICEPROFILESERVICE'].methods_by_name['List']._serialized_options = b'\202\323\344\223\002\026\022\024/api/device-profiles'
|
||||
_globals['_DEVICEPROFILESERVICE'].methods_by_name['ListAdrAlgorithms']._options = None
|
||||
_globals['_DEVICEPROFILESERVICE'].methods_by_name['ListAdrAlgorithms']._serialized_options = b'\202\323\344\223\002%\022#/api/device-profiles/adr-algorithms'
|
||||
_globals['_CODECRUNTIME']._serialized_start=3270
|
||||
_globals['_CODECRUNTIME']._serialized_end=3319
|
||||
_globals['_MEASUREMENTKIND']._serialized_start=3321
|
||||
|
@ -11,13 +11,13 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map
|
||||
DESCRIPTOR: _descriptor.FileDescriptor
|
||||
|
||||
class CodecRuntime(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
NONE: _ClassVar[CodecRuntime]
|
||||
CAYENNE_LPP: _ClassVar[CodecRuntime]
|
||||
JS: _ClassVar[CodecRuntime]
|
||||
|
||||
class MeasurementKind(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
UNKNOWN: _ClassVar[MeasurementKind]
|
||||
COUNTER: _ClassVar[MeasurementKind]
|
||||
ABSOLUTE: _ClassVar[MeasurementKind]
|
||||
@ -25,7 +25,7 @@ class MeasurementKind(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
STRING: _ClassVar[MeasurementKind]
|
||||
|
||||
class CadPeriodicity(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
SEC_1: _ClassVar[CadPeriodicity]
|
||||
MS_500: _ClassVar[CadPeriodicity]
|
||||
MS_250: _ClassVar[CadPeriodicity]
|
||||
@ -34,7 +34,7 @@ class CadPeriodicity(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
MS_20: _ClassVar[CadPeriodicity]
|
||||
|
||||
class SecondChAckOffset(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
KHZ_0: _ClassVar[SecondChAckOffset]
|
||||
KHZ_200: _ClassVar[SecondChAckOffset]
|
||||
KHZ_400: _ClassVar[SecondChAckOffset]
|
||||
@ -43,7 +43,7 @@ class SecondChAckOffset(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
KHZ_3200: _ClassVar[SecondChAckOffset]
|
||||
|
||||
class RelayModeActivation(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
DISABLE_RELAY_MODE: _ClassVar[RelayModeActivation]
|
||||
ENABLE_RELAY_MODE: _ClassVar[RelayModeActivation]
|
||||
DYNAMIC: _ClassVar[RelayModeActivation]
|
||||
@ -74,16 +74,16 @@ DYNAMIC: RelayModeActivation
|
||||
END_DEVICE_CONTROLLED: RelayModeActivation
|
||||
|
||||
class DeviceProfile(_message.Message):
|
||||
__slots__ = ["id", "tenant_id", "name", "description", "region", "mac_version", "reg_params_revision", "adr_algorithm_id", "payload_codec_runtime", "payload_codec_script", "flush_queue_on_activate", "uplink_interval", "device_status_req_interval", "supports_otaa", "supports_class_b", "supports_class_c", "class_b_timeout", "class_b_ping_slot_nb_k", "class_b_ping_slot_dr", "class_b_ping_slot_freq", "class_c_timeout", "abp_rx1_delay", "abp_rx1_dr_offset", "abp_rx2_dr", "abp_rx2_freq", "tags", "measurements", "auto_detect_measurements", "region_config_id", "is_relay", "is_relay_ed", "relay_ed_relay_only", "relay_enabled", "relay_cad_periodicity", "relay_default_channel_index", "relay_second_channel_freq", "relay_second_channel_dr", "relay_second_channel_ack_offset", "relay_ed_activation_mode", "relay_ed_smart_enable_level", "relay_ed_back_off", "relay_ed_uplink_limit_bucket_size", "relay_ed_uplink_limit_reload_rate", "relay_join_req_limit_reload_rate", "relay_notify_limit_reload_rate", "relay_global_uplink_limit_reload_rate", "relay_overall_limit_reload_rate", "relay_join_req_limit_bucket_size", "relay_notify_limit_bucket_size", "relay_global_uplink_limit_bucket_size", "relay_overall_limit_bucket_size", "allow_roaming"]
|
||||
__slots__ = ("id", "tenant_id", "name", "description", "region", "mac_version", "reg_params_revision", "adr_algorithm_id", "payload_codec_runtime", "payload_codec_script", "flush_queue_on_activate", "uplink_interval", "device_status_req_interval", "supports_otaa", "supports_class_b", "supports_class_c", "class_b_timeout", "class_b_ping_slot_nb_k", "class_b_ping_slot_dr", "class_b_ping_slot_freq", "class_c_timeout", "abp_rx1_delay", "abp_rx1_dr_offset", "abp_rx2_dr", "abp_rx2_freq", "tags", "measurements", "auto_detect_measurements", "region_config_id", "is_relay", "is_relay_ed", "relay_ed_relay_only", "relay_enabled", "relay_cad_periodicity", "relay_default_channel_index", "relay_second_channel_freq", "relay_second_channel_dr", "relay_second_channel_ack_offset", "relay_ed_activation_mode", "relay_ed_smart_enable_level", "relay_ed_back_off", "relay_ed_uplink_limit_bucket_size", "relay_ed_uplink_limit_reload_rate", "relay_join_req_limit_reload_rate", "relay_notify_limit_reload_rate", "relay_global_uplink_limit_reload_rate", "relay_overall_limit_reload_rate", "relay_join_req_limit_bucket_size", "relay_notify_limit_bucket_size", "relay_global_uplink_limit_bucket_size", "relay_overall_limit_bucket_size", "allow_roaming")
|
||||
class TagsEntry(_message.Message):
|
||||
__slots__ = ["key", "value"]
|
||||
__slots__ = ("key", "value")
|
||||
KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
VALUE_FIELD_NUMBER: _ClassVar[int]
|
||||
key: str
|
||||
value: str
|
||||
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
|
||||
class MeasurementsEntry(_message.Message):
|
||||
__slots__ = ["key", "value"]
|
||||
__slots__ = ("key", "value")
|
||||
KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
VALUE_FIELD_NUMBER: _ClassVar[int]
|
||||
key: str
|
||||
@ -196,7 +196,7 @@ class DeviceProfile(_message.Message):
|
||||
def __init__(self, id: _Optional[str] = ..., tenant_id: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., region: _Optional[_Union[_common_pb2.Region, str]] = ..., mac_version: _Optional[_Union[_common_pb2.MacVersion, str]] = ..., reg_params_revision: _Optional[_Union[_common_pb2.RegParamsRevision, str]] = ..., adr_algorithm_id: _Optional[str] = ..., payload_codec_runtime: _Optional[_Union[CodecRuntime, str]] = ..., payload_codec_script: _Optional[str] = ..., flush_queue_on_activate: bool = ..., uplink_interval: _Optional[int] = ..., device_status_req_interval: _Optional[int] = ..., supports_otaa: bool = ..., supports_class_b: bool = ..., supports_class_c: bool = ..., class_b_timeout: _Optional[int] = ..., class_b_ping_slot_nb_k: _Optional[int] = ..., class_b_ping_slot_dr: _Optional[int] = ..., class_b_ping_slot_freq: _Optional[int] = ..., class_c_timeout: _Optional[int] = ..., abp_rx1_delay: _Optional[int] = ..., abp_rx1_dr_offset: _Optional[int] = ..., abp_rx2_dr: _Optional[int] = ..., abp_rx2_freq: _Optional[int] = ..., tags: _Optional[_Mapping[str, str]] = ..., measurements: _Optional[_Mapping[str, Measurement]] = ..., auto_detect_measurements: bool = ..., region_config_id: _Optional[str] = ..., is_relay: bool = ..., is_relay_ed: bool = ..., relay_ed_relay_only: bool = ..., relay_enabled: bool = ..., relay_cad_periodicity: _Optional[_Union[CadPeriodicity, str]] = ..., relay_default_channel_index: _Optional[int] = ..., relay_second_channel_freq: _Optional[int] = ..., relay_second_channel_dr: _Optional[int] = ..., relay_second_channel_ack_offset: _Optional[_Union[SecondChAckOffset, str]] = ..., relay_ed_activation_mode: _Optional[_Union[RelayModeActivation, str]] = ..., relay_ed_smart_enable_level: _Optional[int] = ..., relay_ed_back_off: _Optional[int] = ..., relay_ed_uplink_limit_bucket_size: _Optional[int] = ..., relay_ed_uplink_limit_reload_rate: _Optional[int] = ..., relay_join_req_limit_reload_rate: _Optional[int] = ..., relay_notify_limit_reload_rate: _Optional[int] = ..., relay_global_uplink_limit_reload_rate: _Optional[int] = ..., relay_overall_limit_reload_rate: _Optional[int] = ..., relay_join_req_limit_bucket_size: _Optional[int] = ..., relay_notify_limit_bucket_size: _Optional[int] = ..., relay_global_uplink_limit_bucket_size: _Optional[int] = ..., relay_overall_limit_bucket_size: _Optional[int] = ..., allow_roaming: bool = ...) -> None: ...
|
||||
|
||||
class Measurement(_message.Message):
|
||||
__slots__ = ["name", "kind"]
|
||||
__slots__ = ("name", "kind")
|
||||
NAME_FIELD_NUMBER: _ClassVar[int]
|
||||
KIND_FIELD_NUMBER: _ClassVar[int]
|
||||
name: str
|
||||
@ -204,7 +204,7 @@ class Measurement(_message.Message):
|
||||
def __init__(self, name: _Optional[str] = ..., kind: _Optional[_Union[MeasurementKind, str]] = ...) -> None: ...
|
||||
|
||||
class DeviceProfileListItem(_message.Message):
|
||||
__slots__ = ["id", "created_at", "updated_at", "name", "region", "mac_version", "reg_params_revision", "supports_otaa", "supports_class_b", "supports_class_c"]
|
||||
__slots__ = ("id", "created_at", "updated_at", "name", "region", "mac_version", "reg_params_revision", "supports_otaa", "supports_class_b", "supports_class_c")
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -228,25 +228,25 @@ class DeviceProfileListItem(_message.Message):
|
||||
def __init__(self, id: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., name: _Optional[str] = ..., region: _Optional[_Union[_common_pb2.Region, str]] = ..., mac_version: _Optional[_Union[_common_pb2.MacVersion, str]] = ..., reg_params_revision: _Optional[_Union[_common_pb2.RegParamsRevision, str]] = ..., supports_otaa: bool = ..., supports_class_b: bool = ..., supports_class_c: bool = ...) -> None: ...
|
||||
|
||||
class CreateDeviceProfileRequest(_message.Message):
|
||||
__slots__ = ["device_profile"]
|
||||
__slots__ = ("device_profile",)
|
||||
DEVICE_PROFILE_FIELD_NUMBER: _ClassVar[int]
|
||||
device_profile: DeviceProfile
|
||||
def __init__(self, device_profile: _Optional[_Union[DeviceProfile, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class CreateDeviceProfileResponse(_message.Message):
|
||||
__slots__ = ["id"]
|
||||
__slots__ = ("id",)
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
id: str
|
||||
def __init__(self, id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetDeviceProfileRequest(_message.Message):
|
||||
__slots__ = ["id"]
|
||||
__slots__ = ("id",)
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
id: str
|
||||
def __init__(self, id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetDeviceProfileResponse(_message.Message):
|
||||
__slots__ = ["device_profile", "created_at", "updated_at"]
|
||||
__slots__ = ("device_profile", "created_at", "updated_at")
|
||||
DEVICE_PROFILE_FIELD_NUMBER: _ClassVar[int]
|
||||
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -256,19 +256,19 @@ class GetDeviceProfileResponse(_message.Message):
|
||||
def __init__(self, device_profile: _Optional[_Union[DeviceProfile, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class UpdateDeviceProfileRequest(_message.Message):
|
||||
__slots__ = ["device_profile"]
|
||||
__slots__ = ("device_profile",)
|
||||
DEVICE_PROFILE_FIELD_NUMBER: _ClassVar[int]
|
||||
device_profile: DeviceProfile
|
||||
def __init__(self, device_profile: _Optional[_Union[DeviceProfile, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class DeleteDeviceProfileRequest(_message.Message):
|
||||
__slots__ = ["id"]
|
||||
__slots__ = ("id",)
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
id: str
|
||||
def __init__(self, id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class ListDeviceProfilesRequest(_message.Message):
|
||||
__slots__ = ["limit", "offset", "search", "tenant_id"]
|
||||
__slots__ = ("limit", "offset", "search", "tenant_id")
|
||||
LIMIT_FIELD_NUMBER: _ClassVar[int]
|
||||
OFFSET_FIELD_NUMBER: _ClassVar[int]
|
||||
SEARCH_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -280,7 +280,7 @@ class ListDeviceProfilesRequest(_message.Message):
|
||||
def __init__(self, limit: _Optional[int] = ..., offset: _Optional[int] = ..., search: _Optional[str] = ..., tenant_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class ListDeviceProfilesResponse(_message.Message):
|
||||
__slots__ = ["total_count", "result"]
|
||||
__slots__ = ("total_count", "result")
|
||||
TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
|
||||
RESULT_FIELD_NUMBER: _ClassVar[int]
|
||||
total_count: int
|
||||
@ -288,7 +288,7 @@ class ListDeviceProfilesResponse(_message.Message):
|
||||
def __init__(self, total_count: _Optional[int] = ..., result: _Optional[_Iterable[_Union[DeviceProfileListItem, _Mapping]]] = ...) -> None: ...
|
||||
|
||||
class ListDeviceProfileAdrAlgorithmsResponse(_message.Message):
|
||||
__slots__ = ["total_count", "result"]
|
||||
__slots__ = ("total_count", "result")
|
||||
TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
|
||||
RESULT_FIELD_NUMBER: _ClassVar[int]
|
||||
total_count: int
|
||||
@ -296,7 +296,7 @@ class ListDeviceProfileAdrAlgorithmsResponse(_message.Message):
|
||||
def __init__(self, total_count: _Optional[int] = ..., result: _Optional[_Iterable[_Union[AdrAlgorithmListItem, _Mapping]]] = ...) -> None: ...
|
||||
|
||||
class AdrAlgorithmListItem(_message.Message):
|
||||
__slots__ = ["id", "name"]
|
||||
__slots__ = ("id", "name")
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
NAME_FIELD_NUMBER: _ClassVar[int]
|
||||
id: str
|
||||
|
@ -1,6 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: chirpstack-api/api/device_profile_template.proto
|
||||
# Protobuf Python Version: 4.25.0
|
||||
"""Generated protocol buffer code."""
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import descriptor_pool as _descriptor_pool
|
||||
@ -24,23 +25,22 @@ _globals = globals()
|
||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
||||
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'chirpstack_api.api.device_profile_template_pb2', _globals)
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
|
||||
DESCRIPTOR._options = None
|
||||
DESCRIPTOR._serialized_options = b'\n\021io.chirpstack.apiB\032DeviceProfileTemplateProtoP\001Z.github.com/chirpstack/chirpstack/api/go/v4/api\252\002\016Chirpstack.Api'
|
||||
_DEVICEPROFILETEMPLATE_TAGSENTRY._options = None
|
||||
_DEVICEPROFILETEMPLATE_TAGSENTRY._serialized_options = b'8\001'
|
||||
_DEVICEPROFILETEMPLATE_MEASUREMENTSENTRY._options = None
|
||||
_DEVICEPROFILETEMPLATE_MEASUREMENTSENTRY._serialized_options = b'8\001'
|
||||
_DEVICEPROFILETEMPLATESERVICE.methods_by_name['Create']._options = None
|
||||
_DEVICEPROFILETEMPLATESERVICE.methods_by_name['Create']._serialized_options = b'\202\323\344\223\002\"\"\035/api/device-profile-templates:\001*'
|
||||
_DEVICEPROFILETEMPLATESERVICE.methods_by_name['Get']._options = None
|
||||
_DEVICEPROFILETEMPLATESERVICE.methods_by_name['Get']._serialized_options = b'\202\323\344\223\002$\022\"/api/device-profile-templates/{id}'
|
||||
_DEVICEPROFILETEMPLATESERVICE.methods_by_name['Update']._options = None
|
||||
_DEVICEPROFILETEMPLATESERVICE.methods_by_name['Update']._serialized_options = b'\202\323\344\223\002?\032:/api/device-profile-templates/{device_profile_template.id}:\001*'
|
||||
_DEVICEPROFILETEMPLATESERVICE.methods_by_name['Delete']._options = None
|
||||
_DEVICEPROFILETEMPLATESERVICE.methods_by_name['Delete']._serialized_options = b'\202\323\344\223\002$*\"/api/device-profile-templates/{id}'
|
||||
_DEVICEPROFILETEMPLATESERVICE.methods_by_name['List']._options = None
|
||||
_DEVICEPROFILETEMPLATESERVICE.methods_by_name['List']._serialized_options = b'\202\323\344\223\002\037\022\035/api/device-profile-templates'
|
||||
_globals['DESCRIPTOR']._options = None
|
||||
_globals['DESCRIPTOR']._serialized_options = b'\n\021io.chirpstack.apiB\032DeviceProfileTemplateProtoP\001Z.github.com/chirpstack/chirpstack/api/go/v4/api\252\002\016Chirpstack.Api'
|
||||
_globals['_DEVICEPROFILETEMPLATE_TAGSENTRY']._options = None
|
||||
_globals['_DEVICEPROFILETEMPLATE_TAGSENTRY']._serialized_options = b'8\001'
|
||||
_globals['_DEVICEPROFILETEMPLATE_MEASUREMENTSENTRY']._options = None
|
||||
_globals['_DEVICEPROFILETEMPLATE_MEASUREMENTSENTRY']._serialized_options = b'8\001'
|
||||
_globals['_DEVICEPROFILETEMPLATESERVICE'].methods_by_name['Create']._options = None
|
||||
_globals['_DEVICEPROFILETEMPLATESERVICE'].methods_by_name['Create']._serialized_options = b'\202\323\344\223\002\"\"\035/api/device-profile-templates:\001*'
|
||||
_globals['_DEVICEPROFILETEMPLATESERVICE'].methods_by_name['Get']._options = None
|
||||
_globals['_DEVICEPROFILETEMPLATESERVICE'].methods_by_name['Get']._serialized_options = b'\202\323\344\223\002$\022\"/api/device-profile-templates/{id}'
|
||||
_globals['_DEVICEPROFILETEMPLATESERVICE'].methods_by_name['Update']._options = None
|
||||
_globals['_DEVICEPROFILETEMPLATESERVICE'].methods_by_name['Update']._serialized_options = b'\202\323\344\223\002?\032:/api/device-profile-templates/{device_profile_template.id}:\001*'
|
||||
_globals['_DEVICEPROFILETEMPLATESERVICE'].methods_by_name['Delete']._options = None
|
||||
_globals['_DEVICEPROFILETEMPLATESERVICE'].methods_by_name['Delete']._serialized_options = b'\202\323\344\223\002$*\"/api/device-profile-templates/{id}'
|
||||
_globals['_DEVICEPROFILETEMPLATESERVICE'].methods_by_name['List']._options = None
|
||||
_globals['_DEVICEPROFILETEMPLATESERVICE'].methods_by_name['List']._serialized_options = b'\202\323\344\223\002\037\022\035/api/device-profile-templates'
|
||||
_globals['_DEVICEPROFILETEMPLATE']._serialized_start=227
|
||||
_globals['_DEVICEPROFILETEMPLATE']._serialized_end=1241
|
||||
_globals['_DEVICEPROFILETEMPLATE_TAGSENTRY']._serialized_start=1127
|
||||
|
@ -11,16 +11,16 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map
|
||||
DESCRIPTOR: _descriptor.FileDescriptor
|
||||
|
||||
class DeviceProfileTemplate(_message.Message):
|
||||
__slots__ = ["id", "name", "description", "vendor", "firmware", "region", "mac_version", "reg_params_revision", "adr_algorithm_id", "payload_codec_runtime", "payload_codec_script", "flush_queue_on_activate", "uplink_interval", "device_status_req_interval", "supports_otaa", "supports_class_b", "supports_class_c", "class_b_timeout", "class_b_ping_slot_nb_k", "class_b_ping_slot_dr", "class_b_ping_slot_freq", "class_c_timeout", "abp_rx1_delay", "abp_rx1_dr_offset", "abp_rx2_dr", "abp_rx2_freq", "tags", "measurements", "auto_detect_measurements"]
|
||||
__slots__ = ("id", "name", "description", "vendor", "firmware", "region", "mac_version", "reg_params_revision", "adr_algorithm_id", "payload_codec_runtime", "payload_codec_script", "flush_queue_on_activate", "uplink_interval", "device_status_req_interval", "supports_otaa", "supports_class_b", "supports_class_c", "class_b_timeout", "class_b_ping_slot_nb_k", "class_b_ping_slot_dr", "class_b_ping_slot_freq", "class_c_timeout", "abp_rx1_delay", "abp_rx1_dr_offset", "abp_rx2_dr", "abp_rx2_freq", "tags", "measurements", "auto_detect_measurements")
|
||||
class TagsEntry(_message.Message):
|
||||
__slots__ = ["key", "value"]
|
||||
__slots__ = ("key", "value")
|
||||
KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
VALUE_FIELD_NUMBER: _ClassVar[int]
|
||||
key: str
|
||||
value: str
|
||||
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
|
||||
class MeasurementsEntry(_message.Message):
|
||||
__slots__ = ["key", "value"]
|
||||
__slots__ = ("key", "value")
|
||||
KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
VALUE_FIELD_NUMBER: _ClassVar[int]
|
||||
key: str
|
||||
@ -87,7 +87,7 @@ class DeviceProfileTemplate(_message.Message):
|
||||
def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., vendor: _Optional[str] = ..., firmware: _Optional[str] = ..., region: _Optional[_Union[_common_pb2.Region, str]] = ..., mac_version: _Optional[_Union[_common_pb2.MacVersion, str]] = ..., reg_params_revision: _Optional[_Union[_common_pb2.RegParamsRevision, str]] = ..., adr_algorithm_id: _Optional[str] = ..., payload_codec_runtime: _Optional[_Union[_device_profile_pb2.CodecRuntime, str]] = ..., payload_codec_script: _Optional[str] = ..., flush_queue_on_activate: bool = ..., uplink_interval: _Optional[int] = ..., device_status_req_interval: _Optional[int] = ..., supports_otaa: bool = ..., supports_class_b: bool = ..., supports_class_c: bool = ..., class_b_timeout: _Optional[int] = ..., class_b_ping_slot_nb_k: _Optional[int] = ..., class_b_ping_slot_dr: _Optional[int] = ..., class_b_ping_slot_freq: _Optional[int] = ..., class_c_timeout: _Optional[int] = ..., abp_rx1_delay: _Optional[int] = ..., abp_rx1_dr_offset: _Optional[int] = ..., abp_rx2_dr: _Optional[int] = ..., abp_rx2_freq: _Optional[int] = ..., tags: _Optional[_Mapping[str, str]] = ..., measurements: _Optional[_Mapping[str, _device_profile_pb2.Measurement]] = ..., auto_detect_measurements: bool = ...) -> None: ...
|
||||
|
||||
class DeviceProfileTemplateListItem(_message.Message):
|
||||
__slots__ = ["id", "created_at", "updated_at", "name", "vendor", "firmware", "region", "mac_version", "reg_params_revision", "supports_otaa", "supports_class_b", "supports_class_c"]
|
||||
__slots__ = ("id", "created_at", "updated_at", "name", "vendor", "firmware", "region", "mac_version", "reg_params_revision", "supports_otaa", "supports_class_b", "supports_class_c")
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -115,19 +115,19 @@ class DeviceProfileTemplateListItem(_message.Message):
|
||||
def __init__(self, id: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., name: _Optional[str] = ..., vendor: _Optional[str] = ..., firmware: _Optional[str] = ..., region: _Optional[_Union[_common_pb2.Region, str]] = ..., mac_version: _Optional[_Union[_common_pb2.MacVersion, str]] = ..., reg_params_revision: _Optional[_Union[_common_pb2.RegParamsRevision, str]] = ..., supports_otaa: bool = ..., supports_class_b: bool = ..., supports_class_c: bool = ...) -> None: ...
|
||||
|
||||
class CreateDeviceProfileTemplateRequest(_message.Message):
|
||||
__slots__ = ["device_profile_template"]
|
||||
__slots__ = ("device_profile_template",)
|
||||
DEVICE_PROFILE_TEMPLATE_FIELD_NUMBER: _ClassVar[int]
|
||||
device_profile_template: DeviceProfileTemplate
|
||||
def __init__(self, device_profile_template: _Optional[_Union[DeviceProfileTemplate, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class GetDeviceProfileTemplateRequest(_message.Message):
|
||||
__slots__ = ["id"]
|
||||
__slots__ = ("id",)
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
id: str
|
||||
def __init__(self, id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetDeviceProfileTemplateResponse(_message.Message):
|
||||
__slots__ = ["device_profile_template", "created_at", "updated_at"]
|
||||
__slots__ = ("device_profile_template", "created_at", "updated_at")
|
||||
DEVICE_PROFILE_TEMPLATE_FIELD_NUMBER: _ClassVar[int]
|
||||
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -137,19 +137,19 @@ class GetDeviceProfileTemplateResponse(_message.Message):
|
||||
def __init__(self, device_profile_template: _Optional[_Union[DeviceProfileTemplate, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class UpdateDeviceProfileTemplateRequest(_message.Message):
|
||||
__slots__ = ["device_profile_template"]
|
||||
__slots__ = ("device_profile_template",)
|
||||
DEVICE_PROFILE_TEMPLATE_FIELD_NUMBER: _ClassVar[int]
|
||||
device_profile_template: DeviceProfileTemplate
|
||||
def __init__(self, device_profile_template: _Optional[_Union[DeviceProfileTemplate, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class DeleteDeviceProfileTemplateRequest(_message.Message):
|
||||
__slots__ = ["id"]
|
||||
__slots__ = ("id",)
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
id: str
|
||||
def __init__(self, id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class ListDeviceProfileTemplatesRequest(_message.Message):
|
||||
__slots__ = ["limit", "offset"]
|
||||
__slots__ = ("limit", "offset")
|
||||
LIMIT_FIELD_NUMBER: _ClassVar[int]
|
||||
OFFSET_FIELD_NUMBER: _ClassVar[int]
|
||||
limit: int
|
||||
@ -157,7 +157,7 @@ class ListDeviceProfileTemplatesRequest(_message.Message):
|
||||
def __init__(self, limit: _Optional[int] = ..., offset: _Optional[int] = ...) -> None: ...
|
||||
|
||||
class ListDeviceProfileTemplatesResponse(_message.Message):
|
||||
__slots__ = ["total_count", "result"]
|
||||
__slots__ = ("total_count", "result")
|
||||
TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
|
||||
RESULT_FIELD_NUMBER: _ClassVar[int]
|
||||
total_count: int
|
||||
|
46
api/python/src/chirpstack_api/api/gateway_pb2.py
vendored
46
api/python/src/chirpstack_api/api/gateway_pb2.py
vendored
@ -1,6 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: chirpstack-api/api/gateway.proto
|
||||
# Protobuf Python Version: 4.25.0
|
||||
"""Generated protocol buffer code."""
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import descriptor_pool as _descriptor_pool
|
||||
@ -23,29 +24,28 @@ _globals = globals()
|
||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
||||
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'chirpstack_api.api.gateway_pb2', _globals)
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
|
||||
DESCRIPTOR._options = None
|
||||
DESCRIPTOR._serialized_options = b'\n\021io.chirpstack.apiB\014GatewayProtoP\001Z.github.com/chirpstack/chirpstack/api/go/v4/api\252\002\016Chirpstack.Api'
|
||||
_GATEWAY_TAGSENTRY._options = None
|
||||
_GATEWAY_TAGSENTRY._serialized_options = b'8\001'
|
||||
_GATEWAY_METADATAENTRY._options = None
|
||||
_GATEWAY_METADATAENTRY._serialized_options = b'8\001'
|
||||
_GATEWAYLISTITEM_PROPERTIESENTRY._options = None
|
||||
_GATEWAYLISTITEM_PROPERTIESENTRY._serialized_options = b'8\001'
|
||||
_GATEWAYSERVICE.methods_by_name['Create']._options = None
|
||||
_GATEWAYSERVICE.methods_by_name['Create']._serialized_options = b'\202\323\344\223\002\022\"\r/api/gateways:\001*'
|
||||
_GATEWAYSERVICE.methods_by_name['Get']._options = None
|
||||
_GATEWAYSERVICE.methods_by_name['Get']._serialized_options = b'\202\323\344\223\002\034\022\032/api/gateways/{gateway_id}'
|
||||
_GATEWAYSERVICE.methods_by_name['Update']._options = None
|
||||
_GATEWAYSERVICE.methods_by_name['Update']._serialized_options = b'\202\323\344\223\002\'\032\"/api/gateways/{gateway.gateway_id}:\001*'
|
||||
_GATEWAYSERVICE.methods_by_name['Delete']._options = None
|
||||
_GATEWAYSERVICE.methods_by_name['Delete']._serialized_options = b'\202\323\344\223\002\034*\032/api/gateways/{gateway_id}'
|
||||
_GATEWAYSERVICE.methods_by_name['List']._options = None
|
||||
_GATEWAYSERVICE.methods_by_name['List']._serialized_options = b'\202\323\344\223\002\017\022\r/api/gateways'
|
||||
_GATEWAYSERVICE.methods_by_name['GenerateClientCertificate']._options = None
|
||||
_GATEWAYSERVICE.methods_by_name['GenerateClientCertificate']._serialized_options = b'\202\323\344\223\0021\"//api/gateways/{gateway_id}/generate-certificate'
|
||||
_GATEWAYSERVICE.methods_by_name['GetMetrics']._options = None
|
||||
_GATEWAYSERVICE.methods_by_name['GetMetrics']._serialized_options = b'\202\323\344\223\002$\022\"/api/gateways/{gateway_id}/metrics'
|
||||
_globals['DESCRIPTOR']._options = None
|
||||
_globals['DESCRIPTOR']._serialized_options = b'\n\021io.chirpstack.apiB\014GatewayProtoP\001Z.github.com/chirpstack/chirpstack/api/go/v4/api\252\002\016Chirpstack.Api'
|
||||
_globals['_GATEWAY_TAGSENTRY']._options = None
|
||||
_globals['_GATEWAY_TAGSENTRY']._serialized_options = b'8\001'
|
||||
_globals['_GATEWAY_METADATAENTRY']._options = None
|
||||
_globals['_GATEWAY_METADATAENTRY']._serialized_options = b'8\001'
|
||||
_globals['_GATEWAYLISTITEM_PROPERTIESENTRY']._options = None
|
||||
_globals['_GATEWAYLISTITEM_PROPERTIESENTRY']._serialized_options = b'8\001'
|
||||
_globals['_GATEWAYSERVICE'].methods_by_name['Create']._options = None
|
||||
_globals['_GATEWAYSERVICE'].methods_by_name['Create']._serialized_options = b'\202\323\344\223\002\022\"\r/api/gateways:\001*'
|
||||
_globals['_GATEWAYSERVICE'].methods_by_name['Get']._options = None
|
||||
_globals['_GATEWAYSERVICE'].methods_by_name['Get']._serialized_options = b'\202\323\344\223\002\034\022\032/api/gateways/{gateway_id}'
|
||||
_globals['_GATEWAYSERVICE'].methods_by_name['Update']._options = None
|
||||
_globals['_GATEWAYSERVICE'].methods_by_name['Update']._serialized_options = b'\202\323\344\223\002\'\032\"/api/gateways/{gateway.gateway_id}:\001*'
|
||||
_globals['_GATEWAYSERVICE'].methods_by_name['Delete']._options = None
|
||||
_globals['_GATEWAYSERVICE'].methods_by_name['Delete']._serialized_options = b'\202\323\344\223\002\034*\032/api/gateways/{gateway_id}'
|
||||
_globals['_GATEWAYSERVICE'].methods_by_name['List']._options = None
|
||||
_globals['_GATEWAYSERVICE'].methods_by_name['List']._serialized_options = b'\202\323\344\223\002\017\022\r/api/gateways'
|
||||
_globals['_GATEWAYSERVICE'].methods_by_name['GenerateClientCertificate']._options = None
|
||||
_globals['_GATEWAYSERVICE'].methods_by_name['GenerateClientCertificate']._serialized_options = b'\202\323\344\223\0021\"//api/gateways/{gateway_id}/generate-certificate'
|
||||
_globals['_GATEWAYSERVICE'].methods_by_name['GetMetrics']._options = None
|
||||
_globals['_GATEWAYSERVICE'].methods_by_name['GetMetrics']._serialized_options = b'\202\323\344\223\002$\022\"/api/gateways/{gateway_id}/metrics'
|
||||
_globals['_GATEWAYSTATE']._serialized_start=2215
|
||||
_globals['_GATEWAYSTATE']._serialized_end=2270
|
||||
_globals['_GATEWAY']._serialized_start=170
|
||||
|
@ -11,7 +11,7 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map
|
||||
DESCRIPTOR: _descriptor.FileDescriptor
|
||||
|
||||
class GatewayState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
NEVER_SEEN: _ClassVar[GatewayState]
|
||||
ONLINE: _ClassVar[GatewayState]
|
||||
OFFLINE: _ClassVar[GatewayState]
|
||||
@ -20,16 +20,16 @@ ONLINE: GatewayState
|
||||
OFFLINE: GatewayState
|
||||
|
||||
class Gateway(_message.Message):
|
||||
__slots__ = ["gateway_id", "name", "description", "location", "tenant_id", "tags", "metadata", "stats_interval"]
|
||||
__slots__ = ("gateway_id", "name", "description", "location", "tenant_id", "tags", "metadata", "stats_interval")
|
||||
class TagsEntry(_message.Message):
|
||||
__slots__ = ["key", "value"]
|
||||
__slots__ = ("key", "value")
|
||||
KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
VALUE_FIELD_NUMBER: _ClassVar[int]
|
||||
key: str
|
||||
value: str
|
||||
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
|
||||
class MetadataEntry(_message.Message):
|
||||
__slots__ = ["key", "value"]
|
||||
__slots__ = ("key", "value")
|
||||
KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
VALUE_FIELD_NUMBER: _ClassVar[int]
|
||||
key: str
|
||||
@ -54,9 +54,9 @@ class Gateway(_message.Message):
|
||||
def __init__(self, gateway_id: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., location: _Optional[_Union[_common_pb2.Location, _Mapping]] = ..., tenant_id: _Optional[str] = ..., tags: _Optional[_Mapping[str, str]] = ..., metadata: _Optional[_Mapping[str, str]] = ..., stats_interval: _Optional[int] = ...) -> None: ...
|
||||
|
||||
class GatewayListItem(_message.Message):
|
||||
__slots__ = ["tenant_id", "gateway_id", "name", "description", "location", "properties", "created_at", "updated_at", "last_seen_at", "state"]
|
||||
__slots__ = ("tenant_id", "gateway_id", "name", "description", "location", "properties", "created_at", "updated_at", "last_seen_at", "state")
|
||||
class PropertiesEntry(_message.Message):
|
||||
__slots__ = ["key", "value"]
|
||||
__slots__ = ("key", "value")
|
||||
KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
VALUE_FIELD_NUMBER: _ClassVar[int]
|
||||
key: str
|
||||
@ -85,19 +85,19 @@ class GatewayListItem(_message.Message):
|
||||
def __init__(self, tenant_id: _Optional[str] = ..., gateway_id: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., location: _Optional[_Union[_common_pb2.Location, _Mapping]] = ..., properties: _Optional[_Mapping[str, str]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., last_seen_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., state: _Optional[_Union[GatewayState, str]] = ...) -> None: ...
|
||||
|
||||
class CreateGatewayRequest(_message.Message):
|
||||
__slots__ = ["gateway"]
|
||||
__slots__ = ("gateway",)
|
||||
GATEWAY_FIELD_NUMBER: _ClassVar[int]
|
||||
gateway: Gateway
|
||||
def __init__(self, gateway: _Optional[_Union[Gateway, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class GetGatewayRequest(_message.Message):
|
||||
__slots__ = ["gateway_id"]
|
||||
__slots__ = ("gateway_id",)
|
||||
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
gateway_id: str
|
||||
def __init__(self, gateway_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetGatewayResponse(_message.Message):
|
||||
__slots__ = ["gateway", "created_at", "updated_at", "last_seen_at"]
|
||||
__slots__ = ("gateway", "created_at", "updated_at", "last_seen_at")
|
||||
GATEWAY_FIELD_NUMBER: _ClassVar[int]
|
||||
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -109,19 +109,19 @@ class GetGatewayResponse(_message.Message):
|
||||
def __init__(self, gateway: _Optional[_Union[Gateway, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., last_seen_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class UpdateGatewayRequest(_message.Message):
|
||||
__slots__ = ["gateway"]
|
||||
__slots__ = ("gateway",)
|
||||
GATEWAY_FIELD_NUMBER: _ClassVar[int]
|
||||
gateway: Gateway
|
||||
def __init__(self, gateway: _Optional[_Union[Gateway, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class DeleteGatewayRequest(_message.Message):
|
||||
__slots__ = ["gateway_id"]
|
||||
__slots__ = ("gateway_id",)
|
||||
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
gateway_id: str
|
||||
def __init__(self, gateway_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class ListGatewaysRequest(_message.Message):
|
||||
__slots__ = ["limit", "offset", "search", "tenant_id", "multicast_group_id"]
|
||||
__slots__ = ("limit", "offset", "search", "tenant_id", "multicast_group_id")
|
||||
LIMIT_FIELD_NUMBER: _ClassVar[int]
|
||||
OFFSET_FIELD_NUMBER: _ClassVar[int]
|
||||
SEARCH_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -135,7 +135,7 @@ class ListGatewaysRequest(_message.Message):
|
||||
def __init__(self, limit: _Optional[int] = ..., offset: _Optional[int] = ..., search: _Optional[str] = ..., tenant_id: _Optional[str] = ..., multicast_group_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class ListGatewaysResponse(_message.Message):
|
||||
__slots__ = ["total_count", "result"]
|
||||
__slots__ = ("total_count", "result")
|
||||
TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
|
||||
RESULT_FIELD_NUMBER: _ClassVar[int]
|
||||
total_count: int
|
||||
@ -143,13 +143,13 @@ class ListGatewaysResponse(_message.Message):
|
||||
def __init__(self, total_count: _Optional[int] = ..., result: _Optional[_Iterable[_Union[GatewayListItem, _Mapping]]] = ...) -> None: ...
|
||||
|
||||
class GenerateGatewayClientCertificateRequest(_message.Message):
|
||||
__slots__ = ["gateway_id"]
|
||||
__slots__ = ("gateway_id",)
|
||||
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
gateway_id: str
|
||||
def __init__(self, gateway_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GenerateGatewayClientCertificateResponse(_message.Message):
|
||||
__slots__ = ["tls_cert", "tls_key", "ca_cert", "expires_at"]
|
||||
__slots__ = ("tls_cert", "tls_key", "ca_cert", "expires_at")
|
||||
TLS_CERT_FIELD_NUMBER: _ClassVar[int]
|
||||
TLS_KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
CA_CERT_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -161,7 +161,7 @@ class GenerateGatewayClientCertificateResponse(_message.Message):
|
||||
def __init__(self, tls_cert: _Optional[str] = ..., tls_key: _Optional[str] = ..., ca_cert: _Optional[str] = ..., expires_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class GetGatewayMetricsRequest(_message.Message):
|
||||
__slots__ = ["gateway_id", "start", "end", "aggregation"]
|
||||
__slots__ = ("gateway_id", "start", "end", "aggregation")
|
||||
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
START_FIELD_NUMBER: _ClassVar[int]
|
||||
END_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -173,7 +173,7 @@ class GetGatewayMetricsRequest(_message.Message):
|
||||
def __init__(self, gateway_id: _Optional[str] = ..., start: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., end: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., aggregation: _Optional[_Union[_common_pb2.Aggregation, str]] = ...) -> None: ...
|
||||
|
||||
class GetGatewayMetricsResponse(_message.Message):
|
||||
__slots__ = ["rx_packets", "tx_packets", "tx_packets_per_freq", "rx_packets_per_freq", "tx_packets_per_dr", "rx_packets_per_dr", "tx_packets_per_status"]
|
||||
__slots__ = ("rx_packets", "tx_packets", "tx_packets_per_freq", "rx_packets_per_freq", "tx_packets_per_dr", "rx_packets_per_dr", "tx_packets_per_status")
|
||||
RX_PACKETS_FIELD_NUMBER: _ClassVar[int]
|
||||
TX_PACKETS_FIELD_NUMBER: _ClassVar[int]
|
||||
TX_PACKETS_PER_FREQ_FIELD_NUMBER: _ClassVar[int]
|
||||
|
100
api/python/src/chirpstack_api/api/internal_pb2.py
vendored
100
api/python/src/chirpstack_api/api/internal_pb2.py
vendored
File diff suppressed because one or more lines are too long
100
api/python/src/chirpstack_api/api/internal_pb2.pyi
vendored
100
api/python/src/chirpstack_api/api/internal_pb2.pyi
vendored
@ -10,7 +10,7 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map
|
||||
DESCRIPTOR: _descriptor.FileDescriptor
|
||||
|
||||
class ApiKey(_message.Message):
|
||||
__slots__ = ["id", "name", "is_admin", "tenant_id"]
|
||||
__slots__ = ("id", "name", "is_admin", "tenant_id")
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
NAME_FIELD_NUMBER: _ClassVar[int]
|
||||
IS_ADMIN_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -22,13 +22,13 @@ class ApiKey(_message.Message):
|
||||
def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., is_admin: bool = ..., tenant_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class CreateApiKeyRequest(_message.Message):
|
||||
__slots__ = ["api_key"]
|
||||
__slots__ = ("api_key",)
|
||||
API_KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
api_key: ApiKey
|
||||
def __init__(self, api_key: _Optional[_Union[ApiKey, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class CreateApiKeyResponse(_message.Message):
|
||||
__slots__ = ["id", "token"]
|
||||
__slots__ = ("id", "token")
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
TOKEN_FIELD_NUMBER: _ClassVar[int]
|
||||
id: str
|
||||
@ -36,13 +36,13 @@ class CreateApiKeyResponse(_message.Message):
|
||||
def __init__(self, id: _Optional[str] = ..., token: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class DeleteApiKeyRequest(_message.Message):
|
||||
__slots__ = ["id"]
|
||||
__slots__ = ("id",)
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
id: str
|
||||
def __init__(self, id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class ListApiKeysRequest(_message.Message):
|
||||
__slots__ = ["limit", "offset", "is_admin", "tenant_id"]
|
||||
__slots__ = ("limit", "offset", "is_admin", "tenant_id")
|
||||
LIMIT_FIELD_NUMBER: _ClassVar[int]
|
||||
OFFSET_FIELD_NUMBER: _ClassVar[int]
|
||||
IS_ADMIN_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -54,7 +54,7 @@ class ListApiKeysRequest(_message.Message):
|
||||
def __init__(self, limit: _Optional[int] = ..., offset: _Optional[int] = ..., is_admin: bool = ..., tenant_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class ListApiKeysResponse(_message.Message):
|
||||
__slots__ = ["total_count", "result"]
|
||||
__slots__ = ("total_count", "result")
|
||||
TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
|
||||
RESULT_FIELD_NUMBER: _ClassVar[int]
|
||||
total_count: int
|
||||
@ -62,7 +62,7 @@ class ListApiKeysResponse(_message.Message):
|
||||
def __init__(self, total_count: _Optional[int] = ..., result: _Optional[_Iterable[_Union[ApiKey, _Mapping]]] = ...) -> None: ...
|
||||
|
||||
class UserTenantLink(_message.Message):
|
||||
__slots__ = ["created_at", "updated_at", "tenant_id", "is_admin", "is_device_admin", "is_gateway_admin"]
|
||||
__slots__ = ("created_at", "updated_at", "tenant_id", "is_admin", "is_device_admin", "is_gateway_admin")
|
||||
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -78,7 +78,7 @@ class UserTenantLink(_message.Message):
|
||||
def __init__(self, created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., tenant_id: _Optional[str] = ..., is_admin: bool = ..., is_device_admin: bool = ..., is_gateway_admin: bool = ...) -> None: ...
|
||||
|
||||
class LoginRequest(_message.Message):
|
||||
__slots__ = ["email", "password"]
|
||||
__slots__ = ("email", "password")
|
||||
EMAIL_FIELD_NUMBER: _ClassVar[int]
|
||||
PASSWORD_FIELD_NUMBER: _ClassVar[int]
|
||||
email: str
|
||||
@ -86,13 +86,13 @@ class LoginRequest(_message.Message):
|
||||
def __init__(self, email: _Optional[str] = ..., password: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class LoginResponse(_message.Message):
|
||||
__slots__ = ["jwt"]
|
||||
__slots__ = ("jwt",)
|
||||
JWT_FIELD_NUMBER: _ClassVar[int]
|
||||
jwt: str
|
||||
def __init__(self, jwt: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class ProfileResponse(_message.Message):
|
||||
__slots__ = ["user", "tenants"]
|
||||
__slots__ = ("user", "tenants")
|
||||
USER_FIELD_NUMBER: _ClassVar[int]
|
||||
TENANTS_FIELD_NUMBER: _ClassVar[int]
|
||||
user: _user_pb2.User
|
||||
@ -100,7 +100,7 @@ class ProfileResponse(_message.Message):
|
||||
def __init__(self, user: _Optional[_Union[_user_pb2.User, _Mapping]] = ..., tenants: _Optional[_Iterable[_Union[UserTenantLink, _Mapping]]] = ...) -> None: ...
|
||||
|
||||
class GlobalSearchRequest(_message.Message):
|
||||
__slots__ = ["search", "limit", "offset"]
|
||||
__slots__ = ("search", "limit", "offset")
|
||||
SEARCH_FIELD_NUMBER: _ClassVar[int]
|
||||
LIMIT_FIELD_NUMBER: _ClassVar[int]
|
||||
OFFSET_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -110,13 +110,13 @@ class GlobalSearchRequest(_message.Message):
|
||||
def __init__(self, search: _Optional[str] = ..., limit: _Optional[int] = ..., offset: _Optional[int] = ...) -> None: ...
|
||||
|
||||
class GlobalSearchResponse(_message.Message):
|
||||
__slots__ = ["result"]
|
||||
__slots__ = ("result",)
|
||||
RESULT_FIELD_NUMBER: _ClassVar[int]
|
||||
result: _containers.RepeatedCompositeFieldContainer[GlobalSearchResult]
|
||||
def __init__(self, result: _Optional[_Iterable[_Union[GlobalSearchResult, _Mapping]]] = ...) -> None: ...
|
||||
|
||||
class GlobalSearchResult(_message.Message):
|
||||
__slots__ = ["kind", "score", "tenant_id", "tenant_name", "application_id", "application_name", "device_dev_eui", "device_name", "gateway_id", "gateway_name"]
|
||||
__slots__ = ("kind", "score", "tenant_id", "tenant_name", "application_id", "application_name", "device_dev_eui", "device_name", "gateway_id", "gateway_name")
|
||||
KIND_FIELD_NUMBER: _ClassVar[int]
|
||||
SCORE_FIELD_NUMBER: _ClassVar[int]
|
||||
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -140,25 +140,43 @@ class GlobalSearchResult(_message.Message):
|
||||
def __init__(self, kind: _Optional[str] = ..., score: _Optional[float] = ..., tenant_id: _Optional[str] = ..., tenant_name: _Optional[str] = ..., application_id: _Optional[str] = ..., application_name: _Optional[str] = ..., device_dev_eui: _Optional[str] = ..., device_name: _Optional[str] = ..., gateway_id: _Optional[str] = ..., gateway_name: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class SettingsResponse(_message.Message):
|
||||
__slots__ = ["openid_connect"]
|
||||
__slots__ = ("openid_connect", "oauth2")
|
||||
OPENID_CONNECT_FIELD_NUMBER: _ClassVar[int]
|
||||
OAUTH2_FIELD_NUMBER: _ClassVar[int]
|
||||
openid_connect: OpenIdConnect
|
||||
def __init__(self, openid_connect: _Optional[_Union[OpenIdConnect, _Mapping]] = ...) -> None: ...
|
||||
oauth2: OAuth2
|
||||
def __init__(self, openid_connect: _Optional[_Union[OpenIdConnect, _Mapping]] = ..., oauth2: _Optional[_Union[OAuth2, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class OpenIdConnect(_message.Message):
|
||||
__slots__ = ["enabled", "login_url", "login_label", "logout_url"]
|
||||
__slots__ = ("enabled", "login_url", "login_label", "logout_url", "login_redirect")
|
||||
ENABLED_FIELD_NUMBER: _ClassVar[int]
|
||||
LOGIN_URL_FIELD_NUMBER: _ClassVar[int]
|
||||
LOGIN_LABEL_FIELD_NUMBER: _ClassVar[int]
|
||||
LOGOUT_URL_FIELD_NUMBER: _ClassVar[int]
|
||||
LOGIN_REDIRECT_FIELD_NUMBER: _ClassVar[int]
|
||||
enabled: bool
|
||||
login_url: str
|
||||
login_label: str
|
||||
logout_url: str
|
||||
def __init__(self, enabled: bool = ..., login_url: _Optional[str] = ..., login_label: _Optional[str] = ..., logout_url: _Optional[str] = ...) -> None: ...
|
||||
login_redirect: bool
|
||||
def __init__(self, enabled: bool = ..., login_url: _Optional[str] = ..., login_label: _Optional[str] = ..., logout_url: _Optional[str] = ..., login_redirect: bool = ...) -> None: ...
|
||||
|
||||
class OAuth2(_message.Message):
|
||||
__slots__ = ("enabled", "login_url", "login_label", "logout_url", "login_redirect")
|
||||
ENABLED_FIELD_NUMBER: _ClassVar[int]
|
||||
LOGIN_URL_FIELD_NUMBER: _ClassVar[int]
|
||||
LOGIN_LABEL_FIELD_NUMBER: _ClassVar[int]
|
||||
LOGOUT_URL_FIELD_NUMBER: _ClassVar[int]
|
||||
LOGIN_REDIRECT_FIELD_NUMBER: _ClassVar[int]
|
||||
enabled: bool
|
||||
login_url: str
|
||||
login_label: str
|
||||
logout_url: str
|
||||
login_redirect: bool
|
||||
def __init__(self, enabled: bool = ..., login_url: _Optional[str] = ..., login_label: _Optional[str] = ..., logout_url: _Optional[str] = ..., login_redirect: bool = ...) -> None: ...
|
||||
|
||||
class OpenIdConnectLoginRequest(_message.Message):
|
||||
__slots__ = ["code", "state"]
|
||||
__slots__ = ("code", "state")
|
||||
CODE_FIELD_NUMBER: _ClassVar[int]
|
||||
STATE_FIELD_NUMBER: _ClassVar[int]
|
||||
code: str
|
||||
@ -166,21 +184,35 @@ class OpenIdConnectLoginRequest(_message.Message):
|
||||
def __init__(self, code: _Optional[str] = ..., state: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class OpenIdConnectLoginResponse(_message.Message):
|
||||
__slots__ = ["token"]
|
||||
__slots__ = ("token",)
|
||||
TOKEN_FIELD_NUMBER: _ClassVar[int]
|
||||
token: str
|
||||
def __init__(self, token: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class OAuth2LoginRequest(_message.Message):
|
||||
__slots__ = ("code", "state")
|
||||
CODE_FIELD_NUMBER: _ClassVar[int]
|
||||
STATE_FIELD_NUMBER: _ClassVar[int]
|
||||
code: str
|
||||
state: str
|
||||
def __init__(self, code: _Optional[str] = ..., state: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class OAuth2LoginResponse(_message.Message):
|
||||
__slots__ = ("token",)
|
||||
TOKEN_FIELD_NUMBER: _ClassVar[int]
|
||||
token: str
|
||||
def __init__(self, token: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetDevicesSummaryRequest(_message.Message):
|
||||
__slots__ = ["tenant_id"]
|
||||
__slots__ = ("tenant_id",)
|
||||
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
tenant_id: str
|
||||
def __init__(self, tenant_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetDevicesSummaryResponse(_message.Message):
|
||||
__slots__ = ["active_count", "inactive_count", "dr_count", "never_seen_count"]
|
||||
__slots__ = ("active_count", "inactive_count", "dr_count", "never_seen_count")
|
||||
class DrCountEntry(_message.Message):
|
||||
__slots__ = ["key", "value"]
|
||||
__slots__ = ("key", "value")
|
||||
KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
VALUE_FIELD_NUMBER: _ClassVar[int]
|
||||
key: int
|
||||
@ -197,13 +229,13 @@ class GetDevicesSummaryResponse(_message.Message):
|
||||
def __init__(self, active_count: _Optional[int] = ..., inactive_count: _Optional[int] = ..., dr_count: _Optional[_Mapping[int, int]] = ..., never_seen_count: _Optional[int] = ...) -> None: ...
|
||||
|
||||
class GetGatewaysSummaryRequest(_message.Message):
|
||||
__slots__ = ["tenant_id"]
|
||||
__slots__ = ("tenant_id",)
|
||||
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
tenant_id: str
|
||||
def __init__(self, tenant_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetGatewaysSummaryResponse(_message.Message):
|
||||
__slots__ = ["online_count", "offline_count", "never_seen_count"]
|
||||
__slots__ = ("online_count", "offline_count", "never_seen_count")
|
||||
ONLINE_COUNT_FIELD_NUMBER: _ClassVar[int]
|
||||
OFFLINE_COUNT_FIELD_NUMBER: _ClassVar[int]
|
||||
NEVER_SEEN_COUNT_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -213,9 +245,9 @@ class GetGatewaysSummaryResponse(_message.Message):
|
||||
def __init__(self, online_count: _Optional[int] = ..., offline_count: _Optional[int] = ..., never_seen_count: _Optional[int] = ...) -> None: ...
|
||||
|
||||
class LogItem(_message.Message):
|
||||
__slots__ = ["id", "time", "description", "body", "properties"]
|
||||
__slots__ = ("id", "time", "description", "body", "properties")
|
||||
class PropertiesEntry(_message.Message):
|
||||
__slots__ = ["key", "value"]
|
||||
__slots__ = ("key", "value")
|
||||
KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
VALUE_FIELD_NUMBER: _ClassVar[int]
|
||||
key: str
|
||||
@ -234,31 +266,31 @@ class LogItem(_message.Message):
|
||||
def __init__(self, id: _Optional[str] = ..., time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., description: _Optional[str] = ..., body: _Optional[str] = ..., properties: _Optional[_Mapping[str, str]] = ...) -> None: ...
|
||||
|
||||
class StreamGatewayFramesRequest(_message.Message):
|
||||
__slots__ = ["gateway_id"]
|
||||
__slots__ = ("gateway_id",)
|
||||
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
gateway_id: str
|
||||
def __init__(self, gateway_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class StreamDeviceFramesRequest(_message.Message):
|
||||
__slots__ = ["dev_eui"]
|
||||
__slots__ = ("dev_eui",)
|
||||
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
dev_eui: str
|
||||
def __init__(self, dev_eui: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class StreamDeviceEventsRequest(_message.Message):
|
||||
__slots__ = ["dev_eui"]
|
||||
__slots__ = ("dev_eui",)
|
||||
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
dev_eui: str
|
||||
def __init__(self, dev_eui: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class ListRegionsResponse(_message.Message):
|
||||
__slots__ = ["regions"]
|
||||
__slots__ = ("regions",)
|
||||
REGIONS_FIELD_NUMBER: _ClassVar[int]
|
||||
regions: _containers.RepeatedCompositeFieldContainer[RegionListItem]
|
||||
def __init__(self, regions: _Optional[_Iterable[_Union[RegionListItem, _Mapping]]] = ...) -> None: ...
|
||||
|
||||
class RegionListItem(_message.Message):
|
||||
__slots__ = ["id", "region", "description"]
|
||||
__slots__ = ("id", "region", "description")
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
REGION_FIELD_NUMBER: _ClassVar[int]
|
||||
DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -268,13 +300,13 @@ class RegionListItem(_message.Message):
|
||||
def __init__(self, id: _Optional[str] = ..., region: _Optional[_Union[_common_pb2.Region, str]] = ..., description: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetRegionRequest(_message.Message):
|
||||
__slots__ = ["id"]
|
||||
__slots__ = ("id",)
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
id: str
|
||||
def __init__(self, id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetRegionResponse(_message.Message):
|
||||
__slots__ = ["id", "region", "user_info", "uplink_channels", "rx1_delay", "rx1_dr_offset", "rx2_dr", "rx2_frequency", "class_b_ping_slot_dr", "class_b_ping_slot_frequency", "description"]
|
||||
__slots__ = ("id", "region", "user_info", "uplink_channels", "rx1_delay", "rx1_dr_offset", "rx2_dr", "rx2_frequency", "class_b_ping_slot_dr", "class_b_ping_slot_frequency", "description")
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
REGION_FIELD_NUMBER: _ClassVar[int]
|
||||
USER_INFO_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -300,7 +332,7 @@ class GetRegionResponse(_message.Message):
|
||||
def __init__(self, id: _Optional[str] = ..., region: _Optional[_Union[_common_pb2.Region, str]] = ..., user_info: _Optional[str] = ..., uplink_channels: _Optional[_Iterable[_Union[RegionChannel, _Mapping]]] = ..., rx1_delay: _Optional[int] = ..., rx1_dr_offset: _Optional[int] = ..., rx2_dr: _Optional[int] = ..., rx2_frequency: _Optional[int] = ..., class_b_ping_slot_dr: _Optional[int] = ..., class_b_ping_slot_frequency: _Optional[int] = ..., description: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class RegionChannel(_message.Message):
|
||||
__slots__ = ["frequency", "dr_min", "dr_max"]
|
||||
__slots__ = ("frequency", "dr_min", "dr_max")
|
||||
FREQUENCY_FIELD_NUMBER: _ClassVar[int]
|
||||
DR_MIN_FIELD_NUMBER: _ClassVar[int]
|
||||
DR_MAX_FIELD_NUMBER: _ClassVar[int]
|
||||
|
@ -56,6 +56,11 @@ class InternalServiceStub(object):
|
||||
request_serializer=chirpstack__api_dot_api_dot_internal__pb2.OpenIdConnectLoginRequest.SerializeToString,
|
||||
response_deserializer=chirpstack__api_dot_api_dot_internal__pb2.OpenIdConnectLoginResponse.FromString,
|
||||
)
|
||||
self.OAuth2Login = channel.unary_unary(
|
||||
'/api.InternalService/OAuth2Login',
|
||||
request_serializer=chirpstack__api_dot_api_dot_internal__pb2.OAuth2LoginRequest.SerializeToString,
|
||||
response_deserializer=chirpstack__api_dot_api_dot_internal__pb2.OAuth2LoginResponse.FromString,
|
||||
)
|
||||
self.GetDevicesSummary = channel.unary_unary(
|
||||
'/api.InternalService/GetDevicesSummary',
|
||||
request_serializer=chirpstack__api_dot_api_dot_internal__pb2.GetDevicesSummaryRequest.SerializeToString,
|
||||
@ -153,6 +158,13 @@ class InternalServiceServicer(object):
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def OAuth2Login(self, request, context):
|
||||
"""OAuth2 login.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def GetDevicesSummary(self, request, context):
|
||||
"""GetDevicesSummary returns an aggregated summary of the devices.
|
||||
"""
|
||||
@ -245,6 +257,11 @@ def add_InternalServiceServicer_to_server(servicer, server):
|
||||
request_deserializer=chirpstack__api_dot_api_dot_internal__pb2.OpenIdConnectLoginRequest.FromString,
|
||||
response_serializer=chirpstack__api_dot_api_dot_internal__pb2.OpenIdConnectLoginResponse.SerializeToString,
|
||||
),
|
||||
'OAuth2Login': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.OAuth2Login,
|
||||
request_deserializer=chirpstack__api_dot_api_dot_internal__pb2.OAuth2LoginRequest.FromString,
|
||||
response_serializer=chirpstack__api_dot_api_dot_internal__pb2.OAuth2LoginResponse.SerializeToString,
|
||||
),
|
||||
'GetDevicesSummary': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.GetDevicesSummary,
|
||||
request_deserializer=chirpstack__api_dot_api_dot_internal__pb2.GetDevicesSummaryRequest.FromString,
|
||||
@ -427,6 +444,23 @@ class InternalService(object):
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def OAuth2Login(request,
|
||||
target,
|
||||
options=(),
|
||||
channel_credentials=None,
|
||||
call_credentials=None,
|
||||
insecure=False,
|
||||
compression=None,
|
||||
wait_for_ready=None,
|
||||
timeout=None,
|
||||
metadata=None):
|
||||
return grpc.experimental.unary_unary(request, target, '/api.InternalService/OAuth2Login',
|
||||
chirpstack__api_dot_api_dot_internal__pb2.OAuth2LoginRequest.SerializeToString,
|
||||
chirpstack__api_dot_api_dot_internal__pb2.OAuth2LoginResponse.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def GetDevicesSummary(request,
|
||||
target,
|
||||
|
@ -1,6 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: chirpstack-api/api/multicast_group.proto
|
||||
# Protobuf Python Version: 4.25.0
|
||||
"""Generated protocol buffer code."""
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import descriptor_pool as _descriptor_pool
|
||||
@ -23,33 +24,32 @@ _globals = globals()
|
||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
||||
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'chirpstack_api.api.multicast_group_pb2', _globals)
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
|
||||
DESCRIPTOR._options = None
|
||||
DESCRIPTOR._serialized_options = b'\n\021io.chirpstack.apiB\023MulticastGroupProtoP\001Z.github.com/chirpstack/chirpstack/api/go/v4/api\252\002\016Chirpstack.Api'
|
||||
_MULTICASTGROUPSERVICE.methods_by_name['Create']._options = None
|
||||
_MULTICASTGROUPSERVICE.methods_by_name['Create']._serialized_options = b'\202\323\344\223\002\032\"\025/api/multicast-groups:\001*'
|
||||
_MULTICASTGROUPSERVICE.methods_by_name['Get']._options = None
|
||||
_MULTICASTGROUPSERVICE.methods_by_name['Get']._serialized_options = b'\202\323\344\223\002\034\022\032/api/multicast-groups/{id}'
|
||||
_MULTICASTGROUPSERVICE.methods_by_name['Update']._options = None
|
||||
_MULTICASTGROUPSERVICE.methods_by_name['Update']._serialized_options = b'\202\323\344\223\002/\032*/api/multicast-groups/{multicast_group.id}:\001*'
|
||||
_MULTICASTGROUPSERVICE.methods_by_name['Delete']._options = None
|
||||
_MULTICASTGROUPSERVICE.methods_by_name['Delete']._serialized_options = b'\202\323\344\223\002\034*\032/api/multicast-groups/{id}'
|
||||
_MULTICASTGROUPSERVICE.methods_by_name['List']._options = None
|
||||
_MULTICASTGROUPSERVICE.methods_by_name['List']._serialized_options = b'\202\323\344\223\002\027\022\025/api/multicast-groups'
|
||||
_MULTICASTGROUPSERVICE.methods_by_name['AddDevice']._options = None
|
||||
_MULTICASTGROUPSERVICE.methods_by_name['AddDevice']._serialized_options = b'\202\323\344\223\0027\"2/api/multicast-groups/{multicast_group_id}/devices:\001*'
|
||||
_MULTICASTGROUPSERVICE.methods_by_name['RemoveDevice']._options = None
|
||||
_MULTICASTGROUPSERVICE.methods_by_name['RemoveDevice']._serialized_options = b'\202\323\344\223\002>*</api/multicast-groups/{multicast_group_id}/devices/{dev_eui}'
|
||||
_MULTICASTGROUPSERVICE.methods_by_name['AddGateway']._options = None
|
||||
_MULTICASTGROUPSERVICE.methods_by_name['AddGateway']._serialized_options = b'\202\323\344\223\0028\"3/api/multicast-groups/{multicast_group_id}/gateways:\001*'
|
||||
_MULTICASTGROUPSERVICE.methods_by_name['RemoveGateway']._options = None
|
||||
_MULTICASTGROUPSERVICE.methods_by_name['RemoveGateway']._serialized_options = b'\202\323\344\223\002B*@/api/multicast-groups/{multicast_group_id}/gateways/{gateway_id}'
|
||||
_MULTICASTGROUPSERVICE.methods_by_name['Enqueue']._options = None
|
||||
_MULTICASTGROUPSERVICE.methods_by_name['Enqueue']._serialized_options = b'\202\323\344\223\002@\";/api/multicast-groups/{queue_item.multicast_group_id}/queue:\001*'
|
||||
_MULTICASTGROUPSERVICE.methods_by_name['FlushQueue']._options = None
|
||||
_MULTICASTGROUPSERVICE.methods_by_name['FlushQueue']._serialized_options = b'\202\323\344\223\0022*0/api/multicast-groups/{multicast_group_id}/queue'
|
||||
_MULTICASTGROUPSERVICE.methods_by_name['ListQueue']._options = None
|
||||
_MULTICASTGROUPSERVICE.methods_by_name['ListQueue']._serialized_options = b'\202\323\344\223\0022\0220/api/multicast-groups/{multicast_group_id}/queue'
|
||||
_globals['DESCRIPTOR']._options = None
|
||||
_globals['DESCRIPTOR']._serialized_options = b'\n\021io.chirpstack.apiB\023MulticastGroupProtoP\001Z.github.com/chirpstack/chirpstack/api/go/v4/api\252\002\016Chirpstack.Api'
|
||||
_globals['_MULTICASTGROUPSERVICE'].methods_by_name['Create']._options = None
|
||||
_globals['_MULTICASTGROUPSERVICE'].methods_by_name['Create']._serialized_options = b'\202\323\344\223\002\032\"\025/api/multicast-groups:\001*'
|
||||
_globals['_MULTICASTGROUPSERVICE'].methods_by_name['Get']._options = None
|
||||
_globals['_MULTICASTGROUPSERVICE'].methods_by_name['Get']._serialized_options = b'\202\323\344\223\002\034\022\032/api/multicast-groups/{id}'
|
||||
_globals['_MULTICASTGROUPSERVICE'].methods_by_name['Update']._options = None
|
||||
_globals['_MULTICASTGROUPSERVICE'].methods_by_name['Update']._serialized_options = b'\202\323\344\223\002/\032*/api/multicast-groups/{multicast_group.id}:\001*'
|
||||
_globals['_MULTICASTGROUPSERVICE'].methods_by_name['Delete']._options = None
|
||||
_globals['_MULTICASTGROUPSERVICE'].methods_by_name['Delete']._serialized_options = b'\202\323\344\223\002\034*\032/api/multicast-groups/{id}'
|
||||
_globals['_MULTICASTGROUPSERVICE'].methods_by_name['List']._options = None
|
||||
_globals['_MULTICASTGROUPSERVICE'].methods_by_name['List']._serialized_options = b'\202\323\344\223\002\027\022\025/api/multicast-groups'
|
||||
_globals['_MULTICASTGROUPSERVICE'].methods_by_name['AddDevice']._options = None
|
||||
_globals['_MULTICASTGROUPSERVICE'].methods_by_name['AddDevice']._serialized_options = b'\202\323\344\223\0027\"2/api/multicast-groups/{multicast_group_id}/devices:\001*'
|
||||
_globals['_MULTICASTGROUPSERVICE'].methods_by_name['RemoveDevice']._options = None
|
||||
_globals['_MULTICASTGROUPSERVICE'].methods_by_name['RemoveDevice']._serialized_options = b'\202\323\344\223\002>*</api/multicast-groups/{multicast_group_id}/devices/{dev_eui}'
|
||||
_globals['_MULTICASTGROUPSERVICE'].methods_by_name['AddGateway']._options = None
|
||||
_globals['_MULTICASTGROUPSERVICE'].methods_by_name['AddGateway']._serialized_options = b'\202\323\344\223\0028\"3/api/multicast-groups/{multicast_group_id}/gateways:\001*'
|
||||
_globals['_MULTICASTGROUPSERVICE'].methods_by_name['RemoveGateway']._options = None
|
||||
_globals['_MULTICASTGROUPSERVICE'].methods_by_name['RemoveGateway']._serialized_options = b'\202\323\344\223\002B*@/api/multicast-groups/{multicast_group_id}/gateways/{gateway_id}'
|
||||
_globals['_MULTICASTGROUPSERVICE'].methods_by_name['Enqueue']._options = None
|
||||
_globals['_MULTICASTGROUPSERVICE'].methods_by_name['Enqueue']._serialized_options = b'\202\323\344\223\002@\";/api/multicast-groups/{queue_item.multicast_group_id}/queue:\001*'
|
||||
_globals['_MULTICASTGROUPSERVICE'].methods_by_name['FlushQueue']._options = None
|
||||
_globals['_MULTICASTGROUPSERVICE'].methods_by_name['FlushQueue']._serialized_options = b'\202\323\344\223\0022*0/api/multicast-groups/{multicast_group_id}/queue'
|
||||
_globals['_MULTICASTGROUPSERVICE'].methods_by_name['ListQueue']._options = None
|
||||
_globals['_MULTICASTGROUPSERVICE'].methods_by_name['ListQueue']._serialized_options = b'\202\323\344\223\0022\0220/api/multicast-groups/{multicast_group_id}/queue'
|
||||
_globals['_MULTICASTGROUPTYPE']._serialized_start=2204
|
||||
_globals['_MULTICASTGROUPTYPE']._serialized_end=2250
|
||||
_globals['_MULTICASTGROUPSCHEDULINGTYPE']._serialized_start=2252
|
||||
|
@ -11,12 +11,12 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map
|
||||
DESCRIPTOR: _descriptor.FileDescriptor
|
||||
|
||||
class MulticastGroupType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
CLASS_C: _ClassVar[MulticastGroupType]
|
||||
CLASS_B: _ClassVar[MulticastGroupType]
|
||||
|
||||
class MulticastGroupSchedulingType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
DELAY: _ClassVar[MulticastGroupSchedulingType]
|
||||
GPS_TIME: _ClassVar[MulticastGroupSchedulingType]
|
||||
CLASS_C: MulticastGroupType
|
||||
@ -25,7 +25,7 @@ DELAY: MulticastGroupSchedulingType
|
||||
GPS_TIME: MulticastGroupSchedulingType
|
||||
|
||||
class MulticastGroup(_message.Message):
|
||||
__slots__ = ["id", "name", "application_id", "region", "mc_addr", "mc_nwk_s_key", "mc_app_s_key", "f_cnt", "group_type", "dr", "frequency", "class_b_ping_slot_period", "class_c_scheduling_type"]
|
||||
__slots__ = ("id", "name", "application_id", "region", "mc_addr", "mc_nwk_s_key", "mc_app_s_key", "f_cnt", "group_type", "dr", "frequency", "class_b_ping_slot_period", "class_c_scheduling_type")
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
NAME_FIELD_NUMBER: _ClassVar[int]
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -55,7 +55,7 @@ class MulticastGroup(_message.Message):
|
||||
def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., application_id: _Optional[str] = ..., region: _Optional[_Union[_common_pb2.Region, str]] = ..., mc_addr: _Optional[str] = ..., mc_nwk_s_key: _Optional[str] = ..., mc_app_s_key: _Optional[str] = ..., f_cnt: _Optional[int] = ..., group_type: _Optional[_Union[MulticastGroupType, str]] = ..., dr: _Optional[int] = ..., frequency: _Optional[int] = ..., class_b_ping_slot_period: _Optional[int] = ..., class_c_scheduling_type: _Optional[_Union[MulticastGroupSchedulingType, str]] = ...) -> None: ...
|
||||
|
||||
class MulticastGroupListItem(_message.Message):
|
||||
__slots__ = ["id", "created_at", "updated_at", "name", "region", "group_type"]
|
||||
__slots__ = ("id", "created_at", "updated_at", "name", "region", "group_type")
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -71,25 +71,25 @@ class MulticastGroupListItem(_message.Message):
|
||||
def __init__(self, id: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., name: _Optional[str] = ..., region: _Optional[_Union[_common_pb2.Region, str]] = ..., group_type: _Optional[_Union[MulticastGroupType, str]] = ...) -> None: ...
|
||||
|
||||
class CreateMulticastGroupRequest(_message.Message):
|
||||
__slots__ = ["multicast_group"]
|
||||
__slots__ = ("multicast_group",)
|
||||
MULTICAST_GROUP_FIELD_NUMBER: _ClassVar[int]
|
||||
multicast_group: MulticastGroup
|
||||
def __init__(self, multicast_group: _Optional[_Union[MulticastGroup, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class CreateMulticastGroupResponse(_message.Message):
|
||||
__slots__ = ["id"]
|
||||
__slots__ = ("id",)
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
id: str
|
||||
def __init__(self, id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetMulticastGroupRequest(_message.Message):
|
||||
__slots__ = ["id"]
|
||||
__slots__ = ("id",)
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
id: str
|
||||
def __init__(self, id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetMulticastGroupResponse(_message.Message):
|
||||
__slots__ = ["multicast_group", "created_at", "updated_at"]
|
||||
__slots__ = ("multicast_group", "created_at", "updated_at")
|
||||
MULTICAST_GROUP_FIELD_NUMBER: _ClassVar[int]
|
||||
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -99,19 +99,19 @@ class GetMulticastGroupResponse(_message.Message):
|
||||
def __init__(self, multicast_group: _Optional[_Union[MulticastGroup, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class UpdateMulticastGroupRequest(_message.Message):
|
||||
__slots__ = ["multicast_group"]
|
||||
__slots__ = ("multicast_group",)
|
||||
MULTICAST_GROUP_FIELD_NUMBER: _ClassVar[int]
|
||||
multicast_group: MulticastGroup
|
||||
def __init__(self, multicast_group: _Optional[_Union[MulticastGroup, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class DeleteMulticastGroupRequest(_message.Message):
|
||||
__slots__ = ["id"]
|
||||
__slots__ = ("id",)
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
id: str
|
||||
def __init__(self, id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class ListMulticastGroupsRequest(_message.Message):
|
||||
__slots__ = ["limit", "offset", "search", "application_id"]
|
||||
__slots__ = ("limit", "offset", "search", "application_id")
|
||||
LIMIT_FIELD_NUMBER: _ClassVar[int]
|
||||
OFFSET_FIELD_NUMBER: _ClassVar[int]
|
||||
SEARCH_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -123,7 +123,7 @@ class ListMulticastGroupsRequest(_message.Message):
|
||||
def __init__(self, limit: _Optional[int] = ..., offset: _Optional[int] = ..., search: _Optional[str] = ..., application_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class ListMulticastGroupsResponse(_message.Message):
|
||||
__slots__ = ["total_count", "result"]
|
||||
__slots__ = ("total_count", "result")
|
||||
TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
|
||||
RESULT_FIELD_NUMBER: _ClassVar[int]
|
||||
total_count: int
|
||||
@ -131,7 +131,7 @@ class ListMulticastGroupsResponse(_message.Message):
|
||||
def __init__(self, total_count: _Optional[int] = ..., result: _Optional[_Iterable[_Union[MulticastGroupListItem, _Mapping]]] = ...) -> None: ...
|
||||
|
||||
class AddDeviceToMulticastGroupRequest(_message.Message):
|
||||
__slots__ = ["multicast_group_id", "dev_eui"]
|
||||
__slots__ = ("multicast_group_id", "dev_eui")
|
||||
MULTICAST_GROUP_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
multicast_group_id: str
|
||||
@ -139,7 +139,7 @@ class AddDeviceToMulticastGroupRequest(_message.Message):
|
||||
def __init__(self, multicast_group_id: _Optional[str] = ..., dev_eui: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class RemoveDeviceFromMulticastGroupRequest(_message.Message):
|
||||
__slots__ = ["multicast_group_id", "dev_eui"]
|
||||
__slots__ = ("multicast_group_id", "dev_eui")
|
||||
MULTICAST_GROUP_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
multicast_group_id: str
|
||||
@ -147,7 +147,7 @@ class RemoveDeviceFromMulticastGroupRequest(_message.Message):
|
||||
def __init__(self, multicast_group_id: _Optional[str] = ..., dev_eui: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class AddGatewayToMulticastGroupRequest(_message.Message):
|
||||
__slots__ = ["multicast_group_id", "gateway_id"]
|
||||
__slots__ = ("multicast_group_id", "gateway_id")
|
||||
MULTICAST_GROUP_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
multicast_group_id: str
|
||||
@ -155,7 +155,7 @@ class AddGatewayToMulticastGroupRequest(_message.Message):
|
||||
def __init__(self, multicast_group_id: _Optional[str] = ..., gateway_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class RemoveGatewayFromMulticastGroupRequest(_message.Message):
|
||||
__slots__ = ["multicast_group_id", "gateway_id"]
|
||||
__slots__ = ("multicast_group_id", "gateway_id")
|
||||
MULTICAST_GROUP_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
multicast_group_id: str
|
||||
@ -163,7 +163,7 @@ class RemoveGatewayFromMulticastGroupRequest(_message.Message):
|
||||
def __init__(self, multicast_group_id: _Optional[str] = ..., gateway_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class MulticastGroupQueueItem(_message.Message):
|
||||
__slots__ = ["multicast_group_id", "f_cnt", "f_port", "data"]
|
||||
__slots__ = ("multicast_group_id", "f_cnt", "f_port", "data")
|
||||
MULTICAST_GROUP_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
F_CNT_FIELD_NUMBER: _ClassVar[int]
|
||||
F_PORT_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -175,31 +175,31 @@ class MulticastGroupQueueItem(_message.Message):
|
||||
def __init__(self, multicast_group_id: _Optional[str] = ..., f_cnt: _Optional[int] = ..., f_port: _Optional[int] = ..., data: _Optional[bytes] = ...) -> None: ...
|
||||
|
||||
class EnqueueMulticastGroupQueueItemRequest(_message.Message):
|
||||
__slots__ = ["queue_item"]
|
||||
__slots__ = ("queue_item",)
|
||||
QUEUE_ITEM_FIELD_NUMBER: _ClassVar[int]
|
||||
queue_item: MulticastGroupQueueItem
|
||||
def __init__(self, queue_item: _Optional[_Union[MulticastGroupQueueItem, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class EnqueueMulticastGroupQueueItemResponse(_message.Message):
|
||||
__slots__ = ["f_cnt"]
|
||||
__slots__ = ("f_cnt",)
|
||||
F_CNT_FIELD_NUMBER: _ClassVar[int]
|
||||
f_cnt: int
|
||||
def __init__(self, f_cnt: _Optional[int] = ...) -> None: ...
|
||||
|
||||
class FlushMulticastGroupQueueRequest(_message.Message):
|
||||
__slots__ = ["multicast_group_id"]
|
||||
__slots__ = ("multicast_group_id",)
|
||||
MULTICAST_GROUP_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
multicast_group_id: str
|
||||
def __init__(self, multicast_group_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class ListMulticastGroupQueueRequest(_message.Message):
|
||||
__slots__ = ["multicast_group_id"]
|
||||
__slots__ = ("multicast_group_id",)
|
||||
MULTICAST_GROUP_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
multicast_group_id: str
|
||||
def __init__(self, multicast_group_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class ListMulticastGroupQueueResponse(_message.Message):
|
||||
__slots__ = ["items"]
|
||||
__slots__ = ("items",)
|
||||
ITEMS_FIELD_NUMBER: _ClassVar[int]
|
||||
items: _containers.RepeatedCompositeFieldContainer[MulticastGroupQueueItem]
|
||||
def __init__(self, items: _Optional[_Iterable[_Union[MulticastGroupQueueItem, _Mapping]]] = ...) -> None: ...
|
||||
|
22
api/python/src/chirpstack_api/api/relay_pb2.py
vendored
22
api/python/src/chirpstack_api/api/relay_pb2.py
vendored
@ -1,6 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: chirpstack-api/api/relay.proto
|
||||
# Protobuf Python Version: 4.25.0
|
||||
"""Generated protocol buffer code."""
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import descriptor_pool as _descriptor_pool
|
||||
@ -22,17 +23,16 @@ _globals = globals()
|
||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
||||
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'chirpstack_api.api.relay_pb2', _globals)
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
|
||||
DESCRIPTOR._options = None
|
||||
DESCRIPTOR._serialized_options = b'\n\021io.chirpstack.apiB\nRelayProtoP\001Z.github.com/chirpstack/chirpstack/api/go/v4/api\252\002\016Chirpstack.Api'
|
||||
_RELAYSERVICE.methods_by_name['List']._options = None
|
||||
_RELAYSERVICE.methods_by_name['List']._serialized_options = b'\202\323\344\223\002\r\022\013/api/relays'
|
||||
_RELAYSERVICE.methods_by_name['AddDevice']._options = None
|
||||
_RELAYSERVICE.methods_by_name['AddDevice']._serialized_options = b'\202\323\344\223\002(\"#/api/relays/{relay_dev_eui}/devices:\001*'
|
||||
_RELAYSERVICE.methods_by_name['RemoveDevice']._options = None
|
||||
_RELAYSERVICE.methods_by_name['RemoveDevice']._serialized_options = b'\202\323\344\223\002/*-/api/relays/{relay_dev_eui}/devices/{dev_eui}'
|
||||
_RELAYSERVICE.methods_by_name['ListDevices']._options = None
|
||||
_RELAYSERVICE.methods_by_name['ListDevices']._serialized_options = b'\202\323\344\223\002%\022#/api/relays/{relay_dev_eui}/devices'
|
||||
_globals['DESCRIPTOR']._options = None
|
||||
_globals['DESCRIPTOR']._serialized_options = b'\n\021io.chirpstack.apiB\nRelayProtoP\001Z.github.com/chirpstack/chirpstack/api/go/v4/api\252\002\016Chirpstack.Api'
|
||||
_globals['_RELAYSERVICE'].methods_by_name['List']._options = None
|
||||
_globals['_RELAYSERVICE'].methods_by_name['List']._serialized_options = b'\202\323\344\223\002\r\022\013/api/relays'
|
||||
_globals['_RELAYSERVICE'].methods_by_name['AddDevice']._options = None
|
||||
_globals['_RELAYSERVICE'].methods_by_name['AddDevice']._serialized_options = b'\202\323\344\223\002(\"#/api/relays/{relay_dev_eui}/devices:\001*'
|
||||
_globals['_RELAYSERVICE'].methods_by_name['RemoveDevice']._options = None
|
||||
_globals['_RELAYSERVICE'].methods_by_name['RemoveDevice']._serialized_options = b'\202\323\344\223\002/*-/api/relays/{relay_dev_eui}/devices/{dev_eui}'
|
||||
_globals['_RELAYSERVICE'].methods_by_name['ListDevices']._options = None
|
||||
_globals['_RELAYSERVICE'].methods_by_name['ListDevices']._serialized_options = b'\202\323\344\223\002%\022#/api/relays/{relay_dev_eui}/devices'
|
||||
_globals['_RELAYLISTITEM']._serialized_start=131
|
||||
_globals['_RELAYLISTITEM']._serialized_end=177
|
||||
_globals['_LISTRELAYSREQUEST']._serialized_start=179
|
||||
|
16
api/python/src/chirpstack_api/api/relay_pb2.pyi
vendored
16
api/python/src/chirpstack_api/api/relay_pb2.pyi
vendored
@ -9,7 +9,7 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map
|
||||
DESCRIPTOR: _descriptor.FileDescriptor
|
||||
|
||||
class RelayListItem(_message.Message):
|
||||
__slots__ = ["dev_eui", "name"]
|
||||
__slots__ = ("dev_eui", "name")
|
||||
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
NAME_FIELD_NUMBER: _ClassVar[int]
|
||||
dev_eui: str
|
||||
@ -17,7 +17,7 @@ class RelayListItem(_message.Message):
|
||||
def __init__(self, dev_eui: _Optional[str] = ..., name: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class ListRelaysRequest(_message.Message):
|
||||
__slots__ = ["limit", "offset", "application_id"]
|
||||
__slots__ = ("limit", "offset", "application_id")
|
||||
LIMIT_FIELD_NUMBER: _ClassVar[int]
|
||||
OFFSET_FIELD_NUMBER: _ClassVar[int]
|
||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -27,7 +27,7 @@ class ListRelaysRequest(_message.Message):
|
||||
def __init__(self, limit: _Optional[int] = ..., offset: _Optional[int] = ..., application_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class ListRelaysResponse(_message.Message):
|
||||
__slots__ = ["total_count", "result"]
|
||||
__slots__ = ("total_count", "result")
|
||||
TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
|
||||
RESULT_FIELD_NUMBER: _ClassVar[int]
|
||||
total_count: int
|
||||
@ -35,7 +35,7 @@ class ListRelaysResponse(_message.Message):
|
||||
def __init__(self, total_count: _Optional[int] = ..., result: _Optional[_Iterable[_Union[RelayListItem, _Mapping]]] = ...) -> None: ...
|
||||
|
||||
class AddRelayDeviceRequest(_message.Message):
|
||||
__slots__ = ["relay_dev_eui", "device_dev_eui"]
|
||||
__slots__ = ("relay_dev_eui", "device_dev_eui")
|
||||
RELAY_DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
DEVICE_DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
relay_dev_eui: str
|
||||
@ -43,7 +43,7 @@ class AddRelayDeviceRequest(_message.Message):
|
||||
def __init__(self, relay_dev_eui: _Optional[str] = ..., device_dev_eui: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class RemoveRelayDeviceRequest(_message.Message):
|
||||
__slots__ = ["relay_dev_eui", "device_dev_eui"]
|
||||
__slots__ = ("relay_dev_eui", "device_dev_eui")
|
||||
RELAY_DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
DEVICE_DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
relay_dev_eui: str
|
||||
@ -51,7 +51,7 @@ class RemoveRelayDeviceRequest(_message.Message):
|
||||
def __init__(self, relay_dev_eui: _Optional[str] = ..., device_dev_eui: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class ListRelayDevicesRequest(_message.Message):
|
||||
__slots__ = ["limit", "offset", "relay_dev_eui"]
|
||||
__slots__ = ("limit", "offset", "relay_dev_eui")
|
||||
LIMIT_FIELD_NUMBER: _ClassVar[int]
|
||||
OFFSET_FIELD_NUMBER: _ClassVar[int]
|
||||
RELAY_DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -61,7 +61,7 @@ class ListRelayDevicesRequest(_message.Message):
|
||||
def __init__(self, limit: _Optional[int] = ..., offset: _Optional[int] = ..., relay_dev_eui: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class RelayDeviceListItem(_message.Message):
|
||||
__slots__ = ["dev_eui", "created_at", "name"]
|
||||
__slots__ = ("dev_eui", "created_at", "name")
|
||||
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
NAME_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -71,7 +71,7 @@ class RelayDeviceListItem(_message.Message):
|
||||
def __init__(self, dev_eui: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., name: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class ListRelayDevicesResponse(_message.Message):
|
||||
__slots__ = ["total_count", "result"]
|
||||
__slots__ = ("total_count", "result")
|
||||
TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
|
||||
RESULT_FIELD_NUMBER: _ClassVar[int]
|
||||
total_count: int
|
||||
|
50
api/python/src/chirpstack_api/api/tenant_pb2.py
vendored
50
api/python/src/chirpstack_api/api/tenant_pb2.py
vendored
@ -1,6 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: chirpstack-api/api/tenant.proto
|
||||
# Protobuf Python Version: 4.25.0
|
||||
"""Generated protocol buffer code."""
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import descriptor_pool as _descriptor_pool
|
||||
@ -22,31 +23,30 @@ _globals = globals()
|
||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
||||
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'chirpstack_api.api.tenant_pb2', _globals)
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
|
||||
DESCRIPTOR._options = None
|
||||
DESCRIPTOR._serialized_options = b'\n\021io.chirpstack.apiB\013TenantProtoP\001Z.github.com/chirpstack/chirpstack/api/go/v4/api\252\002\016Chirpstack.Api'
|
||||
_TENANT_TAGSENTRY._options = None
|
||||
_TENANT_TAGSENTRY._serialized_options = b'8\001'
|
||||
_TENANTSERVICE.methods_by_name['Create']._options = None
|
||||
_TENANTSERVICE.methods_by_name['Create']._serialized_options = b'\202\323\344\223\002\021\"\014/api/tenants:\001*'
|
||||
_TENANTSERVICE.methods_by_name['Get']._options = None
|
||||
_TENANTSERVICE.methods_by_name['Get']._serialized_options = b'\202\323\344\223\002\023\022\021/api/tenants/{id}'
|
||||
_TENANTSERVICE.methods_by_name['Update']._options = None
|
||||
_TENANTSERVICE.methods_by_name['Update']._serialized_options = b'\202\323\344\223\002\035\032\030/api/tenants/{tenant.id}:\001*'
|
||||
_TENANTSERVICE.methods_by_name['Delete']._options = None
|
||||
_TENANTSERVICE.methods_by_name['Delete']._serialized_options = b'\202\323\344\223\002\023*\021/api/tenants/{id}'
|
||||
_TENANTSERVICE.methods_by_name['List']._options = None
|
||||
_TENANTSERVICE.methods_by_name['List']._serialized_options = b'\202\323\344\223\002\016\022\014/api/tenants'
|
||||
_TENANTSERVICE.methods_by_name['AddUser']._options = None
|
||||
_TENANTSERVICE.methods_by_name['AddUser']._serialized_options = b'\202\323\344\223\002/\"*/api/tenants/{tenant_user.tenant_id}/users:\001*'
|
||||
_TENANTSERVICE.methods_by_name['GetUser']._options = None
|
||||
_TENANTSERVICE.methods_by_name['GetUser']._serialized_options = b'\202\323\344\223\002*\022(/api/tenants/{tenant_id}/users/{user_id}'
|
||||
_TENANTSERVICE.methods_by_name['UpdateUser']._options = None
|
||||
_TENANTSERVICE.methods_by_name['UpdateUser']._serialized_options = b'\202\323\344\223\002E\032@/api/tenants/{tenant_user.tenant_id}/users/{tenant_user.user_id}:\001*'
|
||||
_TENANTSERVICE.methods_by_name['DeleteUser']._options = None
|
||||
_TENANTSERVICE.methods_by_name['DeleteUser']._serialized_options = b'\202\323\344\223\002**(/api/tenants/{tenant_id}/users/{user_id}'
|
||||
_TENANTSERVICE.methods_by_name['ListUsers']._options = None
|
||||
_TENANTSERVICE.methods_by_name['ListUsers']._serialized_options = b'\202\323\344\223\002 \022\036/api/tenants/{tenant_id}/users'
|
||||
_globals['DESCRIPTOR']._options = None
|
||||
_globals['DESCRIPTOR']._serialized_options = b'\n\021io.chirpstack.apiB\013TenantProtoP\001Z.github.com/chirpstack/chirpstack/api/go/v4/api\252\002\016Chirpstack.Api'
|
||||
_globals['_TENANT_TAGSENTRY']._options = None
|
||||
_globals['_TENANT_TAGSENTRY']._serialized_options = b'8\001'
|
||||
_globals['_TENANTSERVICE'].methods_by_name['Create']._options = None
|
||||
_globals['_TENANTSERVICE'].methods_by_name['Create']._serialized_options = b'\202\323\344\223\002\021\"\014/api/tenants:\001*'
|
||||
_globals['_TENANTSERVICE'].methods_by_name['Get']._options = None
|
||||
_globals['_TENANTSERVICE'].methods_by_name['Get']._serialized_options = b'\202\323\344\223\002\023\022\021/api/tenants/{id}'
|
||||
_globals['_TENANTSERVICE'].methods_by_name['Update']._options = None
|
||||
_globals['_TENANTSERVICE'].methods_by_name['Update']._serialized_options = b'\202\323\344\223\002\035\032\030/api/tenants/{tenant.id}:\001*'
|
||||
_globals['_TENANTSERVICE'].methods_by_name['Delete']._options = None
|
||||
_globals['_TENANTSERVICE'].methods_by_name['Delete']._serialized_options = b'\202\323\344\223\002\023*\021/api/tenants/{id}'
|
||||
_globals['_TENANTSERVICE'].methods_by_name['List']._options = None
|
||||
_globals['_TENANTSERVICE'].methods_by_name['List']._serialized_options = b'\202\323\344\223\002\016\022\014/api/tenants'
|
||||
_globals['_TENANTSERVICE'].methods_by_name['AddUser']._options = None
|
||||
_globals['_TENANTSERVICE'].methods_by_name['AddUser']._serialized_options = b'\202\323\344\223\002/\"*/api/tenants/{tenant_user.tenant_id}/users:\001*'
|
||||
_globals['_TENANTSERVICE'].methods_by_name['GetUser']._options = None
|
||||
_globals['_TENANTSERVICE'].methods_by_name['GetUser']._serialized_options = b'\202\323\344\223\002*\022(/api/tenants/{tenant_id}/users/{user_id}'
|
||||
_globals['_TENANTSERVICE'].methods_by_name['UpdateUser']._options = None
|
||||
_globals['_TENANTSERVICE'].methods_by_name['UpdateUser']._serialized_options = b'\202\323\344\223\002E\032@/api/tenants/{tenant_user.tenant_id}/users/{tenant_user.user_id}:\001*'
|
||||
_globals['_TENANTSERVICE'].methods_by_name['DeleteUser']._options = None
|
||||
_globals['_TENANTSERVICE'].methods_by_name['DeleteUser']._serialized_options = b'\202\323\344\223\002**(/api/tenants/{tenant_id}/users/{user_id}'
|
||||
_globals['_TENANTSERVICE'].methods_by_name['ListUsers']._options = None
|
||||
_globals['_TENANTSERVICE'].methods_by_name['ListUsers']._serialized_options = b'\202\323\344\223\002 \022\036/api/tenants/{tenant_id}/users'
|
||||
_globals['_TENANT']._serialized_start=133
|
||||
_globals['_TENANT']._serialized_end=410
|
||||
_globals['_TENANT_TAGSENTRY']._serialized_start=367
|
||||
|
40
api/python/src/chirpstack_api/api/tenant_pb2.pyi
vendored
40
api/python/src/chirpstack_api/api/tenant_pb2.pyi
vendored
@ -9,9 +9,9 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map
|
||||
DESCRIPTOR: _descriptor.FileDescriptor
|
||||
|
||||
class Tenant(_message.Message):
|
||||
__slots__ = ["id", "name", "description", "can_have_gateways", "max_gateway_count", "max_device_count", "private_gateways_up", "private_gateways_down", "tags"]
|
||||
__slots__ = ("id", "name", "description", "can_have_gateways", "max_gateway_count", "max_device_count", "private_gateways_up", "private_gateways_down", "tags")
|
||||
class TagsEntry(_message.Message):
|
||||
__slots__ = ["key", "value"]
|
||||
__slots__ = ("key", "value")
|
||||
KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
VALUE_FIELD_NUMBER: _ClassVar[int]
|
||||
key: str
|
||||
@ -38,7 +38,7 @@ class Tenant(_message.Message):
|
||||
def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., can_have_gateways: bool = ..., max_gateway_count: _Optional[int] = ..., max_device_count: _Optional[int] = ..., private_gateways_up: bool = ..., private_gateways_down: bool = ..., tags: _Optional[_Mapping[str, str]] = ...) -> None: ...
|
||||
|
||||
class TenantListItem(_message.Message):
|
||||
__slots__ = ["id", "created_at", "updated_at", "name", "can_have_gateways", "private_gateways_up", "private_gateways_down", "max_gateway_count", "max_device_count"]
|
||||
__slots__ = ("id", "created_at", "updated_at", "name", "can_have_gateways", "private_gateways_up", "private_gateways_down", "max_gateway_count", "max_device_count")
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -60,25 +60,25 @@ class TenantListItem(_message.Message):
|
||||
def __init__(self, id: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., name: _Optional[str] = ..., can_have_gateways: bool = ..., private_gateways_up: bool = ..., private_gateways_down: bool = ..., max_gateway_count: _Optional[int] = ..., max_device_count: _Optional[int] = ...) -> None: ...
|
||||
|
||||
class CreateTenantRequest(_message.Message):
|
||||
__slots__ = ["tenant"]
|
||||
__slots__ = ("tenant",)
|
||||
TENANT_FIELD_NUMBER: _ClassVar[int]
|
||||
tenant: Tenant
|
||||
def __init__(self, tenant: _Optional[_Union[Tenant, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class CreateTenantResponse(_message.Message):
|
||||
__slots__ = ["id"]
|
||||
__slots__ = ("id",)
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
id: str
|
||||
def __init__(self, id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetTenantRequest(_message.Message):
|
||||
__slots__ = ["id"]
|
||||
__slots__ = ("id",)
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
id: str
|
||||
def __init__(self, id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetTenantResponse(_message.Message):
|
||||
__slots__ = ["tenant", "created_at", "updated_at"]
|
||||
__slots__ = ("tenant", "created_at", "updated_at")
|
||||
TENANT_FIELD_NUMBER: _ClassVar[int]
|
||||
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -88,19 +88,19 @@ class GetTenantResponse(_message.Message):
|
||||
def __init__(self, tenant: _Optional[_Union[Tenant, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class UpdateTenantRequest(_message.Message):
|
||||
__slots__ = ["tenant"]
|
||||
__slots__ = ("tenant",)
|
||||
TENANT_FIELD_NUMBER: _ClassVar[int]
|
||||
tenant: Tenant
|
||||
def __init__(self, tenant: _Optional[_Union[Tenant, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class DeleteTenantRequest(_message.Message):
|
||||
__slots__ = ["id"]
|
||||
__slots__ = ("id",)
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
id: str
|
||||
def __init__(self, id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class ListTenantsRequest(_message.Message):
|
||||
__slots__ = ["limit", "offset", "search", "user_id"]
|
||||
__slots__ = ("limit", "offset", "search", "user_id")
|
||||
LIMIT_FIELD_NUMBER: _ClassVar[int]
|
||||
OFFSET_FIELD_NUMBER: _ClassVar[int]
|
||||
SEARCH_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -112,7 +112,7 @@ class ListTenantsRequest(_message.Message):
|
||||
def __init__(self, limit: _Optional[int] = ..., offset: _Optional[int] = ..., search: _Optional[str] = ..., user_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class ListTenantsResponse(_message.Message):
|
||||
__slots__ = ["total_count", "result"]
|
||||
__slots__ = ("total_count", "result")
|
||||
TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
|
||||
RESULT_FIELD_NUMBER: _ClassVar[int]
|
||||
total_count: int
|
||||
@ -120,7 +120,7 @@ class ListTenantsResponse(_message.Message):
|
||||
def __init__(self, total_count: _Optional[int] = ..., result: _Optional[_Iterable[_Union[TenantListItem, _Mapping]]] = ...) -> None: ...
|
||||
|
||||
class TenantUser(_message.Message):
|
||||
__slots__ = ["tenant_id", "user_id", "is_admin", "is_device_admin", "is_gateway_admin", "email"]
|
||||
__slots__ = ("tenant_id", "user_id", "is_admin", "is_device_admin", "is_gateway_admin", "email")
|
||||
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
USER_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
IS_ADMIN_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -136,7 +136,7 @@ class TenantUser(_message.Message):
|
||||
def __init__(self, tenant_id: _Optional[str] = ..., user_id: _Optional[str] = ..., is_admin: bool = ..., is_device_admin: bool = ..., is_gateway_admin: bool = ..., email: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class TenantUserListItem(_message.Message):
|
||||
__slots__ = ["tenant_id", "user_id", "created_at", "updated_at", "email", "is_admin", "is_device_admin", "is_gateway_admin"]
|
||||
__slots__ = ("tenant_id", "user_id", "created_at", "updated_at", "email", "is_admin", "is_device_admin", "is_gateway_admin")
|
||||
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
USER_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -156,13 +156,13 @@ class TenantUserListItem(_message.Message):
|
||||
def __init__(self, tenant_id: _Optional[str] = ..., user_id: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., email: _Optional[str] = ..., is_admin: bool = ..., is_device_admin: bool = ..., is_gateway_admin: bool = ...) -> None: ...
|
||||
|
||||
class AddTenantUserRequest(_message.Message):
|
||||
__slots__ = ["tenant_user"]
|
||||
__slots__ = ("tenant_user",)
|
||||
TENANT_USER_FIELD_NUMBER: _ClassVar[int]
|
||||
tenant_user: TenantUser
|
||||
def __init__(self, tenant_user: _Optional[_Union[TenantUser, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class GetTenantUserRequest(_message.Message):
|
||||
__slots__ = ["tenant_id", "user_id"]
|
||||
__slots__ = ("tenant_id", "user_id")
|
||||
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
USER_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
tenant_id: str
|
||||
@ -170,7 +170,7 @@ class GetTenantUserRequest(_message.Message):
|
||||
def __init__(self, tenant_id: _Optional[str] = ..., user_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetTenantUserResponse(_message.Message):
|
||||
__slots__ = ["tenant_user", "created_at", "updated_at"]
|
||||
__slots__ = ("tenant_user", "created_at", "updated_at")
|
||||
TENANT_USER_FIELD_NUMBER: _ClassVar[int]
|
||||
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -180,13 +180,13 @@ class GetTenantUserResponse(_message.Message):
|
||||
def __init__(self, tenant_user: _Optional[_Union[TenantUser, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class UpdateTenantUserRequest(_message.Message):
|
||||
__slots__ = ["tenant_user"]
|
||||
__slots__ = ("tenant_user",)
|
||||
TENANT_USER_FIELD_NUMBER: _ClassVar[int]
|
||||
tenant_user: TenantUser
|
||||
def __init__(self, tenant_user: _Optional[_Union[TenantUser, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class DeleteTenantUserRequest(_message.Message):
|
||||
__slots__ = ["tenant_id", "user_id"]
|
||||
__slots__ = ("tenant_id", "user_id")
|
||||
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
USER_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
tenant_id: str
|
||||
@ -194,7 +194,7 @@ class DeleteTenantUserRequest(_message.Message):
|
||||
def __init__(self, tenant_id: _Optional[str] = ..., user_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class ListTenantUsersRequest(_message.Message):
|
||||
__slots__ = ["tenant_id", "limit", "offset"]
|
||||
__slots__ = ("tenant_id", "limit", "offset")
|
||||
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
LIMIT_FIELD_NUMBER: _ClassVar[int]
|
||||
OFFSET_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -204,7 +204,7 @@ class ListTenantUsersRequest(_message.Message):
|
||||
def __init__(self, tenant_id: _Optional[str] = ..., limit: _Optional[int] = ..., offset: _Optional[int] = ...) -> None: ...
|
||||
|
||||
class ListTenantUsersResponse(_message.Message):
|
||||
__slots__ = ["total_count", "result"]
|
||||
__slots__ = ("total_count", "result")
|
||||
TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
|
||||
RESULT_FIELD_NUMBER: _ClassVar[int]
|
||||
total_count: int
|
||||
|
30
api/python/src/chirpstack_api/api/user_pb2.py
vendored
30
api/python/src/chirpstack_api/api/user_pb2.py
vendored
@ -1,6 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: chirpstack-api/api/user.proto
|
||||
# Protobuf Python Version: 4.25.0
|
||||
"""Generated protocol buffer code."""
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import descriptor_pool as _descriptor_pool
|
||||
@ -22,21 +23,20 @@ _globals = globals()
|
||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
||||
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'chirpstack_api.api.user_pb2', _globals)
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
|
||||
DESCRIPTOR._options = None
|
||||
DESCRIPTOR._serialized_options = b'\n\021io.chirpstack.apiB\tUserProtoP\001Z.github.com/chirpstack/chirpstack/api/go/v4/api\252\002\016Chirpstack.Api'
|
||||
_USERSERVICE.methods_by_name['Create']._options = None
|
||||
_USERSERVICE.methods_by_name['Create']._serialized_options = b'\202\323\344\223\002\017\"\n/api/users:\001*'
|
||||
_USERSERVICE.methods_by_name['Get']._options = None
|
||||
_USERSERVICE.methods_by_name['Get']._serialized_options = b'\202\323\344\223\002\021\022\017/api/users/{id}'
|
||||
_USERSERVICE.methods_by_name['Update']._options = None
|
||||
_USERSERVICE.methods_by_name['Update']._serialized_options = b'\202\323\344\223\002\031\032\024/api/users/{user.id}:\001*'
|
||||
_USERSERVICE.methods_by_name['Delete']._options = None
|
||||
_USERSERVICE.methods_by_name['Delete']._serialized_options = b'\202\323\344\223\002\021*\017/api/users/{id}'
|
||||
_USERSERVICE.methods_by_name['List']._options = None
|
||||
_USERSERVICE.methods_by_name['List']._serialized_options = b'\202\323\344\223\002\014\022\n/api/users'
|
||||
_USERSERVICE.methods_by_name['UpdatePassword']._options = None
|
||||
_USERSERVICE.methods_by_name['UpdatePassword']._serialized_options = b'\202\323\344\223\002\"\"\035/api/users/{user_id}/password:\001*'
|
||||
_globals['DESCRIPTOR']._options = None
|
||||
_globals['DESCRIPTOR']._serialized_options = b'\n\021io.chirpstack.apiB\tUserProtoP\001Z.github.com/chirpstack/chirpstack/api/go/v4/api\252\002\016Chirpstack.Api'
|
||||
_globals['_USERSERVICE'].methods_by_name['Create']._options = None
|
||||
_globals['_USERSERVICE'].methods_by_name['Create']._serialized_options = b'\202\323\344\223\002\017\"\n/api/users:\001*'
|
||||
_globals['_USERSERVICE'].methods_by_name['Get']._options = None
|
||||
_globals['_USERSERVICE'].methods_by_name['Get']._serialized_options = b'\202\323\344\223\002\021\022\017/api/users/{id}'
|
||||
_globals['_USERSERVICE'].methods_by_name['Update']._options = None
|
||||
_globals['_USERSERVICE'].methods_by_name['Update']._serialized_options = b'\202\323\344\223\002\031\032\024/api/users/{user.id}:\001*'
|
||||
_globals['_USERSERVICE'].methods_by_name['Delete']._options = None
|
||||
_globals['_USERSERVICE'].methods_by_name['Delete']._serialized_options = b'\202\323\344\223\002\021*\017/api/users/{id}'
|
||||
_globals['_USERSERVICE'].methods_by_name['List']._options = None
|
||||
_globals['_USERSERVICE'].methods_by_name['List']._serialized_options = b'\202\323\344\223\002\014\022\n/api/users'
|
||||
_globals['_USERSERVICE'].methods_by_name['UpdatePassword']._options = None
|
||||
_globals['_USERSERVICE'].methods_by_name['UpdatePassword']._serialized_options = b'\202\323\344\223\002\"\"\035/api/users/{user_id}/password:\001*'
|
||||
_globals['_USER']._serialized_start=130
|
||||
_globals['_USER']._serialized_end=214
|
||||
_globals['_USERLISTITEM']._serialized_start=217
|
||||
|
24
api/python/src/chirpstack_api/api/user_pb2.pyi
vendored
24
api/python/src/chirpstack_api/api/user_pb2.pyi
vendored
@ -9,7 +9,7 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map
|
||||
DESCRIPTOR: _descriptor.FileDescriptor
|
||||
|
||||
class User(_message.Message):
|
||||
__slots__ = ["id", "is_admin", "is_active", "email", "note"]
|
||||
__slots__ = ("id", "is_admin", "is_active", "email", "note")
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
IS_ADMIN_FIELD_NUMBER: _ClassVar[int]
|
||||
IS_ACTIVE_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -23,7 +23,7 @@ class User(_message.Message):
|
||||
def __init__(self, id: _Optional[str] = ..., is_admin: bool = ..., is_active: bool = ..., email: _Optional[str] = ..., note: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class UserListItem(_message.Message):
|
||||
__slots__ = ["id", "created_at", "updated_at", "email", "is_admin", "is_active"]
|
||||
__slots__ = ("id", "created_at", "updated_at", "email", "is_admin", "is_active")
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -39,7 +39,7 @@ class UserListItem(_message.Message):
|
||||
def __init__(self, id: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., email: _Optional[str] = ..., is_admin: bool = ..., is_active: bool = ...) -> None: ...
|
||||
|
||||
class UserTenant(_message.Message):
|
||||
__slots__ = ["tenant_id", "is_admin", "is_device_admin", "is_gateway_admin"]
|
||||
__slots__ = ("tenant_id", "is_admin", "is_device_admin", "is_gateway_admin")
|
||||
TENANT_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
IS_ADMIN_FIELD_NUMBER: _ClassVar[int]
|
||||
IS_DEVICE_ADMIN_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -51,7 +51,7 @@ class UserTenant(_message.Message):
|
||||
def __init__(self, tenant_id: _Optional[str] = ..., is_admin: bool = ..., is_device_admin: bool = ..., is_gateway_admin: bool = ...) -> None: ...
|
||||
|
||||
class CreateUserRequest(_message.Message):
|
||||
__slots__ = ["user", "password", "tenants"]
|
||||
__slots__ = ("user", "password", "tenants")
|
||||
USER_FIELD_NUMBER: _ClassVar[int]
|
||||
PASSWORD_FIELD_NUMBER: _ClassVar[int]
|
||||
TENANTS_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -61,19 +61,19 @@ class CreateUserRequest(_message.Message):
|
||||
def __init__(self, user: _Optional[_Union[User, _Mapping]] = ..., password: _Optional[str] = ..., tenants: _Optional[_Iterable[_Union[UserTenant, _Mapping]]] = ...) -> None: ...
|
||||
|
||||
class CreateUserResponse(_message.Message):
|
||||
__slots__ = ["id"]
|
||||
__slots__ = ("id",)
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
id: str
|
||||
def __init__(self, id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetUserRequest(_message.Message):
|
||||
__slots__ = ["id"]
|
||||
__slots__ = ("id",)
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
id: str
|
||||
def __init__(self, id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class GetUserResponse(_message.Message):
|
||||
__slots__ = ["user", "created_at", "updated_at"]
|
||||
__slots__ = ("user", "created_at", "updated_at")
|
||||
USER_FIELD_NUMBER: _ClassVar[int]
|
||||
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -83,19 +83,19 @@ class GetUserResponse(_message.Message):
|
||||
def __init__(self, user: _Optional[_Union[User, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class UpdateUserRequest(_message.Message):
|
||||
__slots__ = ["user"]
|
||||
__slots__ = ("user",)
|
||||
USER_FIELD_NUMBER: _ClassVar[int]
|
||||
user: User
|
||||
def __init__(self, user: _Optional[_Union[User, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class DeleteUserRequest(_message.Message):
|
||||
__slots__ = ["id"]
|
||||
__slots__ = ("id",)
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
id: str
|
||||
def __init__(self, id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class ListUsersRequest(_message.Message):
|
||||
__slots__ = ["limit", "offset"]
|
||||
__slots__ = ("limit", "offset")
|
||||
LIMIT_FIELD_NUMBER: _ClassVar[int]
|
||||
OFFSET_FIELD_NUMBER: _ClassVar[int]
|
||||
limit: int
|
||||
@ -103,7 +103,7 @@ class ListUsersRequest(_message.Message):
|
||||
def __init__(self, limit: _Optional[int] = ..., offset: _Optional[int] = ...) -> None: ...
|
||||
|
||||
class ListUsersResponse(_message.Message):
|
||||
__slots__ = ["total_count", "result"]
|
||||
__slots__ = ("total_count", "result")
|
||||
TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
|
||||
RESULT_FIELD_NUMBER: _ClassVar[int]
|
||||
total_count: int
|
||||
@ -111,7 +111,7 @@ class ListUsersResponse(_message.Message):
|
||||
def __init__(self, total_count: _Optional[int] = ..., result: _Optional[_Iterable[_Union[UserListItem, _Mapping]]] = ...) -> None: ...
|
||||
|
||||
class UpdateUserPasswordRequest(_message.Message):
|
||||
__slots__ = ["user_id", "password"]
|
||||
__slots__ = ("user_id", "password")
|
||||
USER_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
PASSWORD_FIELD_NUMBER: _ClassVar[int]
|
||||
user_id: str
|
||||
|
@ -1,6 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: chirpstack-api/common/common.proto
|
||||
# Protobuf Python Version: 4.25.0
|
||||
"""Generated protocol buffer code."""
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import descriptor_pool as _descriptor_pool
|
||||
@ -20,9 +21,8 @@ _globals = globals()
|
||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
||||
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'chirpstack_api.common.common_pb2', _globals)
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
|
||||
DESCRIPTOR._options = None
|
||||
DESCRIPTOR._serialized_options = b'\n\021io.chirpstack.apiB\013CommonProtoP\001Z1github.com/chirpstack/chirpstack/api/go/v4/common\252\002\021Chirpstack.Common'
|
||||
_globals['DESCRIPTOR']._options = None
|
||||
_globals['DESCRIPTOR']._serialized_options = b'\n\021io.chirpstack.apiB\013CommonProtoP\001Z1github.com/chirpstack/chirpstack/api/go/v4/common\252\002\021Chirpstack.Common'
|
||||
_globals['_MODULATION']._serialized_start=449
|
||||
_globals['_MODULATION']._serialized_end=493
|
||||
_globals['_REGION']._serialized_start=496
|
||||
|
@ -8,13 +8,13 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map
|
||||
DESCRIPTOR: _descriptor.FileDescriptor
|
||||
|
||||
class Modulation(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
LORA: _ClassVar[Modulation]
|
||||
FSK: _ClassVar[Modulation]
|
||||
LR_FHSS: _ClassVar[Modulation]
|
||||
|
||||
class Region(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
EU868: _ClassVar[Region]
|
||||
US915: _ClassVar[Region]
|
||||
CN779: _ClassVar[Region]
|
||||
@ -31,7 +31,7 @@ class Region(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
ISM2400: _ClassVar[Region]
|
||||
|
||||
class MType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
JOIN_REQUEST: _ClassVar[MType]
|
||||
JOIN_ACCEPT: _ClassVar[MType]
|
||||
UNCONFIRMED_DATA_UP: _ClassVar[MType]
|
||||
@ -42,7 +42,7 @@ class MType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
PROPRIETARY: _ClassVar[MType]
|
||||
|
||||
class MacVersion(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
LORAWAN_1_0_0: _ClassVar[MacVersion]
|
||||
LORAWAN_1_0_1: _ClassVar[MacVersion]
|
||||
LORAWAN_1_0_2: _ClassVar[MacVersion]
|
||||
@ -51,7 +51,7 @@ class MacVersion(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
LORAWAN_1_1_0: _ClassVar[MacVersion]
|
||||
|
||||
class RegParamsRevision(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
A: _ClassVar[RegParamsRevision]
|
||||
B: _ClassVar[RegParamsRevision]
|
||||
RP002_1_0_0: _ClassVar[RegParamsRevision]
|
||||
@ -60,7 +60,7 @@ class RegParamsRevision(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
RP002_1_0_3: _ClassVar[RegParamsRevision]
|
||||
|
||||
class LocationSource(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
UNKNOWN: _ClassVar[LocationSource]
|
||||
GPS: _ClassVar[LocationSource]
|
||||
CONFIG: _ClassVar[LocationSource]
|
||||
@ -70,19 +70,19 @@ class LocationSource(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
GEO_RESOLVER_WIFI: _ClassVar[LocationSource]
|
||||
|
||||
class Aggregation(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
HOUR: _ClassVar[Aggregation]
|
||||
DAY: _ClassVar[Aggregation]
|
||||
MONTH: _ClassVar[Aggregation]
|
||||
|
||||
class MetricKind(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
COUNTER: _ClassVar[MetricKind]
|
||||
ABSOLUTE: _ClassVar[MetricKind]
|
||||
GAUGE: _ClassVar[MetricKind]
|
||||
|
||||
class DeviceClass(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
CLASS_A: _ClassVar[DeviceClass]
|
||||
CLASS_B: _ClassVar[DeviceClass]
|
||||
CLASS_C: _ClassVar[DeviceClass]
|
||||
@ -141,7 +141,7 @@ CLASS_B: DeviceClass
|
||||
CLASS_C: DeviceClass
|
||||
|
||||
class Location(_message.Message):
|
||||
__slots__ = ["latitude", "longitude", "altitude", "source", "accuracy"]
|
||||
__slots__ = ("latitude", "longitude", "altitude", "source", "accuracy")
|
||||
LATITUDE_FIELD_NUMBER: _ClassVar[int]
|
||||
LONGITUDE_FIELD_NUMBER: _ClassVar[int]
|
||||
ALTITUDE_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -155,7 +155,7 @@ class Location(_message.Message):
|
||||
def __init__(self, latitude: _Optional[float] = ..., longitude: _Optional[float] = ..., altitude: _Optional[float] = ..., source: _Optional[_Union[LocationSource, str]] = ..., accuracy: _Optional[float] = ...) -> None: ...
|
||||
|
||||
class KeyEnvelope(_message.Message):
|
||||
__slots__ = ["kek_label", "aes_key"]
|
||||
__slots__ = ("kek_label", "aes_key")
|
||||
KEK_LABEL_FIELD_NUMBER: _ClassVar[int]
|
||||
AES_KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
kek_label: str
|
||||
@ -163,7 +163,7 @@ class KeyEnvelope(_message.Message):
|
||||
def __init__(self, kek_label: _Optional[str] = ..., aes_key: _Optional[bytes] = ...) -> None: ...
|
||||
|
||||
class Metric(_message.Message):
|
||||
__slots__ = ["name", "timestamps", "datasets", "kind"]
|
||||
__slots__ = ("name", "timestamps", "datasets", "kind")
|
||||
NAME_FIELD_NUMBER: _ClassVar[int]
|
||||
TIMESTAMPS_FIELD_NUMBER: _ClassVar[int]
|
||||
DATASETS_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -175,7 +175,7 @@ class Metric(_message.Message):
|
||||
def __init__(self, name: _Optional[str] = ..., timestamps: _Optional[_Iterable[_Union[_timestamp_pb2.Timestamp, _Mapping]]] = ..., datasets: _Optional[_Iterable[_Union[MetricDataset, _Mapping]]] = ..., kind: _Optional[_Union[MetricKind, str]] = ...) -> None: ...
|
||||
|
||||
class MetricDataset(_message.Message):
|
||||
__slots__ = ["label", "data"]
|
||||
__slots__ = ("label", "data")
|
||||
LABEL_FIELD_NUMBER: _ClassVar[int]
|
||||
DATA_FIELD_NUMBER: _ClassVar[int]
|
||||
label: str
|
||||
|
34
api/python/src/chirpstack_api/gw/gw_pb2.py
vendored
34
api/python/src/chirpstack_api/gw/gw_pb2.py
vendored
@ -1,6 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: chirpstack-api/gw/gw.proto
|
||||
# Protobuf Python Version: 4.25.0
|
||||
"""Generated protocol buffer code."""
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import descriptor_pool as _descriptor_pool
|
||||
@ -23,23 +24,22 @@ _globals = globals()
|
||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
||||
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'chirpstack_api.gw.gw_pb2', _globals)
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
|
||||
DESCRIPTOR._options = None
|
||||
DESCRIPTOR._serialized_options = b'\n\024io.chirpstack.api.gwB\014GatewayProtoP\001Z-github.com/chirpstack/chirpstack/api/go/v4/gw\252\002\022Chirpstack.Gateway'
|
||||
_GATEWAYSTATS_METADATAENTRY._options = None
|
||||
_GATEWAYSTATS_METADATAENTRY._serialized_options = b'8\001'
|
||||
_GATEWAYSTATS_TXPACKETSPERFREQUENCYENTRY._options = None
|
||||
_GATEWAYSTATS_TXPACKETSPERFREQUENCYENTRY._serialized_options = b'8\001'
|
||||
_GATEWAYSTATS_RXPACKETSPERFREQUENCYENTRY._options = None
|
||||
_GATEWAYSTATS_RXPACKETSPERFREQUENCYENTRY._serialized_options = b'8\001'
|
||||
_GATEWAYSTATS_TXPACKETSPERSTATUSENTRY._options = None
|
||||
_GATEWAYSTATS_TXPACKETSPERSTATUSENTRY._serialized_options = b'8\001'
|
||||
_UPLINKRXINFOLEGACY_METADATAENTRY._options = None
|
||||
_UPLINKRXINFOLEGACY_METADATAENTRY._serialized_options = b'8\001'
|
||||
_UPLINKRXINFO_METADATAENTRY._options = None
|
||||
_UPLINKRXINFO_METADATAENTRY._serialized_options = b'8\001'
|
||||
_GATEWAYCOMMANDEXECREQUEST_ENVIRONMENTENTRY._options = None
|
||||
_GATEWAYCOMMANDEXECREQUEST_ENVIRONMENTENTRY._serialized_options = b'8\001'
|
||||
_globals['DESCRIPTOR']._options = None
|
||||
_globals['DESCRIPTOR']._serialized_options = b'\n\024io.chirpstack.api.gwB\014GatewayProtoP\001Z-github.com/chirpstack/chirpstack/api/go/v4/gw\252\002\022Chirpstack.Gateway'
|
||||
_globals['_GATEWAYSTATS_METADATAENTRY']._options = None
|
||||
_globals['_GATEWAYSTATS_METADATAENTRY']._serialized_options = b'8\001'
|
||||
_globals['_GATEWAYSTATS_TXPACKETSPERFREQUENCYENTRY']._options = None
|
||||
_globals['_GATEWAYSTATS_TXPACKETSPERFREQUENCYENTRY']._serialized_options = b'8\001'
|
||||
_globals['_GATEWAYSTATS_RXPACKETSPERFREQUENCYENTRY']._options = None
|
||||
_globals['_GATEWAYSTATS_RXPACKETSPERFREQUENCYENTRY']._serialized_options = b'8\001'
|
||||
_globals['_GATEWAYSTATS_TXPACKETSPERSTATUSENTRY']._options = None
|
||||
_globals['_GATEWAYSTATS_TXPACKETSPERSTATUSENTRY']._serialized_options = b'8\001'
|
||||
_globals['_UPLINKRXINFOLEGACY_METADATAENTRY']._options = None
|
||||
_globals['_UPLINKRXINFOLEGACY_METADATAENTRY']._serialized_options = b'8\001'
|
||||
_globals['_UPLINKRXINFO_METADATAENTRY']._options = None
|
||||
_globals['_UPLINKRXINFO_METADATAENTRY']._serialized_options = b'8\001'
|
||||
_globals['_GATEWAYCOMMANDEXECREQUEST_ENVIRONMENTENTRY']._options = None
|
||||
_globals['_GATEWAYCOMMANDEXECREQUEST_ENVIRONMENTENTRY']._serialized_options = b'8\001'
|
||||
_globals['_CODERATE']._serialized_start=6528
|
||||
_globals['_CODERATE']._serialized_end=6709
|
||||
_globals['_DOWNLINKTIMING']._serialized_start=6711
|
||||
|
92
api/python/src/chirpstack_api/gw/gw_pb2.pyi
vendored
92
api/python/src/chirpstack_api/gw/gw_pb2.pyi
vendored
@ -11,7 +11,7 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map
|
||||
DESCRIPTOR: _descriptor.FileDescriptor
|
||||
|
||||
class CodeRate(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
CR_UNDEFINED: _ClassVar[CodeRate]
|
||||
CR_4_5: _ClassVar[CodeRate]
|
||||
CR_4_6: _ClassVar[CodeRate]
|
||||
@ -27,25 +27,25 @@ class CodeRate(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
CR_LI_4_8: _ClassVar[CodeRate]
|
||||
|
||||
class DownlinkTiming(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
IMMEDIATELY: _ClassVar[DownlinkTiming]
|
||||
DELAY: _ClassVar[DownlinkTiming]
|
||||
GPS_EPOCH: _ClassVar[DownlinkTiming]
|
||||
|
||||
class FineTimestampType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
NONE: _ClassVar[FineTimestampType]
|
||||
ENCRYPTED: _ClassVar[FineTimestampType]
|
||||
PLAIN: _ClassVar[FineTimestampType]
|
||||
|
||||
class CRCStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
NO_CRC: _ClassVar[CRCStatus]
|
||||
BAD_CRC: _ClassVar[CRCStatus]
|
||||
CRC_OK: _ClassVar[CRCStatus]
|
||||
|
||||
class TxAckStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
IGNORED: _ClassVar[TxAckStatus]
|
||||
OK: _ClassVar[TxAckStatus]
|
||||
TOO_LATE: _ClassVar[TxAckStatus]
|
||||
@ -92,7 +92,7 @@ QUEUE_FULL: TxAckStatus
|
||||
INTERNAL_ERROR: TxAckStatus
|
||||
|
||||
class Modulation(_message.Message):
|
||||
__slots__ = ["lora", "fsk", "lr_fhss"]
|
||||
__slots__ = ("lora", "fsk", "lr_fhss")
|
||||
LORA_FIELD_NUMBER: _ClassVar[int]
|
||||
FSK_FIELD_NUMBER: _ClassVar[int]
|
||||
LR_FHSS_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -102,7 +102,7 @@ class Modulation(_message.Message):
|
||||
def __init__(self, lora: _Optional[_Union[LoraModulationInfo, _Mapping]] = ..., fsk: _Optional[_Union[FskModulationInfo, _Mapping]] = ..., lr_fhss: _Optional[_Union[LrFhssModulationInfo, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class UplinkTxInfoLegacy(_message.Message):
|
||||
__slots__ = ["frequency", "modulation", "lora_modulation_info", "fsk_modulation_info", "lr_fhss_modulation_info"]
|
||||
__slots__ = ("frequency", "modulation", "lora_modulation_info", "fsk_modulation_info", "lr_fhss_modulation_info")
|
||||
FREQUENCY_FIELD_NUMBER: _ClassVar[int]
|
||||
MODULATION_FIELD_NUMBER: _ClassVar[int]
|
||||
LORA_MODULATION_INFO_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -116,7 +116,7 @@ class UplinkTxInfoLegacy(_message.Message):
|
||||
def __init__(self, frequency: _Optional[int] = ..., modulation: _Optional[_Union[_common_pb2.Modulation, str]] = ..., lora_modulation_info: _Optional[_Union[LoraModulationInfo, _Mapping]] = ..., fsk_modulation_info: _Optional[_Union[FskModulationInfo, _Mapping]] = ..., lr_fhss_modulation_info: _Optional[_Union[LrFhssModulationInfo, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class UplinkTxInfo(_message.Message):
|
||||
__slots__ = ["frequency", "modulation"]
|
||||
__slots__ = ("frequency", "modulation")
|
||||
FREQUENCY_FIELD_NUMBER: _ClassVar[int]
|
||||
MODULATION_FIELD_NUMBER: _ClassVar[int]
|
||||
frequency: int
|
||||
@ -124,7 +124,7 @@ class UplinkTxInfo(_message.Message):
|
||||
def __init__(self, frequency: _Optional[int] = ..., modulation: _Optional[_Union[Modulation, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class LoraModulationInfo(_message.Message):
|
||||
__slots__ = ["bandwidth", "spreading_factor", "code_rate_legacy", "code_rate", "polarization_inversion", "preamble", "no_crc"]
|
||||
__slots__ = ("bandwidth", "spreading_factor", "code_rate_legacy", "code_rate", "polarization_inversion", "preamble", "no_crc")
|
||||
BANDWIDTH_FIELD_NUMBER: _ClassVar[int]
|
||||
SPREADING_FACTOR_FIELD_NUMBER: _ClassVar[int]
|
||||
CODE_RATE_LEGACY_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -142,7 +142,7 @@ class LoraModulationInfo(_message.Message):
|
||||
def __init__(self, bandwidth: _Optional[int] = ..., spreading_factor: _Optional[int] = ..., code_rate_legacy: _Optional[str] = ..., code_rate: _Optional[_Union[CodeRate, str]] = ..., polarization_inversion: bool = ..., preamble: _Optional[int] = ..., no_crc: bool = ...) -> None: ...
|
||||
|
||||
class FskModulationInfo(_message.Message):
|
||||
__slots__ = ["frequency_deviation", "datarate"]
|
||||
__slots__ = ("frequency_deviation", "datarate")
|
||||
FREQUENCY_DEVIATION_FIELD_NUMBER: _ClassVar[int]
|
||||
DATARATE_FIELD_NUMBER: _ClassVar[int]
|
||||
frequency_deviation: int
|
||||
@ -150,7 +150,7 @@ class FskModulationInfo(_message.Message):
|
||||
def __init__(self, frequency_deviation: _Optional[int] = ..., datarate: _Optional[int] = ...) -> None: ...
|
||||
|
||||
class LrFhssModulationInfo(_message.Message):
|
||||
__slots__ = ["operating_channel_width", "code_rate_legacy", "code_rate", "grid_steps"]
|
||||
__slots__ = ("operating_channel_width", "code_rate_legacy", "code_rate", "grid_steps")
|
||||
OPERATING_CHANNEL_WIDTH_FIELD_NUMBER: _ClassVar[int]
|
||||
CODE_RATE_LEGACY_FIELD_NUMBER: _ClassVar[int]
|
||||
CODE_RATE_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -162,7 +162,7 @@ class LrFhssModulationInfo(_message.Message):
|
||||
def __init__(self, operating_channel_width: _Optional[int] = ..., code_rate_legacy: _Optional[str] = ..., code_rate: _Optional[_Union[CodeRate, str]] = ..., grid_steps: _Optional[int] = ...) -> None: ...
|
||||
|
||||
class EncryptedFineTimestamp(_message.Message):
|
||||
__slots__ = ["aes_key_index", "encrypted_ns", "fpga_id"]
|
||||
__slots__ = ("aes_key_index", "encrypted_ns", "fpga_id")
|
||||
AES_KEY_INDEX_FIELD_NUMBER: _ClassVar[int]
|
||||
ENCRYPTED_NS_FIELD_NUMBER: _ClassVar[int]
|
||||
FPGA_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -172,36 +172,36 @@ class EncryptedFineTimestamp(_message.Message):
|
||||
def __init__(self, aes_key_index: _Optional[int] = ..., encrypted_ns: _Optional[bytes] = ..., fpga_id: _Optional[bytes] = ...) -> None: ...
|
||||
|
||||
class PlainFineTimestamp(_message.Message):
|
||||
__slots__ = ["time"]
|
||||
__slots__ = ("time",)
|
||||
TIME_FIELD_NUMBER: _ClassVar[int]
|
||||
time: _timestamp_pb2.Timestamp
|
||||
def __init__(self, time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class GatewayStats(_message.Message):
|
||||
__slots__ = ["gateway_id_legacy", "gateway_id", "time", "location", "config_version", "rx_packets_received", "rx_packets_received_ok", "tx_packets_received", "tx_packets_emitted", "metadata", "tx_packets_per_frequency", "rx_packets_per_frequency", "tx_packets_per_modulation", "rx_packets_per_modulation", "tx_packets_per_status"]
|
||||
__slots__ = ("gateway_id_legacy", "gateway_id", "time", "location", "config_version", "rx_packets_received", "rx_packets_received_ok", "tx_packets_received", "tx_packets_emitted", "metadata", "tx_packets_per_frequency", "rx_packets_per_frequency", "tx_packets_per_modulation", "rx_packets_per_modulation", "tx_packets_per_status")
|
||||
class MetadataEntry(_message.Message):
|
||||
__slots__ = ["key", "value"]
|
||||
__slots__ = ("key", "value")
|
||||
KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
VALUE_FIELD_NUMBER: _ClassVar[int]
|
||||
key: str
|
||||
value: str
|
||||
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
|
||||
class TxPacketsPerFrequencyEntry(_message.Message):
|
||||
__slots__ = ["key", "value"]
|
||||
__slots__ = ("key", "value")
|
||||
KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
VALUE_FIELD_NUMBER: _ClassVar[int]
|
||||
key: int
|
||||
value: int
|
||||
def __init__(self, key: _Optional[int] = ..., value: _Optional[int] = ...) -> None: ...
|
||||
class RxPacketsPerFrequencyEntry(_message.Message):
|
||||
__slots__ = ["key", "value"]
|
||||
__slots__ = ("key", "value")
|
||||
KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
VALUE_FIELD_NUMBER: _ClassVar[int]
|
||||
key: int
|
||||
value: int
|
||||
def __init__(self, key: _Optional[int] = ..., value: _Optional[int] = ...) -> None: ...
|
||||
class TxPacketsPerStatusEntry(_message.Message):
|
||||
__slots__ = ["key", "value"]
|
||||
__slots__ = ("key", "value")
|
||||
KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
VALUE_FIELD_NUMBER: _ClassVar[int]
|
||||
key: str
|
||||
@ -240,7 +240,7 @@ class GatewayStats(_message.Message):
|
||||
def __init__(self, gateway_id_legacy: _Optional[bytes] = ..., gateway_id: _Optional[str] = ..., time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., location: _Optional[_Union[_common_pb2.Location, _Mapping]] = ..., config_version: _Optional[str] = ..., rx_packets_received: _Optional[int] = ..., rx_packets_received_ok: _Optional[int] = ..., tx_packets_received: _Optional[int] = ..., tx_packets_emitted: _Optional[int] = ..., metadata: _Optional[_Mapping[str, str]] = ..., tx_packets_per_frequency: _Optional[_Mapping[int, int]] = ..., rx_packets_per_frequency: _Optional[_Mapping[int, int]] = ..., tx_packets_per_modulation: _Optional[_Iterable[_Union[PerModulationCount, _Mapping]]] = ..., rx_packets_per_modulation: _Optional[_Iterable[_Union[PerModulationCount, _Mapping]]] = ..., tx_packets_per_status: _Optional[_Mapping[str, int]] = ...) -> None: ...
|
||||
|
||||
class PerModulationCount(_message.Message):
|
||||
__slots__ = ["modulation", "count"]
|
||||
__slots__ = ("modulation", "count")
|
||||
MODULATION_FIELD_NUMBER: _ClassVar[int]
|
||||
COUNT_FIELD_NUMBER: _ClassVar[int]
|
||||
modulation: Modulation
|
||||
@ -248,9 +248,9 @@ class PerModulationCount(_message.Message):
|
||||
def __init__(self, modulation: _Optional[_Union[Modulation, _Mapping]] = ..., count: _Optional[int] = ...) -> None: ...
|
||||
|
||||
class UplinkRxInfoLegacy(_message.Message):
|
||||
__slots__ = ["gateway_id", "time", "time_since_gps_epoch", "rssi", "lora_snr", "channel", "rf_chain", "board", "antenna", "location", "fine_timestamp_type", "encrypted_fine_timestamp", "plain_fine_timestamp", "context", "uplink_id", "crc_status", "metadata"]
|
||||
__slots__ = ("gateway_id", "time", "time_since_gps_epoch", "rssi", "lora_snr", "channel", "rf_chain", "board", "antenna", "location", "fine_timestamp_type", "encrypted_fine_timestamp", "plain_fine_timestamp", "context", "uplink_id", "crc_status", "metadata")
|
||||
class MetadataEntry(_message.Message):
|
||||
__slots__ = ["key", "value"]
|
||||
__slots__ = ("key", "value")
|
||||
KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
VALUE_FIELD_NUMBER: _ClassVar[int]
|
||||
key: str
|
||||
@ -293,9 +293,9 @@ class UplinkRxInfoLegacy(_message.Message):
|
||||
def __init__(self, gateway_id: _Optional[bytes] = ..., time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., time_since_gps_epoch: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., rssi: _Optional[int] = ..., lora_snr: _Optional[float] = ..., channel: _Optional[int] = ..., rf_chain: _Optional[int] = ..., board: _Optional[int] = ..., antenna: _Optional[int] = ..., location: _Optional[_Union[_common_pb2.Location, _Mapping]] = ..., fine_timestamp_type: _Optional[_Union[FineTimestampType, str]] = ..., encrypted_fine_timestamp: _Optional[_Union[EncryptedFineTimestamp, _Mapping]] = ..., plain_fine_timestamp: _Optional[_Union[PlainFineTimestamp, _Mapping]] = ..., context: _Optional[bytes] = ..., uplink_id: _Optional[bytes] = ..., crc_status: _Optional[_Union[CRCStatus, str]] = ..., metadata: _Optional[_Mapping[str, str]] = ...) -> None: ...
|
||||
|
||||
class UplinkRxInfo(_message.Message):
|
||||
__slots__ = ["gateway_id", "uplink_id", "gw_time", "ns_time", "time_since_gps_epoch", "fine_time_since_gps_epoch", "rssi", "snr", "channel", "rf_chain", "board", "antenna", "location", "context", "metadata", "crc_status"]
|
||||
__slots__ = ("gateway_id", "uplink_id", "gw_time", "ns_time", "time_since_gps_epoch", "fine_time_since_gps_epoch", "rssi", "snr", "channel", "rf_chain", "board", "antenna", "location", "context", "metadata", "crc_status")
|
||||
class MetadataEntry(_message.Message):
|
||||
__slots__ = ["key", "value"]
|
||||
__slots__ = ("key", "value")
|
||||
KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
VALUE_FIELD_NUMBER: _ClassVar[int]
|
||||
key: str
|
||||
@ -336,7 +336,7 @@ class UplinkRxInfo(_message.Message):
|
||||
def __init__(self, gateway_id: _Optional[str] = ..., uplink_id: _Optional[int] = ..., gw_time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., ns_time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., time_since_gps_epoch: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., fine_time_since_gps_epoch: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., rssi: _Optional[int] = ..., snr: _Optional[float] = ..., channel: _Optional[int] = ..., rf_chain: _Optional[int] = ..., board: _Optional[int] = ..., antenna: _Optional[int] = ..., location: _Optional[_Union[_common_pb2.Location, _Mapping]] = ..., context: _Optional[bytes] = ..., metadata: _Optional[_Mapping[str, str]] = ..., crc_status: _Optional[_Union[CRCStatus, str]] = ...) -> None: ...
|
||||
|
||||
class DownlinkTxInfoLegacy(_message.Message):
|
||||
__slots__ = ["gateway_id", "frequency", "power", "modulation", "lora_modulation_info", "fsk_modulation_info", "board", "antenna", "timing", "immediately_timing_info", "delay_timing_info", "gps_epoch_timing_info", "context"]
|
||||
__slots__ = ("gateway_id", "frequency", "power", "modulation", "lora_modulation_info", "fsk_modulation_info", "board", "antenna", "timing", "immediately_timing_info", "delay_timing_info", "gps_epoch_timing_info", "context")
|
||||
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
FREQUENCY_FIELD_NUMBER: _ClassVar[int]
|
||||
POWER_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -366,7 +366,7 @@ class DownlinkTxInfoLegacy(_message.Message):
|
||||
def __init__(self, gateway_id: _Optional[bytes] = ..., frequency: _Optional[int] = ..., power: _Optional[int] = ..., modulation: _Optional[_Union[_common_pb2.Modulation, str]] = ..., lora_modulation_info: _Optional[_Union[LoraModulationInfo, _Mapping]] = ..., fsk_modulation_info: _Optional[_Union[FskModulationInfo, _Mapping]] = ..., board: _Optional[int] = ..., antenna: _Optional[int] = ..., timing: _Optional[_Union[DownlinkTiming, str]] = ..., immediately_timing_info: _Optional[_Union[ImmediatelyTimingInfo, _Mapping]] = ..., delay_timing_info: _Optional[_Union[DelayTimingInfo, _Mapping]] = ..., gps_epoch_timing_info: _Optional[_Union[GPSEpochTimingInfo, _Mapping]] = ..., context: _Optional[bytes] = ...) -> None: ...
|
||||
|
||||
class DownlinkTxInfo(_message.Message):
|
||||
__slots__ = ["frequency", "power", "modulation", "board", "antenna", "timing", "context"]
|
||||
__slots__ = ("frequency", "power", "modulation", "board", "antenna", "timing", "context")
|
||||
FREQUENCY_FIELD_NUMBER: _ClassVar[int]
|
||||
POWER_FIELD_NUMBER: _ClassVar[int]
|
||||
MODULATION_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -384,7 +384,7 @@ class DownlinkTxInfo(_message.Message):
|
||||
def __init__(self, frequency: _Optional[int] = ..., power: _Optional[int] = ..., modulation: _Optional[_Union[Modulation, _Mapping]] = ..., board: _Optional[int] = ..., antenna: _Optional[int] = ..., timing: _Optional[_Union[Timing, _Mapping]] = ..., context: _Optional[bytes] = ...) -> None: ...
|
||||
|
||||
class Timing(_message.Message):
|
||||
__slots__ = ["immediately", "delay", "gps_epoch"]
|
||||
__slots__ = ("immediately", "delay", "gps_epoch")
|
||||
IMMEDIATELY_FIELD_NUMBER: _ClassVar[int]
|
||||
DELAY_FIELD_NUMBER: _ClassVar[int]
|
||||
GPS_EPOCH_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -394,23 +394,23 @@ class Timing(_message.Message):
|
||||
def __init__(self, immediately: _Optional[_Union[ImmediatelyTimingInfo, _Mapping]] = ..., delay: _Optional[_Union[DelayTimingInfo, _Mapping]] = ..., gps_epoch: _Optional[_Union[GPSEpochTimingInfo, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class ImmediatelyTimingInfo(_message.Message):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
def __init__(self) -> None: ...
|
||||
|
||||
class DelayTimingInfo(_message.Message):
|
||||
__slots__ = ["delay"]
|
||||
__slots__ = ("delay",)
|
||||
DELAY_FIELD_NUMBER: _ClassVar[int]
|
||||
delay: _duration_pb2.Duration
|
||||
def __init__(self, delay: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class GPSEpochTimingInfo(_message.Message):
|
||||
__slots__ = ["time_since_gps_epoch"]
|
||||
__slots__ = ("time_since_gps_epoch",)
|
||||
TIME_SINCE_GPS_EPOCH_FIELD_NUMBER: _ClassVar[int]
|
||||
time_since_gps_epoch: _duration_pb2.Duration
|
||||
def __init__(self, time_since_gps_epoch: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class UplinkFrame(_message.Message):
|
||||
__slots__ = ["phy_payload", "tx_info_legacy", "rx_info_legacy", "tx_info", "rx_info"]
|
||||
__slots__ = ("phy_payload", "tx_info_legacy", "rx_info_legacy", "tx_info", "rx_info")
|
||||
PHY_PAYLOAD_FIELD_NUMBER: _ClassVar[int]
|
||||
TX_INFO_LEGACY_FIELD_NUMBER: _ClassVar[int]
|
||||
RX_INFO_LEGACY_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -424,7 +424,7 @@ class UplinkFrame(_message.Message):
|
||||
def __init__(self, phy_payload: _Optional[bytes] = ..., tx_info_legacy: _Optional[_Union[UplinkTxInfoLegacy, _Mapping]] = ..., rx_info_legacy: _Optional[_Union[UplinkRxInfoLegacy, _Mapping]] = ..., tx_info: _Optional[_Union[UplinkTxInfo, _Mapping]] = ..., rx_info: _Optional[_Union[UplinkRxInfo, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class UplinkFrameSet(_message.Message):
|
||||
__slots__ = ["phy_payload", "tx_info", "rx_info"]
|
||||
__slots__ = ("phy_payload", "tx_info", "rx_info")
|
||||
PHY_PAYLOAD_FIELD_NUMBER: _ClassVar[int]
|
||||
TX_INFO_FIELD_NUMBER: _ClassVar[int]
|
||||
RX_INFO_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -434,7 +434,7 @@ class UplinkFrameSet(_message.Message):
|
||||
def __init__(self, phy_payload: _Optional[bytes] = ..., tx_info: _Optional[_Union[UplinkTxInfo, _Mapping]] = ..., rx_info: _Optional[_Iterable[_Union[UplinkRxInfo, _Mapping]]] = ...) -> None: ...
|
||||
|
||||
class DownlinkFrame(_message.Message):
|
||||
__slots__ = ["downlink_id", "downlink_id_legacy", "items", "gateway_id_legacy", "gateway_id"]
|
||||
__slots__ = ("downlink_id", "downlink_id_legacy", "items", "gateway_id_legacy", "gateway_id")
|
||||
DOWNLINK_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
DOWNLINK_ID_LEGACY_FIELD_NUMBER: _ClassVar[int]
|
||||
ITEMS_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -448,7 +448,7 @@ class DownlinkFrame(_message.Message):
|
||||
def __init__(self, downlink_id: _Optional[int] = ..., downlink_id_legacy: _Optional[bytes] = ..., items: _Optional[_Iterable[_Union[DownlinkFrameItem, _Mapping]]] = ..., gateway_id_legacy: _Optional[bytes] = ..., gateway_id: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class DownlinkFrameItem(_message.Message):
|
||||
__slots__ = ["phy_payload", "tx_info_legacy", "tx_info"]
|
||||
__slots__ = ("phy_payload", "tx_info_legacy", "tx_info")
|
||||
PHY_PAYLOAD_FIELD_NUMBER: _ClassVar[int]
|
||||
TX_INFO_LEGACY_FIELD_NUMBER: _ClassVar[int]
|
||||
TX_INFO_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -458,7 +458,7 @@ class DownlinkFrameItem(_message.Message):
|
||||
def __init__(self, phy_payload: _Optional[bytes] = ..., tx_info_legacy: _Optional[_Union[DownlinkTxInfoLegacy, _Mapping]] = ..., tx_info: _Optional[_Union[DownlinkTxInfo, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class DownlinkTxAck(_message.Message):
|
||||
__slots__ = ["gateway_id_legacy", "gateway_id", "downlink_id", "downlink_id_legacy", "items"]
|
||||
__slots__ = ("gateway_id_legacy", "gateway_id", "downlink_id", "downlink_id_legacy", "items")
|
||||
GATEWAY_ID_LEGACY_FIELD_NUMBER: _ClassVar[int]
|
||||
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
DOWNLINK_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -472,13 +472,13 @@ class DownlinkTxAck(_message.Message):
|
||||
def __init__(self, gateway_id_legacy: _Optional[bytes] = ..., gateway_id: _Optional[str] = ..., downlink_id: _Optional[int] = ..., downlink_id_legacy: _Optional[bytes] = ..., items: _Optional[_Iterable[_Union[DownlinkTxAckItem, _Mapping]]] = ...) -> None: ...
|
||||
|
||||
class DownlinkTxAckItem(_message.Message):
|
||||
__slots__ = ["status"]
|
||||
__slots__ = ("status",)
|
||||
STATUS_FIELD_NUMBER: _ClassVar[int]
|
||||
status: TxAckStatus
|
||||
def __init__(self, status: _Optional[_Union[TxAckStatus, str]] = ...) -> None: ...
|
||||
|
||||
class GatewayConfiguration(_message.Message):
|
||||
__slots__ = ["gateway_id_legacy", "gateway_id", "version", "channels", "stats_interval"]
|
||||
__slots__ = ("gateway_id_legacy", "gateway_id", "version", "channels", "stats_interval")
|
||||
GATEWAY_ID_LEGACY_FIELD_NUMBER: _ClassVar[int]
|
||||
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
VERSION_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -492,7 +492,7 @@ class GatewayConfiguration(_message.Message):
|
||||
def __init__(self, gateway_id_legacy: _Optional[bytes] = ..., gateway_id: _Optional[str] = ..., version: _Optional[str] = ..., channels: _Optional[_Iterable[_Union[ChannelConfiguration, _Mapping]]] = ..., stats_interval: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class ChannelConfiguration(_message.Message):
|
||||
__slots__ = ["frequency", "modulation_legacy", "lora_modulation_config", "fsk_modulation_config", "board", "demodulator"]
|
||||
__slots__ = ("frequency", "modulation_legacy", "lora_modulation_config", "fsk_modulation_config", "board", "demodulator")
|
||||
FREQUENCY_FIELD_NUMBER: _ClassVar[int]
|
||||
MODULATION_LEGACY_FIELD_NUMBER: _ClassVar[int]
|
||||
LORA_MODULATION_CONFIG_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -508,7 +508,7 @@ class ChannelConfiguration(_message.Message):
|
||||
def __init__(self, frequency: _Optional[int] = ..., modulation_legacy: _Optional[_Union[_common_pb2.Modulation, str]] = ..., lora_modulation_config: _Optional[_Union[LoraModulationConfig, _Mapping]] = ..., fsk_modulation_config: _Optional[_Union[FskModulationConfig, _Mapping]] = ..., board: _Optional[int] = ..., demodulator: _Optional[int] = ...) -> None: ...
|
||||
|
||||
class LoraModulationConfig(_message.Message):
|
||||
__slots__ = ["bandwidth_legacy", "bandwidth", "spreading_factors"]
|
||||
__slots__ = ("bandwidth_legacy", "bandwidth", "spreading_factors")
|
||||
BANDWIDTH_LEGACY_FIELD_NUMBER: _ClassVar[int]
|
||||
BANDWIDTH_FIELD_NUMBER: _ClassVar[int]
|
||||
SPREADING_FACTORS_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -518,7 +518,7 @@ class LoraModulationConfig(_message.Message):
|
||||
def __init__(self, bandwidth_legacy: _Optional[int] = ..., bandwidth: _Optional[int] = ..., spreading_factors: _Optional[_Iterable[int]] = ...) -> None: ...
|
||||
|
||||
class FskModulationConfig(_message.Message):
|
||||
__slots__ = ["bandwidth_legacy", "bandwidth", "bitrate"]
|
||||
__slots__ = ("bandwidth_legacy", "bandwidth", "bitrate")
|
||||
BANDWIDTH_LEGACY_FIELD_NUMBER: _ClassVar[int]
|
||||
BANDWIDTH_FIELD_NUMBER: _ClassVar[int]
|
||||
BITRATE_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -528,9 +528,9 @@ class FskModulationConfig(_message.Message):
|
||||
def __init__(self, bandwidth_legacy: _Optional[int] = ..., bandwidth: _Optional[int] = ..., bitrate: _Optional[int] = ...) -> None: ...
|
||||
|
||||
class GatewayCommandExecRequest(_message.Message):
|
||||
__slots__ = ["gateway_id_legacy", "gateway_id", "command", "exec_id", "stdin", "environment"]
|
||||
__slots__ = ("gateway_id_legacy", "gateway_id", "command", "exec_id", "stdin", "environment")
|
||||
class EnvironmentEntry(_message.Message):
|
||||
__slots__ = ["key", "value"]
|
||||
__slots__ = ("key", "value")
|
||||
KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
VALUE_FIELD_NUMBER: _ClassVar[int]
|
||||
key: str
|
||||
@ -551,7 +551,7 @@ class GatewayCommandExecRequest(_message.Message):
|
||||
def __init__(self, gateway_id_legacy: _Optional[bytes] = ..., gateway_id: _Optional[str] = ..., command: _Optional[str] = ..., exec_id: _Optional[int] = ..., stdin: _Optional[bytes] = ..., environment: _Optional[_Mapping[str, str]] = ...) -> None: ...
|
||||
|
||||
class GatewayCommandExecResponse(_message.Message):
|
||||
__slots__ = ["gateway_id_legacy", "gateway_id", "exec_id", "stdout", "stderr", "error"]
|
||||
__slots__ = ("gateway_id_legacy", "gateway_id", "exec_id", "stdout", "stderr", "error")
|
||||
GATEWAY_ID_LEGACY_FIELD_NUMBER: _ClassVar[int]
|
||||
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
EXEC_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -567,7 +567,7 @@ class GatewayCommandExecResponse(_message.Message):
|
||||
def __init__(self, gateway_id_legacy: _Optional[bytes] = ..., gateway_id: _Optional[str] = ..., exec_id: _Optional[int] = ..., stdout: _Optional[bytes] = ..., stderr: _Optional[bytes] = ..., error: _Optional[str] = ...) -> None: ...
|
||||
|
||||
class RawPacketForwarderEvent(_message.Message):
|
||||
__slots__ = ["gateway_id_legacy", "gateway_id", "payload"]
|
||||
__slots__ = ("gateway_id_legacy", "gateway_id", "payload")
|
||||
GATEWAY_ID_LEGACY_FIELD_NUMBER: _ClassVar[int]
|
||||
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
PAYLOAD_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -577,7 +577,7 @@ class RawPacketForwarderEvent(_message.Message):
|
||||
def __init__(self, gateway_id_legacy: _Optional[bytes] = ..., gateway_id: _Optional[str] = ..., payload: _Optional[bytes] = ...) -> None: ...
|
||||
|
||||
class RawPacketForwarderCommand(_message.Message):
|
||||
__slots__ = ["gateway_id_legacy", "gateway_id", "payload"]
|
||||
__slots__ = ("gateway_id_legacy", "gateway_id", "payload")
|
||||
GATEWAY_ID_LEGACY_FIELD_NUMBER: _ClassVar[int]
|
||||
GATEWAY_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
PAYLOAD_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -587,9 +587,9 @@ class RawPacketForwarderCommand(_message.Message):
|
||||
def __init__(self, gateway_id_legacy: _Optional[bytes] = ..., gateway_id: _Optional[str] = ..., payload: _Optional[bytes] = ...) -> None: ...
|
||||
|
||||
class ConnState(_message.Message):
|
||||
__slots__ = ["gateway_id_legacy", "gateway_id", "state"]
|
||||
__slots__ = ("gateway_id_legacy", "gateway_id", "state")
|
||||
class State(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
OFFLINE: _ClassVar[ConnState.State]
|
||||
ONLINE: _ClassVar[ConnState.State]
|
||||
OFFLINE: ConnState.State
|
||||
|
@ -1,6 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: chirpstack-api/integration/integration.proto
|
||||
# Protobuf Python Version: 4.25.0
|
||||
"""Generated protocol buffer code."""
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import descriptor_pool as _descriptor_pool
|
||||
@ -23,13 +24,12 @@ _globals = globals()
|
||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
||||
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'chirpstack_api.integration.integration_pb2', _globals)
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
|
||||
DESCRIPTOR._options = None
|
||||
DESCRIPTOR._serialized_options = b'\n\035io.chirpstack.api.integrationB\020IntegrationProtoP\001Z3github.com/brocaar/chirpstack/api/go/v4/integration\252\002\026Chirpstack.Integration'
|
||||
_DEVICEINFO_TAGSENTRY._options = None
|
||||
_DEVICEINFO_TAGSENTRY._serialized_options = b'8\001'
|
||||
_LOGEVENT_CONTEXTENTRY._options = None
|
||||
_LOGEVENT_CONTEXTENTRY._serialized_options = b'8\001'
|
||||
_globals['DESCRIPTOR']._options = None
|
||||
_globals['DESCRIPTOR']._serialized_options = b'\n\035io.chirpstack.api.integrationB\020IntegrationProtoP\001Z3github.com/brocaar/chirpstack/api/go/v4/integration\252\002\026Chirpstack.Integration'
|
||||
_globals['_DEVICEINFO_TAGSENTRY']._options = None
|
||||
_globals['_DEVICEINFO_TAGSENTRY']._serialized_options = b'8\001'
|
||||
_globals['_LOGEVENT_CONTEXTENTRY']._options = None
|
||||
_globals['_LOGEVENT_CONTEXTENTRY']._serialized_options = b'8\001'
|
||||
_globals['_LOGLEVEL']._serialized_start=2937
|
||||
_globals['_LOGLEVEL']._serialized_end=2981
|
||||
_globals['_LOGCODE']._serialized_start=2984
|
||||
|
@ -11,13 +11,13 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map
|
||||
DESCRIPTOR: _descriptor.FileDescriptor
|
||||
|
||||
class LogLevel(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
INFO: _ClassVar[LogLevel]
|
||||
WARNING: _ClassVar[LogLevel]
|
||||
ERROR: _ClassVar[LogLevel]
|
||||
|
||||
class LogCode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
||||
__slots__ = []
|
||||
__slots__ = ()
|
||||
UNKNOWN: _ClassVar[LogCode]
|
||||
DOWNLINK_PAYLOAD_SIZE: _ClassVar[LogCode]
|
||||
UPLINK_CODEC: _ClassVar[LogCode]
|
||||
@ -45,9 +45,9 @@ RELAY_NEW_END_DEVICE: LogCode
|
||||
F_CNT_DOWN: LogCode
|
||||
|
||||
class DeviceInfo(_message.Message):
|
||||
__slots__ = ["tenant_id", "tenant_name", "application_id", "application_name", "device_profile_id", "device_profile_name", "device_name", "dev_eui", "device_class_enabled", "tags"]
|
||||
__slots__ = ("tenant_id", "tenant_name", "application_id", "application_name", "device_profile_id", "device_profile_name", "device_name", "dev_eui", "device_class_enabled", "tags")
|
||||
class TagsEntry(_message.Message):
|
||||
__slots__ = ["key", "value"]
|
||||
__slots__ = ("key", "value")
|
||||
KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
VALUE_FIELD_NUMBER: _ClassVar[int]
|
||||
key: str
|
||||
@ -76,7 +76,7 @@ class DeviceInfo(_message.Message):
|
||||
def __init__(self, tenant_id: _Optional[str] = ..., tenant_name: _Optional[str] = ..., application_id: _Optional[str] = ..., application_name: _Optional[str] = ..., device_profile_id: _Optional[str] = ..., device_profile_name: _Optional[str] = ..., device_name: _Optional[str] = ..., dev_eui: _Optional[str] = ..., device_class_enabled: _Optional[_Union[_common_pb2.DeviceClass, str]] = ..., tags: _Optional[_Mapping[str, str]] = ...) -> None: ...
|
||||
|
||||
class UplinkRelayRxInfo(_message.Message):
|
||||
__slots__ = ["dev_eui", "frequency", "dr", "snr", "rssi", "wor_channel"]
|
||||
__slots__ = ("dev_eui", "frequency", "dr", "snr", "rssi", "wor_channel")
|
||||
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
FREQUENCY_FIELD_NUMBER: _ClassVar[int]
|
||||
DR_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -92,7 +92,7 @@ class UplinkRelayRxInfo(_message.Message):
|
||||
def __init__(self, dev_eui: _Optional[str] = ..., frequency: _Optional[int] = ..., dr: _Optional[int] = ..., snr: _Optional[int] = ..., rssi: _Optional[int] = ..., wor_channel: _Optional[int] = ...) -> None: ...
|
||||
|
||||
class JoinServerContext(_message.Message):
|
||||
__slots__ = ["session_key_id", "app_s_key"]
|
||||
__slots__ = ("session_key_id", "app_s_key")
|
||||
SESSION_KEY_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
APP_S_KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
session_key_id: str
|
||||
@ -100,7 +100,7 @@ class JoinServerContext(_message.Message):
|
||||
def __init__(self, session_key_id: _Optional[str] = ..., app_s_key: _Optional[_Union[_common_pb2.KeyEnvelope, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class UplinkEvent(_message.Message):
|
||||
__slots__ = ["deduplication_id", "time", "device_info", "dev_addr", "adr", "dr", "f_cnt", "f_port", "confirmed", "data", "object", "rx_info", "tx_info", "relay_rx_info", "join_server_context"]
|
||||
__slots__ = ("deduplication_id", "time", "device_info", "dev_addr", "adr", "dr", "f_cnt", "f_port", "confirmed", "data", "object", "rx_info", "tx_info", "relay_rx_info", "join_server_context")
|
||||
DEDUPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
TIME_FIELD_NUMBER: _ClassVar[int]
|
||||
DEVICE_INFO_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -134,7 +134,7 @@ class UplinkEvent(_message.Message):
|
||||
def __init__(self, deduplication_id: _Optional[str] = ..., time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., device_info: _Optional[_Union[DeviceInfo, _Mapping]] = ..., dev_addr: _Optional[str] = ..., adr: bool = ..., dr: _Optional[int] = ..., f_cnt: _Optional[int] = ..., f_port: _Optional[int] = ..., confirmed: bool = ..., data: _Optional[bytes] = ..., object: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., rx_info: _Optional[_Iterable[_Union[_gw_pb2.UplinkRxInfo, _Mapping]]] = ..., tx_info: _Optional[_Union[_gw_pb2.UplinkTxInfo, _Mapping]] = ..., relay_rx_info: _Optional[_Union[UplinkRelayRxInfo, _Mapping]] = ..., join_server_context: _Optional[_Union[JoinServerContext, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class JoinEvent(_message.Message):
|
||||
__slots__ = ["deduplication_id", "time", "device_info", "dev_addr", "relay_rx_info", "join_server_context"]
|
||||
__slots__ = ("deduplication_id", "time", "device_info", "dev_addr", "relay_rx_info", "join_server_context")
|
||||
DEDUPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
TIME_FIELD_NUMBER: _ClassVar[int]
|
||||
DEVICE_INFO_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -150,7 +150,7 @@ class JoinEvent(_message.Message):
|
||||
def __init__(self, deduplication_id: _Optional[str] = ..., time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., device_info: _Optional[_Union[DeviceInfo, _Mapping]] = ..., dev_addr: _Optional[str] = ..., relay_rx_info: _Optional[_Union[UplinkRelayRxInfo, _Mapping]] = ..., join_server_context: _Optional[_Union[JoinServerContext, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class AckEvent(_message.Message):
|
||||
__slots__ = ["deduplication_id", "time", "device_info", "queue_item_id", "acknowledged", "f_cnt_down"]
|
||||
__slots__ = ("deduplication_id", "time", "device_info", "queue_item_id", "acknowledged", "f_cnt_down")
|
||||
DEDUPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
TIME_FIELD_NUMBER: _ClassVar[int]
|
||||
DEVICE_INFO_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -166,7 +166,7 @@ class AckEvent(_message.Message):
|
||||
def __init__(self, deduplication_id: _Optional[str] = ..., time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., device_info: _Optional[_Union[DeviceInfo, _Mapping]] = ..., queue_item_id: _Optional[str] = ..., acknowledged: bool = ..., f_cnt_down: _Optional[int] = ...) -> None: ...
|
||||
|
||||
class TxAckEvent(_message.Message):
|
||||
__slots__ = ["downlink_id", "time", "device_info", "queue_item_id", "f_cnt_down", "gateway_id", "tx_info"]
|
||||
__slots__ = ("downlink_id", "time", "device_info", "queue_item_id", "f_cnt_down", "gateway_id", "tx_info")
|
||||
DOWNLINK_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
TIME_FIELD_NUMBER: _ClassVar[int]
|
||||
DEVICE_INFO_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -184,9 +184,9 @@ class TxAckEvent(_message.Message):
|
||||
def __init__(self, downlink_id: _Optional[int] = ..., time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., device_info: _Optional[_Union[DeviceInfo, _Mapping]] = ..., queue_item_id: _Optional[str] = ..., f_cnt_down: _Optional[int] = ..., gateway_id: _Optional[str] = ..., tx_info: _Optional[_Union[_gw_pb2.DownlinkTxInfo, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class LogEvent(_message.Message):
|
||||
__slots__ = ["time", "device_info", "level", "code", "description", "context"]
|
||||
__slots__ = ("time", "device_info", "level", "code", "description", "context")
|
||||
class ContextEntry(_message.Message):
|
||||
__slots__ = ["key", "value"]
|
||||
__slots__ = ("key", "value")
|
||||
KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
VALUE_FIELD_NUMBER: _ClassVar[int]
|
||||
key: str
|
||||
@ -207,7 +207,7 @@ class LogEvent(_message.Message):
|
||||
def __init__(self, time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., device_info: _Optional[_Union[DeviceInfo, _Mapping]] = ..., level: _Optional[_Union[LogLevel, str]] = ..., code: _Optional[_Union[LogCode, str]] = ..., description: _Optional[str] = ..., context: _Optional[_Mapping[str, str]] = ...) -> None: ...
|
||||
|
||||
class StatusEvent(_message.Message):
|
||||
__slots__ = ["deduplication_id", "time", "device_info", "margin", "external_power_source", "battery_level_unavailable", "battery_level"]
|
||||
__slots__ = ("deduplication_id", "time", "device_info", "margin", "external_power_source", "battery_level_unavailable", "battery_level")
|
||||
DEDUPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
TIME_FIELD_NUMBER: _ClassVar[int]
|
||||
DEVICE_INFO_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -225,7 +225,7 @@ class StatusEvent(_message.Message):
|
||||
def __init__(self, deduplication_id: _Optional[str] = ..., time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., device_info: _Optional[_Union[DeviceInfo, _Mapping]] = ..., margin: _Optional[int] = ..., external_power_source: bool = ..., battery_level_unavailable: bool = ..., battery_level: _Optional[float] = ...) -> None: ...
|
||||
|
||||
class LocationEvent(_message.Message):
|
||||
__slots__ = ["deduplication_id", "time", "device_info", "location"]
|
||||
__slots__ = ("deduplication_id", "time", "device_info", "location")
|
||||
DEDUPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
TIME_FIELD_NUMBER: _ClassVar[int]
|
||||
DEVICE_INFO_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -237,7 +237,7 @@ class LocationEvent(_message.Message):
|
||||
def __init__(self, deduplication_id: _Optional[str] = ..., time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., device_info: _Optional[_Union[DeviceInfo, _Mapping]] = ..., location: _Optional[_Union[_common_pb2.Location, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class IntegrationEvent(_message.Message):
|
||||
__slots__ = ["deduplication_id", "time", "device_info", "integration_name", "event_type", "object"]
|
||||
__slots__ = ("deduplication_id", "time", "device_info", "integration_name", "event_type", "object")
|
||||
DEDUPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
TIME_FIELD_NUMBER: _ClassVar[int]
|
||||
DEVICE_INFO_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -253,7 +253,7 @@ class IntegrationEvent(_message.Message):
|
||||
def __init__(self, deduplication_id: _Optional[str] = ..., time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., device_info: _Optional[_Union[DeviceInfo, _Mapping]] = ..., integration_name: _Optional[str] = ..., event_type: _Optional[str] = ..., object: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ...
|
||||
|
||||
class DownlinkCommand(_message.Message):
|
||||
__slots__ = ["id", "dev_eui", "confirmed", "f_port", "data", "object"]
|
||||
__slots__ = ("id", "dev_eui", "confirmed", "f_port", "data", "object")
|
||||
ID_FIELD_NUMBER: _ClassVar[int]
|
||||
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
CONFIRMED_FIELD_NUMBER: _ClassVar[int]
|
||||
|
@ -1,6 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: chirpstack-api/stream/api_request.proto
|
||||
# Protobuf Python Version: 4.25.0
|
||||
"""Generated protocol buffer code."""
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import descriptor_pool as _descriptor_pool
|
||||
@ -22,11 +23,10 @@ _globals = globals()
|
||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
||||
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'chirpstack_api.stream.api_request_pb2', _globals)
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
|
||||
DESCRIPTOR._options = None
|
||||
DESCRIPTOR._serialized_options = b'\n\030io.chirpstack.api.streamB\017ApiRequestProtoP\001Z1github.com/chirpstack/chirpstack/api/go/v4/stream\252\002\021Chirpstack.Stream'
|
||||
_APIREQUESTLOG_METADATAENTRY._options = None
|
||||
_APIREQUESTLOG_METADATAENTRY._serialized_options = b'8\001'
|
||||
_globals['DESCRIPTOR']._options = None
|
||||
_globals['DESCRIPTOR']._serialized_options = b'\n\030io.chirpstack.api.streamB\017ApiRequestProtoP\001Z1github.com/chirpstack/chirpstack/api/go/v4/stream\252\002\021Chirpstack.Stream'
|
||||
_globals['_APIREQUESTLOG_METADATAENTRY']._options = None
|
||||
_globals['_APIREQUESTLOG_METADATAENTRY']._serialized_options = b'8\001'
|
||||
_globals['_APIREQUESTLOG']._serialized_start=149
|
||||
_globals['_APIREQUESTLOG']._serialized_end=301
|
||||
_globals['_APIREQUESTLOG_METADATAENTRY']._serialized_start=254
|
||||
|
@ -9,9 +9,9 @@ from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Opti
|
||||
DESCRIPTOR: _descriptor.FileDescriptor
|
||||
|
||||
class ApiRequestLog(_message.Message):
|
||||
__slots__ = ["service", "method", "metadata"]
|
||||
__slots__ = ("service", "method", "metadata")
|
||||
class MetadataEntry(_message.Message):
|
||||
__slots__ = ["key", "value"]
|
||||
__slots__ = ("key", "value")
|
||||
KEY_FIELD_NUMBER: _ClassVar[int]
|
||||
VALUE_FIELD_NUMBER: _ClassVar[int]
|
||||
key: str
|
||||
|
@ -1,6 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: chirpstack-api/stream/backend_interfaces.proto
|
||||
# Protobuf Python Version: 4.25.0
|
||||
"""Generated protocol buffer code."""
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import descriptor_pool as _descriptor_pool
|
||||
@ -20,9 +21,8 @@ _globals = globals()
|
||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
||||
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'chirpstack_api.stream.backend_interfaces_pb2', _globals)
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
|
||||
DESCRIPTOR._options = None
|
||||
DESCRIPTOR._serialized_options = b'\n\030io.chirpstack.api.streamB\026BackendInterfacesProtoP\001Z1github.com/chirpstack/chirpstack/api/go/v4/stream\252\002\021Chirpstack.Stream'
|
||||
_globals['DESCRIPTOR']._options = None
|
||||
_globals['DESCRIPTOR']._serialized_options = b'\n\030io.chirpstack.api.streamB\026BackendInterfacesProtoP\001Z1github.com/chirpstack/chirpstack/api/go/v4/stream\252\002\021Chirpstack.Stream'
|
||||
_globals['_BACKENDINTERFACESREQUEST']._serialized_start=92
|
||||
_globals['_BACKENDINTERFACESREQUEST']._serialized_end=335
|
||||
# @@protoc_insertion_point(module_scope)
|
||||
|
@ -6,7 +6,7 @@ from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Opti
|
||||
DESCRIPTOR: _descriptor.FileDescriptor
|
||||
|
||||
class BackendInterfacesRequest(_message.Message):
|
||||
__slots__ = ["sender_id", "receiver_id", "time", "transaction_id", "message_type", "result_code", "request_body", "request_error", "response_body"]
|
||||
__slots__ = ("sender_id", "receiver_id", "time", "transaction_id", "message_type", "result_code", "request_body", "request_error", "response_body")
|
||||
SENDER_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
RECEIVER_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
TIME_FIELD_NUMBER: _ClassVar[int]
|
||||
|
@ -1,6 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: chirpstack-api/stream/frame.proto
|
||||
# Protobuf Python Version: 4.25.0
|
||||
"""Generated protocol buffer code."""
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import descriptor_pool as _descriptor_pool
|
||||
@ -22,9 +23,8 @@ _globals = globals()
|
||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
||||
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'chirpstack_api.stream.frame_pb2', _globals)
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
|
||||
DESCRIPTOR._options = None
|
||||
DESCRIPTOR._serialized_options = b'\n\030io.chirpstack.api.streamB\nFrameProtoP\001Z1github.com/chirpstack/chirpstack/api/go/v4/stream\252\002\021Chirpstack.Stream'
|
||||
_globals['DESCRIPTOR']._options = None
|
||||
_globals['DESCRIPTOR']._serialized_options = b'\n\030io.chirpstack.api.streamB\nFrameProtoP\001Z1github.com/chirpstack/chirpstack/api/go/v4/stream\252\002\021Chirpstack.Stream'
|
||||
_globals['_UPLINKFRAMELOG']._serialized_start=143
|
||||
_globals['_UPLINKFRAMELOG']._serialized_end=415
|
||||
_globals['_DOWNLINKFRAMELOG']._serialized_start=418
|
||||
|
@ -9,7 +9,7 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map
|
||||
DESCRIPTOR: _descriptor.FileDescriptor
|
||||
|
||||
class UplinkFrameLog(_message.Message):
|
||||
__slots__ = ["phy_payload", "tx_info", "rx_info", "m_type", "dev_addr", "dev_eui", "time", "plaintext_f_opts", "plaintext_frm_payload"]
|
||||
__slots__ = ("phy_payload", "tx_info", "rx_info", "m_type", "dev_addr", "dev_eui", "time", "plaintext_f_opts", "plaintext_frm_payload")
|
||||
PHY_PAYLOAD_FIELD_NUMBER: _ClassVar[int]
|
||||
TX_INFO_FIELD_NUMBER: _ClassVar[int]
|
||||
RX_INFO_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -31,7 +31,7 @@ class UplinkFrameLog(_message.Message):
|
||||
def __init__(self, phy_payload: _Optional[bytes] = ..., tx_info: _Optional[_Union[_gw_pb2.UplinkTxInfo, _Mapping]] = ..., rx_info: _Optional[_Iterable[_Union[_gw_pb2.UplinkRxInfo, _Mapping]]] = ..., m_type: _Optional[_Union[_common_pb2.MType, str]] = ..., dev_addr: _Optional[str] = ..., dev_eui: _Optional[str] = ..., time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., plaintext_f_opts: bool = ..., plaintext_frm_payload: bool = ...) -> None: ...
|
||||
|
||||
class DownlinkFrameLog(_message.Message):
|
||||
__slots__ = ["time", "phy_payload", "tx_info", "downlink_id", "gateway_id", "m_type", "dev_addr", "dev_eui", "plaintext_f_opts", "plaintext_frm_payload"]
|
||||
__slots__ = ("time", "phy_payload", "tx_info", "downlink_id", "gateway_id", "m_type", "dev_addr", "dev_eui", "plaintext_f_opts", "plaintext_frm_payload")
|
||||
TIME_FIELD_NUMBER: _ClassVar[int]
|
||||
PHY_PAYLOAD_FIELD_NUMBER: _ClassVar[int]
|
||||
TX_INFO_FIELD_NUMBER: _ClassVar[int]
|
||||
|
@ -1,6 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: chirpstack-api/stream/meta.proto
|
||||
# Protobuf Python Version: 4.25.0
|
||||
"""Generated protocol buffer code."""
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import descriptor_pool as _descriptor_pool
|
||||
@ -21,9 +22,8 @@ _globals = globals()
|
||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
||||
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'chirpstack_api.stream.meta_pb2', _globals)
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
|
||||
DESCRIPTOR._options = None
|
||||
DESCRIPTOR._serialized_options = b'\n\030io.chirpstack.api.streamB\tMetaProtoP\001Z1github.com/chirpstack/chirpstack/api/go/v4/stream\252\002\021Chirpstack.Stream'
|
||||
_globals['DESCRIPTOR']._options = None
|
||||
_globals['DESCRIPTOR']._serialized_options = b'\n\030io.chirpstack.api.streamB\tMetaProtoP\001Z1github.com/chirpstack/chirpstack/api/go/v4/stream\252\002\021Chirpstack.Stream'
|
||||
_globals['_UPLINKMETA']._serialized_start=109
|
||||
_globals['_UPLINKMETA']._serialized_end=349
|
||||
_globals['_DOWNLINKMETA']._serialized_start=352
|
||||
|
@ -8,7 +8,7 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map
|
||||
DESCRIPTOR: _descriptor.FileDescriptor
|
||||
|
||||
class UplinkMeta(_message.Message):
|
||||
__slots__ = ["dev_eui", "tx_info", "rx_info", "phy_payload_byte_count", "mac_command_byte_count", "application_payload_byte_count", "message_type"]
|
||||
__slots__ = ("dev_eui", "tx_info", "rx_info", "phy_payload_byte_count", "mac_command_byte_count", "application_payload_byte_count", "message_type")
|
||||
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
TX_INFO_FIELD_NUMBER: _ClassVar[int]
|
||||
RX_INFO_FIELD_NUMBER: _ClassVar[int]
|
||||
@ -26,7 +26,7 @@ class UplinkMeta(_message.Message):
|
||||
def __init__(self, dev_eui: _Optional[str] = ..., tx_info: _Optional[_Union[_gw_pb2.UplinkTxInfo, _Mapping]] = ..., rx_info: _Optional[_Iterable[_Union[_gw_pb2.UplinkRxInfo, _Mapping]]] = ..., phy_payload_byte_count: _Optional[int] = ..., mac_command_byte_count: _Optional[int] = ..., application_payload_byte_count: _Optional[int] = ..., message_type: _Optional[_Union[_common_pb2.MType, str]] = ...) -> None: ...
|
||||
|
||||
class DownlinkMeta(_message.Message):
|
||||
__slots__ = ["dev_eui", "multicast_group_id", "tx_info", "phy_payload_byte_count", "mac_command_byte_count", "application_payload_byte_count", "message_type", "gateway_id"]
|
||||
__slots__ = ("dev_eui", "multicast_group_id", "tx_info", "phy_payload_byte_count", "mac_command_byte_count", "application_payload_byte_count", "message_type", "gateway_id")
|
||||
DEV_EUI_FIELD_NUMBER: _ClassVar[int]
|
||||
MULTICAST_GROUP_ID_FIELD_NUMBER: _ClassVar[int]
|
||||
TX_INFO_FIELD_NUMBER: _ClassVar[int]
|
||||
|
2
api/python/src/setup.py
vendored
2
api/python/src/setup.py
vendored
@ -18,7 +18,7 @@ CLASSIFIERS = [
|
||||
|
||||
setup(
|
||||
name='chirpstack-api',
|
||||
version = "4.6.0",
|
||||
version = "4.7.0-test.1",
|
||||
url='https://github.com/brocaar/chirpstack-api',
|
||||
author='Orne Brocaar',
|
||||
author_email='info@brocaar.com',
|
||||
|
2
api/rust/Cargo.lock
generated
vendored
2
api/rust/Cargo.lock
generated
vendored
@ -172,7 +172,7 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
||||
|
||||
[[package]]
|
||||
name = "chirpstack_api"
|
||||
version = "4.6.0"
|
||||
version = "4.7.0-test.1"
|
||||
dependencies = [
|
||||
"hex",
|
||||
"pbjson",
|
||||
|
2
api/rust/Cargo.toml
vendored
2
api/rust/Cargo.toml
vendored
@ -1,7 +1,7 @@
|
||||
[package]
|
||||
name = "chirpstack_api"
|
||||
description = "ChirpStack Protobuf / gRPC API definitions."
|
||||
version = "4.6.0"
|
||||
version = "4.7.0-test.1"
|
||||
authors = ["Orne Brocaar <info@brocaar.com>"]
|
||||
license = "MIT"
|
||||
homepage = "https://www.chirpstack.io"
|
||||
|
443
api/rust/proto/chirpstack/api/internal.proto
vendored
443
api/rust/proto/chirpstack/api/internal.proto
vendored
@ -15,361 +15,402 @@ import "api/user.proto";
|
||||
|
||||
// InternalService is the service providing API endpoints for internal usage.
|
||||
service InternalService {
|
||||
// Log in a user
|
||||
rpc Login(LoginRequest) returns (LoginResponse) {}
|
||||
// Log in a user
|
||||
rpc Login(LoginRequest) returns (LoginResponse) {}
|
||||
|
||||
// Get the current user's profile
|
||||
rpc Profile(google.protobuf.Empty) returns (ProfileResponse) {}
|
||||
// Get the current user's profile
|
||||
rpc Profile(google.protobuf.Empty) returns (ProfileResponse) {}
|
||||
|
||||
// Perform a global search.
|
||||
rpc GlobalSearch(GlobalSearchRequest) returns (GlobalSearchResponse) {}
|
||||
// Perform a global search.
|
||||
rpc GlobalSearch(GlobalSearchRequest) returns (GlobalSearchResponse) {}
|
||||
|
||||
// CreateApiKey creates the given API key.
|
||||
rpc CreateApiKey(CreateApiKeyRequest) returns (CreateApiKeyResponse) {}
|
||||
// CreateApiKey creates the given API key.
|
||||
rpc CreateApiKey(CreateApiKeyRequest) returns (CreateApiKeyResponse) {}
|
||||
|
||||
// DeleteApiKey deletes the API key.
|
||||
rpc DeleteApiKey(DeleteApiKeyRequest) returns (google.protobuf.Empty) {}
|
||||
// DeleteApiKey deletes the API key.
|
||||
rpc DeleteApiKey(DeleteApiKeyRequest) returns (google.protobuf.Empty) {}
|
||||
|
||||
// ListApiKeys lists the available API keys.
|
||||
rpc ListApiKeys(ListApiKeysRequest) returns (ListApiKeysResponse) {}
|
||||
// ListApiKeys lists the available API keys.
|
||||
rpc ListApiKeys(ListApiKeysRequest) returns (ListApiKeysResponse) {}
|
||||
|
||||
// Get the global settings.
|
||||
rpc Settings(google.protobuf.Empty) returns (SettingsResponse) {}
|
||||
// Get the global settings.
|
||||
rpc Settings(google.protobuf.Empty) returns (SettingsResponse) {}
|
||||
|
||||
// OpenId Connect login.
|
||||
rpc OpenIdConnectLogin(OpenIdConnectLoginRequest) returns (OpenIdConnectLoginResponse) {}
|
||||
// OpenId Connect login.
|
||||
rpc OpenIdConnectLogin(OpenIdConnectLoginRequest)
|
||||
returns (OpenIdConnectLoginResponse) {}
|
||||
|
||||
// GetDevicesSummary returns an aggregated summary of the devices.
|
||||
rpc GetDevicesSummary(GetDevicesSummaryRequest) returns (GetDevicesSummaryResponse) {}
|
||||
// OAuth2 login.
|
||||
rpc OAuth2Login(OAuth2LoginRequest) returns (OAuth2LoginResponse) {}
|
||||
|
||||
// GetGatewaysSummary returns an aggregated summary of the gateways.
|
||||
rpc GetGatewaysSummary(GetGatewaysSummaryRequest) returns (GetGatewaysSummaryResponse) {}
|
||||
// GetDevicesSummary returns an aggregated summary of the devices.
|
||||
rpc GetDevicesSummary(GetDevicesSummaryRequest)
|
||||
returns (GetDevicesSummaryResponse) {}
|
||||
|
||||
// Stream frame for the given Gateway ID.
|
||||
rpc StreamGatewayFrames(StreamGatewayFramesRequest) returns (stream LogItem) {}
|
||||
// GetGatewaysSummary returns an aggregated summary of the gateways.
|
||||
rpc GetGatewaysSummary(GetGatewaysSummaryRequest)
|
||||
returns (GetGatewaysSummaryResponse) {}
|
||||
|
||||
// Stream frames for the given Device EUI.
|
||||
rpc StreamDeviceFrames(StreamDeviceFramesRequest) returns (stream LogItem) {}
|
||||
// Stream frame for the given Gateway ID.
|
||||
rpc StreamGatewayFrames(StreamGatewayFramesRequest) returns (stream LogItem) {
|
||||
}
|
||||
|
||||
// Stream events for the given Device EUI.
|
||||
rpc StreamDeviceEvents(StreamDeviceEventsRequest) returns (stream LogItem) {}
|
||||
// Stream frames for the given Device EUI.
|
||||
rpc StreamDeviceFrames(StreamDeviceFramesRequest) returns (stream LogItem) {}
|
||||
|
||||
// ListRegions lists the available (configured) regions.
|
||||
rpc ListRegions(google.protobuf.Empty) returns (ListRegionsResponse) {}
|
||||
// Stream events for the given Device EUI.
|
||||
rpc StreamDeviceEvents(StreamDeviceEventsRequest) returns (stream LogItem) {}
|
||||
|
||||
// GetRegion returns the region details for the given region.
|
||||
rpc GetRegion(GetRegionRequest) returns (GetRegionResponse) {}
|
||||
// ListRegions lists the available (configured) regions.
|
||||
rpc ListRegions(google.protobuf.Empty) returns (ListRegionsResponse) {}
|
||||
|
||||
// GetRegion returns the region details for the given region.
|
||||
rpc GetRegion(GetRegionRequest) returns (GetRegionResponse) {}
|
||||
}
|
||||
|
||||
message ApiKey {
|
||||
// API key ID.
|
||||
// This value will be automatically generated on create.
|
||||
string id = 1;
|
||||
// API key ID.
|
||||
// This value will be automatically generated on create.
|
||||
string id = 1;
|
||||
|
||||
// Name.
|
||||
string name = 2;
|
||||
// Name.
|
||||
string name = 2;
|
||||
|
||||
// Is global admin key.
|
||||
bool is_admin = 3;
|
||||
// Is global admin key.
|
||||
bool is_admin = 3;
|
||||
|
||||
// Tenant ID.
|
||||
// In case the API key is intended to manage resources under a single tenant.
|
||||
string tenant_id = 4;
|
||||
// Tenant ID.
|
||||
// In case the API key is intended to manage resources under a single tenant.
|
||||
string tenant_id = 4;
|
||||
}
|
||||
|
||||
message CreateApiKeyRequest {
|
||||
// The API key to create.
|
||||
ApiKey api_key = 1;
|
||||
// The API key to create.
|
||||
ApiKey api_key = 1;
|
||||
}
|
||||
|
||||
message CreateApiKeyResponse {
|
||||
// API key ID.
|
||||
string id = 1;
|
||||
// API key ID.
|
||||
string id = 1;
|
||||
|
||||
// API token for authentication API requests.
|
||||
string token = 2;
|
||||
// API token for authentication API requests.
|
||||
string token = 2;
|
||||
}
|
||||
|
||||
message DeleteApiKeyRequest {
|
||||
// API key ID.
|
||||
string id = 1;
|
||||
// API key ID.
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message ListApiKeysRequest {
|
||||
// Max number of items to return.
|
||||
uint32 limit = 1;
|
||||
// Max number of items to return.
|
||||
uint32 limit = 1;
|
||||
|
||||
// Offset in the result-set (for pagination).
|
||||
uint32 offset = 2;
|
||||
// Offset in the result-set (for pagination).
|
||||
uint32 offset = 2;
|
||||
|
||||
// Return only admin keys.
|
||||
bool is_admin = 3;
|
||||
// Return only admin keys.
|
||||
bool is_admin = 3;
|
||||
|
||||
// Filter on tenant ID.
|
||||
string tenant_id = 4;
|
||||
// Filter on tenant ID.
|
||||
string tenant_id = 4;
|
||||
}
|
||||
|
||||
message ListApiKeysResponse {
|
||||
// Total number of API keys.
|
||||
uint32 total_count = 1;
|
||||
// Total number of API keys.
|
||||
uint32 total_count = 1;
|
||||
|
||||
repeated ApiKey result = 2;
|
||||
repeated ApiKey result = 2;
|
||||
}
|
||||
|
||||
// Defines a tenant to which the user is associated.
|
||||
message UserTenantLink {
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 1;
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 1;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 2;
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 2;
|
||||
|
||||
// Tenant ID.
|
||||
string tenant_id = 3;
|
||||
// Tenant ID.
|
||||
string tenant_id = 3;
|
||||
|
||||
// User is admin within the context of this tenant.
|
||||
// There is no need to set the is_device_admin and is_gateway_admin flags.
|
||||
bool is_admin = 4;
|
||||
// User is admin within the context of this tenant.
|
||||
// There is no need to set the is_device_admin and is_gateway_admin flags.
|
||||
bool is_admin = 4;
|
||||
|
||||
// User is able to modify device related resources (applications,
|
||||
// device-profiles, devices, multicast-groups).
|
||||
bool is_device_admin = 5;
|
||||
// User is able to modify device related resources (applications,
|
||||
// device-profiles, devices, multicast-groups).
|
||||
bool is_device_admin = 5;
|
||||
|
||||
// User is able to modify gateways.
|
||||
bool is_gateway_admin = 6;
|
||||
// User is able to modify gateways.
|
||||
bool is_gateway_admin = 6;
|
||||
}
|
||||
|
||||
message LoginRequest {
|
||||
// Email of the user.
|
||||
string email = 1;
|
||||
// Email of the user.
|
||||
string email = 1;
|
||||
|
||||
// Password of the user.
|
||||
string password = 2;
|
||||
// Password of the user.
|
||||
string password = 2;
|
||||
}
|
||||
|
||||
message LoginResponse {
|
||||
// The JWT tag to be used to access chirpstack-application-server interfaces.
|
||||
string jwt = 1;
|
||||
// The JWT tag to be used to access chirpstack-application-server interfaces.
|
||||
string jwt = 1;
|
||||
}
|
||||
|
||||
message ProfileResponse {
|
||||
// User object.
|
||||
User user = 1;
|
||||
// User object.
|
||||
User user = 1;
|
||||
|
||||
// Tenants to which the user is associated.
|
||||
repeated UserTenantLink tenants = 3;
|
||||
// Tenants to which the user is associated.
|
||||
repeated UserTenantLink tenants = 3;
|
||||
}
|
||||
|
||||
message GlobalSearchRequest {
|
||||
// Search query.
|
||||
string search = 1;
|
||||
// Search query.
|
||||
string search = 1;
|
||||
|
||||
// Max number of results to return.
|
||||
int64 limit = 2;
|
||||
// Max number of results to return.
|
||||
int64 limit = 2;
|
||||
|
||||
// Offset offset of the result-set (for pagination).
|
||||
int64 offset = 3;
|
||||
// Offset offset of the result-set (for pagination).
|
||||
int64 offset = 3;
|
||||
}
|
||||
|
||||
message GlobalSearchResponse {
|
||||
repeated GlobalSearchResult result = 1;
|
||||
}
|
||||
message GlobalSearchResponse { repeated GlobalSearchResult result = 1; }
|
||||
|
||||
message GlobalSearchResult {
|
||||
// Record kind.
|
||||
string kind = 1;
|
||||
// Record kind.
|
||||
string kind = 1;
|
||||
|
||||
// Search score.
|
||||
float score = 2;
|
||||
// Search score.
|
||||
float score = 2;
|
||||
|
||||
// Organization id.
|
||||
string tenant_id = 3;
|
||||
// Organization id.
|
||||
string tenant_id = 3;
|
||||
|
||||
// Organization name.
|
||||
string tenant_name = 4;
|
||||
// Organization name.
|
||||
string tenant_name = 4;
|
||||
|
||||
// Application id.
|
||||
string application_id = 5;
|
||||
// Application id.
|
||||
string application_id = 5;
|
||||
|
||||
// Application name.
|
||||
string application_name = 6;
|
||||
// Application name.
|
||||
string application_name = 6;
|
||||
|
||||
// Device DevEUI (hex encoded).
|
||||
string device_dev_eui = 7;
|
||||
// Device DevEUI (hex encoded).
|
||||
string device_dev_eui = 7;
|
||||
|
||||
// Device name.
|
||||
string device_name = 8;
|
||||
// Device name.
|
||||
string device_name = 8;
|
||||
|
||||
// Gateway MAC (hex encoded).
|
||||
string gateway_id = 9;
|
||||
// Gateway MAC (hex encoded).
|
||||
string gateway_id = 9;
|
||||
|
||||
// Gateway name.
|
||||
string gateway_name = 10;
|
||||
// Gateway name.
|
||||
string gateway_name = 10;
|
||||
}
|
||||
|
||||
message SettingsResponse {
|
||||
// OpenId Connect settings.
|
||||
OpenIdConnect openid_connect = 1;
|
||||
// OpenId Connect settings.
|
||||
OpenIdConnect openid_connect = 1;
|
||||
|
||||
// OAuth2 settings.
|
||||
OAuth2 oauth2 = 2;
|
||||
}
|
||||
|
||||
message OpenIdConnect {
|
||||
// Enable OpenId Connect authentication.
|
||||
bool enabled = 1;
|
||||
// Enable OpenId Connect authentication.
|
||||
bool enabled = 1;
|
||||
|
||||
// Login url.
|
||||
string login_url = 2 [json_name = "loginURL"];
|
||||
// Login url.
|
||||
string login_url = 2;
|
||||
|
||||
// Login label.
|
||||
string login_label = 3;
|
||||
// Login label.
|
||||
string login_label = 3;
|
||||
|
||||
// Logout url.
|
||||
string logout_url = 4 [json_name = "logoutURL"];
|
||||
// Logout url.
|
||||
string logout_url = 4;
|
||||
|
||||
// Login redirect.
|
||||
bool login_redirect = 5;
|
||||
}
|
||||
|
||||
message OAuth2 {
|
||||
// OAuth2 is enabled.
|
||||
bool enabled = 1;
|
||||
|
||||
// Login url.
|
||||
string login_url = 2;
|
||||
|
||||
// Login label.
|
||||
string login_label = 3;
|
||||
|
||||
// Logout url.
|
||||
string logout_url = 4;
|
||||
|
||||
// Login redirect.
|
||||
bool login_redirect = 5;
|
||||
}
|
||||
|
||||
message OpenIdConnectLoginRequest {
|
||||
// OpenId Connect callback code.
|
||||
string code = 1;
|
||||
// OpenId Connect callback code.
|
||||
string code = 1;
|
||||
|
||||
// OpenId Connect callback state.
|
||||
string state = 2;
|
||||
// OpenId Connect callback state.
|
||||
string state = 2;
|
||||
}
|
||||
|
||||
message OpenIdConnectLoginResponse {
|
||||
// Token to use for authentication.
|
||||
string token = 1;
|
||||
// Token to use for authentication.
|
||||
string token = 1;
|
||||
}
|
||||
|
||||
message OAuth2LoginRequest {
|
||||
// OAuth2 callback code.
|
||||
string code = 1;
|
||||
|
||||
// OAuth2 callback state.
|
||||
string state = 2;
|
||||
}
|
||||
|
||||
message OAuth2LoginResponse {
|
||||
// Token to use for authentication.
|
||||
string token = 1;
|
||||
}
|
||||
|
||||
message GetDevicesSummaryRequest {
|
||||
// Tenant ID (UUID).
|
||||
string tenant_id = 1;
|
||||
// Tenant ID (UUID).
|
||||
string tenant_id = 1;
|
||||
}
|
||||
|
||||
message GetDevicesSummaryResponse {
|
||||
// Active count.
|
||||
uint32 active_count = 1;
|
||||
// Active count.
|
||||
uint32 active_count = 1;
|
||||
|
||||
// Inactive count.
|
||||
uint32 inactive_count = 2;
|
||||
// Inactive count.
|
||||
uint32 inactive_count = 2;
|
||||
|
||||
// per data-rate count.
|
||||
// Devices that have never been seen are excluded.
|
||||
map<uint32, uint32> dr_count = 3;
|
||||
// per data-rate count.
|
||||
// Devices that have never been seen are excluded.
|
||||
map<uint32, uint32> dr_count = 3;
|
||||
|
||||
// Never seen count.
|
||||
uint32 never_seen_count = 4;
|
||||
// Never seen count.
|
||||
uint32 never_seen_count = 4;
|
||||
}
|
||||
|
||||
message GetGatewaysSummaryRequest {
|
||||
// Tenant ID (UUID).
|
||||
string tenant_id = 1;
|
||||
// Tenant ID (UUID).
|
||||
string tenant_id = 1;
|
||||
}
|
||||
|
||||
message GetGatewaysSummaryResponse {
|
||||
// Online count.
|
||||
uint32 online_count = 1;
|
||||
// Online count.
|
||||
uint32 online_count = 1;
|
||||
|
||||
// Offline count.
|
||||
uint32 offline_count = 2;
|
||||
// Offline count.
|
||||
uint32 offline_count = 2;
|
||||
|
||||
// Never seen count.
|
||||
uint32 never_seen_count = 3;
|
||||
// Never seen count.
|
||||
uint32 never_seen_count = 3;
|
||||
}
|
||||
|
||||
message LogItem {
|
||||
// ID.
|
||||
string id = 1;
|
||||
// ID.
|
||||
string id = 1;
|
||||
|
||||
// Timestamp.
|
||||
google.protobuf.Timestamp time = 2;
|
||||
// Timestamp.
|
||||
google.protobuf.Timestamp time = 2;
|
||||
|
||||
// Message.
|
||||
string description = 3;
|
||||
// Message.
|
||||
string description = 3;
|
||||
|
||||
// Body.
|
||||
string body = 4;
|
||||
// Body.
|
||||
string body = 4;
|
||||
|
||||
// Properties.
|
||||
map<string, string> properties = 5;
|
||||
// Properties.
|
||||
map<string, string> properties = 5;
|
||||
}
|
||||
|
||||
message StreamGatewayFramesRequest {
|
||||
// Gateway ID (EUI64).
|
||||
string gateway_id = 1;
|
||||
// Gateway ID (EUI64).
|
||||
string gateway_id = 1;
|
||||
}
|
||||
|
||||
message StreamDeviceFramesRequest {
|
||||
// Device EUI.
|
||||
string dev_eui = 1;
|
||||
// Device EUI.
|
||||
string dev_eui = 1;
|
||||
}
|
||||
|
||||
message StreamDeviceEventsRequest {
|
||||
// Device EUI.
|
||||
string dev_eui = 1;
|
||||
// Device EUI.
|
||||
string dev_eui = 1;
|
||||
}
|
||||
|
||||
message ListRegionsResponse {
|
||||
// Configured regions.
|
||||
repeated RegionListItem regions = 1;
|
||||
// Configured regions.
|
||||
repeated RegionListItem regions = 1;
|
||||
}
|
||||
|
||||
message RegionListItem {
|
||||
// ID.
|
||||
string id = 1;
|
||||
// ID.
|
||||
string id = 1;
|
||||
|
||||
// Region.
|
||||
common.Region region = 2;
|
||||
// Region.
|
||||
common.Region region = 2;
|
||||
|
||||
// Description.
|
||||
string description = 3;
|
||||
// Description.
|
||||
string description = 3;
|
||||
}
|
||||
|
||||
message GetRegionRequest {
|
||||
// Region ID.
|
||||
string id = 1;
|
||||
// Region ID.
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message GetRegionResponse {
|
||||
// ID.
|
||||
string id = 1;
|
||||
// ID.
|
||||
string id = 1;
|
||||
|
||||
// Region.
|
||||
common.Region region = 2;
|
||||
// Region.
|
||||
common.Region region = 2;
|
||||
|
||||
// User information.
|
||||
string user_info = 3;
|
||||
// User information.
|
||||
string user_info = 3;
|
||||
|
||||
// Uplink channels.
|
||||
repeated RegionChannel uplink_channels = 4;
|
||||
// Uplink channels.
|
||||
repeated RegionChannel uplink_channels = 4;
|
||||
|
||||
// RX1 delay.
|
||||
uint32 rx1_delay = 5;
|
||||
// RX1 delay.
|
||||
uint32 rx1_delay = 5;
|
||||
|
||||
// RX1 data-rate offset.
|
||||
uint32 rx1_dr_offset = 6;
|
||||
// RX1 data-rate offset.
|
||||
uint32 rx1_dr_offset = 6;
|
||||
|
||||
// RX2 DR.
|
||||
uint32 rx2_dr = 7;
|
||||
// RX2 DR.
|
||||
uint32 rx2_dr = 7;
|
||||
|
||||
// RX2 frequency.
|
||||
uint32 rx2_frequency = 8;
|
||||
// RX2 frequency.
|
||||
uint32 rx2_frequency = 8;
|
||||
|
||||
// Class-B ping-slot DR.
|
||||
uint32 class_b_ping_slot_dr = 9;
|
||||
// Class-B ping-slot DR.
|
||||
uint32 class_b_ping_slot_dr = 9;
|
||||
|
||||
// Class-B ping-slot frequency.
|
||||
uint32 class_b_ping_slot_frequency = 10;
|
||||
// Class-B ping-slot frequency.
|
||||
uint32 class_b_ping_slot_frequency = 10;
|
||||
|
||||
// Region description.
|
||||
string description = 11;
|
||||
// Region description.
|
||||
string description = 11;
|
||||
}
|
||||
|
||||
message RegionChannel {
|
||||
// Frequency (Hz).
|
||||
uint32 frequency = 1;
|
||||
// Frequency (Hz).
|
||||
uint32 frequency = 1;
|
||||
|
||||
// Min DR.
|
||||
uint32 dr_min = 2;
|
||||
// Min DR.
|
||||
uint32 dr_min = 2;
|
||||
|
||||
// Max DR.
|
||||
uint32 dr_max = 3;
|
||||
// Max DR.
|
||||
uint32 dr_max = 3;
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "backend"
|
||||
version = "4.6.0"
|
||||
version = "4.7.0-test.1"
|
||||
authors = ["Orne Brocaar <info@brocaar.com>"]
|
||||
edition = "2018"
|
||||
publish = false
|
||||
@ -21,4 +21,4 @@ chirpstack_api = { path = "../api/rust", default-features = false, features = ["
|
||||
|
||||
# Development and testing
|
||||
[dev-dependencies]
|
||||
httpmock = "0.6"
|
||||
httpmock = "0.7.0-rc.1"
|
||||
|
@ -2,9 +2,7 @@
|
||||
extern crate anyhow;
|
||||
|
||||
use std::fs::File;
|
||||
use std::future::Future;
|
||||
use std::io::Read;
|
||||
use std::pin::Pin;
|
||||
use std::time::Duration;
|
||||
|
||||
use aes_kw::Kek;
|
||||
@ -13,6 +11,7 @@ use chrono::{DateTime, Utc};
|
||||
use reqwest::header::{HeaderMap, AUTHORIZATION, CONTENT_TYPE};
|
||||
use reqwest::{Certificate, Identity};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use tokio::sync::mpsc::Sender;
|
||||
use tokio::sync::oneshot::Receiver;
|
||||
use tracing::{debug, error, info, span, trace, Instrument, Level};
|
||||
|
||||
@ -35,14 +34,6 @@ pub trait BasePayloadResultProvider {
|
||||
fn base_payload(&self) -> &BasePayloadResult;
|
||||
}
|
||||
|
||||
pub type RequestLogFn = Box<
|
||||
dyn Fn(
|
||||
stream::BackendInterfacesRequest,
|
||||
) -> Pin<Box<dyn Future<Output = Result<()>> + Sync + Send>>
|
||||
+ Sync
|
||||
+ Send,
|
||||
>;
|
||||
|
||||
pub struct ClientConfig {
|
||||
pub sender_id: Vec<u8>,
|
||||
pub receiver_id: Vec<u8>,
|
||||
@ -63,7 +54,7 @@ pub struct ClientConfig {
|
||||
pub use_target_role_suffix: bool,
|
||||
|
||||
// Request log function.
|
||||
pub request_log_fn: Option<RequestLogFn>,
|
||||
pub request_log_sender: Option<Sender<stream::BackendInterfacesRequest>>,
|
||||
}
|
||||
|
||||
impl Default for ClientConfig {
|
||||
@ -78,7 +69,7 @@ impl Default for ClientConfig {
|
||||
authorization: None,
|
||||
async_timeout: Duration::from_secs(0),
|
||||
use_target_role_suffix: false,
|
||||
request_log_fn: None,
|
||||
request_log_sender: None,
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -345,9 +336,12 @@ impl Client {
|
||||
be_req_log.request_error = format!("{:#}", e);
|
||||
}
|
||||
|
||||
if let Some(log_fn) = &self.config.request_log_fn {
|
||||
if let Err(e) = log_fn(be_req_log).await {
|
||||
error!(error = %e, "Log request error");
|
||||
if let Some(tx) = &self.config.request_log_sender {
|
||||
// We use try_send here as we don't want to delay the response in case
|
||||
// there is no channel capacity. This would also log an error, proving
|
||||
// feedback that there is a channel capacity issue.
|
||||
if let Err(e) = tx.try_send(be_req_log) {
|
||||
error!(error = %e, "Sending request-log to stream error");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1452,10 +1446,7 @@ pub mod test {
|
||||
let c = Client::new(ClientConfig {
|
||||
sender_id: vec![1, 2, 3],
|
||||
server: server.url("/"),
|
||||
request_log_fn: Some(Box::new(move |log| {
|
||||
let tx = tx.clone();
|
||||
Box::pin(async move { tx.send(log).await.map_err(|e| anyhow!("{}", e)) })
|
||||
})),
|
||||
request_log_sender: Some(tx),
|
||||
..Default::default()
|
||||
})
|
||||
.unwrap();
|
||||
@ -1517,10 +1508,7 @@ pub mod test {
|
||||
let c = Client::new(ClientConfig {
|
||||
sender_id: vec![1, 2, 3],
|
||||
server: server.url("/"),
|
||||
request_log_fn: Some(Box::new(move |log| {
|
||||
let tx = tx.clone();
|
||||
Box::pin(async move { tx.send(log).await.map_err(|e| anyhow!("{}", e)) })
|
||||
})),
|
||||
request_log_sender: Some(tx),
|
||||
..Default::default()
|
||||
})
|
||||
.unwrap();
|
||||
|
@ -3,14 +3,14 @@
|
||||
description = "Library for building external ChirpStack integrations"
|
||||
homepage = "https://www.chirpstack.io/"
|
||||
license = "MIT"
|
||||
version = "4.5.1"
|
||||
version = "4.6.0"
|
||||
authors = ["Orne Brocaar <info@brocaar.com>"]
|
||||
edition = "2021"
|
||||
repository = "https://github.com/chirpstack/chirpstack"
|
||||
|
||||
[dependencies]
|
||||
chirpstack_api = { path = "../api/rust", version = "4.6.0-test.1" }
|
||||
redis = { version = "0.23", features = [
|
||||
chirpstack_api = { path = "../api/rust", version = "4.7.0-test.1" }
|
||||
redis = { version = "0.24", features = [
|
||||
"cluster-async",
|
||||
"tokio-rustls-comp",
|
||||
] }
|
||||
|
@ -3,7 +3,7 @@ name = "chirpstack"
|
||||
description = "ChirpStack is an open-source LoRaWAN(TM) Network Server"
|
||||
repository = "https://github.com/chirpstack/chirpstack"
|
||||
homepage = "https://www.chirpstack.io/"
|
||||
version = "4.6.0"
|
||||
version = "4.7.0-test.1"
|
||||
authors = ["Orne Brocaar <info@brocaar.com>"]
|
||||
edition = "2021"
|
||||
publish = false
|
||||
@ -26,17 +26,19 @@ handlebars = "4.4"
|
||||
validator = "0.16"
|
||||
diesel = { version = "2.1", features = [
|
||||
"chrono",
|
||||
"postgres",
|
||||
"r2d2",
|
||||
"uuid",
|
||||
"serde_json",
|
||||
"numeric",
|
||||
"64-column-tables",
|
||||
"postgres_backend",
|
||||
] }
|
||||
diesel_migrations = { version = "2.1" }
|
||||
r2d2 = "0.8"
|
||||
diesel-async = { version = "0.4", features = ["deadpool", "postgres", "async-connection-wrapper"] }
|
||||
tokio-postgres = "0.7"
|
||||
tokio-postgres-rustls = "0.10.0"
|
||||
bigdecimal = "0.4"
|
||||
redis = { version = "0.23", features = ["r2d2", "cluster", "tls-rustls"] }
|
||||
redis = { version = "0.24", features = [ "tls-rustls", "tokio-rustls-comp"] }
|
||||
deadpool-redis = { version = "0.14", features = ["cluster"] }
|
||||
|
||||
# Logging
|
||||
tracing = "0.1"
|
||||
@ -67,13 +69,13 @@ gcp_auth = "0.9"
|
||||
lapin = "2.3"
|
||||
tokio-executor-trait = "2.1"
|
||||
tokio-reactor-trait = "1.1"
|
||||
rdkafka = { version = "0.34", default-features = false, features = ["tokio", "cmake-build"] }
|
||||
rdkafka = { version = "0.36", default-features = false, features = ["tokio", "cmake-build"] }
|
||||
|
||||
# gRPC and Protobuf
|
||||
tonic = "0.10"
|
||||
tonic-web = "0.10"
|
||||
tonic-reflection = "0.10"
|
||||
tokio = { version = "1.32", features = ["macros", "rt-multi-thread"] }
|
||||
tokio = { version = "1.35", features = ["macros", "rt-multi-thread"] }
|
||||
tokio-stream = "0.1"
|
||||
prost-types = "0.12"
|
||||
prost = "0.12"
|
||||
@ -84,9 +86,10 @@ warp = { version = "0.3", features = ["tls"], default-features = false }
|
||||
hyper = "0.14"
|
||||
tower = "0.4"
|
||||
futures = "0.3"
|
||||
futures-util = "0.3"
|
||||
http = "0.2"
|
||||
http-body = "0.4"
|
||||
rust-embed = "8.0"
|
||||
rust-embed = "8.1"
|
||||
mime_guess = "2.0"
|
||||
tower-http = { version = "0.4", features = ["trace", "auth"] }
|
||||
|
||||
@ -97,12 +100,17 @@ anyhow = "1.0"
|
||||
# Authentication
|
||||
pbkdf2 = { version = "0.12", features = ["simple"] }
|
||||
rand_core = { version = "0.6", features = ["std"] }
|
||||
jsonwebtoken = "8.3"
|
||||
openssl = { version = "0.10" }
|
||||
jsonwebtoken = "9.2"
|
||||
rustls = "0.21"
|
||||
rustls-native-certs = "0.6"
|
||||
rustls-pemfile = "1.0"
|
||||
rsa = "0.9"
|
||||
rcgen = { version = "0.12", features = [ "x509-parser" ] }
|
||||
openidconnect = { version = "3.3", features = ["accept-rfc3339-timestamps"] }
|
||||
oauth2 = "4.4"
|
||||
|
||||
# MQTT
|
||||
paho-mqtt = { version = "0.12", features = ["ssl"] }
|
||||
rumqttc = { version = "0.23", features = ["url"] }
|
||||
hex = "0.4"
|
||||
|
||||
# Codecs
|
||||
@ -124,12 +132,12 @@ base64 = "0.21"
|
||||
async-recursion = "1.0"
|
||||
regex = "1.9"
|
||||
petgraph = "0.6"
|
||||
prometheus-client = "0.21"
|
||||
prometheus-client = "0.22"
|
||||
pin-project = "1.1"
|
||||
|
||||
# Development and testing
|
||||
[dev-dependencies]
|
||||
httpmock = "0.6"
|
||||
httpmock = "0.7.0-rc.1"
|
||||
bytes = "1.4"
|
||||
dotenv = "0.15"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="as923"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="as923_2"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="as923_3"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="as923_4"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="au915_0"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="au915_1"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="au915_2"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="au915_3"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="au915_4"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="au915_5"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="au915_6"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="au915_7"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="cn470_0"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="cn470_1"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="cn470_10"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="cn470_11"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="cn470_2"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="cn470_3"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="cn470_4"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="cn470_5"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="cn470_6"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="cn470_7"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="cn470_8"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="cn470_9"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="cn779"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="eu433"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="eu868"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="in865"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="ism2400"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="kr920"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="ru864"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="us915_0"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="us915_1"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="us915_2"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="us915_3"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
@ -37,6 +37,16 @@
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="us915_4"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
# In case there are multiple ChirpStack instances sharing the same
|
||||
# subscription name, then the MQTT broker will deliver a gateway event
|
||||
# only to one subscriber. In case you have a production and
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user