// Copyright 2023 Greptime Team
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.28.1
// 	protoc        v3.21.6
// source: greptime/v1/meta/heartbeat.proto

package meta

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	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 RegionRole int32

const (
	// Writable region(mito2), Readonly region(file).
	RegionRole_Leader RegionRole = 0
	// Readonly region.
	RegionRole_Follower RegionRole = 1
	// A downgrading region, which is in the process of downgrading from Leader to
	// Follower.
	//
	// This role is used to prevent the region from being written during the
	// downgrade process.
	RegionRole_DowngradingLeader RegionRole = 2
)

// Enum value maps for RegionRole.
var (
	RegionRole_name = map[int32]string{
		0: "Leader",
		1: "Follower",
		2: "DowngradingLeader",
	}
	RegionRole_value = map[string]int32{
		"Leader":            0,
		"Follower":          1,
		"DowngradingLeader": 2,
	}
)

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

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

func (RegionRole) Descriptor() protoreflect.EnumDescriptor {
	return file_greptime_v1_meta_heartbeat_proto_enumTypes[0].Descriptor()
}

func (RegionRole) Type() protoreflect.EnumType {
	return &file_greptime_v1_meta_heartbeat_proto_enumTypes[0]
}

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

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

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

	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
	// Self peer
	Peer *Peer `protobuf:"bytes,2,opt,name=peer,proto3" json:"peer,omitempty"`
	// Actually reported time interval
	ReportInterval *TimeInterval `protobuf:"bytes,3,opt,name=report_interval,json=reportInterval,proto3" json:"report_interval,omitempty"`
	// Region stats on this node
	RegionStats []*RegionStat `protobuf:"bytes,4,rep,name=region_stats,json=regionStats,proto3" json:"region_stats,omitempty"`
	// Mailbox send message to Metasrv
	MailboxMessage *MailboxMessage `protobuf:"bytes,5,opt,name=mailbox_message,json=mailboxMessage,proto3" json:"mailbox_message,omitempty"`
	// The duration since the heartbeat task's epoch in milliseconds.
	DurationSinceEpoch uint64 `protobuf:"varint,6,opt,name=duration_since_epoch,json=durationSinceEpoch,proto3" json:"duration_since_epoch,omitempty"`
	// The node's epoch
	NodeEpoch uint64    `protobuf:"varint,7,opt,name=node_epoch,json=nodeEpoch,proto3" json:"node_epoch,omitempty"`
	Info      *NodeInfo `protobuf:"bytes,8,opt,name=info,proto3" json:"info,omitempty"`
	FlowStat  *FlowStat `protobuf:"bytes,9,opt,name=flow_stat,json=flowStat,proto3" json:"flow_stat,omitempty"`
	// / The workloads of the node.
	//
	// Types that are assignable to NodeWorkloads:
	//
	//	*HeartbeatRequest_Datanode
	//	*HeartbeatRequest_Frontend
	//	*HeartbeatRequest_Flownode
	NodeWorkloads isHeartbeatRequest_NodeWorkloads `protobuf_oneof:"node_workloads"`
}

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

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

func (*HeartbeatRequest) ProtoMessage() {}

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

func (x *HeartbeatRequest) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *HeartbeatRequest) GetPeer() *Peer {
	if x != nil {
		return x.Peer
	}
	return nil
}

func (x *HeartbeatRequest) GetReportInterval() *TimeInterval {
	if x != nil {
		return x.ReportInterval
	}
	return nil
}

func (x *HeartbeatRequest) GetRegionStats() []*RegionStat {
	if x != nil {
		return x.RegionStats
	}
	return nil
}

func (x *HeartbeatRequest) GetMailboxMessage() *MailboxMessage {
	if x != nil {
		return x.MailboxMessage
	}
	return nil
}

func (x *HeartbeatRequest) GetDurationSinceEpoch() uint64 {
	if x != nil {
		return x.DurationSinceEpoch
	}
	return 0
}

func (x *HeartbeatRequest) GetNodeEpoch() uint64 {
	if x != nil {
		return x.NodeEpoch
	}
	return 0
}

func (x *HeartbeatRequest) GetInfo() *NodeInfo {
	if x != nil {
		return x.Info
	}
	return nil
}

func (x *HeartbeatRequest) GetFlowStat() *FlowStat {
	if x != nil {
		return x.FlowStat
	}
	return nil
}

func (m *HeartbeatRequest) GetNodeWorkloads() isHeartbeatRequest_NodeWorkloads {
	if m != nil {
		return m.NodeWorkloads
	}
	return nil
}

func (x *HeartbeatRequest) GetDatanode() *DatanodeWorkloads {
	if x, ok := x.GetNodeWorkloads().(*HeartbeatRequest_Datanode); ok {
		return x.Datanode
	}
	return nil
}

func (x *HeartbeatRequest) GetFrontend() *FrontendWorkloads {
	if x, ok := x.GetNodeWorkloads().(*HeartbeatRequest_Frontend); ok {
		return x.Frontend
	}
	return nil
}

func (x *HeartbeatRequest) GetFlownode() *FlownodeWorkloads {
	if x, ok := x.GetNodeWorkloads().(*HeartbeatRequest_Flownode); ok {
		return x.Flownode
	}
	return nil
}

type isHeartbeatRequest_NodeWorkloads interface {
	isHeartbeatRequest_NodeWorkloads()
}

type HeartbeatRequest_Datanode struct {
	Datanode *DatanodeWorkloads `protobuf:"bytes,10,opt,name=datanode,proto3,oneof"`
}

type HeartbeatRequest_Frontend struct {
	Frontend *FrontendWorkloads `protobuf:"bytes,11,opt,name=frontend,proto3,oneof"`
}

type HeartbeatRequest_Flownode struct {
	Flownode *FlownodeWorkloads `protobuf:"bytes,12,opt,name=flownode,proto3,oneof"`
}

func (*HeartbeatRequest_Datanode) isHeartbeatRequest_NodeWorkloads() {}

func (*HeartbeatRequest_Frontend) isHeartbeatRequest_NodeWorkloads() {}

func (*HeartbeatRequest_Flownode) isHeartbeatRequest_NodeWorkloads() {}

// / The workload types of the datanode.
type DatanodeWorkloads struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Types []int32 `protobuf:"varint,1,rep,packed,name=types,proto3" json:"types,omitempty"`
}

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

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

func (*DatanodeWorkloads) ProtoMessage() {}

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

func (x *DatanodeWorkloads) GetTypes() []int32 {
	if x != nil {
		return x.Types
	}
	return nil
}

// / The workload types of the frontend.
type FrontendWorkloads struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Types []int32 `protobuf:"varint,1,rep,packed,name=types,proto3" json:"types,omitempty"`
}

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

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

func (*FrontendWorkloads) ProtoMessage() {}

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

func (x *FrontendWorkloads) GetTypes() []int32 {
	if x != nil {
		return x.Types
	}
	return nil
}

// / The workload types of the flownode.
type FlownodeWorkloads struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Types []int32 `protobuf:"varint,1,rep,packed,name=types,proto3" json:"types,omitempty"`
}

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

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

func (*FlownodeWorkloads) ProtoMessage() {}

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

func (x *FlownodeWorkloads) GetTypes() []int32 {
	if x != nil {
		return x.Types
	}
	return nil
}

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

	// The node build version
	Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
	// The node build git commit hash
	GitCommit string `protobuf:"bytes,2,opt,name=git_commit,json=gitCommit,proto3" json:"git_commit,omitempty"`
	// The node start timestamp
	StartTimeMs uint64 `protobuf:"varint,3,opt,name=start_time_ms,json=startTimeMs,proto3" json:"start_time_ms,omitempty"`
	// The CPU cores number in the node.
	Cpus uint32 `protobuf:"varint,4,opt,name=cpus,proto3" json:"cpus,omitempty"`
}

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

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

func (*NodeInfo) ProtoMessage() {}

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

func (x *NodeInfo) GetVersion() string {
	if x != nil {
		return x.Version
	}
	return ""
}

func (x *NodeInfo) GetGitCommit() string {
	if x != nil {
		return x.GitCommit
	}
	return ""
}

func (x *NodeInfo) GetStartTimeMs() uint64 {
	if x != nil {
		return x.StartTimeMs
	}
	return 0
}

func (x *NodeInfo) GetCpus() uint32 {
	if x != nil {
		return x.Cpus
	}
	return 0
}

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

	RegionId uint64 `protobuf:"varint,1,opt,name=region_id,json=regionId,proto3" json:"region_id,omitempty"`
	// The read capacity units during this period
	Rcus int64 `protobuf:"varint,2,opt,name=rcus,proto3" json:"rcus,omitempty"`
	// The write capacity units during this period
	Wcus int64 `protobuf:"varint,3,opt,name=wcus,proto3" json:"wcus,omitempty"`
	// Approximate bytes of this region
	ApproximateBytes int64 `protobuf:"varint,4,opt,name=approximate_bytes,json=approximateBytes,proto3" json:"approximate_bytes,omitempty"`
	// Engine name
	Engine string `protobuf:"bytes,6,opt,name=engine,proto3" json:"engine,omitempty"`
	// Region role
	Role       RegionRole        `protobuf:"varint,7,opt,name=role,proto3,enum=greptime.v1.meta.RegionRole" json:"role,omitempty"`
	Extensions map[string][]byte `protobuf:"bytes,99,rep,name=extensions,proto3" json:"extensions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

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

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

func (*RegionStat) ProtoMessage() {}

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

func (x *RegionStat) GetRegionId() uint64 {
	if x != nil {
		return x.RegionId
	}
	return 0
}

func (x *RegionStat) GetRcus() int64 {
	if x != nil {
		return x.Rcus
	}
	return 0
}

func (x *RegionStat) GetWcus() int64 {
	if x != nil {
		return x.Wcus
	}
	return 0
}

func (x *RegionStat) GetApproximateBytes() int64 {
	if x != nil {
		return x.ApproximateBytes
	}
	return 0
}

func (x *RegionStat) GetEngine() string {
	if x != nil {
		return x.Engine
	}
	return ""
}

func (x *RegionStat) GetRole() RegionRole {
	if x != nil {
		return x.Role
	}
	return RegionRole_Leader
}

func (x *RegionStat) GetExtensions() map[string][]byte {
	if x != nil {
		return x.Extensions
	}
	return nil
}

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

	// Each flow's in mem state's size in bytes
	// due to protobuf's key can't be a message, so we use uint32 as the key which
	// is [`FlowId`]'s inner field `id`
	FlowStatSize        map[uint32]uint64 `protobuf:"bytes,1,rep,name=flow_stat_size,json=flowStatSize,proto3" json:"flow_stat_size,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
	FlowLastExecTimeMap map[uint32]int64  `protobuf:"bytes,2,rep,name=flow_last_exec_time_map,json=flowLastExecTimeMap,proto3" json:"flow_last_exec_time_map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}

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

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

func (*FlowStat) ProtoMessage() {}

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

func (x *FlowStat) GetFlowStatSize() map[uint32]uint64 {
	if x != nil {
		return x.FlowStatSize
	}
	return nil
}

func (x *FlowStat) GetFlowLastExecTimeMap() map[uint32]int64 {
	if x != nil {
		return x.FlowLastExecTimeMap
	}
	return nil
}

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

	Header         *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
	MailboxMessage *MailboxMessage `protobuf:"bytes,2,opt,name=mailbox_message,json=mailboxMessage,proto3" json:"mailbox_message,omitempty"`
	RegionLease    *RegionLease    `protobuf:"bytes,3,opt,name=region_lease,json=regionLease,proto3" json:"region_lease,omitempty"`
}

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

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

func (*HeartbeatResponse) ProtoMessage() {}

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

func (x *HeartbeatResponse) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *HeartbeatResponse) GetMailboxMessage() *MailboxMessage {
	if x != nil {
		return x.MailboxMessage
	}
	return nil
}

func (x *HeartbeatResponse) GetRegionLease() *RegionLease {
	if x != nil {
		return x.RegionLease
	}
	return nil
}

// The granted region is the region that the meta server granted leases.
type GrantedRegion struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	RegionId   uint64            `protobuf:"varint,1,opt,name=region_id,json=regionId,proto3" json:"region_id,omitempty"`
	Role       RegionRole        `protobuf:"varint,2,opt,name=role,proto3,enum=greptime.v1.meta.RegionRole" json:"role,omitempty"`
	Extensions map[string][]byte `protobuf:"bytes,99,rep,name=extensions,proto3" json:"extensions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

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

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

func (*GrantedRegion) ProtoMessage() {}

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

func (x *GrantedRegion) GetRegionId() uint64 {
	if x != nil {
		return x.RegionId
	}
	return 0
}

func (x *GrantedRegion) GetRole() RegionRole {
	if x != nil {
		return x.Role
	}
	return RegionRole_Leader
}

func (x *GrantedRegion) GetExtensions() map[string][]byte {
	if x != nil {
		return x.Extensions
	}
	return nil
}

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

	Regions            []*GrantedRegion `protobuf:"bytes,1,rep,name=regions,proto3" json:"regions,omitempty"`
	DurationSinceEpoch uint64           `protobuf:"varint,2,opt,name=duration_since_epoch,json=durationSinceEpoch,proto3" json:"duration_since_epoch,omitempty"`
	LeaseSeconds       uint64           `protobuf:"varint,3,opt,name=lease_seconds,json=leaseSeconds,proto3" json:"lease_seconds,omitempty"`
	CloseableRegionIds []uint64         `protobuf:"varint,4,rep,packed,name=closeable_region_ids,json=closeableRegionIds,proto3" json:"closeable_region_ids,omitempty"`
}

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

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

func (*RegionLease) ProtoMessage() {}

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

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

func (x *RegionLease) GetDurationSinceEpoch() uint64 {
	if x != nil {
		return x.DurationSinceEpoch
	}
	return 0
}

func (x *RegionLease) GetLeaseSeconds() uint64 {
	if x != nil {
		return x.LeaseSeconds
	}
	return 0
}

func (x *RegionLease) GetCloseableRegionIds() []uint64 {
	if x != nil {
		return x.CloseableRegionIds
	}
	return nil
}

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

	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
}

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

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

func (*AskLeaderRequest) ProtoMessage() {}

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

func (x *AskLeaderRequest) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

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

	Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
	Leader *Peer           `protobuf:"bytes,2,opt,name=leader,proto3" json:"leader,omitempty"`
}

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

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

func (*AskLeaderResponse) ProtoMessage() {}

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

func (x *AskLeaderResponse) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *AskLeaderResponse) GetLeader() *Peer {
	if x != nil {
		return x.Leader
	}
	return nil
}

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

	// The id is used to associate request and response.
	Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	// The following information plays a bigger role in making messages traceable
	// and facilitating debugging.
	Subject string `protobuf:"bytes,2,opt,name=subject,proto3" json:"subject,omitempty"`
	From    string `protobuf:"bytes,3,opt,name=from,proto3" json:"from,omitempty"`
	To      string `protobuf:"bytes,4,opt,name=to,proto3" json:"to,omitempty"`
	// The unix timestamp in milliseconds.
	TimestampMillis int64 `protobuf:"varint,5,opt,name=timestamp_millis,json=timestampMillis,proto3" json:"timestamp_millis,omitempty"`
	// The message body.
	//
	// Types that are assignable to Payload:
	//
	//	*MailboxMessage_Json
	Payload isMailboxMessage_Payload `protobuf_oneof:"payload"`
}

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

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

func (*MailboxMessage) ProtoMessage() {}

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

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

func (x *MailboxMessage) GetSubject() string {
	if x != nil {
		return x.Subject
	}
	return ""
}

func (x *MailboxMessage) GetFrom() string {
	if x != nil {
		return x.From
	}
	return ""
}

func (x *MailboxMessage) GetTo() string {
	if x != nil {
		return x.To
	}
	return ""
}

func (x *MailboxMessage) GetTimestampMillis() int64 {
	if x != nil {
		return x.TimestampMillis
	}
	return 0
}

func (m *MailboxMessage) GetPayload() isMailboxMessage_Payload {
	if m != nil {
		return m.Payload
	}
	return nil
}

func (x *MailboxMessage) GetJson() string {
	if x, ok := x.GetPayload().(*MailboxMessage_Json); ok {
		return x.Json
	}
	return ""
}

type isMailboxMessage_Payload interface {
	isMailboxMessage_Payload()
}

type MailboxMessage_Json struct {
	Json string `protobuf:"bytes,6,opt,name=json,proto3,oneof"`
}

func (*MailboxMessage_Json) isMailboxMessage_Payload() {}

var File_greptime_v1_meta_heartbeat_proto protoreflect.FileDescriptor

var file_greptime_v1_meta_heartbeat_proto_rawDesc = []byte{
	0x0a, 0x20, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65,
	0x74, 0x61, 0x2f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x12, 0x10, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x6d, 0x65, 0x74, 0x61, 0x1a, 0x1d, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x76,
	0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x22, 0xe1, 0x05, 0x0a, 0x10, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61,
	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74,
	0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65,
	0x72, 0x12, 0x2a, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x16, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65,
	0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x12, 0x47, 0x0a,
	0x0f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x49, 0x6e,
	0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x6e,
	0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x3f, 0x0a, 0x0c, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e,
	0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67,
	0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e,
	0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x52, 0x0b, 0x72, 0x65, 0x67, 0x69,
	0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x49, 0x0a, 0x0f, 0x6d, 0x61, 0x69, 0x6c, 0x62,
	0x6f, 0x78, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x20, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d,
	0x65, 0x74, 0x61, 0x2e, 0x4d, 0x61, 0x69, 0x6c, 0x62, 0x6f, 0x78, 0x4d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x65, 0x52, 0x0e, 0x6d, 0x61, 0x69, 0x6c, 0x62, 0x6f, 0x78, 0x4d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73,
	0x69, 0x6e, 0x63, 0x65, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04,
	0x52, 0x12, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x45,
	0x70, 0x6f, 0x63, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x70, 0x6f,
	0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x70,
	0x6f, 0x63, 0x68, 0x12, 0x2e, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x6d, 0x65, 0x74, 0x61, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69,
	0x6e, 0x66, 0x6f, 0x12, 0x37, 0x0a, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74,
	0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x74,
	0x61, 0x74, 0x52, 0x08, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x12, 0x41, 0x0a, 0x08,
	0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23,
	0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74,
	0x61, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f,
	0x61, 0x64, 0x73, 0x48, 0x00, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x64, 0x65, 0x12,
	0x41, 0x0a, 0x08, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x23, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x6d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x57, 0x6f, 0x72,
	0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x48, 0x00, 0x52, 0x08, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x65,
	0x6e, 0x64, 0x12, 0x41, 0x0a, 0x08, 0x66, 0x6c, 0x6f, 0x77, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x0c,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e,
	0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x6e, 0x6f, 0x64, 0x65,
	0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x48, 0x00, 0x52, 0x08, 0x66, 0x6c, 0x6f,
	0x77, 0x6e, 0x6f, 0x64, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x77, 0x6f,
	0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x22, 0x29, 0x0a, 0x11, 0x44, 0x61, 0x74, 0x61, 0x6e,
	0x6f, 0x64, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x22, 0x29, 0x0a, 0x11, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x57, 0x6f,
	0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x22, 0x29, 0x0a,
	0x11, 0x46, 0x6c, 0x6f, 0x77, 0x6e, 0x6f, 0x64, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61,
	0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
	0x05, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x22, 0x7b, 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65,
	0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d,
	0x0a, 0x0a, 0x67, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x09, 0x67, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x22, 0x0a,
	0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x73, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x4d,
	0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x70, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52,
	0x04, 0x63, 0x70, 0x75, 0x73, 0x22, 0xd5, 0x02, 0x0a, 0x0a, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e,
	0x53, 0x74, 0x61, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49,
	0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x63, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x04, 0x72, 0x63, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x63, 0x75, 0x73, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x04, 0x77, 0x63, 0x75, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x70, 0x70,
	0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, 0x74,
	0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 0x30,
	0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x67,
	0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e,
	0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65,
	0x12, 0x4c, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x63,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e,
	0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x53, 0x74,
	0x61, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74,
	0x72, 0x79, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3d,
	0x0a, 0x0f, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
	0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xd2, 0x02,
	0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x12, 0x52, 0x0a, 0x0e, 0x66, 0x6c,
	0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x2e, 0x46,
	0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79,
	0x52, 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x69,
	0x0a, 0x17, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63,
	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x33, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65,
	0x74, 0x61, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x2e, 0x46, 0x6c, 0x6f, 0x77,
	0x4c, 0x61, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x45,
	0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x73, 0x74, 0x45, 0x78,
	0x65, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x1a, 0x3f, 0x0a, 0x11, 0x46, 0x6c, 0x6f,
	0x77, 0x53, 0x74, 0x61, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
	0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79,
	0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x46, 0x0a, 0x18, 0x46, 0x6c,
	0x6f, 0x77, 0x4c, 0x61, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x61,
	0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
	0x38, 0x01, 0x22, 0xda, 0x01, 0x0a, 0x11, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74,
	0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x12, 0x49, 0x0a, 0x0f, 0x6d, 0x61, 0x69, 0x6c, 0x62, 0x6f, 0x78, 0x5f, 0x6d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x72,
	0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x4d,
	0x61, 0x69, 0x6c, 0x62, 0x6f, 0x78, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0e, 0x6d,
	0x61, 0x69, 0x6c, 0x62, 0x6f, 0x78, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x40, 0x0a,
	0x0c, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x61,
	0x73, 0x65, 0x52, 0x0b, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x22,
	0xee, 0x01, 0x0a, 0x0d, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f,
	0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x30,
	0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x67,
	0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e,
	0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65,
	0x12, 0x4f, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x63,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e,
	0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x52,
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
	0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45,
	0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
	0x22, 0xd1, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x61, 0x73, 0x65,
	0x12, 0x39, 0x0a, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x6d, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69,
	0x6f, 0x6e, 0x52, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x64,
	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x65, 0x70,
	0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x64, 0x75, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x23, 0x0a,
	0x0d, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e,
	0x64, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x5f,
	0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x04,
	0x52, 0x12, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f,
	0x6e, 0x49, 0x64, 0x73, 0x22, 0x4b, 0x0a, 0x10, 0x41, 0x73, 0x6b, 0x4c, 0x65, 0x61, 0x64, 0x65,
	0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74,
	0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65,
	0x72, 0x22, 0x7d, 0x0a, 0x11, 0x41, 0x73, 0x6b, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
	0x12, 0x2e, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x16, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d,
	0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72,
	0x22, 0xaa, 0x01, 0x0a, 0x0e, 0x4d, 0x61, 0x69, 0x6c, 0x62, 0x6f, 0x78, 0x4d, 0x65, 0x73, 0x73,
	0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a,
	0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f,
	0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74,
	0x6f, 0x12, 0x29, 0x0a, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6d,
	0x69, 0x6c, 0x6c, 0x69, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x74, 0x69, 0x6d,
	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x12, 0x14, 0x0a, 0x04,
	0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6a, 0x73,
	0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2a, 0x3d, 0x0a,
	0x0a, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x4c,
	0x65, 0x61, 0x64, 0x65, 0x72, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x6f, 0x6c, 0x6c, 0x6f,
	0x77, 0x65, 0x72, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x6f, 0x77, 0x6e, 0x67, 0x72, 0x61,
	0x64, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x10, 0x02, 0x32, 0xbf, 0x01, 0x0a,
	0x09, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x5a, 0x0a, 0x09, 0x48, 0x65,
	0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x22, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69,
	0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x48, 0x65, 0x61, 0x72, 0x74,
	0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x72,
	0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x48,
	0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x12, 0x56, 0x0a, 0x09, 0x41, 0x73, 0x6b, 0x4c, 0x65, 0x61,
	0x64, 0x65, 0x72, 0x12, 0x22, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x73, 0x6b, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69,
	0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x73, 0x6b, 0x4c, 0x65,
	0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3c,
	0x5a, 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x72, 0x65,
	0x70, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x2f, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69,
	0x6d, 0x65, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x72, 0x65, 0x70,
	0x74, 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_greptime_v1_meta_heartbeat_proto_rawDescOnce sync.Once
	file_greptime_v1_meta_heartbeat_proto_rawDescData = file_greptime_v1_meta_heartbeat_proto_rawDesc
)

func file_greptime_v1_meta_heartbeat_proto_rawDescGZIP() []byte {
	file_greptime_v1_meta_heartbeat_proto_rawDescOnce.Do(func() {
		file_greptime_v1_meta_heartbeat_proto_rawDescData = protoimpl.X.CompressGZIP(file_greptime_v1_meta_heartbeat_proto_rawDescData)
	})
	return file_greptime_v1_meta_heartbeat_proto_rawDescData
}

var file_greptime_v1_meta_heartbeat_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_greptime_v1_meta_heartbeat_proto_msgTypes = make([]protoimpl.MessageInfo, 17)
var file_greptime_v1_meta_heartbeat_proto_goTypes = []interface{}{
	(RegionRole)(0),           // 0: greptime.v1.meta.RegionRole
	(*HeartbeatRequest)(nil),  // 1: greptime.v1.meta.HeartbeatRequest
	(*DatanodeWorkloads)(nil), // 2: greptime.v1.meta.DatanodeWorkloads
	(*FrontendWorkloads)(nil), // 3: greptime.v1.meta.FrontendWorkloads
	(*FlownodeWorkloads)(nil), // 4: greptime.v1.meta.FlownodeWorkloads
	(*NodeInfo)(nil),          // 5: greptime.v1.meta.NodeInfo
	(*RegionStat)(nil),        // 6: greptime.v1.meta.RegionStat
	(*FlowStat)(nil),          // 7: greptime.v1.meta.FlowStat
	(*HeartbeatResponse)(nil), // 8: greptime.v1.meta.HeartbeatResponse
	(*GrantedRegion)(nil),     // 9: greptime.v1.meta.GrantedRegion
	(*RegionLease)(nil),       // 10: greptime.v1.meta.RegionLease
	(*AskLeaderRequest)(nil),  // 11: greptime.v1.meta.AskLeaderRequest
	(*AskLeaderResponse)(nil), // 12: greptime.v1.meta.AskLeaderResponse
	(*MailboxMessage)(nil),    // 13: greptime.v1.meta.MailboxMessage
	nil,                       // 14: greptime.v1.meta.RegionStat.ExtensionsEntry
	nil,                       // 15: greptime.v1.meta.FlowStat.FlowStatSizeEntry
	nil,                       // 16: greptime.v1.meta.FlowStat.FlowLastExecTimeMapEntry
	nil,                       // 17: greptime.v1.meta.GrantedRegion.ExtensionsEntry
	(*RequestHeader)(nil),     // 18: greptime.v1.meta.RequestHeader
	(*Peer)(nil),              // 19: greptime.v1.meta.Peer
	(*TimeInterval)(nil),      // 20: greptime.v1.meta.TimeInterval
	(*ResponseHeader)(nil),    // 21: greptime.v1.meta.ResponseHeader
}
var file_greptime_v1_meta_heartbeat_proto_depIdxs = []int32{
	18, // 0: greptime.v1.meta.HeartbeatRequest.header:type_name -> greptime.v1.meta.RequestHeader
	19, // 1: greptime.v1.meta.HeartbeatRequest.peer:type_name -> greptime.v1.meta.Peer
	20, // 2: greptime.v1.meta.HeartbeatRequest.report_interval:type_name -> greptime.v1.meta.TimeInterval
	6,  // 3: greptime.v1.meta.HeartbeatRequest.region_stats:type_name -> greptime.v1.meta.RegionStat
	13, // 4: greptime.v1.meta.HeartbeatRequest.mailbox_message:type_name -> greptime.v1.meta.MailboxMessage
	5,  // 5: greptime.v1.meta.HeartbeatRequest.info:type_name -> greptime.v1.meta.NodeInfo
	7,  // 6: greptime.v1.meta.HeartbeatRequest.flow_stat:type_name -> greptime.v1.meta.FlowStat
	2,  // 7: greptime.v1.meta.HeartbeatRequest.datanode:type_name -> greptime.v1.meta.DatanodeWorkloads
	3,  // 8: greptime.v1.meta.HeartbeatRequest.frontend:type_name -> greptime.v1.meta.FrontendWorkloads
	4,  // 9: greptime.v1.meta.HeartbeatRequest.flownode:type_name -> greptime.v1.meta.FlownodeWorkloads
	0,  // 10: greptime.v1.meta.RegionStat.role:type_name -> greptime.v1.meta.RegionRole
	14, // 11: greptime.v1.meta.RegionStat.extensions:type_name -> greptime.v1.meta.RegionStat.ExtensionsEntry
	15, // 12: greptime.v1.meta.FlowStat.flow_stat_size:type_name -> greptime.v1.meta.FlowStat.FlowStatSizeEntry
	16, // 13: greptime.v1.meta.FlowStat.flow_last_exec_time_map:type_name -> greptime.v1.meta.FlowStat.FlowLastExecTimeMapEntry
	21, // 14: greptime.v1.meta.HeartbeatResponse.header:type_name -> greptime.v1.meta.ResponseHeader
	13, // 15: greptime.v1.meta.HeartbeatResponse.mailbox_message:type_name -> greptime.v1.meta.MailboxMessage
	10, // 16: greptime.v1.meta.HeartbeatResponse.region_lease:type_name -> greptime.v1.meta.RegionLease
	0,  // 17: greptime.v1.meta.GrantedRegion.role:type_name -> greptime.v1.meta.RegionRole
	17, // 18: greptime.v1.meta.GrantedRegion.extensions:type_name -> greptime.v1.meta.GrantedRegion.ExtensionsEntry
	9,  // 19: greptime.v1.meta.RegionLease.regions:type_name -> greptime.v1.meta.GrantedRegion
	18, // 20: greptime.v1.meta.AskLeaderRequest.header:type_name -> greptime.v1.meta.RequestHeader
	21, // 21: greptime.v1.meta.AskLeaderResponse.header:type_name -> greptime.v1.meta.ResponseHeader
	19, // 22: greptime.v1.meta.AskLeaderResponse.leader:type_name -> greptime.v1.meta.Peer
	1,  // 23: greptime.v1.meta.Heartbeat.Heartbeat:input_type -> greptime.v1.meta.HeartbeatRequest
	11, // 24: greptime.v1.meta.Heartbeat.AskLeader:input_type -> greptime.v1.meta.AskLeaderRequest
	8,  // 25: greptime.v1.meta.Heartbeat.Heartbeat:output_type -> greptime.v1.meta.HeartbeatResponse
	12, // 26: greptime.v1.meta.Heartbeat.AskLeader:output_type -> greptime.v1.meta.AskLeaderResponse
	25, // [25:27] is the sub-list for method output_type
	23, // [23:25] is the sub-list for method input_type
	23, // [23:23] is the sub-list for extension type_name
	23, // [23:23] is the sub-list for extension extendee
	0,  // [0:23] is the sub-list for field type_name
}

func init() { file_greptime_v1_meta_heartbeat_proto_init() }
func file_greptime_v1_meta_heartbeat_proto_init() {
	if File_greptime_v1_meta_heartbeat_proto != nil {
		return
	}
	file_greptime_v1_meta_common_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_greptime_v1_meta_heartbeat_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*HeartbeatRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_greptime_v1_meta_heartbeat_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DatanodeWorkloads); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_greptime_v1_meta_heartbeat_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FrontendWorkloads); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_greptime_v1_meta_heartbeat_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FlownodeWorkloads); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_greptime_v1_meta_heartbeat_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*NodeInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_greptime_v1_meta_heartbeat_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RegionStat); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_greptime_v1_meta_heartbeat_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FlowStat); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_greptime_v1_meta_heartbeat_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*HeartbeatResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_greptime_v1_meta_heartbeat_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GrantedRegion); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_greptime_v1_meta_heartbeat_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RegionLease); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_greptime_v1_meta_heartbeat_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AskLeaderRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_greptime_v1_meta_heartbeat_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AskLeaderResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_greptime_v1_meta_heartbeat_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MailboxMessage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_greptime_v1_meta_heartbeat_proto_msgTypes[0].OneofWrappers = []interface{}{
		(*HeartbeatRequest_Datanode)(nil),
		(*HeartbeatRequest_Frontend)(nil),
		(*HeartbeatRequest_Flownode)(nil),
	}
	file_greptime_v1_meta_heartbeat_proto_msgTypes[12].OneofWrappers = []interface{}{
		(*MailboxMessage_Json)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_greptime_v1_meta_heartbeat_proto_rawDesc,
			NumEnums:      1,
			NumMessages:   17,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_greptime_v1_meta_heartbeat_proto_goTypes,
		DependencyIndexes: file_greptime_v1_meta_heartbeat_proto_depIdxs,
		EnumInfos:         file_greptime_v1_meta_heartbeat_proto_enumTypes,
		MessageInfos:      file_greptime_v1_meta_heartbeat_proto_msgTypes,
	}.Build()
	File_greptime_v1_meta_heartbeat_proto = out.File
	file_greptime_v1_meta_heartbeat_proto_rawDesc = nil
	file_greptime_v1_meta_heartbeat_proto_goTypes = nil
	file_greptime_v1_meta_heartbeat_proto_depIdxs = nil
}
