// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 // protoc v6.33.0 // source: pkg/grpc/proto/proxy.proto package proto import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) type ProxyEvent_EventType int32 const ( ProxyEvent_UNKNOWN ProxyEvent_EventType = 0 ProxyEvent_STARTED ProxyEvent_EventType = 1 ProxyEvent_STOPPED ProxyEvent_EventType = 2 ProxyEvent_ERROR ProxyEvent_EventType = 3 ProxyEvent_BACKEND_UNAVAILABLE ProxyEvent_EventType = 4 ProxyEvent_BACKEND_RECOVERED ProxyEvent_EventType = 5 ProxyEvent_CONFIG_UPDATED ProxyEvent_EventType = 6 ) // Enum value maps for ProxyEvent_EventType. var ( ProxyEvent_EventType_name = map[int32]string{ 0: "UNKNOWN", 1: "STARTED", 2: "STOPPED", 3: "ERROR", 4: "BACKEND_UNAVAILABLE", 5: "BACKEND_RECOVERED", 6: "CONFIG_UPDATED", } ProxyEvent_EventType_value = map[string]int32{ "UNKNOWN": 0, "STARTED": 1, "STOPPED": 2, "ERROR": 3, "BACKEND_UNAVAILABLE": 4, "BACKEND_RECOVERED": 5, "CONFIG_UPDATED": 6, } ) func (x ProxyEvent_EventType) Enum() *ProxyEvent_EventType { p := new(ProxyEvent_EventType) *p = x return p } func (x ProxyEvent_EventType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ProxyEvent_EventType) Descriptor() protoreflect.EnumDescriptor { return file_pkg_grpc_proto_proxy_proto_enumTypes[0].Descriptor() } func (ProxyEvent_EventType) Type() protoreflect.EnumType { return &file_pkg_grpc_proto_proxy_proto_enumTypes[0] } func (x ProxyEvent_EventType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ProxyEvent_EventType.Descriptor instead. func (ProxyEvent_EventType) EnumDescriptor() ([]byte, []int) { return file_pkg_grpc_proto_proxy_proto_rawDescGZIP(), []int{3, 0} } type ProxyLog_LogLevel int32 const ( ProxyLog_DEBUG ProxyLog_LogLevel = 0 ProxyLog_INFO ProxyLog_LogLevel = 1 ProxyLog_WARN ProxyLog_LogLevel = 2 ProxyLog_ERROR ProxyLog_LogLevel = 3 ) // Enum value maps for ProxyLog_LogLevel. var ( ProxyLog_LogLevel_name = map[int32]string{ 0: "DEBUG", 1: "INFO", 2: "WARN", 3: "ERROR", } ProxyLog_LogLevel_value = map[string]int32{ "DEBUG": 0, "INFO": 1, "WARN": 2, "ERROR": 3, } ) func (x ProxyLog_LogLevel) Enum() *ProxyLog_LogLevel { p := new(ProxyLog_LogLevel) *p = x return p } func (x ProxyLog_LogLevel) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ProxyLog_LogLevel) Descriptor() protoreflect.EnumDescriptor { return file_pkg_grpc_proto_proxy_proto_enumTypes[1].Descriptor() } func (ProxyLog_LogLevel) Type() protoreflect.EnumType { return &file_pkg_grpc_proto_proxy_proto_enumTypes[1] } func (x ProxyLog_LogLevel) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ProxyLog_LogLevel.Descriptor instead. func (ProxyLog_LogLevel) EnumDescriptor() ([]byte, []int) { return file_pkg_grpc_proto_proxy_proto_rawDescGZIP(), []int{4, 0} } type ControlCommand_CommandType int32 const ( ControlCommand_UNKNOWN ControlCommand_CommandType = 0 ControlCommand_RELOAD_CONFIG ControlCommand_CommandType = 1 ControlCommand_ENABLE_DEBUG ControlCommand_CommandType = 2 ControlCommand_DISABLE_DEBUG ControlCommand_CommandType = 3 ControlCommand_GET_STATS ControlCommand_CommandType = 4 ControlCommand_SHUTDOWN ControlCommand_CommandType = 5 ) // Enum value maps for ControlCommand_CommandType. var ( ControlCommand_CommandType_name = map[int32]string{ 0: "UNKNOWN", 1: "RELOAD_CONFIG", 2: "ENABLE_DEBUG", 3: "DISABLE_DEBUG", 4: "GET_STATS", 5: "SHUTDOWN", } ControlCommand_CommandType_value = map[string]int32{ "UNKNOWN": 0, "RELOAD_CONFIG": 1, "ENABLE_DEBUG": 2, "DISABLE_DEBUG": 3, "GET_STATS": 4, "SHUTDOWN": 5, } ) func (x ControlCommand_CommandType) Enum() *ControlCommand_CommandType { p := new(ControlCommand_CommandType) *p = x return p } func (x ControlCommand_CommandType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ControlCommand_CommandType) Descriptor() protoreflect.EnumDescriptor { return file_pkg_grpc_proto_proxy_proto_enumTypes[2].Descriptor() } func (ControlCommand_CommandType) Type() protoreflect.EnumType { return &file_pkg_grpc_proto_proxy_proto_enumTypes[2] } func (x ControlCommand_CommandType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ControlCommand_CommandType.Descriptor instead. func (ControlCommand_CommandType) EnumDescriptor() ([]byte, []int) { return file_pkg_grpc_proto_proxy_proto_rawDescGZIP(), []int{7, 0} } type ExposedServiceEvent_EventType int32 const ( ExposedServiceEvent_UNKNOWN ExposedServiceEvent_EventType = 0 ExposedServiceEvent_CREATED ExposedServiceEvent_EventType = 1 ExposedServiceEvent_UPDATED ExposedServiceEvent_EventType = 2 ExposedServiceEvent_REMOVED ExposedServiceEvent_EventType = 3 ) // Enum value maps for ExposedServiceEvent_EventType. var ( ExposedServiceEvent_EventType_name = map[int32]string{ 0: "UNKNOWN", 1: "CREATED", 2: "UPDATED", 3: "REMOVED", } ExposedServiceEvent_EventType_value = map[string]int32{ "UNKNOWN": 0, "CREATED": 1, "UPDATED": 2, "REMOVED": 3, } ) func (x ExposedServiceEvent_EventType) Enum() *ExposedServiceEvent_EventType { p := new(ExposedServiceEvent_EventType) *p = x return p } func (x ExposedServiceEvent_EventType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ExposedServiceEvent_EventType) Descriptor() protoreflect.EnumDescriptor { return file_pkg_grpc_proto_proxy_proto_enumTypes[3].Descriptor() } func (ExposedServiceEvent_EventType) Type() protoreflect.EnumType { return &file_pkg_grpc_proto_proxy_proto_enumTypes[3] } func (x ExposedServiceEvent_EventType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ExposedServiceEvent_EventType.Descriptor instead. func (ExposedServiceEvent_EventType) EnumDescriptor() ([]byte, []int) { return file_pkg_grpc_proto_proxy_proto_rawDescGZIP(), []int{9, 0} } // ProxyMessage represents messages sent from proxy to control service type ProxyMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to Message: // // *ProxyMessage_Stats // *ProxyMessage_Event // *ProxyMessage_Log // *ProxyMessage_Heartbeat // *ProxyMessage_RequestData Message isProxyMessage_Message `protobuf_oneof:"message"` } func (x *ProxyMessage) Reset() { *x = ProxyMessage{} if protoimpl.UnsafeEnabled { mi := &file_pkg_grpc_proto_proxy_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ProxyMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*ProxyMessage) ProtoMessage() {} func (x *ProxyMessage) ProtoReflect() protoreflect.Message { mi := &file_pkg_grpc_proto_proxy_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 ProxyMessage.ProtoReflect.Descriptor instead. func (*ProxyMessage) Descriptor() ([]byte, []int) { return file_pkg_grpc_proto_proxy_proto_rawDescGZIP(), []int{0} } func (m *ProxyMessage) GetMessage() isProxyMessage_Message { if m != nil { return m.Message } return nil } func (x *ProxyMessage) GetStats() *ProxyStats { if x, ok := x.GetMessage().(*ProxyMessage_Stats); ok { return x.Stats } return nil } func (x *ProxyMessage) GetEvent() *ProxyEvent { if x, ok := x.GetMessage().(*ProxyMessage_Event); ok { return x.Event } return nil } func (x *ProxyMessage) GetLog() *ProxyLog { if x, ok := x.GetMessage().(*ProxyMessage_Log); ok { return x.Log } return nil } func (x *ProxyMessage) GetHeartbeat() *ProxyHeartbeat { if x, ok := x.GetMessage().(*ProxyMessage_Heartbeat); ok { return x.Heartbeat } return nil } func (x *ProxyMessage) GetRequestData() *ProxyRequestData { if x, ok := x.GetMessage().(*ProxyMessage_RequestData); ok { return x.RequestData } return nil } type isProxyMessage_Message interface { isProxyMessage_Message() } type ProxyMessage_Stats struct { Stats *ProxyStats `protobuf:"bytes,1,opt,name=stats,proto3,oneof"` } type ProxyMessage_Event struct { Event *ProxyEvent `protobuf:"bytes,2,opt,name=event,proto3,oneof"` } type ProxyMessage_Log struct { Log *ProxyLog `protobuf:"bytes,3,opt,name=log,proto3,oneof"` } type ProxyMessage_Heartbeat struct { Heartbeat *ProxyHeartbeat `protobuf:"bytes,4,opt,name=heartbeat,proto3,oneof"` } type ProxyMessage_RequestData struct { RequestData *ProxyRequestData `protobuf:"bytes,5,opt,name=request_data,json=requestData,proto3,oneof"` } func (*ProxyMessage_Stats) isProxyMessage_Message() {} func (*ProxyMessage_Event) isProxyMessage_Message() {} func (*ProxyMessage_Log) isProxyMessage_Message() {} func (*ProxyMessage_Heartbeat) isProxyMessage_Message() {} func (*ProxyMessage_RequestData) isProxyMessage_Message() {} // ControlMessage represents messages sent from control service to proxy type ControlMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to Message: // // *ControlMessage_Event // *ControlMessage_Command // *ControlMessage_Config // *ControlMessage_ExposedService Message isControlMessage_Message `protobuf_oneof:"message"` } func (x *ControlMessage) Reset() { *x = ControlMessage{} if protoimpl.UnsafeEnabled { mi := &file_pkg_grpc_proto_proxy_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ControlMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*ControlMessage) ProtoMessage() {} func (x *ControlMessage) ProtoReflect() protoreflect.Message { mi := &file_pkg_grpc_proto_proxy_proto_msgTypes[1] 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 ControlMessage.ProtoReflect.Descriptor instead. func (*ControlMessage) Descriptor() ([]byte, []int) { return file_pkg_grpc_proto_proxy_proto_rawDescGZIP(), []int{1} } func (m *ControlMessage) GetMessage() isControlMessage_Message { if m != nil { return m.Message } return nil } func (x *ControlMessage) GetEvent() *ControlEvent { if x, ok := x.GetMessage().(*ControlMessage_Event); ok { return x.Event } return nil } func (x *ControlMessage) GetCommand() *ControlCommand { if x, ok := x.GetMessage().(*ControlMessage_Command); ok { return x.Command } return nil } func (x *ControlMessage) GetConfig() *ControlConfig { if x, ok := x.GetMessage().(*ControlMessage_Config); ok { return x.Config } return nil } func (x *ControlMessage) GetExposedService() *ExposedServiceEvent { if x, ok := x.GetMessage().(*ControlMessage_ExposedService); ok { return x.ExposedService } return nil } type isControlMessage_Message interface { isControlMessage_Message() } type ControlMessage_Event struct { Event *ControlEvent `protobuf:"bytes,1,opt,name=event,proto3,oneof"` } type ControlMessage_Command struct { Command *ControlCommand `protobuf:"bytes,2,opt,name=command,proto3,oneof"` } type ControlMessage_Config struct { Config *ControlConfig `protobuf:"bytes,3,opt,name=config,proto3,oneof"` } type ControlMessage_ExposedService struct { ExposedService *ExposedServiceEvent `protobuf:"bytes,4,opt,name=exposed_service,json=exposedService,proto3,oneof"` } func (*ControlMessage_Event) isControlMessage_Message() {} func (*ControlMessage_Command) isControlMessage_Message() {} func (*ControlMessage_Config) isControlMessage_Message() {} func (*ControlMessage_ExposedService) isControlMessage_Message() {} // ProxyStats contains proxy statistics type ProxyStats struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Timestamp *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` TotalRequests uint64 `protobuf:"varint,2,opt,name=total_requests,json=totalRequests,proto3" json:"total_requests,omitempty"` ActiveConnections uint64 `protobuf:"varint,3,opt,name=active_connections,json=activeConnections,proto3" json:"active_connections,omitempty"` BytesSent uint64 `protobuf:"varint,4,opt,name=bytes_sent,json=bytesSent,proto3" json:"bytes_sent,omitempty"` BytesReceived uint64 `protobuf:"varint,5,opt,name=bytes_received,json=bytesReceived,proto3" json:"bytes_received,omitempty"` CpuUsage float64 `protobuf:"fixed64,6,opt,name=cpu_usage,json=cpuUsage,proto3" json:"cpu_usage,omitempty"` MemoryUsageMb float64 `protobuf:"fixed64,7,opt,name=memory_usage_mb,json=memoryUsageMb,proto3" json:"memory_usage_mb,omitempty"` StatusCodeCounts map[string]uint64 `protobuf:"bytes,8,rep,name=status_code_counts,json=statusCodeCounts,proto3" json:"status_code_counts,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *ProxyStats) Reset() { *x = ProxyStats{} if protoimpl.UnsafeEnabled { mi := &file_pkg_grpc_proto_proxy_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ProxyStats) String() string { return protoimpl.X.MessageStringOf(x) } func (*ProxyStats) ProtoMessage() {} func (x *ProxyStats) ProtoReflect() protoreflect.Message { mi := &file_pkg_grpc_proto_proxy_proto_msgTypes[2] 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 ProxyStats.ProtoReflect.Descriptor instead. func (*ProxyStats) Descriptor() ([]byte, []int) { return file_pkg_grpc_proto_proxy_proto_rawDescGZIP(), []int{2} } func (x *ProxyStats) GetTimestamp() *timestamppb.Timestamp { if x != nil { return x.Timestamp } return nil } func (x *ProxyStats) GetTotalRequests() uint64 { if x != nil { return x.TotalRequests } return 0 } func (x *ProxyStats) GetActiveConnections() uint64 { if x != nil { return x.ActiveConnections } return 0 } func (x *ProxyStats) GetBytesSent() uint64 { if x != nil { return x.BytesSent } return 0 } func (x *ProxyStats) GetBytesReceived() uint64 { if x != nil { return x.BytesReceived } return 0 } func (x *ProxyStats) GetCpuUsage() float64 { if x != nil { return x.CpuUsage } return 0 } func (x *ProxyStats) GetMemoryUsageMb() float64 { if x != nil { return x.MemoryUsageMb } return 0 } func (x *ProxyStats) GetStatusCodeCounts() map[string]uint64 { if x != nil { return x.StatusCodeCounts } return nil } // ProxyEvent represents events from the proxy type ProxyEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Timestamp *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` Type ProxyEvent_EventType `protobuf:"varint,2,opt,name=type,proto3,enum=proxy.ProxyEvent_EventType" json:"type,omitempty"` Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"` Metadata map[string]string `protobuf:"bytes,4,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 *ProxyEvent) Reset() { *x = ProxyEvent{} if protoimpl.UnsafeEnabled { mi := &file_pkg_grpc_proto_proxy_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ProxyEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*ProxyEvent) ProtoMessage() {} func (x *ProxyEvent) ProtoReflect() protoreflect.Message { mi := &file_pkg_grpc_proto_proxy_proto_msgTypes[3] 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 ProxyEvent.ProtoReflect.Descriptor instead. func (*ProxyEvent) Descriptor() ([]byte, []int) { return file_pkg_grpc_proto_proxy_proto_rawDescGZIP(), []int{3} } func (x *ProxyEvent) GetTimestamp() *timestamppb.Timestamp { if x != nil { return x.Timestamp } return nil } func (x *ProxyEvent) GetType() ProxyEvent_EventType { if x != nil { return x.Type } return ProxyEvent_UNKNOWN } func (x *ProxyEvent) GetMessage() string { if x != nil { return x.Message } return "" } func (x *ProxyEvent) GetMetadata() map[string]string { if x != nil { return x.Metadata } return nil } // ProxyLog represents log entries type ProxyLog struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Timestamp *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` Level ProxyLog_LogLevel `protobuf:"varint,2,opt,name=level,proto3,enum=proxy.ProxyLog_LogLevel" json:"level,omitempty"` Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"` Fields map[string]string `protobuf:"bytes,4,rep,name=fields,proto3" json:"fields,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *ProxyLog) Reset() { *x = ProxyLog{} if protoimpl.UnsafeEnabled { mi := &file_pkg_grpc_proto_proxy_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ProxyLog) String() string { return protoimpl.X.MessageStringOf(x) } func (*ProxyLog) ProtoMessage() {} func (x *ProxyLog) ProtoReflect() protoreflect.Message { mi := &file_pkg_grpc_proto_proxy_proto_msgTypes[4] 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 ProxyLog.ProtoReflect.Descriptor instead. func (*ProxyLog) Descriptor() ([]byte, []int) { return file_pkg_grpc_proto_proxy_proto_rawDescGZIP(), []int{4} } func (x *ProxyLog) GetTimestamp() *timestamppb.Timestamp { if x != nil { return x.Timestamp } return nil } func (x *ProxyLog) GetLevel() ProxyLog_LogLevel { if x != nil { return x.Level } return ProxyLog_DEBUG } func (x *ProxyLog) GetMessage() string { if x != nil { return x.Message } return "" } func (x *ProxyLog) GetFields() map[string]string { if x != nil { return x.Fields } return nil } // ProxyHeartbeat is sent periodically to keep connection alive type ProxyHeartbeat struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Timestamp *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` ProxyId string `protobuf:"bytes,2,opt,name=proxy_id,json=proxyId,proto3" json:"proxy_id,omitempty"` } func (x *ProxyHeartbeat) Reset() { *x = ProxyHeartbeat{} if protoimpl.UnsafeEnabled { mi := &file_pkg_grpc_proto_proxy_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ProxyHeartbeat) String() string { return protoimpl.X.MessageStringOf(x) } func (*ProxyHeartbeat) ProtoMessage() {} func (x *ProxyHeartbeat) ProtoReflect() protoreflect.Message { mi := &file_pkg_grpc_proto_proxy_proto_msgTypes[5] 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 ProxyHeartbeat.ProtoReflect.Descriptor instead. func (*ProxyHeartbeat) Descriptor() ([]byte, []int) { return file_pkg_grpc_proto_proxy_proto_rawDescGZIP(), []int{5} } func (x *ProxyHeartbeat) GetTimestamp() *timestamppb.Timestamp { if x != nil { return x.Timestamp } return nil } func (x *ProxyHeartbeat) GetProxyId() string { if x != nil { return x.ProxyId } return "" } // ControlEvent represents events from control service type ControlEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Timestamp *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` EventId string `protobuf:"bytes,2,opt,name=event_id,json=eventId,proto3" json:"event_id,omitempty"` Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"` } func (x *ControlEvent) Reset() { *x = ControlEvent{} if protoimpl.UnsafeEnabled { mi := &file_pkg_grpc_proto_proxy_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ControlEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*ControlEvent) ProtoMessage() {} func (x *ControlEvent) ProtoReflect() protoreflect.Message { mi := &file_pkg_grpc_proto_proxy_proto_msgTypes[6] 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 ControlEvent.ProtoReflect.Descriptor instead. func (*ControlEvent) Descriptor() ([]byte, []int) { return file_pkg_grpc_proto_proxy_proto_rawDescGZIP(), []int{6} } func (x *ControlEvent) GetTimestamp() *timestamppb.Timestamp { if x != nil { return x.Timestamp } return nil } func (x *ControlEvent) GetEventId() string { if x != nil { return x.EventId } return "" } func (x *ControlEvent) GetMessage() string { if x != nil { return x.Message } return "" } // ControlCommand represents commands sent to proxy type ControlCommand struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CommandId string `protobuf:"bytes,1,opt,name=command_id,json=commandId,proto3" json:"command_id,omitempty"` Type ControlCommand_CommandType `protobuf:"varint,2,opt,name=type,proto3,enum=proxy.ControlCommand_CommandType" json:"type,omitempty"` Parameters map[string]string `protobuf:"bytes,3,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *ControlCommand) Reset() { *x = ControlCommand{} if protoimpl.UnsafeEnabled { mi := &file_pkg_grpc_proto_proxy_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ControlCommand) String() string { return protoimpl.X.MessageStringOf(x) } func (*ControlCommand) ProtoMessage() {} func (x *ControlCommand) ProtoReflect() protoreflect.Message { mi := &file_pkg_grpc_proto_proxy_proto_msgTypes[7] 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 ControlCommand.ProtoReflect.Descriptor instead. func (*ControlCommand) Descriptor() ([]byte, []int) { return file_pkg_grpc_proto_proxy_proto_rawDescGZIP(), []int{7} } func (x *ControlCommand) GetCommandId() string { if x != nil { return x.CommandId } return "" } func (x *ControlCommand) GetType() ControlCommand_CommandType { if x != nil { return x.Type } return ControlCommand_UNKNOWN } func (x *ControlCommand) GetParameters() map[string]string { if x != nil { return x.Parameters } return nil } // ControlConfig contains configuration updates from control service type ControlConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ConfigVersion string `protobuf:"bytes,1,opt,name=config_version,json=configVersion,proto3" json:"config_version,omitempty"` Settings map[string]string `protobuf:"bytes,2,rep,name=settings,proto3" json:"settings,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *ControlConfig) Reset() { *x = ControlConfig{} if protoimpl.UnsafeEnabled { mi := &file_pkg_grpc_proto_proxy_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ControlConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*ControlConfig) ProtoMessage() {} func (x *ControlConfig) ProtoReflect() protoreflect.Message { mi := &file_pkg_grpc_proto_proxy_proto_msgTypes[8] 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 ControlConfig.ProtoReflect.Descriptor instead. func (*ControlConfig) Descriptor() ([]byte, []int) { return file_pkg_grpc_proto_proxy_proto_rawDescGZIP(), []int{8} } func (x *ControlConfig) GetConfigVersion() string { if x != nil { return x.ConfigVersion } return "" } func (x *ControlConfig) GetSettings() map[string]string { if x != nil { return x.Settings } return nil } // ExposedServiceEvent represents exposed service lifecycle events type ExposedServiceEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Timestamp *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` Type ExposedServiceEvent_EventType `protobuf:"varint,2,opt,name=type,proto3,enum=proxy.ExposedServiceEvent_EventType" json:"type,omitempty"` ServiceId string `protobuf:"bytes,3,opt,name=service_id,json=serviceId,proto3" json:"service_id,omitempty"` PeerConfig *PeerConfig `protobuf:"bytes,4,opt,name=peer_config,json=peerConfig,proto3" json:"peer_config,omitempty"` UpstreamConfig *UpstreamConfig `protobuf:"bytes,5,opt,name=upstream_config,json=upstreamConfig,proto3" json:"upstream_config,omitempty"` } func (x *ExposedServiceEvent) Reset() { *x = ExposedServiceEvent{} if protoimpl.UnsafeEnabled { mi := &file_pkg_grpc_proto_proxy_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ExposedServiceEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*ExposedServiceEvent) ProtoMessage() {} func (x *ExposedServiceEvent) ProtoReflect() protoreflect.Message { mi := &file_pkg_grpc_proto_proxy_proto_msgTypes[9] 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 ExposedServiceEvent.ProtoReflect.Descriptor instead. func (*ExposedServiceEvent) Descriptor() ([]byte, []int) { return file_pkg_grpc_proto_proxy_proto_rawDescGZIP(), []int{9} } func (x *ExposedServiceEvent) GetTimestamp() *timestamppb.Timestamp { if x != nil { return x.Timestamp } return nil } func (x *ExposedServiceEvent) GetType() ExposedServiceEvent_EventType { if x != nil { return x.Type } return ExposedServiceEvent_UNKNOWN } func (x *ExposedServiceEvent) GetServiceId() string { if x != nil { return x.ServiceId } return "" } func (x *ExposedServiceEvent) GetPeerConfig() *PeerConfig { if x != nil { return x.PeerConfig } return nil } func (x *ExposedServiceEvent) GetUpstreamConfig() *UpstreamConfig { if x != nil { return x.UpstreamConfig } return nil } // PeerConfig contains WireGuard peer configuration type PeerConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PeerId string `protobuf:"bytes,1,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` PublicKey string `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` AllowedIps []string `protobuf:"bytes,3,rep,name=allowed_ips,json=allowedIps,proto3" json:"allowed_ips,omitempty"` Endpoint string `protobuf:"bytes,4,opt,name=endpoint,proto3" json:"endpoint,omitempty"` TunnelIp string `protobuf:"bytes,5,opt,name=tunnel_ip,json=tunnelIp,proto3" json:"tunnel_ip,omitempty"` PersistentKeepalive uint32 `protobuf:"varint,6,opt,name=persistent_keepalive,json=persistentKeepalive,proto3" json:"persistent_keepalive,omitempty"` } func (x *PeerConfig) Reset() { *x = PeerConfig{} if protoimpl.UnsafeEnabled { mi := &file_pkg_grpc_proto_proxy_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PeerConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*PeerConfig) ProtoMessage() {} func (x *PeerConfig) ProtoReflect() protoreflect.Message { mi := &file_pkg_grpc_proto_proxy_proto_msgTypes[10] 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 PeerConfig.ProtoReflect.Descriptor instead. func (*PeerConfig) Descriptor() ([]byte, []int) { return file_pkg_grpc_proto_proxy_proto_rawDescGZIP(), []int{10} } func (x *PeerConfig) GetPeerId() string { if x != nil { return x.PeerId } return "" } func (x *PeerConfig) GetPublicKey() string { if x != nil { return x.PublicKey } return "" } func (x *PeerConfig) GetAllowedIps() []string { if x != nil { return x.AllowedIps } return nil } func (x *PeerConfig) GetEndpoint() string { if x != nil { return x.Endpoint } return "" } func (x *PeerConfig) GetTunnelIp() string { if x != nil { return x.TunnelIp } return "" } func (x *PeerConfig) GetPersistentKeepalive() uint32 { if x != nil { return x.PersistentKeepalive } return 0 } // UpstreamConfig contains reverse proxy upstream configuration type UpstreamConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Domain string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain,omitempty"` PathMappings map[string]string `protobuf:"bytes,2,rep,name=path_mappings,json=pathMappings,proto3" json:"path_mappings,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // path -> port } func (x *UpstreamConfig) Reset() { *x = UpstreamConfig{} if protoimpl.UnsafeEnabled { mi := &file_pkg_grpc_proto_proxy_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpstreamConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpstreamConfig) ProtoMessage() {} func (x *UpstreamConfig) ProtoReflect() protoreflect.Message { mi := &file_pkg_grpc_proto_proxy_proto_msgTypes[11] 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 UpstreamConfig.ProtoReflect.Descriptor instead. func (*UpstreamConfig) Descriptor() ([]byte, []int) { return file_pkg_grpc_proto_proxy_proto_rawDescGZIP(), []int{11} } func (x *UpstreamConfig) GetDomain() string { if x != nil { return x.Domain } return "" } func (x *UpstreamConfig) GetPathMappings() map[string]string { if x != nil { return x.PathMappings } return nil } // ProxyRequestData contains metadata about requests routed through the reverse proxy type ProxyRequestData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Timestamp *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` ServiceId string `protobuf:"bytes,2,opt,name=service_id,json=serviceId,proto3" json:"service_id,omitempty"` Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"` DurationMs int64 `protobuf:"varint,4,opt,name=duration_ms,json=durationMs,proto3" json:"duration_ms,omitempty"` Method string `protobuf:"bytes,5,opt,name=method,proto3" json:"method,omitempty"` // HTTP method (GET, POST, PUT, DELETE, etc.) ResponseCode int32 `protobuf:"varint,6,opt,name=response_code,json=responseCode,proto3" json:"response_code,omitempty"` SourceIp string `protobuf:"bytes,7,opt,name=source_ip,json=sourceIp,proto3" json:"source_ip,omitempty"` } func (x *ProxyRequestData) Reset() { *x = ProxyRequestData{} if protoimpl.UnsafeEnabled { mi := &file_pkg_grpc_proto_proxy_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ProxyRequestData) String() string { return protoimpl.X.MessageStringOf(x) } func (*ProxyRequestData) ProtoMessage() {} func (x *ProxyRequestData) ProtoReflect() protoreflect.Message { mi := &file_pkg_grpc_proto_proxy_proto_msgTypes[12] 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 ProxyRequestData.ProtoReflect.Descriptor instead. func (*ProxyRequestData) Descriptor() ([]byte, []int) { return file_pkg_grpc_proto_proxy_proto_rawDescGZIP(), []int{12} } func (x *ProxyRequestData) GetTimestamp() *timestamppb.Timestamp { if x != nil { return x.Timestamp } return nil } func (x *ProxyRequestData) GetServiceId() string { if x != nil { return x.ServiceId } return "" } func (x *ProxyRequestData) GetPath() string { if x != nil { return x.Path } return "" } func (x *ProxyRequestData) GetDurationMs() int64 { if x != nil { return x.DurationMs } return 0 } func (x *ProxyRequestData) GetMethod() string { if x != nil { return x.Method } return "" } func (x *ProxyRequestData) GetResponseCode() int32 { if x != nil { return x.ResponseCode } return 0 } func (x *ProxyRequestData) GetSourceIp() string { if x != nil { return x.SourceIp } return "" } var File_pkg_grpc_proto_proxy_proto protoreflect.FileDescriptor var file_pkg_grpc_proto_proxy_proto_rawDesc = []byte{ 0x0a, 0x1a, 0x70, 0x6b, 0x67, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x89, 0x02, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4c, 0x6f, 0x67, 0x48, 0x00, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x35, 0x0a, 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x48, 0x00, 0x52, 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x3c, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x42, 0x09, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xf2, 0x01, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x2e, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x45, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xc3, 0x03, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x62, 0x79, 0x74, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x70, 0x75, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x63, 0x70, 0x75, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6d, 0x62, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x62, 0x12, 0x55, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x1a, 0x43, 0x0a, 0x15, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 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, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8f, 0x03, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x45, 0x76, 0x65, 0x6e, 0x74, 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, 0x22, 0x81, 0x01, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x42, 0x41, 0x43, 0x4b, 0x45, 0x4e, 0x44, 0x5f, 0x55, 0x4e, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x42, 0x41, 0x43, 0x4b, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x45, 0x44, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x44, 0x10, 0x06, 0x22, 0xb4, 0x02, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4c, 0x6f, 0x67, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2e, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4c, 0x6f, 0x67, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4c, 0x6f, 0x67, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x34, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x57, 0x41, 0x52, 0x4e, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x22, 0x65, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x49, 0x64, 0x22, 0x7d, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xdd, 0x02, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x6f, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x45, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x53, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x48, 0x55, 0x54, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x05, 0x22, 0xb3, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xdd, 0x02, 0x0a, 0x13, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x0b, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3e, 0x0a, 0x0f, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x3f, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x10, 0x03, 0x22, 0xd1, 0x01, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x69, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x49, 0x70, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x12, 0x31, 0x0a, 0x14, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x22, 0xb7, 0x01, 0x0a, 0x0e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x70, 0x61, 0x74, 0x68, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x1a, 0x3f, 0x0a, 0x11, 0x50, 0x61, 0x74, 0x68, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xfa, 0x01, 0x0a, 0x10, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x70, 0x32, 0x48, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x38, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x28, 0x01, 0x30, 0x01, 0x42, 0x33, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6e, 0x65, 0x74, 0x62, 0x69, 0x72, 0x64, 0x69, 0x6f, 0x2f, 0x6e, 0x65, 0x74, 0x62, 0x69, 0x72, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_pkg_grpc_proto_proxy_proto_rawDescOnce sync.Once file_pkg_grpc_proto_proxy_proto_rawDescData = file_pkg_grpc_proto_proxy_proto_rawDesc ) func file_pkg_grpc_proto_proxy_proto_rawDescGZIP() []byte { file_pkg_grpc_proto_proxy_proto_rawDescOnce.Do(func() { file_pkg_grpc_proto_proxy_proto_rawDescData = protoimpl.X.CompressGZIP(file_pkg_grpc_proto_proxy_proto_rawDescData) }) return file_pkg_grpc_proto_proxy_proto_rawDescData } var file_pkg_grpc_proto_proxy_proto_enumTypes = make([]protoimpl.EnumInfo, 4) var file_pkg_grpc_proto_proxy_proto_msgTypes = make([]protoimpl.MessageInfo, 19) var file_pkg_grpc_proto_proxy_proto_goTypes = []interface{}{ (ProxyEvent_EventType)(0), // 0: proxy.ProxyEvent.EventType (ProxyLog_LogLevel)(0), // 1: proxy.ProxyLog.LogLevel (ControlCommand_CommandType)(0), // 2: proxy.ControlCommand.CommandType (ExposedServiceEvent_EventType)(0), // 3: proxy.ExposedServiceEvent.EventType (*ProxyMessage)(nil), // 4: proxy.ProxyMessage (*ControlMessage)(nil), // 5: proxy.ControlMessage (*ProxyStats)(nil), // 6: proxy.ProxyStats (*ProxyEvent)(nil), // 7: proxy.ProxyEvent (*ProxyLog)(nil), // 8: proxy.ProxyLog (*ProxyHeartbeat)(nil), // 9: proxy.ProxyHeartbeat (*ControlEvent)(nil), // 10: proxy.ControlEvent (*ControlCommand)(nil), // 11: proxy.ControlCommand (*ControlConfig)(nil), // 12: proxy.ControlConfig (*ExposedServiceEvent)(nil), // 13: proxy.ExposedServiceEvent (*PeerConfig)(nil), // 14: proxy.PeerConfig (*UpstreamConfig)(nil), // 15: proxy.UpstreamConfig (*ProxyRequestData)(nil), // 16: proxy.ProxyRequestData nil, // 17: proxy.ProxyStats.StatusCodeCountsEntry nil, // 18: proxy.ProxyEvent.MetadataEntry nil, // 19: proxy.ProxyLog.FieldsEntry nil, // 20: proxy.ControlCommand.ParametersEntry nil, // 21: proxy.ControlConfig.SettingsEntry nil, // 22: proxy.UpstreamConfig.PathMappingsEntry (*timestamppb.Timestamp)(nil), // 23: google.protobuf.Timestamp } var file_pkg_grpc_proto_proxy_proto_depIdxs = []int32{ 6, // 0: proxy.ProxyMessage.stats:type_name -> proxy.ProxyStats 7, // 1: proxy.ProxyMessage.event:type_name -> proxy.ProxyEvent 8, // 2: proxy.ProxyMessage.log:type_name -> proxy.ProxyLog 9, // 3: proxy.ProxyMessage.heartbeat:type_name -> proxy.ProxyHeartbeat 16, // 4: proxy.ProxyMessage.request_data:type_name -> proxy.ProxyRequestData 10, // 5: proxy.ControlMessage.event:type_name -> proxy.ControlEvent 11, // 6: proxy.ControlMessage.command:type_name -> proxy.ControlCommand 12, // 7: proxy.ControlMessage.config:type_name -> proxy.ControlConfig 13, // 8: proxy.ControlMessage.exposed_service:type_name -> proxy.ExposedServiceEvent 23, // 9: proxy.ProxyStats.timestamp:type_name -> google.protobuf.Timestamp 17, // 10: proxy.ProxyStats.status_code_counts:type_name -> proxy.ProxyStats.StatusCodeCountsEntry 23, // 11: proxy.ProxyEvent.timestamp:type_name -> google.protobuf.Timestamp 0, // 12: proxy.ProxyEvent.type:type_name -> proxy.ProxyEvent.EventType 18, // 13: proxy.ProxyEvent.metadata:type_name -> proxy.ProxyEvent.MetadataEntry 23, // 14: proxy.ProxyLog.timestamp:type_name -> google.protobuf.Timestamp 1, // 15: proxy.ProxyLog.level:type_name -> proxy.ProxyLog.LogLevel 19, // 16: proxy.ProxyLog.fields:type_name -> proxy.ProxyLog.FieldsEntry 23, // 17: proxy.ProxyHeartbeat.timestamp:type_name -> google.protobuf.Timestamp 23, // 18: proxy.ControlEvent.timestamp:type_name -> google.protobuf.Timestamp 2, // 19: proxy.ControlCommand.type:type_name -> proxy.ControlCommand.CommandType 20, // 20: proxy.ControlCommand.parameters:type_name -> proxy.ControlCommand.ParametersEntry 21, // 21: proxy.ControlConfig.settings:type_name -> proxy.ControlConfig.SettingsEntry 23, // 22: proxy.ExposedServiceEvent.timestamp:type_name -> google.protobuf.Timestamp 3, // 23: proxy.ExposedServiceEvent.type:type_name -> proxy.ExposedServiceEvent.EventType 14, // 24: proxy.ExposedServiceEvent.peer_config:type_name -> proxy.PeerConfig 15, // 25: proxy.ExposedServiceEvent.upstream_config:type_name -> proxy.UpstreamConfig 22, // 26: proxy.UpstreamConfig.path_mappings:type_name -> proxy.UpstreamConfig.PathMappingsEntry 23, // 27: proxy.ProxyRequestData.timestamp:type_name -> google.protobuf.Timestamp 5, // 28: proxy.ProxyService.Stream:input_type -> proxy.ControlMessage 4, // 29: proxy.ProxyService.Stream:output_type -> proxy.ProxyMessage 29, // [29:30] is the sub-list for method output_type 28, // [28:29] is the sub-list for method input_type 28, // [28:28] is the sub-list for extension type_name 28, // [28:28] is the sub-list for extension extendee 0, // [0:28] is the sub-list for field type_name } func init() { file_pkg_grpc_proto_proxy_proto_init() } func file_pkg_grpc_proto_proxy_proto_init() { if File_pkg_grpc_proto_proxy_proto != nil { return } if !protoimpl.UnsafeEnabled { file_pkg_grpc_proto_proxy_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProxyMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pkg_grpc_proto_proxy_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ControlMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pkg_grpc_proto_proxy_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProxyStats); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pkg_grpc_proto_proxy_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProxyEvent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pkg_grpc_proto_proxy_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProxyLog); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pkg_grpc_proto_proxy_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProxyHeartbeat); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pkg_grpc_proto_proxy_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ControlEvent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pkg_grpc_proto_proxy_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ControlCommand); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pkg_grpc_proto_proxy_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ControlConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pkg_grpc_proto_proxy_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExposedServiceEvent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pkg_grpc_proto_proxy_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PeerConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pkg_grpc_proto_proxy_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpstreamConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pkg_grpc_proto_proxy_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProxyRequestData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_pkg_grpc_proto_proxy_proto_msgTypes[0].OneofWrappers = []interface{}{ (*ProxyMessage_Stats)(nil), (*ProxyMessage_Event)(nil), (*ProxyMessage_Log)(nil), (*ProxyMessage_Heartbeat)(nil), (*ProxyMessage_RequestData)(nil), } file_pkg_grpc_proto_proxy_proto_msgTypes[1].OneofWrappers = []interface{}{ (*ControlMessage_Event)(nil), (*ControlMessage_Command)(nil), (*ControlMessage_Config)(nil), (*ControlMessage_ExposedService)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pkg_grpc_proto_proxy_proto_rawDesc, NumEnums: 4, NumMessages: 19, NumExtensions: 0, NumServices: 1, }, GoTypes: file_pkg_grpc_proto_proxy_proto_goTypes, DependencyIndexes: file_pkg_grpc_proto_proxy_proto_depIdxs, EnumInfos: file_pkg_grpc_proto_proxy_proto_enumTypes, MessageInfos: file_pkg_grpc_proto_proxy_proto_msgTypes, }.Build() File_pkg_grpc_proto_proxy_proto = out.File file_pkg_grpc_proto_proxy_proto_rawDesc = nil file_pkg_grpc_proto_proxy_proto_goTypes = nil file_pkg_grpc_proto_proxy_proto_depIdxs = nil }