diff --git a/api/csharp/Chirpstack.Api.csproj b/api/csharp/Chirpstack.Api.csproj
index fa95f9bb..e7a6a62f 100644
--- a/api/csharp/Chirpstack.Api.csproj
+++ b/api/csharp/Chirpstack.Api.csproj
@@ -18,11 +18,11 @@
-
+
diff --git a/api/csharp/Chirpstack/api/RequestLog.cs b/api/csharp/Chirpstack/streams/ApiRequests.cs
similarity index 84%
rename from api/csharp/Chirpstack/api/RequestLog.cs
rename to api/csharp/Chirpstack/streams/ApiRequests.cs
index aaa83468..328558cc 100644
--- a/api/csharp/Chirpstack/api/RequestLog.cs
+++ b/api/csharp/Chirpstack/streams/ApiRequests.cs
@@ -1,6 +1,6 @@
//
// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: api/request_log.proto
+// source: streams/api_requests.proto
//
#pragma warning disable 1591, 0612, 3021, 8981
#region Designer generated code
@@ -9,54 +9,55 @@ using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
-namespace Chirpstack.Api {
+namespace Chirpstack.Streams {
- /// Holder for reflection information generated from api/request_log.proto
- public static partial class RequestLogReflection {
+ /// Holder for reflection information generated from streams/api_requests.proto
+ public static partial class ApiRequestsReflection {
#region Descriptor
- /// File descriptor for api/request_log.proto
+ /// File descriptor for streams/api_requests.proto
public static pbr::FileDescriptor Descriptor {
get { return descriptor; }
}
private static pbr::FileDescriptor descriptor;
- static RequestLogReflection() {
+ static ApiRequestsReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
- "ChVhcGkvcmVxdWVzdF9sb2cucHJvdG8SA2FwaRofZ29vZ2xlL3Byb3RvYnVm",
- "L3RpbWVzdGFtcC5wcm90bxoTY29tbW9uL2NvbW1vbi5wcm90bxoLZ3cvZ3cu",
- "cHJvdG8ijwEKClJlcXVlc3RMb2cSDwoHc2VydmljZRgBIAEoCRIOCgZtZXRo",
- "b2QYAiABKAkSLwoIbWV0YWRhdGEYAyADKAsyHS5hcGkuUmVxdWVzdExvZy5N",
- "ZXRhZGF0YUVudHJ5Gi8KDU1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0K",
- "BXZhbHVlGAIgASgJOgI4AUJnChFpby5jaGlycHN0YWNrLmFwaUIPUmVxdWVz",
- "dExvZ1Byb3RvUAFaLmdpdGh1Yi5jb20vY2hpcnBzdGFjay9jaGlycHN0YWNr",
- "L2FwaS9nby92NC9hcGmqAg5DaGlycHN0YWNrLkFwaWIGcHJvdG8z"));
+ "ChpzdHJlYW1zL2FwaV9yZXF1ZXN0cy5wcm90bxIHc3RyZWFtcxofZ29vZ2xl",
+ "L3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90bxoTY29tbW9uL2NvbW1vbi5wcm90",
+ "bxoLZ3cvZ3cucHJvdG8imQEKDUFwaVJlcXVlc3RMb2cSDwoHc2VydmljZRgB",
+ "IAEoCRIOCgZtZXRob2QYAiABKAkSNgoIbWV0YWRhdGEYAyADKAsyJC5zdHJl",
+ "YW1zLkFwaVJlcXVlc3RMb2cuTWV0YWRhdGFFbnRyeRovCg1NZXRhZGF0YUVu",
+ "dHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCeAoZaW8uY2hp",
+ "cnBzdGFjay5hcGkuc3RyZWFtc0IQQXBpUmVxdWVzdHNQcm90b1ABWjJnaXRo",
+ "dWIuY29tL2NoaXJwc3RhY2svY2hpcnBzdGFjay9hcGkvZ28vdjQvc3RyZWFt",
+ "c6oCEkNoaXJwc3RhY2suU3RyZWFtc2IGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, global::Chirpstack.Common.CommonReflection.Descriptor, global::Chirpstack.Gateway.GwReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
- new pbr::GeneratedClrTypeInfo(typeof(global::Chirpstack.Api.RequestLog), global::Chirpstack.Api.RequestLog.Parser, new[]{ "Service", "Method", "Metadata" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, })
+ new pbr::GeneratedClrTypeInfo(typeof(global::Chirpstack.Streams.ApiRequestLog), global::Chirpstack.Streams.ApiRequestLog.Parser, new[]{ "Service", "Method", "Metadata" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, })
}));
}
#endregion
}
#region Messages
- public sealed partial class RequestLog : pb::IMessage
+ public sealed partial class ApiRequestLog : pb::IMessage
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage
#endif
{
- private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new RequestLog());
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ApiRequestLog());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
- public static pb::MessageParser Parser { get { return _parser; } }
+ public static pb::MessageParser Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
- get { return global::Chirpstack.Api.RequestLogReflection.Descriptor.MessageTypes[0]; }
+ get { return global::Chirpstack.Streams.ApiRequestsReflection.Descriptor.MessageTypes[0]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -67,7 +68,7 @@ namespace Chirpstack.Api {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
- public RequestLog() {
+ public ApiRequestLog() {
OnConstruction();
}
@@ -75,7 +76,7 @@ namespace Chirpstack.Api {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
- public RequestLog(RequestLog other) : this() {
+ public ApiRequestLog(ApiRequestLog other) : this() {
service_ = other.service_;
method_ = other.method_;
metadata_ = other.metadata_.Clone();
@@ -84,8 +85,8 @@ namespace Chirpstack.Api {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
- public RequestLog Clone() {
- return new RequestLog(this);
+ public ApiRequestLog Clone() {
+ return new ApiRequestLog(this);
}
/// Field number for the "service" field.
@@ -135,12 +136,12 @@ namespace Chirpstack.Api {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override bool Equals(object other) {
- return Equals(other as RequestLog);
+ return Equals(other as ApiRequestLog);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
- public bool Equals(RequestLog other) {
+ public bool Equals(ApiRequestLog other) {
if (ReferenceEquals(other, null)) {
return false;
}
@@ -231,7 +232,7 @@ namespace Chirpstack.Api {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
- public void MergeFrom(RequestLog other) {
+ public void MergeFrom(ApiRequestLog other) {
if (other == null) {
return;
}
diff --git a/api/go/Makefile b/api/go/Makefile
index f89e29e1..d139f515 100644
--- a/api/go/Makefile
+++ b/api/go/Makefile
@@ -25,7 +25,6 @@ api:
protoc ${PROTOC_ARGS} api/device.proto
protoc ${PROTOC_ARGS} api/gateway.proto
protoc ${PROTOC_ARGS} api/multicast_group.proto
- protoc ${PROTOC_ARGS} api/request_log.proto
protoc ${PROTOC_ARGS} api/relay.proto
integration:
@@ -34,3 +33,4 @@ integration:
streams:
protoc ${PROTOC_ARGS} streams/meta.proto
protoc ${PROTOC_ARGS} streams/frames.proto
+ protoc ${PROTOC_ARGS} streams/api_requests.proto
diff --git a/api/go/api/request_log.pb.go b/api/go/api/request_log.pb.go
deleted file mode 100644
index 4118e830..00000000
--- a/api/go/api/request_log.pb.go
+++ /dev/null
@@ -1,185 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.31.0
-// protoc v3.21.9
-// source: api/request_log.proto
-
-package api
-
-import (
- _ "github.com/chirpstack/chirpstack/api/go/v4/common"
- _ "github.com/chirpstack/chirpstack/api/go/v4/gw"
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- _ "google.golang.org/protobuf/types/known/timestamppb"
- reflect "reflect"
- sync "sync"
-)
-
-const (
- // Verify that this generated code is sufficiently up-to-date.
- _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
- // Verify that runtime/protoimpl is sufficiently up-to-date.
- _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-type RequestLog struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // API service name.
- Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
- // API method name.
- Method string `protobuf:"bytes,2,opt,name=method,proto3" json:"method,omitempty"`
- // Metadata.
- Metadata map[string]string `protobuf:"bytes,3,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
-}
-
-func (x *RequestLog) Reset() {
- *x = RequestLog{}
- if protoimpl.UnsafeEnabled {
- mi := &file_api_request_log_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *RequestLog) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*RequestLog) ProtoMessage() {}
-
-func (x *RequestLog) ProtoReflect() protoreflect.Message {
- mi := &file_api_request_log_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use RequestLog.ProtoReflect.Descriptor instead.
-func (*RequestLog) Descriptor() ([]byte, []int) {
- return file_api_request_log_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *RequestLog) GetService() string {
- if x != nil {
- return x.Service
- }
- return ""
-}
-
-func (x *RequestLog) GetMethod() string {
- if x != nil {
- return x.Method
- }
- return ""
-}
-
-func (x *RequestLog) GetMetadata() map[string]string {
- if x != nil {
- return x.Metadata
- }
- return nil
-}
-
-var File_api_request_log_proto protoreflect.FileDescriptor
-
-var file_api_request_log_proto_rawDesc = []byte{
- 0x0a, 0x15, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6c, 0x6f,
- 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x03, 0x61, 0x70, 0x69, 0x1a, 0x1f, 0x67, 0x6f,
- 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69,
- 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x13, 0x63,
- 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x1a, 0x0b, 0x67, 0x77, 0x2f, 0x67, 0x77, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
- 0xb6, 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x12, 0x18,
- 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68,
- 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64,
- 0x12, 0x39, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x4c, 0x6f, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72,
- 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d,
- 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
- 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
- 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76,
- 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x67, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63,
- 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x0f, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01,
- 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69,
- 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61,
- 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69,
- 0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70,
- 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
- file_api_request_log_proto_rawDescOnce sync.Once
- file_api_request_log_proto_rawDescData = file_api_request_log_proto_rawDesc
-)
-
-func file_api_request_log_proto_rawDescGZIP() []byte {
- file_api_request_log_proto_rawDescOnce.Do(func() {
- file_api_request_log_proto_rawDescData = protoimpl.X.CompressGZIP(file_api_request_log_proto_rawDescData)
- })
- return file_api_request_log_proto_rawDescData
-}
-
-var file_api_request_log_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
-var file_api_request_log_proto_goTypes = []interface{}{
- (*RequestLog)(nil), // 0: api.RequestLog
- nil, // 1: api.RequestLog.MetadataEntry
-}
-var file_api_request_log_proto_depIdxs = []int32{
- 1, // 0: api.RequestLog.metadata:type_name -> api.RequestLog.MetadataEntry
- 1, // [1:1] is the sub-list for method output_type
- 1, // [1:1] is the sub-list for method input_type
- 1, // [1:1] is the sub-list for extension type_name
- 1, // [1:1] is the sub-list for extension extendee
- 0, // [0:1] is the sub-list for field type_name
-}
-
-func init() { file_api_request_log_proto_init() }
-func file_api_request_log_proto_init() {
- if File_api_request_log_proto != nil {
- return
- }
- if !protoimpl.UnsafeEnabled {
- file_api_request_log_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*RequestLog); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
- type x struct{}
- out := protoimpl.TypeBuilder{
- File: protoimpl.DescBuilder{
- GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
- RawDescriptor: file_api_request_log_proto_rawDesc,
- NumEnums: 0,
- NumMessages: 2,
- NumExtensions: 0,
- NumServices: 0,
- },
- GoTypes: file_api_request_log_proto_goTypes,
- DependencyIndexes: file_api_request_log_proto_depIdxs,
- MessageInfos: file_api_request_log_proto_msgTypes,
- }.Build()
- File_api_request_log_proto = out.File
- file_api_request_log_proto_rawDesc = nil
- file_api_request_log_proto_goTypes = nil
- file_api_request_log_proto_depIdxs = nil
-}
diff --git a/api/go/streams/api_requests.pb.go b/api/go/streams/api_requests.pb.go
new file mode 100644
index 00000000..d8ac1f0c
--- /dev/null
+++ b/api/go/streams/api_requests.pb.go
@@ -0,0 +1,187 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.31.0
+// protoc v3.21.9
+// source: streams/api_requests.proto
+
+package streams
+
+import (
+ _ "github.com/chirpstack/chirpstack/api/go/v4/common"
+ _ "github.com/chirpstack/chirpstack/api/go/v4/gw"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ _ "google.golang.org/protobuf/types/known/timestamppb"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type ApiRequestLog struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // API service name.
+ Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
+ // API method name.
+ Method string `protobuf:"bytes,2,opt,name=method,proto3" json:"method,omitempty"`
+ // Metadata.
+ Metadata map[string]string `protobuf:"bytes,3,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+}
+
+func (x *ApiRequestLog) Reset() {
+ *x = ApiRequestLog{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_streams_api_requests_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ApiRequestLog) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ApiRequestLog) ProtoMessage() {}
+
+func (x *ApiRequestLog) ProtoReflect() protoreflect.Message {
+ mi := &file_streams_api_requests_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ApiRequestLog.ProtoReflect.Descriptor instead.
+func (*ApiRequestLog) Descriptor() ([]byte, []int) {
+ return file_streams_api_requests_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *ApiRequestLog) GetService() string {
+ if x != nil {
+ return x.Service
+ }
+ return ""
+}
+
+func (x *ApiRequestLog) GetMethod() string {
+ if x != nil {
+ return x.Method
+ }
+ return ""
+}
+
+func (x *ApiRequestLog) GetMetadata() map[string]string {
+ if x != nil {
+ return x.Metadata
+ }
+ return nil
+}
+
+var File_streams_api_requests_proto protoreflect.FileDescriptor
+
+var file_streams_api_requests_proto_rawDesc = []byte{
+ 0x0a, 0x1a, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x72, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x73, 0x74,
+ 0x72, 0x65, 0x61, 0x6d, 0x73, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x63,
+ 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0b, 0x67, 0x77, 0x2f,
+ 0x67, 0x77, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc0, 0x01, 0x0a, 0x0d, 0x41, 0x70, 0x69,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65,
+ 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72,
+ 0x76, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x40, 0x0a, 0x08,
+ 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24,
+ 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x41, 0x70, 0x69, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45,
+ 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x3b,
+ 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
+ 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
+ 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x78, 0x0a, 0x19, 0x69,
+ 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69,
+ 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x42, 0x10, 0x41, 0x70, 0x69, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x32, 0x67, 0x69,
+ 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74,
+ 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61,
+ 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73,
+ 0xaa, 0x02, 0x12, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x74,
+ 0x72, 0x65, 0x61, 0x6d, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_streams_api_requests_proto_rawDescOnce sync.Once
+ file_streams_api_requests_proto_rawDescData = file_streams_api_requests_proto_rawDesc
+)
+
+func file_streams_api_requests_proto_rawDescGZIP() []byte {
+ file_streams_api_requests_proto_rawDescOnce.Do(func() {
+ file_streams_api_requests_proto_rawDescData = protoimpl.X.CompressGZIP(file_streams_api_requests_proto_rawDescData)
+ })
+ return file_streams_api_requests_proto_rawDescData
+}
+
+var file_streams_api_requests_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
+var file_streams_api_requests_proto_goTypes = []interface{}{
+ (*ApiRequestLog)(nil), // 0: streams.ApiRequestLog
+ nil, // 1: streams.ApiRequestLog.MetadataEntry
+}
+var file_streams_api_requests_proto_depIdxs = []int32{
+ 1, // 0: streams.ApiRequestLog.metadata:type_name -> streams.ApiRequestLog.MetadataEntry
+ 1, // [1:1] is the sub-list for method output_type
+ 1, // [1:1] is the sub-list for method input_type
+ 1, // [1:1] is the sub-list for extension type_name
+ 1, // [1:1] is the sub-list for extension extendee
+ 0, // [0:1] is the sub-list for field type_name
+}
+
+func init() { file_streams_api_requests_proto_init() }
+func file_streams_api_requests_proto_init() {
+ if File_streams_api_requests_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_streams_api_requests_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ApiRequestLog); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_streams_api_requests_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 2,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_streams_api_requests_proto_goTypes,
+ DependencyIndexes: file_streams_api_requests_proto_depIdxs,
+ MessageInfos: file_streams_api_requests_proto_msgTypes,
+ }.Build()
+ File_streams_api_requests_proto = out.File
+ file_streams_api_requests_proto_rawDesc = nil
+ file_streams_api_requests_proto_goTypes = nil
+ file_streams_api_requests_proto_depIdxs = nil
+}
diff --git a/api/grpc-web/Makefile b/api/grpc-web/Makefile
index d52e6b28..a5f0e38e 100644
--- a/api/grpc-web/Makefile
+++ b/api/grpc-web/Makefile
@@ -26,7 +26,6 @@ api:
protoc $(PROTOC_ARGS) ../proto/api/device.proto
protoc $(PROTOC_ARGS) ../proto/api/gateway.proto
protoc $(PROTOC_ARGS) ../proto/api/multicast_group.proto
- protoc $(PROTOC_ARGS) ../proto/api/request_log.proto
protoc $(PROTOC_ARGS) ../proto/api/relay.proto
integration:
diff --git a/api/grpc-web/api/request_log_pb.d.ts b/api/grpc-web/api/request_log_pb.d.ts
deleted file mode 100644
index 850c6453..00000000
--- a/api/grpc-web/api/request_log_pb.d.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-import * as jspb from 'google-protobuf'
-
-import * as google_protobuf_timestamp_pb from 'google-protobuf/google/protobuf/timestamp_pb';
-import * as common_common_pb from '../common/common_pb';
-import * as gw_gw_pb from '../gw/gw_pb';
-
-
-export class RequestLog extends jspb.Message {
- getService(): string;
- setService(value: string): RequestLog;
-
- getMethod(): string;
- setMethod(value: string): RequestLog;
-
- getMetadataMap(): jspb.Map;
- clearMetadataMap(): RequestLog;
-
- serializeBinary(): Uint8Array;
- toObject(includeInstance?: boolean): RequestLog.AsObject;
- static toObject(includeInstance: boolean, msg: RequestLog): RequestLog.AsObject;
- static serializeBinaryToWriter(message: RequestLog, writer: jspb.BinaryWriter): void;
- static deserializeBinary(bytes: Uint8Array): RequestLog;
- static deserializeBinaryFromReader(message: RequestLog, reader: jspb.BinaryReader): RequestLog;
-}
-
-export namespace RequestLog {
- export type AsObject = {
- service: string,
- method: string,
- metadataMap: Array<[string, string]>,
- }
-}
-
diff --git a/api/grpc-web/api/request_log_pb.js b/api/grpc-web/api/request_log_pb.js
deleted file mode 100644
index 9270bb08..00000000
--- a/api/grpc-web/api/request_log_pb.js
+++ /dev/null
@@ -1,236 +0,0 @@
-// source: api/request_log.proto
-/**
- * @fileoverview
- * @enhanceable
- * @suppress {messageConventions} JS Compiler reports an error if a variable or
- * field starts with 'MSG_' and isn't a translatable message.
- * @public
- */
-// GENERATED CODE -- DO NOT EDIT!
-
-var jspb = require('google-protobuf');
-var goog = jspb;
-var global = Function('return this')();
-
-var google_protobuf_timestamp_pb = require('google-protobuf/google/protobuf/timestamp_pb.js');
-goog.object.extend(proto, google_protobuf_timestamp_pb);
-var common_common_pb = require('../common/common_pb.js');
-goog.object.extend(proto, common_common_pb);
-var gw_gw_pb = require('../gw/gw_pb.js');
-goog.object.extend(proto, gw_gw_pb);
-goog.exportSymbol('proto.api.RequestLog', null, global);
-/**
- * Generated by JsPbCodeGenerator.
- * @param {Array=} opt_data Optional initial data array, typically from a
- * server response, or constructed directly in Javascript. The array is used
- * in place and becomes part of the constructed object. It is not cloned.
- * If no data is provided, the constructed object will be empty, but still
- * valid.
- * @extends {jspb.Message}
- * @constructor
- */
-proto.api.RequestLog = function(opt_data) {
- jspb.Message.initialize(this, opt_data, 0, -1, null, null);
-};
-goog.inherits(proto.api.RequestLog, jspb.Message);
-if (goog.DEBUG && !COMPILED) {
- /**
- * @public
- * @override
- */
- proto.api.RequestLog.displayName = 'proto.api.RequestLog';
-}
-
-
-
-if (jspb.Message.GENERATE_TO_OBJECT) {
-/**
- * Creates an object representation of this proto.
- * Field names that are reserved in JavaScript and will be renamed to pb_name.
- * Optional fields that are not set will be set to undefined.
- * To access a reserved field use, foo.pb_, eg, foo.pb_default.
- * For the list of reserved names please see:
- * net/proto2/compiler/js/internal/generator.cc#kKeyword.
- * @param {boolean=} opt_includeInstance Deprecated. whether to include the
- * JSPB instance for transitional soy proto support:
- * http://goto/soy-param-migration
- * @return {!Object}
- */
-proto.api.RequestLog.prototype.toObject = function(opt_includeInstance) {
- return proto.api.RequestLog.toObject(opt_includeInstance, this);
-};
-
-
-/**
- * Static version of the {@see toObject} method.
- * @param {boolean|undefined} includeInstance Deprecated. Whether to include
- * the JSPB instance for transitional soy proto support:
- * http://goto/soy-param-migration
- * @param {!proto.api.RequestLog} msg The msg instance to transform.
- * @return {!Object}
- * @suppress {unusedLocalVariables} f is only used for nested messages
- */
-proto.api.RequestLog.toObject = function(includeInstance, msg) {
- var f, obj = {
- service: jspb.Message.getFieldWithDefault(msg, 1, ""),
- method: jspb.Message.getFieldWithDefault(msg, 2, ""),
- metadataMap: (f = msg.getMetadataMap()) ? f.toObject(includeInstance, undefined) : []
- };
-
- if (includeInstance) {
- obj.$jspbMessageInstance = msg;
- }
- return obj;
-};
-}
-
-
-/**
- * Deserializes binary data (in protobuf wire format).
- * @param {jspb.ByteSource} bytes The bytes to deserialize.
- * @return {!proto.api.RequestLog}
- */
-proto.api.RequestLog.deserializeBinary = function(bytes) {
- var reader = new jspb.BinaryReader(bytes);
- var msg = new proto.api.RequestLog;
- return proto.api.RequestLog.deserializeBinaryFromReader(msg, reader);
-};
-
-
-/**
- * Deserializes binary data (in protobuf wire format) from the
- * given reader into the given message object.
- * @param {!proto.api.RequestLog} msg The message object to deserialize into.
- * @param {!jspb.BinaryReader} reader The BinaryReader to use.
- * @return {!proto.api.RequestLog}
- */
-proto.api.RequestLog.deserializeBinaryFromReader = function(msg, reader) {
- while (reader.nextField()) {
- if (reader.isEndGroup()) {
- break;
- }
- var field = reader.getFieldNumber();
- switch (field) {
- case 1:
- var value = /** @type {string} */ (reader.readString());
- msg.setService(value);
- break;
- case 2:
- var value = /** @type {string} */ (reader.readString());
- msg.setMethod(value);
- break;
- case 3:
- var value = msg.getMetadataMap();
- reader.readMessage(value, function(message, reader) {
- jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", "");
- });
- break;
- default:
- reader.skipField();
- break;
- }
- }
- return msg;
-};
-
-
-/**
- * Serializes the message to binary data (in protobuf wire format).
- * @return {!Uint8Array}
- */
-proto.api.RequestLog.prototype.serializeBinary = function() {
- var writer = new jspb.BinaryWriter();
- proto.api.RequestLog.serializeBinaryToWriter(this, writer);
- return writer.getResultBuffer();
-};
-
-
-/**
- * Serializes the given message to binary data (in protobuf wire
- * format), writing to the given BinaryWriter.
- * @param {!proto.api.RequestLog} message
- * @param {!jspb.BinaryWriter} writer
- * @suppress {unusedLocalVariables} f is only used for nested messages
- */
-proto.api.RequestLog.serializeBinaryToWriter = function(message, writer) {
- var f = undefined;
- f = message.getService();
- if (f.length > 0) {
- writer.writeString(
- 1,
- f
- );
- }
- f = message.getMethod();
- if (f.length > 0) {
- writer.writeString(
- 2,
- f
- );
- }
- f = message.getMetadataMap(true);
- if (f && f.getLength() > 0) {
- f.serializeBinary(3, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);
- }
-};
-
-
-/**
- * optional string service = 1;
- * @return {string}
- */
-proto.api.RequestLog.prototype.getService = function() {
- return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
-};
-
-
-/**
- * @param {string} value
- * @return {!proto.api.RequestLog} returns this
- */
-proto.api.RequestLog.prototype.setService = function(value) {
- return jspb.Message.setProto3StringField(this, 1, value);
-};
-
-
-/**
- * optional string method = 2;
- * @return {string}
- */
-proto.api.RequestLog.prototype.getMethod = function() {
- return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
-};
-
-
-/**
- * @param {string} value
- * @return {!proto.api.RequestLog} returns this
- */
-proto.api.RequestLog.prototype.setMethod = function(value) {
- return jspb.Message.setProto3StringField(this, 2, value);
-};
-
-
-/**
- * map metadata = 3;
- * @param {boolean=} opt_noLazyCreate Do not create the map if
- * empty, instead returning `undefined`
- * @return {!jspb.Map}
- */
-proto.api.RequestLog.prototype.getMetadataMap = function(opt_noLazyCreate) {
- return /** @type {!jspb.Map} */ (
- jspb.Message.getMapField(this, 3, opt_noLazyCreate,
- null));
-};
-
-
-/**
- * Clears values from the map. The map will be non-null.
- * @return {!proto.api.RequestLog} returns this
- */
-proto.api.RequestLog.prototype.clearMetadataMap = function() {
- this.getMetadataMap().clear();
- return this;};
-
-
-goog.object.extend(exports, proto.api);
diff --git a/api/js/Makefile b/api/js/Makefile
index 9b099b0e..19c27b3c 100644
--- a/api/js/Makefile
+++ b/api/js/Makefile
@@ -27,7 +27,6 @@ api:
protoc ${PROTOC_GRPC_ARGS} ../proto/api/device.proto
protoc ${PROTOC_GRPC_ARGS} ../proto/api/gateway.proto
protoc ${PROTOC_GRPC_ARGS} ../proto/api/multicast_group.proto
- protoc ${PROTOC_GRPC_ARGS} ../proto/api/request_log.proto
protoc ${PROTOC_GRPC_ARGS} ../proto/api/relay.proto
integration:
@@ -36,6 +35,7 @@ integration:
streams:
protoc ${PROTOC_ARGS} ../proto/streams/meta.proto
protoc ${PROTOC_ARGS} ../proto/streams/frames.proto
+ protoc ${PROTOC_ARGS} ../proto/streams/api_requests.proto
google-api:
protoc $(PROTOC_ARGS) /googleapis/google/api/*.proto
diff --git a/api/js/api/request_log_grpc_pb.js b/api/js/api/request_log_grpc_pb.js
deleted file mode 100644
index 97b3a246..00000000
--- a/api/js/api/request_log_grpc_pb.js
+++ /dev/null
@@ -1 +0,0 @@
-// GENERATED CODE -- NO SERVICES IN PROTO
\ No newline at end of file
diff --git a/api/js/api/request_log_grpc_pb.d.ts b/api/js/streams/api_requests_grpc_pb.d.ts
similarity index 100%
rename from api/js/api/request_log_grpc_pb.d.ts
rename to api/js/streams/api_requests_grpc_pb.d.ts
diff --git a/api/js/api/request_log_pb.d.ts b/api/js/streams/api_requests_pb.d.ts
similarity index 57%
rename from api/js/api/request_log_pb.d.ts
rename to api/js/streams/api_requests_pb.d.ts
index 5be32cfe..399fa3fd 100644
--- a/api/js/api/request_log_pb.d.ts
+++ b/api/js/streams/api_requests_pb.d.ts
@@ -1,12 +1,12 @@
-// package: api
-// file: api/request_log.proto
+// package: streams
+// file: streams/api_requests.proto
import * as jspb from "google-protobuf";
import * as google_protobuf_timestamp_pb from "google-protobuf/google/protobuf/timestamp_pb";
import * as common_common_pb from "../common/common_pb";
import * as gw_gw_pb from "../gw/gw_pb";
-export class RequestLog extends jspb.Message {
+export class ApiRequestLog extends jspb.Message {
getService(): string;
setService(value: string): void;
@@ -16,16 +16,16 @@ export class RequestLog extends jspb.Message {
getMetadataMap(): jspb.Map;
clearMetadataMap(): void;
serializeBinary(): Uint8Array;
- toObject(includeInstance?: boolean): RequestLog.AsObject;
- static toObject(includeInstance: boolean, msg: RequestLog): RequestLog.AsObject;
+ toObject(includeInstance?: boolean): ApiRequestLog.AsObject;
+ static toObject(includeInstance: boolean, msg: ApiRequestLog): ApiRequestLog.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo};
- static serializeBinaryToWriter(message: RequestLog, writer: jspb.BinaryWriter): void;
- static deserializeBinary(bytes: Uint8Array): RequestLog;
- static deserializeBinaryFromReader(message: RequestLog, reader: jspb.BinaryReader): RequestLog;
+ static serializeBinaryToWriter(message: ApiRequestLog, writer: jspb.BinaryWriter): void;
+ static deserializeBinary(bytes: Uint8Array): ApiRequestLog;
+ static deserializeBinaryFromReader(message: ApiRequestLog, reader: jspb.BinaryReader): ApiRequestLog;
}
-export namespace RequestLog {
+export namespace ApiRequestLog {
export type AsObject = {
service: string,
method: string,
diff --git a/api/js/api/request_log_pb.js b/api/js/streams/api_requests_pb.js
similarity index 73%
rename from api/js/api/request_log_pb.js
rename to api/js/streams/api_requests_pb.js
index 9270bb08..978940b9 100644
--- a/api/js/api/request_log_pb.js
+++ b/api/js/streams/api_requests_pb.js
@@ -1,4 +1,4 @@
-// source: api/request_log.proto
+// source: streams/api_requests.proto
/**
* @fileoverview
* @enhanceable
@@ -18,7 +18,7 @@ var common_common_pb = require('../common/common_pb.js');
goog.object.extend(proto, common_common_pb);
var gw_gw_pb = require('../gw/gw_pb.js');
goog.object.extend(proto, gw_gw_pb);
-goog.exportSymbol('proto.api.RequestLog', null, global);
+goog.exportSymbol('proto.streams.ApiRequestLog', null, global);
/**
* Generated by JsPbCodeGenerator.
* @param {Array=} opt_data Optional initial data array, typically from a
@@ -29,16 +29,16 @@ goog.exportSymbol('proto.api.RequestLog', null, global);
* @extends {jspb.Message}
* @constructor
*/
-proto.api.RequestLog = function(opt_data) {
+proto.streams.ApiRequestLog = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
-goog.inherits(proto.api.RequestLog, jspb.Message);
+goog.inherits(proto.streams.ApiRequestLog, jspb.Message);
if (goog.DEBUG && !COMPILED) {
/**
* @public
* @override
*/
- proto.api.RequestLog.displayName = 'proto.api.RequestLog';
+ proto.streams.ApiRequestLog.displayName = 'proto.streams.ApiRequestLog';
}
@@ -56,8 +56,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) {
* http://goto/soy-param-migration
* @return {!Object}
*/
-proto.api.RequestLog.prototype.toObject = function(opt_includeInstance) {
- return proto.api.RequestLog.toObject(opt_includeInstance, this);
+proto.streams.ApiRequestLog.prototype.toObject = function(opt_includeInstance) {
+ return proto.streams.ApiRequestLog.toObject(opt_includeInstance, this);
};
@@ -66,11 +66,11 @@ proto.api.RequestLog.prototype.toObject = function(opt_includeInstance) {
* @param {boolean|undefined} includeInstance Deprecated. Whether to include
* the JSPB instance for transitional soy proto support:
* http://goto/soy-param-migration
- * @param {!proto.api.RequestLog} msg The msg instance to transform.
+ * @param {!proto.streams.ApiRequestLog} msg The msg instance to transform.
* @return {!Object}
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
-proto.api.RequestLog.toObject = function(includeInstance, msg) {
+proto.streams.ApiRequestLog.toObject = function(includeInstance, msg) {
var f, obj = {
service: jspb.Message.getFieldWithDefault(msg, 1, ""),
method: jspb.Message.getFieldWithDefault(msg, 2, ""),
@@ -88,23 +88,23 @@ proto.api.RequestLog.toObject = function(includeInstance, msg) {
/**
* Deserializes binary data (in protobuf wire format).
* @param {jspb.ByteSource} bytes The bytes to deserialize.
- * @return {!proto.api.RequestLog}
+ * @return {!proto.streams.ApiRequestLog}
*/
-proto.api.RequestLog.deserializeBinary = function(bytes) {
+proto.streams.ApiRequestLog.deserializeBinary = function(bytes) {
var reader = new jspb.BinaryReader(bytes);
- var msg = new proto.api.RequestLog;
- return proto.api.RequestLog.deserializeBinaryFromReader(msg, reader);
+ var msg = new proto.streams.ApiRequestLog;
+ return proto.streams.ApiRequestLog.deserializeBinaryFromReader(msg, reader);
};
/**
* Deserializes binary data (in protobuf wire format) from the
* given reader into the given message object.
- * @param {!proto.api.RequestLog} msg The message object to deserialize into.
+ * @param {!proto.streams.ApiRequestLog} msg The message object to deserialize into.
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
- * @return {!proto.api.RequestLog}
+ * @return {!proto.streams.ApiRequestLog}
*/
-proto.api.RequestLog.deserializeBinaryFromReader = function(msg, reader) {
+proto.streams.ApiRequestLog.deserializeBinaryFromReader = function(msg, reader) {
while (reader.nextField()) {
if (reader.isEndGroup()) {
break;
@@ -138,9 +138,9 @@ proto.api.RequestLog.deserializeBinaryFromReader = function(msg, reader) {
* Serializes the message to binary data (in protobuf wire format).
* @return {!Uint8Array}
*/
-proto.api.RequestLog.prototype.serializeBinary = function() {
+proto.streams.ApiRequestLog.prototype.serializeBinary = function() {
var writer = new jspb.BinaryWriter();
- proto.api.RequestLog.serializeBinaryToWriter(this, writer);
+ proto.streams.ApiRequestLog.serializeBinaryToWriter(this, writer);
return writer.getResultBuffer();
};
@@ -148,11 +148,11 @@ proto.api.RequestLog.prototype.serializeBinary = function() {
/**
* Serializes the given message to binary data (in protobuf wire
* format), writing to the given BinaryWriter.
- * @param {!proto.api.RequestLog} message
+ * @param {!proto.streams.ApiRequestLog} message
* @param {!jspb.BinaryWriter} writer
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
-proto.api.RequestLog.serializeBinaryToWriter = function(message, writer) {
+proto.streams.ApiRequestLog.serializeBinaryToWriter = function(message, writer) {
var f = undefined;
f = message.getService();
if (f.length > 0) {
@@ -179,16 +179,16 @@ proto.api.RequestLog.serializeBinaryToWriter = function(message, writer) {
* optional string service = 1;
* @return {string}
*/
-proto.api.RequestLog.prototype.getService = function() {
+proto.streams.ApiRequestLog.prototype.getService = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};
/**
* @param {string} value
- * @return {!proto.api.RequestLog} returns this
+ * @return {!proto.streams.ApiRequestLog} returns this
*/
-proto.api.RequestLog.prototype.setService = function(value) {
+proto.streams.ApiRequestLog.prototype.setService = function(value) {
return jspb.Message.setProto3StringField(this, 1, value);
};
@@ -197,16 +197,16 @@ proto.api.RequestLog.prototype.setService = function(value) {
* optional string method = 2;
* @return {string}
*/
-proto.api.RequestLog.prototype.getMethod = function() {
+proto.streams.ApiRequestLog.prototype.getMethod = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};
/**
* @param {string} value
- * @return {!proto.api.RequestLog} returns this
+ * @return {!proto.streams.ApiRequestLog} returns this
*/
-proto.api.RequestLog.prototype.setMethod = function(value) {
+proto.streams.ApiRequestLog.prototype.setMethod = function(value) {
return jspb.Message.setProto3StringField(this, 2, value);
};
@@ -217,7 +217,7 @@ proto.api.RequestLog.prototype.setMethod = function(value) {
* empty, instead returning `undefined`
* @return {!jspb.Map}
*/
-proto.api.RequestLog.prototype.getMetadataMap = function(opt_noLazyCreate) {
+proto.streams.ApiRequestLog.prototype.getMetadataMap = function(opt_noLazyCreate) {
return /** @type {!jspb.Map} */ (
jspb.Message.getMapField(this, 3, opt_noLazyCreate,
null));
@@ -226,11 +226,11 @@ proto.api.RequestLog.prototype.getMetadataMap = function(opt_noLazyCreate) {
/**
* Clears values from the map. The map will be non-null.
- * @return {!proto.api.RequestLog} returns this
+ * @return {!proto.streams.ApiRequestLog} returns this
*/
-proto.api.RequestLog.prototype.clearMetadataMap = function() {
+proto.streams.ApiRequestLog.prototype.clearMetadataMap = function() {
this.getMetadataMap().clear();
return this;};
-goog.object.extend(exports, proto.api);
+goog.object.extend(exports, proto.streams);
diff --git a/api/proto/api/request_log.proto b/api/proto/api/request_log.proto
deleted file mode 100644
index e67fc82e..00000000
--- a/api/proto/api/request_log.proto
+++ /dev/null
@@ -1,24 +0,0 @@
-syntax = "proto3";
-
-package api;
-
-option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
-option java_package = "io.chirpstack.api";
-option java_multiple_files = true;
-option java_outer_classname = "RequestLogProto";
-option csharp_namespace = "Chirpstack.Api";
-
-import "google/protobuf/timestamp.proto";
-import "common/common.proto";
-import "gw/gw.proto";
-
-message RequestLog {
- // API service name.
- string service = 1;
-
- // API method name.
- string method = 2;
-
- // Metadata.
- map metadata = 3;
-}
diff --git a/api/proto/streams/api_requests.proto b/api/proto/streams/api_requests.proto
new file mode 100644
index 00000000..baf1b8fd
--- /dev/null
+++ b/api/proto/streams/api_requests.proto
@@ -0,0 +1,24 @@
+syntax = "proto3";
+
+package streams;
+
+option go_package = "github.com/chirpstack/chirpstack/api/go/v4/streams";
+option java_package = "io.chirpstack.api.streams";
+option java_multiple_files = true;
+option java_outer_classname = "ApiRequestsProto";
+option csharp_namespace = "Chirpstack.Streams";
+
+import "google/protobuf/timestamp.proto";
+import "common/common.proto";
+import "gw/gw.proto";
+
+message ApiRequestLog {
+ // API service name.
+ string service = 1;
+
+ // API method name.
+ string method = 2;
+
+ // Metadata.
+ map metadata = 3;
+}
diff --git a/api/python/Makefile b/api/python/Makefile
index 8fd3f959..d0b75d97 100644
--- a/api/python/Makefile
+++ b/api/python/Makefile
@@ -36,7 +36,6 @@ api:
$(PROTOC) ${PROTOC_ARGS} chirpstack-api/api/device.proto
$(PROTOC) ${PROTOC_ARGS} chirpstack-api/api/gateway.proto
$(PROTOC) ${PROTOC_ARGS} chirpstack-api/api/multicast_group.proto
- $(PROTOC) ${PROTOC_ARGS} chirpstack-api/api/request_log.proto
$(PROTOC) ${PROTOC_ARGS} chirpstack-api/api/relay.proto
integration:
@@ -45,3 +44,4 @@ integration:
streams:
$(PROTOC) ${PROTOC_ARGS} chirpstack-api/streams/meta.proto
$(PROTOC) ${PROTOC_ARGS} chirpstack-api/streams/frames.proto
+ $(PROTOC) ${PROTOC_ARGS} chirpstack-api/streams/api_requests.proto
\ No newline at end of file
diff --git a/api/python/proto/chirpstack-api/api/request_log.proto b/api/python/proto/chirpstack-api/api/request_log.proto
deleted file mode 100644
index 4c0f0d34..00000000
--- a/api/python/proto/chirpstack-api/api/request_log.proto
+++ /dev/null
@@ -1,24 +0,0 @@
-syntax = "proto3";
-
-package api;
-
-option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
-option java_package = "io.chirpstack.api";
-option java_multiple_files = true;
-option java_outer_classname = "RequestLogProto";
-option csharp_namespace = "Chirpstack.Api";
-
-import "google/protobuf/timestamp.proto";
-import "chirpstack-api/common/common.proto";
-import "chirpstack-api/gw/gw.proto";
-
-message RequestLog {
- // API service name.
- string service = 1;
-
- // API method name.
- string method = 2;
-
- // Metadata.
- map metadata = 3;
-}
diff --git a/api/python/proto/chirpstack-api/streams/api_requests.proto b/api/python/proto/chirpstack-api/streams/api_requests.proto
new file mode 100644
index 00000000..5e51a435
--- /dev/null
+++ b/api/python/proto/chirpstack-api/streams/api_requests.proto
@@ -0,0 +1,24 @@
+syntax = "proto3";
+
+package streams;
+
+option go_package = "github.com/chirpstack/chirpstack/api/go/v4/streams";
+option java_package = "io.chirpstack.api.streams";
+option java_multiple_files = true;
+option java_outer_classname = "ApiRequestsProto";
+option csharp_namespace = "Chirpstack.Streams";
+
+import "google/protobuf/timestamp.proto";
+import "chirpstack-api/common/common.proto";
+import "chirpstack-api/gw/gw.proto";
+
+message ApiRequestLog {
+ // API service name.
+ string service = 1;
+
+ // API method name.
+ string method = 2;
+
+ // Metadata.
+ map metadata = 3;
+}
diff --git a/api/python/src/chirpstack_api/api/__init__.py b/api/python/src/chirpstack_api/api/__init__.py
index 433a01d0..07642c1e 100644
--- a/api/python/src/chirpstack_api/api/__init__.py
+++ b/api/python/src/chirpstack_api/api/__init__.py
@@ -18,6 +18,5 @@ from .tenant_pb2 import *
from .tenant_pb2_grpc import *
from .user_pb2 import *
from .user_pb2_grpc import *
-from .request_log_pb2 import *
from .relay_pb2 import *
from .relay_pb2_grpc import *
diff --git a/api/python/src/chirpstack_api/api/request_log_pb2.py b/api/python/src/chirpstack_api/api/request_log_pb2.py
deleted file mode 100644
index 2e5ac5d2..00000000
--- a/api/python/src/chirpstack_api/api/request_log_pb2.py
+++ /dev/null
@@ -1,34 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: chirpstack-api/api/request_log.proto
-"""Generated protocol buffer code."""
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import descriptor_pool as _descriptor_pool
-from google.protobuf import symbol_database as _symbol_database
-from google.protobuf.internal import builder as _builder
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
-from chirpstack_api.common import common_pb2 as chirpstack__api_dot_common_dot_common__pb2
-from chirpstack_api.gw import gw_pb2 as chirpstack__api_dot_gw_dot_gw__pb2
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$chirpstack-api/api/request_log.proto\x12\x03\x61pi\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\"chirpstack-api/common/common.proto\x1a\x1a\x63hirpstack-api/gw/gw.proto\"\x8f\x01\n\nRequestLog\x12\x0f\n\x07service\x18\x01 \x01(\t\x12\x0e\n\x06method\x18\x02 \x01(\t\x12/\n\x08metadata\x18\x03 \x03(\x0b\x32\x1d.api.RequestLog.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42g\n\x11io.chirpstack.apiB\x0fRequestLogProtoP\x01Z.github.com/chirpstack/chirpstack/api/go/v4/api\xaa\x02\x0e\x43hirpstack.Apib\x06proto3')
-
-_globals = globals()
-_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
-_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'chirpstack_api.api.request_log_pb2', _globals)
-if _descriptor._USE_C_DESCRIPTORS == False:
-
- DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options = b'\n\021io.chirpstack.apiB\017RequestLogProtoP\001Z.github.com/chirpstack/chirpstack/api/go/v4/api\252\002\016Chirpstack.Api'
- _REQUESTLOG_METADATAENTRY._options = None
- _REQUESTLOG_METADATAENTRY._serialized_options = b'8\001'
- _globals['_REQUESTLOG']._serialized_start=143
- _globals['_REQUESTLOG']._serialized_end=286
- _globals['_REQUESTLOG_METADATAENTRY']._serialized_start=239
- _globals['_REQUESTLOG_METADATAENTRY']._serialized_end=286
-# @@protoc_insertion_point(module_scope)
diff --git a/api/python/src/chirpstack_api/streams/__init__.py b/api/python/src/chirpstack_api/streams/__init__.py
index 595a363d..bbea266a 100644
--- a/api/python/src/chirpstack_api/streams/__init__.py
+++ b/api/python/src/chirpstack_api/streams/__init__.py
@@ -1,2 +1,3 @@
from .frames_pb2 import *
from .meta_pb2 import *
+from .api_requests_pb2 import *
diff --git a/api/python/src/chirpstack_api/streams/api_requests_pb2.py b/api/python/src/chirpstack_api/streams/api_requests_pb2.py
new file mode 100644
index 00000000..30a34e0d
--- /dev/null
+++ b/api/python/src/chirpstack_api/streams/api_requests_pb2.py
@@ -0,0 +1,34 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: chirpstack-api/streams/api_requests.proto
+"""Generated protocol buffer code."""
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+from google.protobuf.internal import builder as _builder
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
+from chirpstack_api.common import common_pb2 as chirpstack__api_dot_common_dot_common__pb2
+from chirpstack_api.gw import gw_pb2 as chirpstack__api_dot_gw_dot_gw__pb2
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n)chirpstack-api/streams/api_requests.proto\x12\x07streams\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\"chirpstack-api/common/common.proto\x1a\x1a\x63hirpstack-api/gw/gw.proto\"\x99\x01\n\rApiRequestLog\x12\x0f\n\x07service\x18\x01 \x01(\t\x12\x0e\n\x06method\x18\x02 \x01(\t\x12\x36\n\x08metadata\x18\x03 \x03(\x0b\x32$.streams.ApiRequestLog.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42x\n\x19io.chirpstack.api.streamsB\x10\x41piRequestsProtoP\x01Z2github.com/chirpstack/chirpstack/api/go/v4/streams\xaa\x02\x12\x43hirpstack.Streamsb\x06proto3')
+
+_globals = globals()
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'chirpstack_api.streams.api_requests_pb2', _globals)
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\031io.chirpstack.api.streamsB\020ApiRequestsProtoP\001Z2github.com/chirpstack/chirpstack/api/go/v4/streams\252\002\022Chirpstack.Streams'
+ _APIREQUESTLOG_METADATAENTRY._options = None
+ _APIREQUESTLOG_METADATAENTRY._serialized_options = b'8\001'
+ _globals['_APIREQUESTLOG']._serialized_start=152
+ _globals['_APIREQUESTLOG']._serialized_end=305
+ _globals['_APIREQUESTLOG_METADATAENTRY']._serialized_start=258
+ _globals['_APIREQUESTLOG_METADATAENTRY']._serialized_end=305
+# @@protoc_insertion_point(module_scope)
diff --git a/api/python/src/chirpstack_api/api/request_log_pb2.pyi b/api/python/src/chirpstack_api/streams/api_requests_pb2.pyi
similarity index 96%
rename from api/python/src/chirpstack_api/api/request_log_pb2.pyi
rename to api/python/src/chirpstack_api/streams/api_requests_pb2.pyi
index 4dafe93f..34e6db39 100644
--- a/api/python/src/chirpstack_api/api/request_log_pb2.pyi
+++ b/api/python/src/chirpstack_api/streams/api_requests_pb2.pyi
@@ -8,7 +8,7 @@ from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Opti
DESCRIPTOR: _descriptor.FileDescriptor
-class RequestLog(_message.Message):
+class ApiRequestLog(_message.Message):
__slots__ = ["service", "method", "metadata"]
class MetadataEntry(_message.Message):
__slots__ = ["key", "value"]
diff --git a/api/python/src/chirpstack_api/api/request_log_pb2_grpc.py b/api/python/src/chirpstack_api/streams/api_requests_pb2_grpc.py
similarity index 100%
rename from api/python/src/chirpstack_api/api/request_log_pb2_grpc.py
rename to api/python/src/chirpstack_api/streams/api_requests_pb2_grpc.py
diff --git a/api/rust/build.rs b/api/rust/build.rs
index fff99be2..1e424fe7 100644
--- a/api/rust/build.rs
+++ b/api/rust/build.rs
@@ -152,6 +152,11 @@ fn main() -> Result<(), Box> {
.join("frames.proto")
.to_str()
.unwrap(),
+ cs_dir
+ .join("streams")
+ .join("api_requests.proto")
+ .to_str()
+ .unwrap(),
],
&[
proto_dir.join("chirpstack").to_str().unwrap(),
@@ -168,7 +173,7 @@ fn main() -> Result<(), Box> {
.out_dir(out_dir.join("streams"))
.extern_path(".common", "crate::common")
.extern_path(".gw", "crate::gw")
- .build(&[".meta", ".streams"])?;
+ .build(&[".streams"])?;
}
// api
@@ -204,11 +209,6 @@ fn main() -> Result<(), Box> {
.join("multicast_group.proto")
.to_str()
.unwrap(),
- cs_dir
- .join("api")
- .join("request_log.proto")
- .to_str()
- .unwrap(),
cs_dir.join("api").join("relay.proto").to_str().unwrap(),
],
&[
diff --git a/api/rust/proto/chirpstack/api/request_log.proto b/api/rust/proto/chirpstack/api/request_log.proto
deleted file mode 100644
index e67fc82e..00000000
--- a/api/rust/proto/chirpstack/api/request_log.proto
+++ /dev/null
@@ -1,24 +0,0 @@
-syntax = "proto3";
-
-package api;
-
-option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
-option java_package = "io.chirpstack.api";
-option java_multiple_files = true;
-option java_outer_classname = "RequestLogProto";
-option csharp_namespace = "Chirpstack.Api";
-
-import "google/protobuf/timestamp.proto";
-import "common/common.proto";
-import "gw/gw.proto";
-
-message RequestLog {
- // API service name.
- string service = 1;
-
- // API method name.
- string method = 2;
-
- // Metadata.
- map metadata = 3;
-}
diff --git a/api/rust/proto/chirpstack/streams/api_requests.proto b/api/rust/proto/chirpstack/streams/api_requests.proto
new file mode 100644
index 00000000..baf1b8fd
--- /dev/null
+++ b/api/rust/proto/chirpstack/streams/api_requests.proto
@@ -0,0 +1,24 @@
+syntax = "proto3";
+
+package streams;
+
+option go_package = "github.com/chirpstack/chirpstack/api/go/v4/streams";
+option java_package = "io.chirpstack.api.streams";
+option java_multiple_files = true;
+option java_outer_classname = "ApiRequestsProto";
+option csharp_namespace = "Chirpstack.Streams";
+
+import "google/protobuf/timestamp.proto";
+import "common/common.proto";
+import "gw/gw.proto";
+
+message ApiRequestLog {
+ // API service name.
+ string service = 1;
+
+ // API method name.
+ string method = 2;
+
+ // Metadata.
+ map metadata = 3;
+}
diff --git a/chirpstack/src/api/mod.rs b/chirpstack/src/api/mod.rs
index b208697c..c9438f00 100644
--- a/chirpstack/src/api/mod.rs
+++ b/chirpstack/src/api/mod.rs
@@ -25,7 +25,6 @@ use tower_http::trace::TraceLayer;
use tracing::{error, info};
use warp::{http::header::HeaderValue, path::Tail, reply::Response, Filter, Rejection, Reply};
-use chirpstack_api::api;
use chirpstack_api::api::application_service_server::ApplicationServiceServer;
use chirpstack_api::api::device_profile_service_server::DeviceProfileServiceServer;
use chirpstack_api::api::device_profile_template_service_server::DeviceProfileTemplateServiceServer;
@@ -36,6 +35,7 @@ use chirpstack_api::api::multicast_group_service_server::MulticastGroupServiceSe
use chirpstack_api::api::relay_service_server::RelayServiceServer;
use chirpstack_api::api::tenant_service_server::TenantServiceServer;
use chirpstack_api::api::user_service_server::UserServiceServer;
+use chirpstack_api::streams;
use super::config;
use crate::api::auth::validator;
@@ -401,7 +401,7 @@ where
.observe(this.start.elapsed().as_secs_f64());
// Log API request to Redis
- let req_log = api::RequestLog {
+ let req_log = streams::ApiRequestLog {
service: this.service.to_string(),
method: this.method.to_string(),
metadata: response
diff --git a/chirpstack/src/requestlog.rs b/chirpstack/src/requestlog.rs
index b71baa6f..5fccb0cc 100644
--- a/chirpstack/src/requestlog.rs
+++ b/chirpstack/src/requestlog.rs
@@ -4,9 +4,9 @@ use tokio::task;
use crate::config;
use crate::storage::{get_redis_conn, redis_key};
-use chirpstack_api::api;
+use chirpstack_api::streams;
-pub async fn log_request(pl: &api::RequestLog) -> Result<()> {
+pub async fn log_request(pl: &streams::ApiRequestLog) -> Result<()> {
task::spawn_blocking({
let pl = pl.clone();
@@ -46,7 +46,7 @@ mod tests {
async fn test_log_request() {
let _guard = test::prepare().await;
- let pl = api::RequestLog {
+ let pl = streams::ApiRequestLog {
service: "ap.Foo".to_string(),
method: "bar".to_string(),
metadata: [("user_id".to_string(), "foo_user".to_string())]
@@ -71,7 +71,7 @@ mod tests {
assert_eq!(1, srr.keys[0].ids.len());
if let Some(redis::Value::Data(b)) = srr.keys[0].ids[0].map.get("request") {
- let pl_recv = api::RequestLog::decode(&mut Cursor::new(b)).unwrap();
+ let pl_recv = streams::ApiRequestLog::decode(&mut Cursor::new(b)).unwrap();
assert_eq!(pl, pl_recv);
} else {
panic!("No request log");