// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        v6.31.1
// source: service/node_manager_api/manager/manager.proto

package manager

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 OpType int32

const (
	OpType_updateUsers              OpType = 0
	OpType_updateUser               OpType = 1
	OpType_deleteUser               OpType = 2
	OpType_updateBandwidthLimiters  OpType = 3
	OpType_updateBandwidthLimiter   OpType = 4
	OpType_deleteBandwidthLimiter   OpType = 5
	OpType_updateConnectionLimiters OpType = 6
	OpType_updateConnectionLimiter  OpType = 7
	OpType_deleteConnectionLimiter  OpType = 8
	OpType_updateTrafficLimiters    OpType = 9
	OpType_updateTrafficLimiter     OpType = 10
	OpType_deleteTrafficLimiter     OpType = 11
	OpType_updateRateLimiters       OpType = 12
	OpType_updateRateLimiter        OpType = 13
	OpType_deleteRateLimiter        OpType = 14
)

// Enum value maps for OpType.
var (
	OpType_name = map[int32]string{
		0:  "updateUsers",
		1:  "updateUser",
		2:  "deleteUser",
		3:  "updateBandwidthLimiters",
		4:  "updateBandwidthLimiter",
		5:  "deleteBandwidthLimiter",
		6:  "updateConnectionLimiters",
		7:  "updateConnectionLimiter",
		8:  "deleteConnectionLimiter",
		9:  "updateTrafficLimiters",
		10: "updateTrafficLimiter",
		11: "deleteTrafficLimiter",
		12: "updateRateLimiters",
		13: "updateRateLimiter",
		14: "deleteRateLimiter",
	}
	OpType_value = map[string]int32{
		"updateUsers":              0,
		"updateUser":               1,
		"deleteUser":               2,
		"updateBandwidthLimiters":  3,
		"updateBandwidthLimiter":   4,
		"deleteBandwidthLimiter":   5,
		"updateConnectionLimiters": 6,
		"updateConnectionLimiter":  7,
		"deleteConnectionLimiter":  8,
		"updateTrafficLimiters":    9,
		"updateTrafficLimiter":     10,
		"deleteTrafficLimiter":     11,
		"updateRateLimiters":       12,
		"updateRateLimiter":        13,
		"deleteRateLimiter":        14,
	}
)

func (x OpType) Enum() *OpType {
	p := new(OpType)
	*p = x
	return p
}

func (x OpType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (OpType) Descriptor() protoreflect.EnumDescriptor {
	return file_service_node_manager_api_manager_manager_proto_enumTypes[0].Descriptor()
}

func (OpType) Type() protoreflect.EnumType {
	return &file_service_node_manager_api_manager_manager_proto_enumTypes[0]
}

func (x OpType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use OpType.Descriptor instead.
func (OpType) EnumDescriptor() ([]byte, []int) {
	return file_service_node_manager_api_manager_manager_proto_rawDescGZIP(), []int{0}
}

type Node struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Uuid          string                 `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Node) ProtoMessage() {}

func (x *Node) ProtoReflect() protoreflect.Message {
	mi := &file_service_node_manager_api_manager_manager_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 Node.ProtoReflect.Descriptor instead.
func (*Node) Descriptor() ([]byte, []int) {
	return file_service_node_manager_api_manager_manager_proto_rawDescGZIP(), []int{0}
}

func (x *Node) GetUuid() string {
	if x != nil {
		return x.Uuid
	}
	return ""
}

type User struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int32                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Username      string                 `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`
	Inbound       string                 `protobuf:"bytes,3,opt,name=inbound,proto3" json:"inbound,omitempty"`
	Type          string                 `protobuf:"bytes,4,opt,name=type,proto3" json:"type,omitempty"`
	Uuid          string                 `protobuf:"bytes,5,opt,name=uuid,proto3" json:"uuid,omitempty"`
	Password      string                 `protobuf:"bytes,6,opt,name=password,proto3" json:"password,omitempty"`
	Secret        string                 `protobuf:"bytes,7,opt,name=secret,proto3" json:"secret,omitempty"`
	Flow          string                 `protobuf:"bytes,8,opt,name=flow,proto3" json:"flow,omitempty"`
	AlterId       int32                  `protobuf:"varint,9,opt,name=alter_id,json=alterId,proto3" json:"alter_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*User) ProtoMessage() {}

func (x *User) ProtoReflect() protoreflect.Message {
	mi := &file_service_node_manager_api_manager_manager_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 User.ProtoReflect.Descriptor instead.
func (*User) Descriptor() ([]byte, []int) {
	return file_service_node_manager_api_manager_manager_proto_rawDescGZIP(), []int{1}
}

func (x *User) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *User) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

func (x *User) GetInbound() string {
	if x != nil {
		return x.Inbound
	}
	return ""
}

func (x *User) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *User) GetUuid() string {
	if x != nil {
		return x.Uuid
	}
	return ""
}

func (x *User) GetPassword() string {
	if x != nil {
		return x.Password
	}
	return ""
}

func (x *User) GetSecret() string {
	if x != nil {
		return x.Secret
	}
	return ""
}

func (x *User) GetFlow() string {
	if x != nil {
		return x.Flow
	}
	return ""
}

func (x *User) GetAlterId() int32 {
	if x != nil {
		return x.AlterId
	}
	return 0
}

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

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

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

func (*UserList) ProtoMessage() {}

func (x *UserList) ProtoReflect() protoreflect.Message {
	mi := &file_service_node_manager_api_manager_manager_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 UserList.ProtoReflect.Descriptor instead.
func (*UserList) Descriptor() ([]byte, []int) {
	return file_service_node_manager_api_manager_manager_proto_rawDescGZIP(), []int{2}
}

func (x *UserList) GetValues() []*User {
	if x != nil {
		return x.Values
	}
	return nil
}

type BandwidthLimiter struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	Id             int32                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Username       string                 `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`
	Outbound       string                 `protobuf:"bytes,3,opt,name=outbound,proto3" json:"outbound,omitempty"`
	Strategy       string                 `protobuf:"bytes,4,opt,name=strategy,proto3" json:"strategy,omitempty"`
	ConnectionType string                 `protobuf:"bytes,5,opt,name=connection_type,json=connectionType,proto3" json:"connection_type,omitempty"`
	Mode           string                 `protobuf:"bytes,6,opt,name=mode,proto3" json:"mode,omitempty"`
	FlowKeys       []string               `protobuf:"bytes,7,rep,name=flow_keys,json=flowKeys,proto3" json:"flow_keys,omitempty"`
	Speed          string                 `protobuf:"bytes,8,opt,name=speed,proto3" json:"speed,omitempty"`
	RawSpeed       uint64                 `protobuf:"varint,9,opt,name=raw_speed,json=rawSpeed,proto3" json:"raw_speed,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*BandwidthLimiter) ProtoMessage() {}

func (x *BandwidthLimiter) ProtoReflect() protoreflect.Message {
	mi := &file_service_node_manager_api_manager_manager_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 BandwidthLimiter.ProtoReflect.Descriptor instead.
func (*BandwidthLimiter) Descriptor() ([]byte, []int) {
	return file_service_node_manager_api_manager_manager_proto_rawDescGZIP(), []int{3}
}

func (x *BandwidthLimiter) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *BandwidthLimiter) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

func (x *BandwidthLimiter) GetOutbound() string {
	if x != nil {
		return x.Outbound
	}
	return ""
}

func (x *BandwidthLimiter) GetStrategy() string {
	if x != nil {
		return x.Strategy
	}
	return ""
}

func (x *BandwidthLimiter) GetConnectionType() string {
	if x != nil {
		return x.ConnectionType
	}
	return ""
}

func (x *BandwidthLimiter) GetMode() string {
	if x != nil {
		return x.Mode
	}
	return ""
}

func (x *BandwidthLimiter) GetFlowKeys() []string {
	if x != nil {
		return x.FlowKeys
	}
	return nil
}

func (x *BandwidthLimiter) GetSpeed() string {
	if x != nil {
		return x.Speed
	}
	return ""
}

func (x *BandwidthLimiter) GetRawSpeed() uint64 {
	if x != nil {
		return x.RawSpeed
	}
	return 0
}

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

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

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

func (*BandwidthLimiterList) ProtoMessage() {}

func (x *BandwidthLimiterList) ProtoReflect() protoreflect.Message {
	mi := &file_service_node_manager_api_manager_manager_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 BandwidthLimiterList.ProtoReflect.Descriptor instead.
func (*BandwidthLimiterList) Descriptor() ([]byte, []int) {
	return file_service_node_manager_api_manager_manager_proto_rawDescGZIP(), []int{4}
}

func (x *BandwidthLimiterList) GetValues() []*BandwidthLimiter {
	if x != nil {
		return x.Values
	}
	return nil
}

type ConnectionLimiter struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	Id             int32                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Username       string                 `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`
	Outbound       string                 `protobuf:"bytes,3,opt,name=outbound,proto3" json:"outbound,omitempty"`
	Strategy       string                 `protobuf:"bytes,4,opt,name=strategy,proto3" json:"strategy,omitempty"`
	ConnectionType string                 `protobuf:"bytes,5,opt,name=connection_type,json=connectionType,proto3" json:"connection_type,omitempty"`
	LockType       string                 `protobuf:"bytes,6,opt,name=lock_type,json=lockType,proto3" json:"lock_type,omitempty"`
	Count          uint32                 `protobuf:"varint,7,opt,name=count,proto3" json:"count,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*ConnectionLimiter) ProtoMessage() {}

func (x *ConnectionLimiter) ProtoReflect() protoreflect.Message {
	mi := &file_service_node_manager_api_manager_manager_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 ConnectionLimiter.ProtoReflect.Descriptor instead.
func (*ConnectionLimiter) Descriptor() ([]byte, []int) {
	return file_service_node_manager_api_manager_manager_proto_rawDescGZIP(), []int{5}
}

func (x *ConnectionLimiter) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *ConnectionLimiter) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

func (x *ConnectionLimiter) GetOutbound() string {
	if x != nil {
		return x.Outbound
	}
	return ""
}

func (x *ConnectionLimiter) GetStrategy() string {
	if x != nil {
		return x.Strategy
	}
	return ""
}

func (x *ConnectionLimiter) GetConnectionType() string {
	if x != nil {
		return x.ConnectionType
	}
	return ""
}

func (x *ConnectionLimiter) GetLockType() string {
	if x != nil {
		return x.LockType
	}
	return ""
}

func (x *ConnectionLimiter) GetCount() uint32 {
	if x != nil {
		return x.Count
	}
	return 0
}

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

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

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

func (*ConnectionLimiterList) ProtoMessage() {}

func (x *ConnectionLimiterList) ProtoReflect() protoreflect.Message {
	mi := &file_service_node_manager_api_manager_manager_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 ConnectionLimiterList.ProtoReflect.Descriptor instead.
func (*ConnectionLimiterList) Descriptor() ([]byte, []int) {
	return file_service_node_manager_api_manager_manager_proto_rawDescGZIP(), []int{6}
}

func (x *ConnectionLimiterList) GetValues() []*ConnectionLimiter {
	if x != nil {
		return x.Values
	}
	return nil
}

type TrafficLimiter struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            int32                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Username      string                 `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`
	Outbound      string                 `protobuf:"bytes,3,opt,name=outbound,proto3" json:"outbound,omitempty"`
	Strategy      string                 `protobuf:"bytes,4,opt,name=strategy,proto3" json:"strategy,omitempty"`
	Mode          string                 `protobuf:"bytes,5,opt,name=mode,proto3" json:"mode,omitempty"`
	RawUsed       uint64                 `protobuf:"varint,6,opt,name=raw_used,json=rawUsed,proto3" json:"raw_used,omitempty"`
	Quota         string                 `protobuf:"bytes,7,opt,name=quota,proto3" json:"quota,omitempty"`
	RawQuota      uint64                 `protobuf:"varint,8,opt,name=raw_quota,json=rawQuota,proto3" json:"raw_quota,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*TrafficLimiter) ProtoMessage() {}

func (x *TrafficLimiter) ProtoReflect() protoreflect.Message {
	mi := &file_service_node_manager_api_manager_manager_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 TrafficLimiter.ProtoReflect.Descriptor instead.
func (*TrafficLimiter) Descriptor() ([]byte, []int) {
	return file_service_node_manager_api_manager_manager_proto_rawDescGZIP(), []int{7}
}

func (x *TrafficLimiter) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *TrafficLimiter) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

func (x *TrafficLimiter) GetOutbound() string {
	if x != nil {
		return x.Outbound
	}
	return ""
}

func (x *TrafficLimiter) GetStrategy() string {
	if x != nil {
		return x.Strategy
	}
	return ""
}

func (x *TrafficLimiter) GetMode() string {
	if x != nil {
		return x.Mode
	}
	return ""
}

func (x *TrafficLimiter) GetRawUsed() uint64 {
	if x != nil {
		return x.RawUsed
	}
	return 0
}

func (x *TrafficLimiter) GetQuota() string {
	if x != nil {
		return x.Quota
	}
	return ""
}

func (x *TrafficLimiter) GetRawQuota() uint64 {
	if x != nil {
		return x.RawQuota
	}
	return 0
}

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

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

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

func (*TrafficLimiterList) ProtoMessage() {}

func (x *TrafficLimiterList) ProtoReflect() protoreflect.Message {
	mi := &file_service_node_manager_api_manager_manager_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 TrafficLimiterList.ProtoReflect.Descriptor instead.
func (*TrafficLimiterList) Descriptor() ([]byte, []int) {
	return file_service_node_manager_api_manager_manager_proto_rawDescGZIP(), []int{8}
}

func (x *TrafficLimiterList) GetValues() []*TrafficLimiter {
	if x != nil {
		return x.Values
	}
	return nil
}

type RateLimiter struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	Id             int32                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Username       string                 `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`
	Outbound       string                 `protobuf:"bytes,3,opt,name=outbound,proto3" json:"outbound,omitempty"`
	Strategy       string                 `protobuf:"bytes,4,opt,name=strategy,proto3" json:"strategy,omitempty"`
	ConnectionType string                 `protobuf:"bytes,5,opt,name=connection_type,json=connectionType,proto3" json:"connection_type,omitempty"`
	Count          uint32                 `protobuf:"varint,6,opt,name=count,proto3" json:"count,omitempty"`
	Interval       string                 `protobuf:"bytes,7,opt,name=interval,proto3" json:"interval,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*RateLimiter) ProtoMessage() {}

func (x *RateLimiter) ProtoReflect() protoreflect.Message {
	mi := &file_service_node_manager_api_manager_manager_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 RateLimiter.ProtoReflect.Descriptor instead.
func (*RateLimiter) Descriptor() ([]byte, []int) {
	return file_service_node_manager_api_manager_manager_proto_rawDescGZIP(), []int{9}
}

func (x *RateLimiter) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *RateLimiter) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

func (x *RateLimiter) GetOutbound() string {
	if x != nil {
		return x.Outbound
	}
	return ""
}

func (x *RateLimiter) GetStrategy() string {
	if x != nil {
		return x.Strategy
	}
	return ""
}

func (x *RateLimiter) GetConnectionType() string {
	if x != nil {
		return x.ConnectionType
	}
	return ""
}

func (x *RateLimiter) GetCount() uint32 {
	if x != nil {
		return x.Count
	}
	return 0
}

func (x *RateLimiter) GetInterval() string {
	if x != nil {
		return x.Interval
	}
	return ""
}

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

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

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

func (*RateLimiterList) ProtoMessage() {}

func (x *RateLimiterList) ProtoReflect() protoreflect.Message {
	mi := &file_service_node_manager_api_manager_manager_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 RateLimiterList.ProtoReflect.Descriptor instead.
func (*RateLimiterList) Descriptor() ([]byte, []int) {
	return file_service_node_manager_api_manager_manager_proto_rawDescGZIP(), []int{10}
}

func (x *RateLimiterList) GetValues() []*RateLimiter {
	if x != nil {
		return x.Values
	}
	return nil
}

type NodeData struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Op    OpType                 `protobuf:"varint,1,opt,name=op,proto3,enum=node_manager_api.v1.OpType" json:"op,omitempty"`
	// Types that are valid to be assigned to Data:
	//
	//	*NodeData_Users
	//	*NodeData_User
	//	*NodeData_BandwidthLimiters
	//	*NodeData_BandwidthLimiter
	//	*NodeData_ConnectionLimiters
	//	*NodeData_ConnectionLimiter
	//	*NodeData_TrafficLimiters
	//	*NodeData_TrafficLimiter
	//	*NodeData_RateLimiters
	//	*NodeData_RateLimiter
	Data          isNodeData_Data `protobuf_oneof:"data"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*NodeData) ProtoMessage() {}

func (x *NodeData) ProtoReflect() protoreflect.Message {
	mi := &file_service_node_manager_api_manager_manager_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 NodeData.ProtoReflect.Descriptor instead.
func (*NodeData) Descriptor() ([]byte, []int) {
	return file_service_node_manager_api_manager_manager_proto_rawDescGZIP(), []int{11}
}

func (x *NodeData) GetOp() OpType {
	if x != nil {
		return x.Op
	}
	return OpType_updateUsers
}

func (x *NodeData) GetData() isNodeData_Data {
	if x != nil {
		return x.Data
	}
	return nil
}

func (x *NodeData) GetUsers() *UserList {
	if x != nil {
		if x, ok := x.Data.(*NodeData_Users); ok {
			return x.Users
		}
	}
	return nil
}

func (x *NodeData) GetUser() *User {
	if x != nil {
		if x, ok := x.Data.(*NodeData_User); ok {
			return x.User
		}
	}
	return nil
}

func (x *NodeData) GetBandwidthLimiters() *BandwidthLimiterList {
	if x != nil {
		if x, ok := x.Data.(*NodeData_BandwidthLimiters); ok {
			return x.BandwidthLimiters
		}
	}
	return nil
}

func (x *NodeData) GetBandwidthLimiter() *BandwidthLimiter {
	if x != nil {
		if x, ok := x.Data.(*NodeData_BandwidthLimiter); ok {
			return x.BandwidthLimiter
		}
	}
	return nil
}

func (x *NodeData) GetConnectionLimiters() *ConnectionLimiterList {
	if x != nil {
		if x, ok := x.Data.(*NodeData_ConnectionLimiters); ok {
			return x.ConnectionLimiters
		}
	}
	return nil
}

func (x *NodeData) GetConnectionLimiter() *ConnectionLimiter {
	if x != nil {
		if x, ok := x.Data.(*NodeData_ConnectionLimiter); ok {
			return x.ConnectionLimiter
		}
	}
	return nil
}

func (x *NodeData) GetTrafficLimiters() *TrafficLimiterList {
	if x != nil {
		if x, ok := x.Data.(*NodeData_TrafficLimiters); ok {
			return x.TrafficLimiters
		}
	}
	return nil
}

func (x *NodeData) GetTrafficLimiter() *TrafficLimiter {
	if x != nil {
		if x, ok := x.Data.(*NodeData_TrafficLimiter); ok {
			return x.TrafficLimiter
		}
	}
	return nil
}

func (x *NodeData) GetRateLimiters() *RateLimiterList {
	if x != nil {
		if x, ok := x.Data.(*NodeData_RateLimiters); ok {
			return x.RateLimiters
		}
	}
	return nil
}

func (x *NodeData) GetRateLimiter() *RateLimiter {
	if x != nil {
		if x, ok := x.Data.(*NodeData_RateLimiter); ok {
			return x.RateLimiter
		}
	}
	return nil
}

type isNodeData_Data interface {
	isNodeData_Data()
}

type NodeData_Users struct {
	Users *UserList `protobuf:"bytes,2,opt,name=users,proto3,oneof"`
}

type NodeData_User struct {
	User *User `protobuf:"bytes,3,opt,name=user,proto3,oneof"`
}

type NodeData_BandwidthLimiters struct {
	BandwidthLimiters *BandwidthLimiterList `protobuf:"bytes,4,opt,name=bandwidth_limiters,json=bandwidthLimiters,proto3,oneof"`
}

type NodeData_BandwidthLimiter struct {
	BandwidthLimiter *BandwidthLimiter `protobuf:"bytes,5,opt,name=bandwidth_limiter,json=bandwidthLimiter,proto3,oneof"`
}

type NodeData_ConnectionLimiters struct {
	ConnectionLimiters *ConnectionLimiterList `protobuf:"bytes,6,opt,name=connection_limiters,json=connectionLimiters,proto3,oneof"`
}

type NodeData_ConnectionLimiter struct {
	ConnectionLimiter *ConnectionLimiter `protobuf:"bytes,7,opt,name=connection_limiter,json=connectionLimiter,proto3,oneof"`
}

type NodeData_TrafficLimiters struct {
	TrafficLimiters *TrafficLimiterList `protobuf:"bytes,8,opt,name=traffic_limiters,json=trafficLimiters,proto3,oneof"`
}

type NodeData_TrafficLimiter struct {
	TrafficLimiter *TrafficLimiter `protobuf:"bytes,9,opt,name=traffic_limiter,json=trafficLimiter,proto3,oneof"`
}

type NodeData_RateLimiters struct {
	RateLimiters *RateLimiterList `protobuf:"bytes,10,opt,name=rate_limiters,json=rateLimiters,proto3,oneof"`
}

type NodeData_RateLimiter struct {
	RateLimiter *RateLimiter `protobuf:"bytes,11,opt,name=rate_limiter,json=rateLimiter,proto3,oneof"`
}

func (*NodeData_Users) isNodeData_Data() {}

func (*NodeData_User) isNodeData_Data() {}

func (*NodeData_BandwidthLimiters) isNodeData_Data() {}

func (*NodeData_BandwidthLimiter) isNodeData_Data() {}

func (*NodeData_ConnectionLimiters) isNodeData_Data() {}

func (*NodeData_ConnectionLimiter) isNodeData_Data() {}

func (*NodeData_TrafficLimiters) isNodeData_Data() {}

func (*NodeData_TrafficLimiter) isNodeData_Data() {}

func (*NodeData_RateLimiters) isNodeData_Data() {}

func (*NodeData_RateLimiter) isNodeData_Data() {}

type AcquireLockRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	LimiterId     int32                  `protobuf:"varint,1,opt,name=limiter_id,json=limiterId,proto3" json:"limiter_id,omitempty"`
	Id            string                 `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AcquireLockRequest) ProtoMessage() {}

func (x *AcquireLockRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_node_manager_api_manager_manager_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 AcquireLockRequest.ProtoReflect.Descriptor instead.
func (*AcquireLockRequest) Descriptor() ([]byte, []int) {
	return file_service_node_manager_api_manager_manager_proto_rawDescGZIP(), []int{12}
}

func (x *AcquireLockRequest) GetLimiterId() int32 {
	if x != nil {
		return x.LimiterId
	}
	return 0
}

func (x *AcquireLockRequest) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

type LockData struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	LimiterId     int32                  `protobuf:"varint,1,opt,name=limiter_id,json=limiterId,proto3" json:"limiter_id,omitempty"`
	Id            string                 `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
	HandleId      string                 `protobuf:"bytes,3,opt,name=handleId,proto3" json:"handleId,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*LockData) ProtoMessage() {}

func (x *LockData) ProtoReflect() protoreflect.Message {
	mi := &file_service_node_manager_api_manager_manager_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 LockData.ProtoReflect.Descriptor instead.
func (*LockData) Descriptor() ([]byte, []int) {
	return file_service_node_manager_api_manager_manager_proto_rawDescGZIP(), []int{13}
}

func (x *LockData) GetLimiterId() int32 {
	if x != nil {
		return x.LimiterId
	}
	return 0
}

func (x *LockData) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *LockData) GetHandleId() string {
	if x != nil {
		return x.HandleId
	}
	return ""
}

type TrafficUsageRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	LimiterId     int32                  `protobuf:"varint,1,opt,name=limiter_id,json=limiterId,proto3" json:"limiter_id,omitempty"`
	N             uint64                 `protobuf:"varint,2,opt,name=n,proto3" json:"n,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*TrafficUsageRequest) ProtoMessage() {}

func (x *TrafficUsageRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_node_manager_api_manager_manager_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 TrafficUsageRequest.ProtoReflect.Descriptor instead.
func (*TrafficUsageRequest) Descriptor() ([]byte, []int) {
	return file_service_node_manager_api_manager_manager_proto_rawDescGZIP(), []int{14}
}

func (x *TrafficUsageRequest) GetLimiterId() int32 {
	if x != nil {
		return x.LimiterId
	}
	return 0
}

func (x *TrafficUsageRequest) GetN() uint64 {
	if x != nil {
		return x.N
	}
	return 0
}

type TrafficUsageReply struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Remaining     uint64                 `protobuf:"varint,1,opt,name=remaining,proto3" json:"remaining,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*TrafficUsageReply) ProtoMessage() {}

func (x *TrafficUsageReply) ProtoReflect() protoreflect.Message {
	mi := &file_service_node_manager_api_manager_manager_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 TrafficUsageReply.ProtoReflect.Descriptor instead.
func (*TrafficUsageReply) Descriptor() ([]byte, []int) {
	return file_service_node_manager_api_manager_manager_proto_rawDescGZIP(), []int{15}
}

func (x *TrafficUsageReply) GetRemaining() uint64 {
	if x != nil {
		return x.Remaining
	}
	return 0
}

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

func (x *Empty) Reset() {
	*x = Empty{}
	mi := &file_service_node_manager_api_manager_manager_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Empty) ProtoMessage() {}

func (x *Empty) ProtoReflect() protoreflect.Message {
	mi := &file_service_node_manager_api_manager_manager_proto_msgTypes[16]
	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 Empty.ProtoReflect.Descriptor instead.
func (*Empty) Descriptor() ([]byte, []int) {
	return file_service_node_manager_api_manager_manager_proto_rawDescGZIP(), []int{16}
}

var File_service_node_manager_api_manager_manager_proto protoreflect.FileDescriptor

const file_service_node_manager_api_manager_manager_proto_rawDesc = "" +
	"\n" +
	".service/node_manager_api/manager/manager.proto\x12\x13node_manager_api.v1\"\x1a\n" +
	"\x04Node\x12\x12\n" +
	"\x04uuid\x18\x01 \x01(\tR\x04uuid\"\xd7\x01\n" +
	"\x04User\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x05R\x02id\x12\x1a\n" +
	"\busername\x18\x02 \x01(\tR\busername\x12\x18\n" +
	"\ainbound\x18\x03 \x01(\tR\ainbound\x12\x12\n" +
	"\x04type\x18\x04 \x01(\tR\x04type\x12\x12\n" +
	"\x04uuid\x18\x05 \x01(\tR\x04uuid\x12\x1a\n" +
	"\bpassword\x18\x06 \x01(\tR\bpassword\x12\x16\n" +
	"\x06secret\x18\a \x01(\tR\x06secret\x12\x12\n" +
	"\x04flow\x18\b \x01(\tR\x04flow\x12\x19\n" +
	"\balter_id\x18\t \x01(\x05R\aalterId\"=\n" +
	"\bUserList\x121\n" +
	"\x06values\x18\x01 \x03(\v2\x19.node_manager_api.v1.UserR\x06values\"\x83\x02\n" +
	"\x10BandwidthLimiter\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x05R\x02id\x12\x1a\n" +
	"\busername\x18\x02 \x01(\tR\busername\x12\x1a\n" +
	"\boutbound\x18\x03 \x01(\tR\boutbound\x12\x1a\n" +
	"\bstrategy\x18\x04 \x01(\tR\bstrategy\x12'\n" +
	"\x0fconnection_type\x18\x05 \x01(\tR\x0econnectionType\x12\x12\n" +
	"\x04mode\x18\x06 \x01(\tR\x04mode\x12\x1b\n" +
	"\tflow_keys\x18\a \x03(\tR\bflowKeys\x12\x14\n" +
	"\x05speed\x18\b \x01(\tR\x05speed\x12\x1b\n" +
	"\traw_speed\x18\t \x01(\x04R\brawSpeed\"U\n" +
	"\x14BandwidthLimiterList\x12=\n" +
	"\x06values\x18\x01 \x03(\v2%.node_manager_api.v1.BandwidthLimiterR\x06values\"\xd3\x01\n" +
	"\x11ConnectionLimiter\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x05R\x02id\x12\x1a\n" +
	"\busername\x18\x02 \x01(\tR\busername\x12\x1a\n" +
	"\boutbound\x18\x03 \x01(\tR\boutbound\x12\x1a\n" +
	"\bstrategy\x18\x04 \x01(\tR\bstrategy\x12'\n" +
	"\x0fconnection_type\x18\x05 \x01(\tR\x0econnectionType\x12\x1b\n" +
	"\tlock_type\x18\x06 \x01(\tR\blockType\x12\x14\n" +
	"\x05count\x18\a \x01(\rR\x05count\"W\n" +
	"\x15ConnectionLimiterList\x12>\n" +
	"\x06values\x18\x01 \x03(\v2&.node_manager_api.v1.ConnectionLimiterR\x06values\"\xd6\x01\n" +
	"\x0eTrafficLimiter\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x05R\x02id\x12\x1a\n" +
	"\busername\x18\x02 \x01(\tR\busername\x12\x1a\n" +
	"\boutbound\x18\x03 \x01(\tR\boutbound\x12\x1a\n" +
	"\bstrategy\x18\x04 \x01(\tR\bstrategy\x12\x12\n" +
	"\x04mode\x18\x05 \x01(\tR\x04mode\x12\x19\n" +
	"\braw_used\x18\x06 \x01(\x04R\arawUsed\x12\x14\n" +
	"\x05quota\x18\a \x01(\tR\x05quota\x12\x1b\n" +
	"\traw_quota\x18\b \x01(\x04R\brawQuota\"Q\n" +
	"\x12TrafficLimiterList\x12;\n" +
	"\x06values\x18\x01 \x03(\v2#.node_manager_api.v1.TrafficLimiterR\x06values\"\xcc\x01\n" +
	"\vRateLimiter\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x05R\x02id\x12\x1a\n" +
	"\busername\x18\x02 \x01(\tR\busername\x12\x1a\n" +
	"\boutbound\x18\x03 \x01(\tR\boutbound\x12\x1a\n" +
	"\bstrategy\x18\x04 \x01(\tR\bstrategy\x12'\n" +
	"\x0fconnection_type\x18\x05 \x01(\tR\x0econnectionType\x12\x14\n" +
	"\x05count\x18\x06 \x01(\rR\x05count\x12\x1a\n" +
	"\binterval\x18\a \x01(\tR\binterval\"K\n" +
	"\x0fRateLimiterList\x128\n" +
	"\x06values\x18\x01 \x03(\v2 .node_manager_api.v1.RateLimiterR\x06values\"\xcb\x06\n" +
	"\bNodeData\x12+\n" +
	"\x02op\x18\x01 \x01(\x0e2\x1b.node_manager_api.v1.OpTypeR\x02op\x125\n" +
	"\x05users\x18\x02 \x01(\v2\x1d.node_manager_api.v1.UserListH\x00R\x05users\x12/\n" +
	"\x04user\x18\x03 \x01(\v2\x19.node_manager_api.v1.UserH\x00R\x04user\x12Z\n" +
	"\x12bandwidth_limiters\x18\x04 \x01(\v2).node_manager_api.v1.BandwidthLimiterListH\x00R\x11bandwidthLimiters\x12T\n" +
	"\x11bandwidth_limiter\x18\x05 \x01(\v2%.node_manager_api.v1.BandwidthLimiterH\x00R\x10bandwidthLimiter\x12]\n" +
	"\x13connection_limiters\x18\x06 \x01(\v2*.node_manager_api.v1.ConnectionLimiterListH\x00R\x12connectionLimiters\x12W\n" +
	"\x12connection_limiter\x18\a \x01(\v2&.node_manager_api.v1.ConnectionLimiterH\x00R\x11connectionLimiter\x12T\n" +
	"\x10traffic_limiters\x18\b \x01(\v2'.node_manager_api.v1.TrafficLimiterListH\x00R\x0ftrafficLimiters\x12N\n" +
	"\x0ftraffic_limiter\x18\t \x01(\v2#.node_manager_api.v1.TrafficLimiterH\x00R\x0etrafficLimiter\x12K\n" +
	"\rrate_limiters\x18\n" +
	" \x01(\v2$.node_manager_api.v1.RateLimiterListH\x00R\frateLimiters\x12E\n" +
	"\frate_limiter\x18\v \x01(\v2 .node_manager_api.v1.RateLimiterH\x00R\vrateLimiterB\x06\n" +
	"\x04data\"C\n" +
	"\x12AcquireLockRequest\x12\x1d\n" +
	"\n" +
	"limiter_id\x18\x01 \x01(\x05R\tlimiterId\x12\x0e\n" +
	"\x02id\x18\x02 \x01(\tR\x02id\"U\n" +
	"\bLockData\x12\x1d\n" +
	"\n" +
	"limiter_id\x18\x01 \x01(\x05R\tlimiterId\x12\x0e\n" +
	"\x02id\x18\x02 \x01(\tR\x02id\x12\x1a\n" +
	"\bhandleId\x18\x03 \x01(\tR\bhandleId\"B\n" +
	"\x13TrafficUsageRequest\x12\x1d\n" +
	"\n" +
	"limiter_id\x18\x01 \x01(\x05R\tlimiterId\x12\f\n" +
	"\x01n\x18\x02 \x01(\x04R\x01n\"1\n" +
	"\x11TrafficUsageReply\x12\x1c\n" +
	"\tremaining\x18\x01 \x01(\x04R\tremaining\"\a\n" +
	"\x05Empty*\xfb\x02\n" +
	"\x06OpType\x12\x0f\n" +
	"\vupdateUsers\x10\x00\x12\x0e\n" +
	"\n" +
	"updateUser\x10\x01\x12\x0e\n" +
	"\n" +
	"deleteUser\x10\x02\x12\x1b\n" +
	"\x17updateBandwidthLimiters\x10\x03\x12\x1a\n" +
	"\x16updateBandwidthLimiter\x10\x04\x12\x1a\n" +
	"\x16deleteBandwidthLimiter\x10\x05\x12\x1c\n" +
	"\x18updateConnectionLimiters\x10\x06\x12\x1b\n" +
	"\x17updateConnectionLimiter\x10\a\x12\x1b\n" +
	"\x17deleteConnectionLimiter\x10\b\x12\x19\n" +
	"\x15updateTrafficLimiters\x10\t\x12\x18\n" +
	"\x14updateTrafficLimiter\x10\n" +
	"\x12\x18\n" +
	"\x14deleteTrafficLimiter\x10\v\x12\x16\n" +
	"\x12updateRateLimiters\x10\f\x12\x15\n" +
	"\x11updateRateLimiter\x10\r\x12\x15\n" +
	"\x11deleteRateLimiter\x10\x0e2\xa0\x03\n" +
	"\aManager\x12E\n" +
	"\aAddNode\x12\x19.node_manager_api.v1.Node\x1a\x1d.node_manager_api.v1.NodeData0\x01\x12U\n" +
	"\vAcquireLock\x12'.node_manager_api.v1.AcquireLockRequest\x1a\x1d.node_manager_api.v1.LockData\x12H\n" +
	"\vRefreshLock\x12\x1d.node_manager_api.v1.LockData\x1a\x1a.node_manager_api.v1.Empty\x12H\n" +
	"\vReleaseLock\x12\x1d.node_manager_api.v1.LockData\x1a\x1a.node_manager_api.v1.Empty\x12c\n" +
	"\x0fAddTrafficUsage\x12(.node_manager_api.v1.TrafficUsageRequest\x1a&.node_manager_api.v1.TrafficUsageReplyB?Z=github.com/sagernet/sing-box/service/node_manager_api/managerb\x06proto3"

var (
	file_service_node_manager_api_manager_manager_proto_rawDescOnce sync.Once
	file_service_node_manager_api_manager_manager_proto_rawDescData []byte
)

func file_service_node_manager_api_manager_manager_proto_rawDescGZIP() []byte {
	file_service_node_manager_api_manager_manager_proto_rawDescOnce.Do(func() {
		file_service_node_manager_api_manager_manager_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_service_node_manager_api_manager_manager_proto_rawDesc), len(file_service_node_manager_api_manager_manager_proto_rawDesc)))
	})
	return file_service_node_manager_api_manager_manager_proto_rawDescData
}

var file_service_node_manager_api_manager_manager_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_service_node_manager_api_manager_manager_proto_msgTypes = make([]protoimpl.MessageInfo, 17)
var file_service_node_manager_api_manager_manager_proto_goTypes = []any{
	(OpType)(0),                   // 0: node_manager_api.v1.OpType
	(*Node)(nil),                  // 1: node_manager_api.v1.Node
	(*User)(nil),                  // 2: node_manager_api.v1.User
	(*UserList)(nil),              // 3: node_manager_api.v1.UserList
	(*BandwidthLimiter)(nil),      // 4: node_manager_api.v1.BandwidthLimiter
	(*BandwidthLimiterList)(nil),  // 5: node_manager_api.v1.BandwidthLimiterList
	(*ConnectionLimiter)(nil),     // 6: node_manager_api.v1.ConnectionLimiter
	(*ConnectionLimiterList)(nil), // 7: node_manager_api.v1.ConnectionLimiterList
	(*TrafficLimiter)(nil),        // 8: node_manager_api.v1.TrafficLimiter
	(*TrafficLimiterList)(nil),    // 9: node_manager_api.v1.TrafficLimiterList
	(*RateLimiter)(nil),           // 10: node_manager_api.v1.RateLimiter
	(*RateLimiterList)(nil),       // 11: node_manager_api.v1.RateLimiterList
	(*NodeData)(nil),              // 12: node_manager_api.v1.NodeData
	(*AcquireLockRequest)(nil),    // 13: node_manager_api.v1.AcquireLockRequest
	(*LockData)(nil),              // 14: node_manager_api.v1.LockData
	(*TrafficUsageRequest)(nil),   // 15: node_manager_api.v1.TrafficUsageRequest
	(*TrafficUsageReply)(nil),     // 16: node_manager_api.v1.TrafficUsageReply
	(*Empty)(nil),                 // 17: node_manager_api.v1.Empty
}
var file_service_node_manager_api_manager_manager_proto_depIdxs = []int32{
	2,  // 0: node_manager_api.v1.UserList.values:type_name -> node_manager_api.v1.User
	4,  // 1: node_manager_api.v1.BandwidthLimiterList.values:type_name -> node_manager_api.v1.BandwidthLimiter
	6,  // 2: node_manager_api.v1.ConnectionLimiterList.values:type_name -> node_manager_api.v1.ConnectionLimiter
	8,  // 3: node_manager_api.v1.TrafficLimiterList.values:type_name -> node_manager_api.v1.TrafficLimiter
	10, // 4: node_manager_api.v1.RateLimiterList.values:type_name -> node_manager_api.v1.RateLimiter
	0,  // 5: node_manager_api.v1.NodeData.op:type_name -> node_manager_api.v1.OpType
	3,  // 6: node_manager_api.v1.NodeData.users:type_name -> node_manager_api.v1.UserList
	2,  // 7: node_manager_api.v1.NodeData.user:type_name -> node_manager_api.v1.User
	5,  // 8: node_manager_api.v1.NodeData.bandwidth_limiters:type_name -> node_manager_api.v1.BandwidthLimiterList
	4,  // 9: node_manager_api.v1.NodeData.bandwidth_limiter:type_name -> node_manager_api.v1.BandwidthLimiter
	7,  // 10: node_manager_api.v1.NodeData.connection_limiters:type_name -> node_manager_api.v1.ConnectionLimiterList
	6,  // 11: node_manager_api.v1.NodeData.connection_limiter:type_name -> node_manager_api.v1.ConnectionLimiter
	9,  // 12: node_manager_api.v1.NodeData.traffic_limiters:type_name -> node_manager_api.v1.TrafficLimiterList
	8,  // 13: node_manager_api.v1.NodeData.traffic_limiter:type_name -> node_manager_api.v1.TrafficLimiter
	11, // 14: node_manager_api.v1.NodeData.rate_limiters:type_name -> node_manager_api.v1.RateLimiterList
	10, // 15: node_manager_api.v1.NodeData.rate_limiter:type_name -> node_manager_api.v1.RateLimiter
	1,  // 16: node_manager_api.v1.Manager.AddNode:input_type -> node_manager_api.v1.Node
	13, // 17: node_manager_api.v1.Manager.AcquireLock:input_type -> node_manager_api.v1.AcquireLockRequest
	14, // 18: node_manager_api.v1.Manager.RefreshLock:input_type -> node_manager_api.v1.LockData
	14, // 19: node_manager_api.v1.Manager.ReleaseLock:input_type -> node_manager_api.v1.LockData
	15, // 20: node_manager_api.v1.Manager.AddTrafficUsage:input_type -> node_manager_api.v1.TrafficUsageRequest
	12, // 21: node_manager_api.v1.Manager.AddNode:output_type -> node_manager_api.v1.NodeData
	14, // 22: node_manager_api.v1.Manager.AcquireLock:output_type -> node_manager_api.v1.LockData
	17, // 23: node_manager_api.v1.Manager.RefreshLock:output_type -> node_manager_api.v1.Empty
	17, // 24: node_manager_api.v1.Manager.ReleaseLock:output_type -> node_manager_api.v1.Empty
	16, // 25: node_manager_api.v1.Manager.AddTrafficUsage:output_type -> node_manager_api.v1.TrafficUsageReply
	21, // [21:26] is the sub-list for method output_type
	16, // [16:21] is the sub-list for method input_type
	16, // [16:16] is the sub-list for extension type_name
	16, // [16:16] is the sub-list for extension extendee
	0,  // [0:16] is the sub-list for field type_name
}

func init() { file_service_node_manager_api_manager_manager_proto_init() }
func file_service_node_manager_api_manager_manager_proto_init() {
	if File_service_node_manager_api_manager_manager_proto != nil {
		return
	}
	file_service_node_manager_api_manager_manager_proto_msgTypes[11].OneofWrappers = []any{
		(*NodeData_Users)(nil),
		(*NodeData_User)(nil),
		(*NodeData_BandwidthLimiters)(nil),
		(*NodeData_BandwidthLimiter)(nil),
		(*NodeData_ConnectionLimiters)(nil),
		(*NodeData_ConnectionLimiter)(nil),
		(*NodeData_TrafficLimiters)(nil),
		(*NodeData_TrafficLimiter)(nil),
		(*NodeData_RateLimiters)(nil),
		(*NodeData_RateLimiter)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_service_node_manager_api_manager_manager_proto_rawDesc), len(file_service_node_manager_api_manager_manager_proto_rawDesc)),
			NumEnums:      1,
			NumMessages:   17,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_service_node_manager_api_manager_manager_proto_goTypes,
		DependencyIndexes: file_service_node_manager_api_manager_manager_proto_depIdxs,
		EnumInfos:         file_service_node_manager_api_manager_manager_proto_enumTypes,
		MessageInfos:      file_service_node_manager_api_manager_manager_proto_msgTypes,
	}.Build()
	File_service_node_manager_api_manager_manager_proto = out.File
	file_service_node_manager_api_manager_manager_proto_goTypes = nil
	file_service_node_manager_api_manager_manager_proto_depIdxs = nil
}
