// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        v6.33.5
// source: app/stats/command/command.proto

package command

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

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 GetStatsRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Name of the stat counter.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Whether or not to reset the counter to fetching its value.
	Reset_        bool `protobuf:"varint,2,opt,name=reset,proto3" json:"reset,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetStatsRequest) Reset() {
	*x = GetStatsRequest{}
	mi := &file_app_stats_command_command_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetStatsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetStatsRequest) ProtoMessage() {}

func (x *GetStatsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_app_stats_command_command_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetStatsRequest.ProtoReflect.Descriptor instead.
func (*GetStatsRequest) Descriptor() ([]byte, []int) {
	return file_app_stats_command_command_proto_rawDescGZIP(), []int{0}
}

func (x *GetStatsRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *GetStatsRequest) GetReset_() bool {
	if x != nil {
		return x.Reset_
	}
	return false
}

type Stat struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Value         int64                  `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Stat) Reset() {
	*x = Stat{}
	mi := &file_app_stats_command_command_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Stat) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Stat) ProtoMessage() {}

func (x *Stat) ProtoReflect() protoreflect.Message {
	mi := &file_app_stats_command_command_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Stat.ProtoReflect.Descriptor instead.
func (*Stat) Descriptor() ([]byte, []int) {
	return file_app_stats_command_command_proto_rawDescGZIP(), []int{1}
}

func (x *Stat) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Stat) GetValue() int64 {
	if x != nil {
		return x.Value
	}
	return 0
}

type GetStatsResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Stat          *Stat                  `protobuf:"bytes,1,opt,name=stat,proto3" json:"stat,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetStatsResponse) Reset() {
	*x = GetStatsResponse{}
	mi := &file_app_stats_command_command_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetStatsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetStatsResponse) ProtoMessage() {}

func (x *GetStatsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_app_stats_command_command_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetStatsResponse.ProtoReflect.Descriptor instead.
func (*GetStatsResponse) Descriptor() ([]byte, []int) {
	return file_app_stats_command_command_proto_rawDescGZIP(), []int{2}
}

func (x *GetStatsResponse) GetStat() *Stat {
	if x != nil {
		return x.Stat
	}
	return nil
}

type QueryStatsRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Pattern       string                 `protobuf:"bytes,1,opt,name=pattern,proto3" json:"pattern,omitempty"`
	Reset_        bool                   `protobuf:"varint,2,opt,name=reset,proto3" json:"reset,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *QueryStatsRequest) Reset() {
	*x = QueryStatsRequest{}
	mi := &file_app_stats_command_command_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *QueryStatsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QueryStatsRequest) ProtoMessage() {}

func (x *QueryStatsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_app_stats_command_command_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QueryStatsRequest.ProtoReflect.Descriptor instead.
func (*QueryStatsRequest) Descriptor() ([]byte, []int) {
	return file_app_stats_command_command_proto_rawDescGZIP(), []int{3}
}

func (x *QueryStatsRequest) GetPattern() string {
	if x != nil {
		return x.Pattern
	}
	return ""
}

func (x *QueryStatsRequest) GetReset_() bool {
	if x != nil {
		return x.Reset_
	}
	return false
}

type QueryStatsResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Stat          []*Stat                `protobuf:"bytes,1,rep,name=stat,proto3" json:"stat,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *QueryStatsResponse) Reset() {
	*x = QueryStatsResponse{}
	mi := &file_app_stats_command_command_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *QueryStatsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QueryStatsResponse) ProtoMessage() {}

func (x *QueryStatsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_app_stats_command_command_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QueryStatsResponse.ProtoReflect.Descriptor instead.
func (*QueryStatsResponse) Descriptor() ([]byte, []int) {
	return file_app_stats_command_command_proto_rawDescGZIP(), []int{4}
}

func (x *QueryStatsResponse) GetStat() []*Stat {
	if x != nil {
		return x.Stat
	}
	return nil
}

type SysStatsRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SysStatsRequest) Reset() {
	*x = SysStatsRequest{}
	mi := &file_app_stats_command_command_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SysStatsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SysStatsRequest) ProtoMessage() {}

func (x *SysStatsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_app_stats_command_command_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SysStatsRequest.ProtoReflect.Descriptor instead.
func (*SysStatsRequest) Descriptor() ([]byte, []int) {
	return file_app_stats_command_command_proto_rawDescGZIP(), []int{5}
}

type SysStatsResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	NumGoroutine  uint32                 `protobuf:"varint,1,opt,name=NumGoroutine,proto3" json:"NumGoroutine,omitempty"`
	NumGC         uint32                 `protobuf:"varint,2,opt,name=NumGC,proto3" json:"NumGC,omitempty"`
	Alloc         uint64                 `protobuf:"varint,3,opt,name=Alloc,proto3" json:"Alloc,omitempty"`
	TotalAlloc    uint64                 `protobuf:"varint,4,opt,name=TotalAlloc,proto3" json:"TotalAlloc,omitempty"`
	Sys           uint64                 `protobuf:"varint,5,opt,name=Sys,proto3" json:"Sys,omitempty"`
	Mallocs       uint64                 `protobuf:"varint,6,opt,name=Mallocs,proto3" json:"Mallocs,omitempty"`
	Frees         uint64                 `protobuf:"varint,7,opt,name=Frees,proto3" json:"Frees,omitempty"`
	LiveObjects   uint64                 `protobuf:"varint,8,opt,name=LiveObjects,proto3" json:"LiveObjects,omitempty"`
	PauseTotalNs  uint64                 `protobuf:"varint,9,opt,name=PauseTotalNs,proto3" json:"PauseTotalNs,omitempty"`
	Uptime        uint32                 `protobuf:"varint,10,opt,name=Uptime,proto3" json:"Uptime,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SysStatsResponse) Reset() {
	*x = SysStatsResponse{}
	mi := &file_app_stats_command_command_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SysStatsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SysStatsResponse) ProtoMessage() {}

func (x *SysStatsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_app_stats_command_command_proto_msgTypes[6]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SysStatsResponse.ProtoReflect.Descriptor instead.
func (*SysStatsResponse) Descriptor() ([]byte, []int) {
	return file_app_stats_command_command_proto_rawDescGZIP(), []int{6}
}

func (x *SysStatsResponse) GetNumGoroutine() uint32 {
	if x != nil {
		return x.NumGoroutine
	}
	return 0
}

func (x *SysStatsResponse) GetNumGC() uint32 {
	if x != nil {
		return x.NumGC
	}
	return 0
}

func (x *SysStatsResponse) GetAlloc() uint64 {
	if x != nil {
		return x.Alloc
	}
	return 0
}

func (x *SysStatsResponse) GetTotalAlloc() uint64 {
	if x != nil {
		return x.TotalAlloc
	}
	return 0
}

func (x *SysStatsResponse) GetSys() uint64 {
	if x != nil {
		return x.Sys
	}
	return 0
}

func (x *SysStatsResponse) GetMallocs() uint64 {
	if x != nil {
		return x.Mallocs
	}
	return 0
}

func (x *SysStatsResponse) GetFrees() uint64 {
	if x != nil {
		return x.Frees
	}
	return 0
}

func (x *SysStatsResponse) GetLiveObjects() uint64 {
	if x != nil {
		return x.LiveObjects
	}
	return 0
}

func (x *SysStatsResponse) GetPauseTotalNs() uint64 {
	if x != nil {
		return x.PauseTotalNs
	}
	return 0
}

func (x *SysStatsResponse) GetUptime() uint32 {
	if x != nil {
		return x.Uptime
	}
	return 0
}

type GetStatsOnlineIpListResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Ips           map[string]int64       `protobuf:"bytes,2,rep,name=ips,proto3" json:"ips,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetStatsOnlineIpListResponse) Reset() {
	*x = GetStatsOnlineIpListResponse{}
	mi := &file_app_stats_command_command_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetStatsOnlineIpListResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetStatsOnlineIpListResponse) ProtoMessage() {}

func (x *GetStatsOnlineIpListResponse) ProtoReflect() protoreflect.Message {
	mi := &file_app_stats_command_command_proto_msgTypes[7]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetStatsOnlineIpListResponse.ProtoReflect.Descriptor instead.
func (*GetStatsOnlineIpListResponse) Descriptor() ([]byte, []int) {
	return file_app_stats_command_command_proto_rawDescGZIP(), []int{7}
}

func (x *GetStatsOnlineIpListResponse) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *GetStatsOnlineIpListResponse) GetIps() map[string]int64 {
	if x != nil {
		return x.Ips
	}
	return nil
}

type GetAllOnlineUsersRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetAllOnlineUsersRequest) Reset() {
	*x = GetAllOnlineUsersRequest{}
	mi := &file_app_stats_command_command_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetAllOnlineUsersRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetAllOnlineUsersRequest) ProtoMessage() {}

func (x *GetAllOnlineUsersRequest) ProtoReflect() protoreflect.Message {
	mi := &file_app_stats_command_command_proto_msgTypes[8]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetAllOnlineUsersRequest.ProtoReflect.Descriptor instead.
func (*GetAllOnlineUsersRequest) Descriptor() ([]byte, []int) {
	return file_app_stats_command_command_proto_rawDescGZIP(), []int{8}
}

type GetAllOnlineUsersResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Users         []string               `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetAllOnlineUsersResponse) Reset() {
	*x = GetAllOnlineUsersResponse{}
	mi := &file_app_stats_command_command_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetAllOnlineUsersResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetAllOnlineUsersResponse) ProtoMessage() {}

func (x *GetAllOnlineUsersResponse) ProtoReflect() protoreflect.Message {
	mi := &file_app_stats_command_command_proto_msgTypes[9]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetAllOnlineUsersResponse.ProtoReflect.Descriptor instead.
func (*GetAllOnlineUsersResponse) Descriptor() ([]byte, []int) {
	return file_app_stats_command_command_proto_rawDescGZIP(), []int{9}
}

func (x *GetAllOnlineUsersResponse) GetUsers() []string {
	if x != nil {
		return x.Users
	}
	return nil
}

type OnlineIPEntry struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Ip            string                 `protobuf:"bytes,1,opt,name=ip,proto3" json:"ip,omitempty"`
	LastSeen      int64                  `protobuf:"varint,2,opt,name=last_seen,json=lastSeen,proto3" json:"last_seen,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *OnlineIPEntry) Reset() {
	*x = OnlineIPEntry{}
	mi := &file_app_stats_command_command_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *OnlineIPEntry) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OnlineIPEntry) ProtoMessage() {}

func (x *OnlineIPEntry) ProtoReflect() protoreflect.Message {
	mi := &file_app_stats_command_command_proto_msgTypes[10]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use OnlineIPEntry.ProtoReflect.Descriptor instead.
func (*OnlineIPEntry) Descriptor() ([]byte, []int) {
	return file_app_stats_command_command_proto_rawDescGZIP(), []int{10}
}

func (x *OnlineIPEntry) GetIp() string {
	if x != nil {
		return x.Ip
	}
	return ""
}

func (x *OnlineIPEntry) GetLastSeen() int64 {
	if x != nil {
		return x.LastSeen
	}
	return 0
}

type TrafficUserStat struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Uplink        int64                  `protobuf:"varint,1,opt,name=uplink,proto3" json:"uplink,omitempty"`
	Downlink      int64                  `protobuf:"varint,2,opt,name=downlink,proto3" json:"downlink,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TrafficUserStat) Reset() {
	*x = TrafficUserStat{}
	mi := &file_app_stats_command_command_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TrafficUserStat) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TrafficUserStat) ProtoMessage() {}

func (x *TrafficUserStat) ProtoReflect() protoreflect.Message {
	mi := &file_app_stats_command_command_proto_msgTypes[11]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TrafficUserStat.ProtoReflect.Descriptor instead.
func (*TrafficUserStat) Descriptor() ([]byte, []int) {
	return file_app_stats_command_command_proto_rawDescGZIP(), []int{11}
}

func (x *TrafficUserStat) GetUplink() int64 {
	if x != nil {
		return x.Uplink
	}
	return 0
}

func (x *TrafficUserStat) GetDownlink() int64 {
	if x != nil {
		return x.Downlink
	}
	return 0
}

type UserStat struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Email         string                 `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"`
	Ips           []*OnlineIPEntry       `protobuf:"bytes,2,rep,name=ips,proto3" json:"ips,omitempty"`
	Traffic       *TrafficUserStat       `protobuf:"bytes,3,opt,name=traffic,proto3" json:"traffic,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UserStat) Reset() {
	*x = UserStat{}
	mi := &file_app_stats_command_command_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UserStat) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UserStat) ProtoMessage() {}

func (x *UserStat) ProtoReflect() protoreflect.Message {
	mi := &file_app_stats_command_command_proto_msgTypes[12]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UserStat.ProtoReflect.Descriptor instead.
func (*UserStat) Descriptor() ([]byte, []int) {
	return file_app_stats_command_command_proto_rawDescGZIP(), []int{12}
}

func (x *UserStat) GetEmail() string {
	if x != nil {
		return x.Email
	}
	return ""
}

func (x *UserStat) GetIps() []*OnlineIPEntry {
	if x != nil {
		return x.Ips
	}
	return nil
}

func (x *UserStat) GetTraffic() *TrafficUserStat {
	if x != nil {
		return x.Traffic
	}
	return nil
}

type GetUsersStatsRequest struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	IncludeTraffic bool                   `protobuf:"varint,1,opt,name=include_traffic,json=includeTraffic,proto3" json:"include_traffic,omitempty"`
	Reset_         bool                   `protobuf:"varint,2,opt,name=reset,proto3" json:"reset,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

func (x *GetUsersStatsRequest) Reset() {
	*x = GetUsersStatsRequest{}
	mi := &file_app_stats_command_command_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetUsersStatsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetUsersStatsRequest) ProtoMessage() {}

func (x *GetUsersStatsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_app_stats_command_command_proto_msgTypes[13]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetUsersStatsRequest.ProtoReflect.Descriptor instead.
func (*GetUsersStatsRequest) Descriptor() ([]byte, []int) {
	return file_app_stats_command_command_proto_rawDescGZIP(), []int{13}
}

func (x *GetUsersStatsRequest) GetIncludeTraffic() bool {
	if x != nil {
		return x.IncludeTraffic
	}
	return false
}

func (x *GetUsersStatsRequest) GetReset_() bool {
	if x != nil {
		return x.Reset_
	}
	return false
}

type GetUsersStatsResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Users         []*UserStat            `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetUsersStatsResponse) Reset() {
	*x = GetUsersStatsResponse{}
	mi := &file_app_stats_command_command_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetUsersStatsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetUsersStatsResponse) ProtoMessage() {}

func (x *GetUsersStatsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_app_stats_command_command_proto_msgTypes[14]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetUsersStatsResponse.ProtoReflect.Descriptor instead.
func (*GetUsersStatsResponse) Descriptor() ([]byte, []int) {
	return file_app_stats_command_command_proto_rawDescGZIP(), []int{14}
}

func (x *GetUsersStatsResponse) GetUsers() []*UserStat {
	if x != nil {
		return x.Users
	}
	return nil
}

type Config struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Config) Reset() {
	*x = Config{}
	mi := &file_app_stats_command_command_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Config) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Config) ProtoMessage() {}

func (x *Config) ProtoReflect() protoreflect.Message {
	mi := &file_app_stats_command_command_proto_msgTypes[15]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Config.ProtoReflect.Descriptor instead.
func (*Config) Descriptor() ([]byte, []int) {
	return file_app_stats_command_command_proto_rawDescGZIP(), []int{15}
}

var File_app_stats_command_command_proto protoreflect.FileDescriptor

const file_app_stats_command_command_proto_rawDesc = "" +
	"\n" +
	"\x1fapp/stats/command/command.proto\x12\x16xray.app.stats.command\";\n" +
	"\x0fGetStatsRequest\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" +
	"\x05reset\x18\x02 \x01(\bR\x05reset\"0\n" +
	"\x04Stat\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" +
	"\x05value\x18\x02 \x01(\x03R\x05value\"D\n" +
	"\x10GetStatsResponse\x120\n" +
	"\x04stat\x18\x01 \x01(\v2\x1c.xray.app.stats.command.StatR\x04stat\"C\n" +
	"\x11QueryStatsRequest\x12\x18\n" +
	"\apattern\x18\x01 \x01(\tR\apattern\x12\x14\n" +
	"\x05reset\x18\x02 \x01(\bR\x05reset\"F\n" +
	"\x12QueryStatsResponse\x120\n" +
	"\x04stat\x18\x01 \x03(\v2\x1c.xray.app.stats.command.StatR\x04stat\"\x11\n" +
	"\x0fSysStatsRequest\"\xa2\x02\n" +
	"\x10SysStatsResponse\x12\"\n" +
	"\fNumGoroutine\x18\x01 \x01(\rR\fNumGoroutine\x12\x14\n" +
	"\x05NumGC\x18\x02 \x01(\rR\x05NumGC\x12\x14\n" +
	"\x05Alloc\x18\x03 \x01(\x04R\x05Alloc\x12\x1e\n" +
	"\n" +
	"TotalAlloc\x18\x04 \x01(\x04R\n" +
	"TotalAlloc\x12\x10\n" +
	"\x03Sys\x18\x05 \x01(\x04R\x03Sys\x12\x18\n" +
	"\aMallocs\x18\x06 \x01(\x04R\aMallocs\x12\x14\n" +
	"\x05Frees\x18\a \x01(\x04R\x05Frees\x12 \n" +
	"\vLiveObjects\x18\b \x01(\x04R\vLiveObjects\x12\"\n" +
	"\fPauseTotalNs\x18\t \x01(\x04R\fPauseTotalNs\x12\x16\n" +
	"\x06Uptime\x18\n" +
	" \x01(\rR\x06Uptime\"\xbb\x01\n" +
	"\x1cGetStatsOnlineIpListResponse\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12O\n" +
	"\x03ips\x18\x02 \x03(\v2=.xray.app.stats.command.GetStatsOnlineIpListResponse.IpsEntryR\x03ips\x1a6\n" +
	"\bIpsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\x03R\x05value:\x028\x01\"\x1a\n" +
	"\x18GetAllOnlineUsersRequest\"1\n" +
	"\x19GetAllOnlineUsersResponse\x12\x14\n" +
	"\x05users\x18\x01 \x03(\tR\x05users\"<\n" +
	"\rOnlineIPEntry\x12\x0e\n" +
	"\x02ip\x18\x01 \x01(\tR\x02ip\x12\x1b\n" +
	"\tlast_seen\x18\x02 \x01(\x03R\blastSeen\"E\n" +
	"\x0fTrafficUserStat\x12\x16\n" +
	"\x06uplink\x18\x01 \x01(\x03R\x06uplink\x12\x1a\n" +
	"\bdownlink\x18\x02 \x01(\x03R\bdownlink\"\x9c\x01\n" +
	"\bUserStat\x12\x14\n" +
	"\x05email\x18\x01 \x01(\tR\x05email\x127\n" +
	"\x03ips\x18\x02 \x03(\v2%.xray.app.stats.command.OnlineIPEntryR\x03ips\x12A\n" +
	"\atraffic\x18\x03 \x01(\v2'.xray.app.stats.command.TrafficUserStatR\atraffic\"U\n" +
	"\x14GetUsersStatsRequest\x12'\n" +
	"\x0finclude_traffic\x18\x01 \x01(\bR\x0eincludeTraffic\x12\x14\n" +
	"\x05reset\x18\x02 \x01(\bR\x05reset\"O\n" +
	"\x15GetUsersStatsResponse\x126\n" +
	"\x05users\x18\x01 \x03(\v2 .xray.app.stats.command.UserStatR\x05users\"\b\n" +
	"\x06Config2\x86\x06\n" +
	"\fStatsService\x12_\n" +
	"\bGetStats\x12'.xray.app.stats.command.GetStatsRequest\x1a(.xray.app.stats.command.GetStatsResponse\"\x00\x12e\n" +
	"\x0eGetStatsOnline\x12'.xray.app.stats.command.GetStatsRequest\x1a(.xray.app.stats.command.GetStatsResponse\"\x00\x12e\n" +
	"\n" +
	"QueryStats\x12).xray.app.stats.command.QueryStatsRequest\x1a*.xray.app.stats.command.QueryStatsResponse\"\x00\x12b\n" +
	"\vGetSysStats\x12'.xray.app.stats.command.SysStatsRequest\x1a(.xray.app.stats.command.SysStatsResponse\"\x00\x12w\n" +
	"\x14GetStatsOnlineIpList\x12'.xray.app.stats.command.GetStatsRequest\x1a4.xray.app.stats.command.GetStatsOnlineIpListResponse\"\x00\x12z\n" +
	"\x11GetAllOnlineUsers\x120.xray.app.stats.command.GetAllOnlineUsersRequest\x1a1.xray.app.stats.command.GetAllOnlineUsersResponse\"\x00\x12n\n" +
	"\rGetUsersStats\x12,.xray.app.stats.command.GetUsersStatsRequest\x1a-.xray.app.stats.command.GetUsersStatsResponse\"\x00Bd\n" +
	"\x1acom.xray.app.stats.commandP\x01Z+github.com/xtls/xray-core/app/stats/command\xaa\x02\x16Xray.App.Stats.Commandb\x06proto3"

var (
	file_app_stats_command_command_proto_rawDescOnce sync.Once
	file_app_stats_command_command_proto_rawDescData []byte
)

func file_app_stats_command_command_proto_rawDescGZIP() []byte {
	file_app_stats_command_command_proto_rawDescOnce.Do(func() {
		file_app_stats_command_command_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_app_stats_command_command_proto_rawDesc), len(file_app_stats_command_command_proto_rawDesc)))
	})
	return file_app_stats_command_command_proto_rawDescData
}

var file_app_stats_command_command_proto_msgTypes = make([]protoimpl.MessageInfo, 17)
var file_app_stats_command_command_proto_goTypes = []any{
	(*GetStatsRequest)(nil),              // 0: xray.app.stats.command.GetStatsRequest
	(*Stat)(nil),                         // 1: xray.app.stats.command.Stat
	(*GetStatsResponse)(nil),             // 2: xray.app.stats.command.GetStatsResponse
	(*QueryStatsRequest)(nil),            // 3: xray.app.stats.command.QueryStatsRequest
	(*QueryStatsResponse)(nil),           // 4: xray.app.stats.command.QueryStatsResponse
	(*SysStatsRequest)(nil),              // 5: xray.app.stats.command.SysStatsRequest
	(*SysStatsResponse)(nil),             // 6: xray.app.stats.command.SysStatsResponse
	(*GetStatsOnlineIpListResponse)(nil), // 7: xray.app.stats.command.GetStatsOnlineIpListResponse
	(*GetAllOnlineUsersRequest)(nil),     // 8: xray.app.stats.command.GetAllOnlineUsersRequest
	(*GetAllOnlineUsersResponse)(nil),    // 9: xray.app.stats.command.GetAllOnlineUsersResponse
	(*OnlineIPEntry)(nil),                // 10: xray.app.stats.command.OnlineIPEntry
	(*TrafficUserStat)(nil),              // 11: xray.app.stats.command.TrafficUserStat
	(*UserStat)(nil),                     // 12: xray.app.stats.command.UserStat
	(*GetUsersStatsRequest)(nil),         // 13: xray.app.stats.command.GetUsersStatsRequest
	(*GetUsersStatsResponse)(nil),        // 14: xray.app.stats.command.GetUsersStatsResponse
	(*Config)(nil),                       // 15: xray.app.stats.command.Config
	nil,                                  // 16: xray.app.stats.command.GetStatsOnlineIpListResponse.IpsEntry
}
var file_app_stats_command_command_proto_depIdxs = []int32{
	1,  // 0: xray.app.stats.command.GetStatsResponse.stat:type_name -> xray.app.stats.command.Stat
	1,  // 1: xray.app.stats.command.QueryStatsResponse.stat:type_name -> xray.app.stats.command.Stat
	16, // 2: xray.app.stats.command.GetStatsOnlineIpListResponse.ips:type_name -> xray.app.stats.command.GetStatsOnlineIpListResponse.IpsEntry
	10, // 3: xray.app.stats.command.UserStat.ips:type_name -> xray.app.stats.command.OnlineIPEntry
	11, // 4: xray.app.stats.command.UserStat.traffic:type_name -> xray.app.stats.command.TrafficUserStat
	12, // 5: xray.app.stats.command.GetUsersStatsResponse.users:type_name -> xray.app.stats.command.UserStat
	0,  // 6: xray.app.stats.command.StatsService.GetStats:input_type -> xray.app.stats.command.GetStatsRequest
	0,  // 7: xray.app.stats.command.StatsService.GetStatsOnline:input_type -> xray.app.stats.command.GetStatsRequest
	3,  // 8: xray.app.stats.command.StatsService.QueryStats:input_type -> xray.app.stats.command.QueryStatsRequest
	5,  // 9: xray.app.stats.command.StatsService.GetSysStats:input_type -> xray.app.stats.command.SysStatsRequest
	0,  // 10: xray.app.stats.command.StatsService.GetStatsOnlineIpList:input_type -> xray.app.stats.command.GetStatsRequest
	8,  // 11: xray.app.stats.command.StatsService.GetAllOnlineUsers:input_type -> xray.app.stats.command.GetAllOnlineUsersRequest
	13, // 12: xray.app.stats.command.StatsService.GetUsersStats:input_type -> xray.app.stats.command.GetUsersStatsRequest
	2,  // 13: xray.app.stats.command.StatsService.GetStats:output_type -> xray.app.stats.command.GetStatsResponse
	2,  // 14: xray.app.stats.command.StatsService.GetStatsOnline:output_type -> xray.app.stats.command.GetStatsResponse
	4,  // 15: xray.app.stats.command.StatsService.QueryStats:output_type -> xray.app.stats.command.QueryStatsResponse
	6,  // 16: xray.app.stats.command.StatsService.GetSysStats:output_type -> xray.app.stats.command.SysStatsResponse
	7,  // 17: xray.app.stats.command.StatsService.GetStatsOnlineIpList:output_type -> xray.app.stats.command.GetStatsOnlineIpListResponse
	9,  // 18: xray.app.stats.command.StatsService.GetAllOnlineUsers:output_type -> xray.app.stats.command.GetAllOnlineUsersResponse
	14, // 19: xray.app.stats.command.StatsService.GetUsersStats:output_type -> xray.app.stats.command.GetUsersStatsResponse
	13, // [13:20] is the sub-list for method output_type
	6,  // [6:13] is the sub-list for method input_type
	6,  // [6:6] is the sub-list for extension type_name
	6,  // [6:6] is the sub-list for extension extendee
	0,  // [0:6] is the sub-list for field type_name
}

func init() { file_app_stats_command_command_proto_init() }
func file_app_stats_command_command_proto_init() {
	if File_app_stats_command_command_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_app_stats_command_command_proto_rawDesc), len(file_app_stats_command_command_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   17,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_app_stats_command_command_proto_goTypes,
		DependencyIndexes: file_app_stats_command_command_proto_depIdxs,
		MessageInfos:      file_app_stats_command_command_proto_msgTypes,
	}.Build()
	File_app_stats_command_command_proto = out.File
	file_app_stats_command_command_proto_goTypes = nil
	file_app_stats_command_command_proto_depIdxs = nil
}
