// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.34.2
// 	protoc        (unknown)
// source: rpc/cluster.proto

package rpc

import (
	common "github.com/tidbcloud/serverless-service/idl/pbgen/proto/common"
	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 Cluster_RUMode int32

const (
	Cluster_RUMode_UNSPECIFIED Cluster_RUMode = 0
	Cluster_RUMode_STANDARD    Cluster_RUMode = 1
	Cluster_RUMode_THROTTLED   Cluster_RUMode = 2
)

// Enum value maps for Cluster_RUMode.
var (
	Cluster_RUMode_name = map[int32]string{
		0: "RUMode_UNSPECIFIED",
		1: "RUMode_STANDARD",
		2: "RUMode_THROTTLED",
	}
	Cluster_RUMode_value = map[string]int32{
		"RUMode_UNSPECIFIED": 0,
		"RUMode_STANDARD":    1,
		"RUMode_THROTTLED":   2,
	}
)

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

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

func (Cluster_RUMode) Descriptor() protoreflect.EnumDescriptor {
	return file_rpc_cluster_proto_enumTypes[0].Descriptor()
}

func (Cluster_RUMode) Type() protoreflect.EnumType {
	return &file_rpc_cluster_proto_enumTypes[0]
}

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

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

type SpendLimitEvent_Status int32

const (
	SpendLimitEvent_STATUS_UNSPECIFIED SpendLimitEvent_Status = 0
	SpendLimitEvent_STATUS_SETTING     SpendLimitEvent_Status = 1
	SpendLimitEvent_STATUS_EXCESSIVE   SpendLimitEvent_Status = 2
	SpendLimitEvent_STATUS_FIT         SpendLimitEvent_Status = 3
)

// Enum value maps for SpendLimitEvent_Status.
var (
	SpendLimitEvent_Status_name = map[int32]string{
		0: "STATUS_UNSPECIFIED",
		1: "STATUS_SETTING",
		2: "STATUS_EXCESSIVE",
		3: "STATUS_FIT",
	}
	SpendLimitEvent_Status_value = map[string]int32{
		"STATUS_UNSPECIFIED": 0,
		"STATUS_SETTING":     1,
		"STATUS_EXCESSIVE":   2,
		"STATUS_FIT":         3,
	}
)

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

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

func (SpendLimitEvent_Status) Descriptor() protoreflect.EnumDescriptor {
	return file_rpc_cluster_proto_enumTypes[1].Descriptor()
}

func (SpendLimitEvent_Status) Type() protoreflect.EnumType {
	return &file_rpc_cluster_proto_enumTypes[1]
}

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

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

type Cluster struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id         uint64                 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	TenantId   uint64                 `protobuf:"varint,2,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
	ProjectId  uint64                 `protobuf:"varint,3,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	KeyspaceId uint64                 `protobuf:"varint,4,opt,name=keyspace_id,json=keyspaceId,proto3" json:"keyspace_id,omitempty"`
	CreateTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	Region     string                 `protobuf:"bytes,6,opt,name=region,proto3" json:"region,omitempty"`
	SpendLimit uint32                 `protobuf:"varint,7,opt,name=spend_limit,json=spendLimit,proto3" json:"spend_limit,omitempty"`
	FreeCredit uint32                 `protobuf:"varint,8,opt,name=free_credit,json=freeCredit,proto3" json:"free_credit,omitempty"`
	RuMode     Cluster_RUMode         `protobuf:"varint,9,opt,name=ru_mode,json=ruMode,proto3,enum=rpc.Cluster_RUMode" json:"ru_mode,omitempty"`
}

func (x *Cluster) Reset() {
	*x = Cluster{}
	if protoimpl.UnsafeEnabled {
		mi := &file_rpc_cluster_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Cluster) ProtoMessage() {}

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

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

func (x *Cluster) GetTenantId() uint64 {
	if x != nil {
		return x.TenantId
	}
	return 0
}

func (x *Cluster) GetProjectId() uint64 {
	if x != nil {
		return x.ProjectId
	}
	return 0
}

func (x *Cluster) GetKeyspaceId() uint64 {
	if x != nil {
		return x.KeyspaceId
	}
	return 0
}

func (x *Cluster) GetCreateTime() *timestamppb.Timestamp {
	if x != nil {
		return x.CreateTime
	}
	return nil
}

func (x *Cluster) GetRegion() string {
	if x != nil {
		return x.Region
	}
	return ""
}

func (x *Cluster) GetSpendLimit() uint32 {
	if x != nil {
		return x.SpendLimit
	}
	return 0
}

func (x *Cluster) GetFreeCredit() uint32 {
	if x != nil {
		return x.FreeCredit
	}
	return 0
}

func (x *Cluster) GetRuMode() Cluster_RUMode {
	if x != nil {
		return x.RuMode
	}
	return Cluster_RUMode_UNSPECIFIED
}

type SpendLimitEvent struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CreateTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	Status     SpendLimitEvent_Status `protobuf:"varint,2,opt,name=status,proto3,enum=rpc.SpendLimitEvent_Status" json:"status,omitempty"`
}

func (x *SpendLimitEvent) Reset() {
	*x = SpendLimitEvent{}
	if protoimpl.UnsafeEnabled {
		mi := &file_rpc_cluster_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*SpendLimitEvent) ProtoMessage() {}

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

func (x *SpendLimitEvent) GetCreateTime() *timestamppb.Timestamp {
	if x != nil {
		return x.CreateTime
	}
	return nil
}

func (x *SpendLimitEvent) GetStatus() SpendLimitEvent_Status {
	if x != nil {
		return x.Status
	}
	return SpendLimitEvent_STATUS_UNSPECIFIED
}

type ListClustersReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Filter    *Cluster_Filter `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
	PageSize  *uint32         `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3,oneof" json:"page_size,omitempty"`
	PageToken *string         `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3,oneof" json:"page_token,omitempty"`
}

func (x *ListClustersReq) Reset() {
	*x = ListClustersReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_rpc_cluster_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ListClustersReq) ProtoMessage() {}

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

func (x *ListClustersReq) GetFilter() *Cluster_Filter {
	if x != nil {
		return x.Filter
	}
	return nil
}

func (x *ListClustersReq) GetPageSize() uint32 {
	if x != nil && x.PageSize != nil {
		return *x.PageSize
	}
	return 0
}

func (x *ListClustersReq) GetPageToken() string {
	if x != nil && x.PageToken != nil {
		return *x.PageToken
	}
	return ""
}

type ListClustersResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Clusters      []*Cluster `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"`
	Total         uint32     `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"`
	NextPageToken string     `protobuf:"bytes,3,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
}

func (x *ListClustersResp) Reset() {
	*x = ListClustersResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_rpc_cluster_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ListClustersResp) ProtoMessage() {}

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

func (x *ListClustersResp) GetClusters() []*Cluster {
	if x != nil {
		return x.Clusters
	}
	return nil
}

func (x *ListClustersResp) GetTotal() uint32 {
	if x != nil {
		return x.Total
	}
	return 0
}

func (x *ListClustersResp) GetNextPageToken() string {
	if x != nil {
		return x.NextPageToken
	}
	return ""
}

type GetClusterReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ClusterId uint64 `protobuf:"varint,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
}

func (x *GetClusterReq) Reset() {
	*x = GetClusterReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_rpc_cluster_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetClusterReq) ProtoMessage() {}

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

func (x *GetClusterReq) GetClusterId() uint64 {
	if x != nil {
		return x.ClusterId
	}
	return 0
}

type GetClusterResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id         uint64                 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	Region     string                 `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"`
	SpendLimit uint32                 `protobuf:"varint,4,opt,name=spend_limit,json=spendLimit,proto3" json:"spend_limit,omitempty"`
	FreeCredit uint32                 `protobuf:"varint,5,opt,name=free_credit,json=freeCredit,proto3" json:"free_credit,omitempty"`
	RuMode     Cluster_RUMode         `protobuf:"varint,6,opt,name=ru_mode,json=ruMode,proto3,enum=rpc.Cluster_RUMode" json:"ru_mode,omitempty"`
	Spent      *Cluster_Spent         `protobuf:"bytes,7,opt,name=spent,proto3" json:"spent,omitempty"`
}

func (x *GetClusterResp) Reset() {
	*x = GetClusterResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_rpc_cluster_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetClusterResp) ProtoMessage() {}

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

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

func (x *GetClusterResp) GetCreateTime() *timestamppb.Timestamp {
	if x != nil {
		return x.CreateTime
	}
	return nil
}

func (x *GetClusterResp) GetRegion() string {
	if x != nil {
		return x.Region
	}
	return ""
}

func (x *GetClusterResp) GetSpendLimit() uint32 {
	if x != nil {
		return x.SpendLimit
	}
	return 0
}

func (x *GetClusterResp) GetFreeCredit() uint32 {
	if x != nil {
		return x.FreeCredit
	}
	return 0
}

func (x *GetClusterResp) GetRuMode() Cluster_RUMode {
	if x != nil {
		return x.RuMode
	}
	return Cluster_RUMode_UNSPECIFIED
}

func (x *GetClusterResp) GetSpent() *Cluster_Spent {
	if x != nil {
		return x.Spent
	}
	return nil
}

type ListSpendLimitEventsReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ClusterId uint64                 `protobuf:"varint,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	StartTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3,oneof" json:"start_time,omitempty"`
	EndTime   *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=end_time,json=endTime,proto3,oneof" json:"end_time,omitempty"`
}

func (x *ListSpendLimitEventsReq) Reset() {
	*x = ListSpendLimitEventsReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_rpc_cluster_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ListSpendLimitEventsReq) ProtoMessage() {}

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

func (x *ListSpendLimitEventsReq) GetClusterId() uint64 {
	if x != nil {
		return x.ClusterId
	}
	return 0
}

func (x *ListSpendLimitEventsReq) GetStartTime() *timestamppb.Timestamp {
	if x != nil {
		return x.StartTime
	}
	return nil
}

func (x *ListSpendLimitEventsReq) GetEndTime() *timestamppb.Timestamp {
	if x != nil {
		return x.EndTime
	}
	return nil
}

type ListSpendLimitEventsResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Events []*SpendLimitEvent `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"`
}

func (x *ListSpendLimitEventsResp) Reset() {
	*x = ListSpendLimitEventsResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_rpc_cluster_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ListSpendLimitEventsResp) ProtoMessage() {}

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

func (x *ListSpendLimitEventsResp) GetEvents() []*SpendLimitEvent {
	if x != nil {
		return x.Events
	}
	return nil
}

type ListDatabasesReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Operator  *DBUserOperator `protobuf:"bytes,1,opt,name=operator,proto3" json:"operator,omitempty"`
	ProjectId uint64          `protobuf:"varint,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	ClusterId uint64          `protobuf:"varint,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
}

func (x *ListDatabasesReq) Reset() {
	*x = ListDatabasesReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_rpc_cluster_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ListDatabasesReq) ProtoMessage() {}

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

func (x *ListDatabasesReq) GetOperator() *DBUserOperator {
	if x != nil {
		return x.Operator
	}
	return nil
}

func (x *ListDatabasesReq) GetProjectId() uint64 {
	if x != nil {
		return x.ProjectId
	}
	return 0
}

func (x *ListDatabasesReq) GetClusterId() uint64 {
	if x != nil {
		return x.ClusterId
	}
	return 0
}

type ListDatabasesResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Databases []string         `protobuf:"bytes,1,rep,name=databases,proto3" json:"databases,omitempty"`
	BaseResp  *common.BaseResp `protobuf:"bytes,255,opt,name=base_resp,json=baseResp,proto3" json:"base_resp,omitempty"`
}

func (x *ListDatabasesResp) Reset() {
	*x = ListDatabasesResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_rpc_cluster_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ListDatabasesResp) ProtoMessage() {}

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

func (x *ListDatabasesResp) GetDatabases() []string {
	if x != nil {
		return x.Databases
	}
	return nil
}

func (x *ListDatabasesResp) GetBaseResp() *common.BaseResp {
	if x != nil {
		return x.BaseResp
	}
	return nil
}

type CreateDatabaseReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Operator  *DBUserOperator `protobuf:"bytes,1,opt,name=operator,proto3" json:"operator,omitempty"`
	ProjectId uint64          `protobuf:"varint,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	ClusterId uint64          `protobuf:"varint,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	Database  string          `protobuf:"bytes,4,opt,name=database,proto3" json:"database,omitempty"`
}

func (x *CreateDatabaseReq) Reset() {
	*x = CreateDatabaseReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_rpc_cluster_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CreateDatabaseReq) ProtoMessage() {}

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

func (x *CreateDatabaseReq) GetOperator() *DBUserOperator {
	if x != nil {
		return x.Operator
	}
	return nil
}

func (x *CreateDatabaseReq) GetProjectId() uint64 {
	if x != nil {
		return x.ProjectId
	}
	return 0
}

func (x *CreateDatabaseReq) GetClusterId() uint64 {
	if x != nil {
		return x.ClusterId
	}
	return 0
}

func (x *CreateDatabaseReq) GetDatabase() string {
	if x != nil {
		return x.Database
	}
	return ""
}

type CreateDatabaseResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	BaseResp *common.BaseResp `protobuf:"bytes,255,opt,name=base_resp,json=baseResp,proto3" json:"base_resp,omitempty"`
}

func (x *CreateDatabaseResp) Reset() {
	*x = CreateDatabaseResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_rpc_cluster_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CreateDatabaseResp) ProtoMessage() {}

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

func (x *CreateDatabaseResp) GetBaseResp() *common.BaseResp {
	if x != nil {
		return x.BaseResp
	}
	return nil
}

type CanCreateClusterReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	OrgId                     uint64   `protobuf:"varint,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"`
	ProjectId                 uint64   `protobuf:"varint,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	ClusterId                 string   `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	SpendLimit                uint32   `protobuf:"varint,4,opt,name=spend_limit,json=spendLimit,proto3" json:"spend_limit,omitempty"`
	EnhancedEncryptionEnabled bool     `protobuf:"varint,5,opt,name=enhanced_encryption_enabled,json=enhancedEncryptionEnabled,proto3" json:"enhanced_encryption_enabled,omitempty"`
	ClusterIds                []uint64 `protobuf:"varint,6,rep,packed,name=cluster_ids,json=clusterIds,proto3" json:"cluster_ids,omitempty"`
}

func (x *CanCreateClusterReq) Reset() {
	*x = CanCreateClusterReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_rpc_cluster_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CanCreateClusterReq) ProtoMessage() {}

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

func (x *CanCreateClusterReq) GetOrgId() uint64 {
	if x != nil {
		return x.OrgId
	}
	return 0
}

func (x *CanCreateClusterReq) GetProjectId() uint64 {
	if x != nil {
		return x.ProjectId
	}
	return 0
}

func (x *CanCreateClusterReq) GetClusterId() string {
	if x != nil {
		return x.ClusterId
	}
	return ""
}

func (x *CanCreateClusterReq) GetSpendLimit() uint32 {
	if x != nil {
		return x.SpendLimit
	}
	return 0
}

func (x *CanCreateClusterReq) GetEnhancedEncryptionEnabled() bool {
	if x != nil {
		return x.EnhancedEncryptionEnabled
	}
	return false
}

func (x *CanCreateClusterReq) GetClusterIds() []uint64 {
	if x != nil {
		return x.ClusterIds
	}
	return nil
}

type CanCreateClusterResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ClusterId string           `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	Allowed   bool             `protobuf:"varint,2,opt,name=allowed,proto3" json:"allowed,omitempty"`
	BaseResp  *common.BaseResp `protobuf:"bytes,255,opt,name=base_resp,json=baseResp,proto3" json:"base_resp,omitempty"`
}

func (x *CanCreateClusterResp) Reset() {
	*x = CanCreateClusterResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_rpc_cluster_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CanCreateClusterResp) ProtoMessage() {}

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

func (x *CanCreateClusterResp) GetClusterId() string {
	if x != nil {
		return x.ClusterId
	}
	return ""
}

func (x *CanCreateClusterResp) GetAllowed() bool {
	if x != nil {
		return x.Allowed
	}
	return false
}

func (x *CanCreateClusterResp) GetBaseResp() *common.BaseResp {
	if x != nil {
		return x.BaseResp
	}
	return nil
}

type Cluster_Spent struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	RequestUnit     uint32 `protobuf:"varint,1,opt,name=request_unit,json=requestUnit,proto3" json:"request_unit,omitempty"`
	RowStorage      uint32 `protobuf:"varint,2,opt,name=row_storage,json=rowStorage,proto3" json:"row_storage,omitempty"`
	ColumnarStorage uint32 `protobuf:"varint,3,opt,name=columnar_storage,json=columnarStorage,proto3" json:"columnar_storage,omitempty"`
}

func (x *Cluster_Spent) Reset() {
	*x = Cluster_Spent{}
	if protoimpl.UnsafeEnabled {
		mi := &file_rpc_cluster_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Cluster_Spent) ProtoMessage() {}

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

func (x *Cluster_Spent) GetRequestUnit() uint32 {
	if x != nil {
		return x.RequestUnit
	}
	return 0
}

func (x *Cluster_Spent) GetRowStorage() uint32 {
	if x != nil {
		return x.RowStorage
	}
	return 0
}

func (x *Cluster_Spent) GetColumnarStorage() uint32 {
	if x != nil {
		return x.ColumnarStorage
	}
	return 0
}

type Cluster_Filter struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	TenantIds  []uint64         `protobuf:"varint,1,rep,packed,name=tenant_ids,json=tenantIds,proto3" json:"tenant_ids,omitempty"`
	ProjectIds []uint64         `protobuf:"varint,2,rep,packed,name=project_ids,json=projectIds,proto3" json:"project_ids,omitempty"`
	ClusterIds []uint64         `protobuf:"varint,3,rep,packed,name=cluster_ids,json=clusterIds,proto3" json:"cluster_ids,omitempty"`
	Regions    []string         `protobuf:"bytes,4,rep,name=regions,proto3" json:"regions,omitempty"`
	RuModes    []Cluster_RUMode `protobuf:"varint,5,rep,packed,name=ru_modes,json=ruModes,proto3,enum=rpc.Cluster_RUMode" json:"ru_modes,omitempty"`
	IsPaid     *bool            `protobuf:"varint,6,opt,name=is_paid,json=isPaid,proto3,oneof" json:"is_paid,omitempty"`
}

func (x *Cluster_Filter) Reset() {
	*x = Cluster_Filter{}
	if protoimpl.UnsafeEnabled {
		mi := &file_rpc_cluster_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Cluster_Filter) ProtoMessage() {}

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

func (x *Cluster_Filter) GetTenantIds() []uint64 {
	if x != nil {
		return x.TenantIds
	}
	return nil
}

func (x *Cluster_Filter) GetProjectIds() []uint64 {
	if x != nil {
		return x.ProjectIds
	}
	return nil
}

func (x *Cluster_Filter) GetClusterIds() []uint64 {
	if x != nil {
		return x.ClusterIds
	}
	return nil
}

func (x *Cluster_Filter) GetRegions() []string {
	if x != nil {
		return x.Regions
	}
	return nil
}

func (x *Cluster_Filter) GetRuModes() []Cluster_RUMode {
	if x != nil {
		return x.RuModes
	}
	return nil
}

func (x *Cluster_Filter) GetIsPaid() bool {
	if x != nil && x.IsPaid != nil {
		return *x.IsPaid
	}
	return false
}

var File_rpc_cluster_proto protoreflect.FileDescriptor

var file_rpc_cluster_proto_rawDesc = []byte{
	0x0a, 0x11, 0x72, 0x70, 0x63, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x12, 0x03, 0x72, 0x70, 0x63, 0x1a, 0x11, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
	0x2f, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d,
	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x10, 0x72, 0x70,
	0x63, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe0,
	0x05, 0x0a, 0x07, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65,
	0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74,
	0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65,
	0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x70, 0x72, 0x6f,
	0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61,
	0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6b, 0x65, 0x79,
	0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 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, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b,
	0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x0a, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x0a,
	0x0b, 0x66, 0x72, 0x65, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x0a, 0x66, 0x72, 0x65, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x2c,
	0x0a, 0x07, 0x72, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x13, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x52, 0x55,
	0x4d, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x72, 0x75, 0x4d, 0x6f, 0x64, 0x65, 0x1a, 0x76, 0x0a, 0x05,
	0x53, 0x70, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x5f, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x6f, 0x77, 0x5f,
	0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72,
	0x6f, 0x77, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6c,
	0x75, 0x6d, 0x6e, 0x61, 0x72, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x61, 0x72, 0x53, 0x74, 0x6f,
	0x72, 0x61, 0x67, 0x65, 0x1a, 0xdd, 0x01, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12,
	0x1d, 0x0a, 0x0a, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20,
	0x03, 0x28, 0x04, 0x52, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x1f,
	0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20,
	0x03, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x73, 0x12,
	0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03,
	0x20, 0x03, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73,
	0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28,
	0x09, 0x52, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2e, 0x0a, 0x08, 0x72, 0x75,
	0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x72,
	0x70, 0x63, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x52, 0x55, 0x4d, 0x6f, 0x64,
	0x65, 0x52, 0x07, 0x72, 0x75, 0x4d, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x07, 0x69, 0x73,
	0x5f, 0x70, 0x61, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x69,
	0x73, 0x50, 0x61, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x69, 0x73, 0x5f,
	0x70, 0x61, 0x69, 0x64, 0x22, 0x4b, 0x0a, 0x06, 0x52, 0x55, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x16,
	0x0a, 0x12, 0x52, 0x55, 0x4d, 0x6f, 0x64, 0x65, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49,
	0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x55, 0x4d, 0x6f, 0x64, 0x65,
	0x5f, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x52,
	0x55, 0x4d, 0x6f, 0x64, 0x65, 0x5f, 0x54, 0x48, 0x52, 0x4f, 0x54, 0x54, 0x4c, 0x45, 0x44, 0x10,
	0x02, 0x22, 0xdf, 0x01, 0x0a, 0x0f, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74,
	0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f,
	0x74, 0x69, 0x6d, 0x65, 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, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69,
	0x6d, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x4c, 0x69,
	0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x5a, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50,
	0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41,
	0x54, 0x55, 0x53, 0x5f, 0x53, 0x45, 0x54, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x14, 0x0a,
	0x10, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x53, 0x53, 0x49, 0x56,
	0x45, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x49,
	0x54, 0x10, 0x03, 0x22, 0xa1, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x2b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65,
	0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69,
	0x6c, 0x74, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53,
	0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74,
	0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x70, 0x61,
	0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70,
	0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x61, 0x67,
	0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x7a, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x43,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x28, 0x0a, 0x08, 0x63,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e,
	0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x08, 0x63, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x26, 0x0a, 0x0f, 0x6e,
	0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f,
	0x6b, 0x65, 0x6e, 0x22, 0x2e, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x49, 0x64, 0x22, 0x8f, 0x02, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 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, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54,
	0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x73,
	0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d,
	0x52, 0x0a, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x0b,
	0x66, 0x72, 0x65, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x0a, 0x66, 0x72, 0x65, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x2c, 0x0a,
	0x07, 0x72, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13,
	0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x52, 0x55, 0x4d,
	0x6f, 0x64, 0x65, 0x52, 0x06, 0x72, 0x75, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x73,
	0x70, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x72, 0x70, 0x63,
	0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x52, 0x05,
	0x73, 0x70, 0x65, 0x6e, 0x74, 0x22, 0xd0, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x70,
	0x65, 0x6e, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65,
	0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64,
	0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02,
	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,
	0x48, 0x00, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01,
	0x12, 0x3a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 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, 0x48, 0x01,
	0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b,
	0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f,
	0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x48, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74,
	0x53, 0x70, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73,
	0x52, 0x65, 0x73, 0x70, 0x12, 0x2c, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x64,
	0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e,
	0x74, 0x73, 0x22, 0x81, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62,
	0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x12, 0x2f, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61,
	0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x70, 0x63, 0x2e,
	0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x08,
	0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a,
	0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x70, 0x72,
	0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x61, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61,
	0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x64,
	0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09,
	0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x09, 0x62, 0x61, 0x73,
	0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x18, 0xff, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e,
	0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x52,
	0x08, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9e, 0x01, 0x0a, 0x11, 0x43, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x12,
	0x2f, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x13, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x70,
	0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72,
	0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12,
	0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a,
	0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x22, 0x44, 0x0a, 0x12, 0x43, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70,
	0x12, 0x2e, 0x0a, 0x09, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x18, 0xff, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x42, 0x61,
	0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x52, 0x08, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70,
	0x22, 0xec, 0x01, 0x0a, 0x13, 0x43, 0x61, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12,
	0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1d,
	0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1f, 0x0a,
	0x0b, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x0a, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x3e,
	0x0a, 0x1b, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x63, 0x72, 0x79,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x19, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x45, 0x6e, 0x63,
	0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1f,
	0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x06, 0x20,
	0x03, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22,
	0x7f, 0x0a, 0x14, 0x43, 0x61, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64,
	0x12, 0x2e, 0x0a, 0x09, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x18, 0xff, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x42, 0x61,
	0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x52, 0x08, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70,
	0x32, 0xa5, 0x03, 0x0a, 0x0e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76,
	0x69, 0x63, 0x65, 0x12, 0x3b, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x73, 0x12, 0x14, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x72, 0x70, 0x63, 0x2e,
	0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70,
	0x12, 0x35, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x12,
	0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52,
	0x65, 0x71, 0x1a, 0x13, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x53, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x53,
	0x70, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12,
	0x1c, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x4c,
	0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e,
	0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x6d,
	0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3e, 0x0a, 0x0d,
	0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x12, 0x15, 0x2e,
	0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65,
	0x73, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44,
	0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x41, 0x0a, 0x0e,
	0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x16,
	0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62,
	0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12,
	0x47, 0x0a, 0x10, 0x43, 0x61, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x12, 0x18, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6e, 0x43, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e,
	0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x42, 0x3d, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68,
	0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x69, 0x64, 0x62, 0x63, 0x6c, 0x6f, 0x75, 0x64,
	0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x6c, 0x65, 0x73, 0x73, 0x2d, 0x73, 0x65, 0x72, 0x76,
	0x69, 0x63, 0x65, 0x2f, 0x69, 0x64, 0x6c, 0x2f, 0x70, 0x62, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2f, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_rpc_cluster_proto_rawDescOnce sync.Once
	file_rpc_cluster_proto_rawDescData = file_rpc_cluster_proto_rawDesc
)

func file_rpc_cluster_proto_rawDescGZIP() []byte {
	file_rpc_cluster_proto_rawDescOnce.Do(func() {
		file_rpc_cluster_proto_rawDescData = protoimpl.X.CompressGZIP(file_rpc_cluster_proto_rawDescData)
	})
	return file_rpc_cluster_proto_rawDescData
}

var file_rpc_cluster_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_rpc_cluster_proto_msgTypes = make([]protoimpl.MessageInfo, 16)
var file_rpc_cluster_proto_goTypes = []any{
	(Cluster_RUMode)(0),              // 0: rpc.Cluster.RUMode
	(SpendLimitEvent_Status)(0),      // 1: rpc.SpendLimitEvent.Status
	(*Cluster)(nil),                  // 2: rpc.Cluster
	(*SpendLimitEvent)(nil),          // 3: rpc.SpendLimitEvent
	(*ListClustersReq)(nil),          // 4: rpc.ListClustersReq
	(*ListClustersResp)(nil),         // 5: rpc.ListClustersResp
	(*GetClusterReq)(nil),            // 6: rpc.GetClusterReq
	(*GetClusterResp)(nil),           // 7: rpc.GetClusterResp
	(*ListSpendLimitEventsReq)(nil),  // 8: rpc.ListSpendLimitEventsReq
	(*ListSpendLimitEventsResp)(nil), // 9: rpc.ListSpendLimitEventsResp
	(*ListDatabasesReq)(nil),         // 10: rpc.ListDatabasesReq
	(*ListDatabasesResp)(nil),        // 11: rpc.ListDatabasesResp
	(*CreateDatabaseReq)(nil),        // 12: rpc.CreateDatabaseReq
	(*CreateDatabaseResp)(nil),       // 13: rpc.CreateDatabaseResp
	(*CanCreateClusterReq)(nil),      // 14: rpc.CanCreateClusterReq
	(*CanCreateClusterResp)(nil),     // 15: rpc.CanCreateClusterResp
	(*Cluster_Spent)(nil),            // 16: rpc.Cluster.Spent
	(*Cluster_Filter)(nil),           // 17: rpc.Cluster.Filter
	(*timestamppb.Timestamp)(nil),    // 18: google.protobuf.Timestamp
	(*DBUserOperator)(nil),           // 19: rpc.DBUserOperator
	(*common.BaseResp)(nil),          // 20: common.BaseResp
}
var file_rpc_cluster_proto_depIdxs = []int32{
	18, // 0: rpc.Cluster.create_time:type_name -> google.protobuf.Timestamp
	0,  // 1: rpc.Cluster.ru_mode:type_name -> rpc.Cluster.RUMode
	18, // 2: rpc.SpendLimitEvent.create_time:type_name -> google.protobuf.Timestamp
	1,  // 3: rpc.SpendLimitEvent.status:type_name -> rpc.SpendLimitEvent.Status
	17, // 4: rpc.ListClustersReq.filter:type_name -> rpc.Cluster.Filter
	2,  // 5: rpc.ListClustersResp.clusters:type_name -> rpc.Cluster
	18, // 6: rpc.GetClusterResp.create_time:type_name -> google.protobuf.Timestamp
	0,  // 7: rpc.GetClusterResp.ru_mode:type_name -> rpc.Cluster.RUMode
	16, // 8: rpc.GetClusterResp.spent:type_name -> rpc.Cluster.Spent
	18, // 9: rpc.ListSpendLimitEventsReq.start_time:type_name -> google.protobuf.Timestamp
	18, // 10: rpc.ListSpendLimitEventsReq.end_time:type_name -> google.protobuf.Timestamp
	3,  // 11: rpc.ListSpendLimitEventsResp.events:type_name -> rpc.SpendLimitEvent
	19, // 12: rpc.ListDatabasesReq.operator:type_name -> rpc.DBUserOperator
	20, // 13: rpc.ListDatabasesResp.base_resp:type_name -> common.BaseResp
	19, // 14: rpc.CreateDatabaseReq.operator:type_name -> rpc.DBUserOperator
	20, // 15: rpc.CreateDatabaseResp.base_resp:type_name -> common.BaseResp
	20, // 16: rpc.CanCreateClusterResp.base_resp:type_name -> common.BaseResp
	0,  // 17: rpc.Cluster.Filter.ru_modes:type_name -> rpc.Cluster.RUMode
	4,  // 18: rpc.ClusterService.ListClusters:input_type -> rpc.ListClustersReq
	6,  // 19: rpc.ClusterService.GetCluster:input_type -> rpc.GetClusterReq
	8,  // 20: rpc.ClusterService.ListSpendLimitEvents:input_type -> rpc.ListSpendLimitEventsReq
	10, // 21: rpc.ClusterService.ListDatabases:input_type -> rpc.ListDatabasesReq
	12, // 22: rpc.ClusterService.CreateDatabase:input_type -> rpc.CreateDatabaseReq
	14, // 23: rpc.ClusterService.CanCreateCluster:input_type -> rpc.CanCreateClusterReq
	5,  // 24: rpc.ClusterService.ListClusters:output_type -> rpc.ListClustersResp
	7,  // 25: rpc.ClusterService.GetCluster:output_type -> rpc.GetClusterResp
	9,  // 26: rpc.ClusterService.ListSpendLimitEvents:output_type -> rpc.ListSpendLimitEventsResp
	11, // 27: rpc.ClusterService.ListDatabases:output_type -> rpc.ListDatabasesResp
	13, // 28: rpc.ClusterService.CreateDatabase:output_type -> rpc.CreateDatabaseResp
	15, // 29: rpc.ClusterService.CanCreateCluster:output_type -> rpc.CanCreateClusterResp
	24, // [24:30] is the sub-list for method output_type
	18, // [18:24] is the sub-list for method input_type
	18, // [18:18] is the sub-list for extension type_name
	18, // [18:18] is the sub-list for extension extendee
	0,  // [0:18] is the sub-list for field type_name
}

func init() { file_rpc_cluster_proto_init() }
func file_rpc_cluster_proto_init() {
	if File_rpc_cluster_proto != nil {
		return
	}
	file_rpc_branch_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_rpc_cluster_proto_msgTypes[0].Exporter = func(v any, i int) any {
			switch v := v.(*Cluster); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cluster_proto_msgTypes[1].Exporter = func(v any, i int) any {
			switch v := v.(*SpendLimitEvent); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cluster_proto_msgTypes[2].Exporter = func(v any, i int) any {
			switch v := v.(*ListClustersReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cluster_proto_msgTypes[3].Exporter = func(v any, i int) any {
			switch v := v.(*ListClustersResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cluster_proto_msgTypes[4].Exporter = func(v any, i int) any {
			switch v := v.(*GetClusterReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cluster_proto_msgTypes[5].Exporter = func(v any, i int) any {
			switch v := v.(*GetClusterResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cluster_proto_msgTypes[6].Exporter = func(v any, i int) any {
			switch v := v.(*ListSpendLimitEventsReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cluster_proto_msgTypes[7].Exporter = func(v any, i int) any {
			switch v := v.(*ListSpendLimitEventsResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cluster_proto_msgTypes[8].Exporter = func(v any, i int) any {
			switch v := v.(*ListDatabasesReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cluster_proto_msgTypes[9].Exporter = func(v any, i int) any {
			switch v := v.(*ListDatabasesResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cluster_proto_msgTypes[10].Exporter = func(v any, i int) any {
			switch v := v.(*CreateDatabaseReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cluster_proto_msgTypes[11].Exporter = func(v any, i int) any {
			switch v := v.(*CreateDatabaseResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cluster_proto_msgTypes[12].Exporter = func(v any, i int) any {
			switch v := v.(*CanCreateClusterReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cluster_proto_msgTypes[13].Exporter = func(v any, i int) any {
			switch v := v.(*CanCreateClusterResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cluster_proto_msgTypes[14].Exporter = func(v any, i int) any {
			switch v := v.(*Cluster_Spent); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cluster_proto_msgTypes[15].Exporter = func(v any, i int) any {
			switch v := v.(*Cluster_Filter); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_rpc_cluster_proto_msgTypes[2].OneofWrappers = []any{}
	file_rpc_cluster_proto_msgTypes[6].OneofWrappers = []any{}
	file_rpc_cluster_proto_msgTypes[15].OneofWrappers = []any{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_rpc_cluster_proto_rawDesc,
			NumEnums:      2,
			NumMessages:   16,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_rpc_cluster_proto_goTypes,
		DependencyIndexes: file_rpc_cluster_proto_depIdxs,
		EnumInfos:         file_rpc_cluster_proto_enumTypes,
		MessageInfos:      file_rpc_cluster_proto_msgTypes,
	}.Build()
	File_rpc_cluster_proto = out.File
	file_rpc_cluster_proto_rawDesc = nil
	file_rpc_cluster_proto_goTypes = nil
	file_rpc_cluster_proto_depIdxs = nil
}
