kubenetworks/kubevpn

View on GitHub
pkg/daemon/rpc/daemon.pb.go

Summary

Maintainability
F
3 wks
Test Coverage
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
//     protoc-gen-go v1.33.0
//     protoc        v3.21.2
// source: daemon.proto

package rpc

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 ConnectRequest struct {
    state         protoimpl.MessageState
    sizeCache     protoimpl.SizeCache
    unknownFields protoimpl.UnknownFields

    KubeconfigBytes string            `protobuf:"bytes,1,opt,name=KubeconfigBytes,proto3" json:"KubeconfigBytes,omitempty"`
    Namespace       string            `protobuf:"bytes,2,opt,name=Namespace,proto3" json:"Namespace,omitempty"`
    Headers         map[string]string `protobuf:"bytes,3,rep,name=Headers,proto3" json:"Headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
    PortMap         []string          `protobuf:"bytes,4,rep,name=PortMap,proto3" json:"PortMap,omitempty"`
    Workloads       []string          `protobuf:"bytes,5,rep,name=Workloads,proto3" json:"Workloads,omitempty"`
    Engine          string            `protobuf:"bytes,7,opt,name=Engine,proto3" json:"Engine,omitempty"`
    // extra route table info
    ExtraRoute *ExtraRoute `protobuf:"bytes,8,opt,name=ExtraRoute,proto3" json:"ExtraRoute,omitempty"`
    // ssh jump
    SshJump *SshJump `protobuf:"bytes,9,opt,name=SshJump,proto3" json:"SshJump,omitempty"`
    // transfer image
    TransferImage bool   `protobuf:"varint,10,opt,name=TransferImage,proto3" json:"TransferImage,omitempty"`
    Image         string `protobuf:"bytes,11,opt,name=Image,proto3" json:"Image,omitempty"`
    // foreground
    Foreground bool `protobuf:"varint,12,opt,name=Foreground,proto3" json:"Foreground,omitempty"`
    // log level
    Level                int32  `protobuf:"varint,13,opt,name=Level,proto3" json:"Level,omitempty"`
    OriginKubeconfigPath string `protobuf:"bytes,14,opt,name=OriginKubeconfigPath,proto3" json:"OriginKubeconfigPath,omitempty"`
}

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

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

func (*ConnectRequest) ProtoMessage() {}

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

func (x *ConnectRequest) GetKubeconfigBytes() string {
    if x != nil {
        return x.KubeconfigBytes
    }
    return ""
}

func (x *ConnectRequest) GetNamespace() string {
    if x != nil {
        return x.Namespace
    }
    return ""
}

func (x *ConnectRequest) GetHeaders() map[string]string {
    if x != nil {
        return x.Headers
    }
    return nil
}

func (x *ConnectRequest) GetPortMap() []string {
    if x != nil {
        return x.PortMap
    }
    return nil
}

func (x *ConnectRequest) GetWorkloads() []string {
    if x != nil {
        return x.Workloads
    }
    return nil
}

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

func (x *ConnectRequest) GetExtraRoute() *ExtraRoute {
    if x != nil {
        return x.ExtraRoute
    }
    return nil
}

func (x *ConnectRequest) GetSshJump() *SshJump {
    if x != nil {
        return x.SshJump
    }
    return nil
}

func (x *ConnectRequest) GetTransferImage() bool {
    if x != nil {
        return x.TransferImage
    }
    return false
}

func (x *ConnectRequest) GetImage() string {
    if x != nil {
        return x.Image
    }
    return ""
}

func (x *ConnectRequest) GetForeground() bool {
    if x != nil {
        return x.Foreground
    }
    return false
}

func (x *ConnectRequest) GetLevel() int32 {
    if x != nil {
        return x.Level
    }
    return 0
}

func (x *ConnectRequest) GetOriginKubeconfigPath() string {
    if x != nil {
        return x.OriginKubeconfigPath
    }
    return ""
}

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

    Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
}

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

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

func (*ConnectResponse) ProtoMessage() {}

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

func (x *ConnectResponse) GetMessage() string {
    if x != nil {
        return x.Message
    }
    return ""
}

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

    // 1) disconnect by id
    ID *int32 `protobuf:"varint,1,opt,name=ID,proto3,oneof" json:"ID,omitempty"`
    // 2) disconnect all
    All *bool `protobuf:"varint,2,opt,name=All,proto3,oneof" json:"All,omitempty"`
    // 3) disconnect by kubeConfig
    KubeconfigBytes *string  `protobuf:"bytes,3,opt,name=KubeconfigBytes,proto3,oneof" json:"KubeconfigBytes,omitempty"`
    Namespace       *string  `protobuf:"bytes,4,opt,name=Namespace,proto3,oneof" json:"Namespace,omitempty"`
    SshJump         *SshJump `protobuf:"bytes,5,opt,name=SshJump,proto3" json:"SshJump,omitempty"`
    // 4) disconnect by cluster ids
    ClusterIDs []string `protobuf:"bytes,6,rep,name=ClusterIDs,proto3" json:"ClusterIDs,omitempty"`
}

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

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

func (*DisconnectRequest) ProtoMessage() {}

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

func (x *DisconnectRequest) GetID() int32 {
    if x != nil && x.ID != nil {
        return *x.ID
    }
    return 0
}

func (x *DisconnectRequest) GetAll() bool {
    if x != nil && x.All != nil {
        return *x.All
    }
    return false
}

func (x *DisconnectRequest) GetKubeconfigBytes() string {
    if x != nil && x.KubeconfigBytes != nil {
        return *x.KubeconfigBytes
    }
    return ""
}

func (x *DisconnectRequest) GetNamespace() string {
    if x != nil && x.Namespace != nil {
        return *x.Namespace
    }
    return ""
}

func (x *DisconnectRequest) GetSshJump() *SshJump {
    if x != nil {
        return x.SshJump
    }
    return nil
}

func (x *DisconnectRequest) GetClusterIDs() []string {
    if x != nil {
        return x.ClusterIDs
    }
    return nil
}

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

    Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
}

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

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

func (*DisconnectResponse) ProtoMessage() {}

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

func (x *DisconnectResponse) GetMessage() string {
    if x != nil {
        return x.Message
    }
    return ""
}

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

    Workloads []string `protobuf:"bytes,1,rep,name=Workloads,proto3" json:"Workloads,omitempty"`
}

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

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

func (*LeaveRequest) ProtoMessage() {}

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

func (x *LeaveRequest) GetWorkloads() []string {
    if x != nil {
        return x.Workloads
    }
    return nil
}

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

    Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
}

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

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

func (*LeaveResponse) ProtoMessage() {}

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

func (x *LeaveResponse) GetMessage() string {
    if x != nil {
        return x.Message
    }
    return ""
}

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

    KubeconfigBytes string            `protobuf:"bytes,1,opt,name=KubeconfigBytes,proto3" json:"KubeconfigBytes,omitempty"`
    Namespace       string            `protobuf:"bytes,2,opt,name=Namespace,proto3" json:"Namespace,omitempty"`
    Headers         map[string]string `protobuf:"bytes,3,rep,name=Headers,proto3" json:"Headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
    Workloads       []string          `protobuf:"bytes,4,rep,name=Workloads,proto3" json:"Workloads,omitempty"`
    Engine          string            `protobuf:"bytes,6,opt,name=Engine,proto3" json:"Engine,omitempty"`
    // extra route table info
    ExtraRoute *ExtraRoute `protobuf:"bytes,7,opt,name=ExtraRoute,proto3" json:"ExtraRoute,omitempty"`
    // ssh jump
    SshJump *SshJump `protobuf:"bytes,8,opt,name=SshJump,proto3" json:"SshJump,omitempty"`
    // target cluster info
    TargetKubeconfig       string `protobuf:"bytes,9,opt,name=TargetKubeconfig,proto3" json:"TargetKubeconfig,omitempty"`
    TargetNamespace        string `protobuf:"bytes,10,opt,name=TargetNamespace,proto3" json:"TargetNamespace,omitempty"`
    TargetContainer        string `protobuf:"bytes,11,opt,name=TargetContainer,proto3" json:"TargetContainer,omitempty"`
    TargetImage            string `protobuf:"bytes,12,opt,name=TargetImage,proto3" json:"TargetImage,omitempty"`
    TargetRegistry         string `protobuf:"bytes,13,opt,name=TargetRegistry,proto3" json:"TargetRegistry,omitempty"`
    IsChangeTargetRegistry bool   `protobuf:"varint,14,opt,name=IsChangeTargetRegistry,proto3" json:"IsChangeTargetRegistry,omitempty"`
    // transfer image
    TransferImage bool   `protobuf:"varint,15,opt,name=TransferImage,proto3" json:"TransferImage,omitempty"`
    Image         string `protobuf:"bytes,16,opt,name=Image,proto3" json:"Image,omitempty"`
    // log level
    Level                int32  `protobuf:"varint,17,opt,name=Level,proto3" json:"Level,omitempty"`
    OriginKubeconfigPath string `protobuf:"bytes,18,opt,name=OriginKubeconfigPath,proto3" json:"OriginKubeconfigPath,omitempty"`
    LocalDir             string `protobuf:"bytes,19,opt,name=LocalDir,proto3" json:"LocalDir,omitempty"`
    RemoteDir            string `protobuf:"bytes,20,opt,name=RemoteDir,proto3" json:"RemoteDir,omitempty"`
}

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

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

func (*CloneRequest) ProtoMessage() {}

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

func (x *CloneRequest) GetKubeconfigBytes() string {
    if x != nil {
        return x.KubeconfigBytes
    }
    return ""
}

func (x *CloneRequest) GetNamespace() string {
    if x != nil {
        return x.Namespace
    }
    return ""
}

func (x *CloneRequest) GetHeaders() map[string]string {
    if x != nil {
        return x.Headers
    }
    return nil
}

func (x *CloneRequest) GetWorkloads() []string {
    if x != nil {
        return x.Workloads
    }
    return nil
}

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

func (x *CloneRequest) GetExtraRoute() *ExtraRoute {
    if x != nil {
        return x.ExtraRoute
    }
    return nil
}

func (x *CloneRequest) GetSshJump() *SshJump {
    if x != nil {
        return x.SshJump
    }
    return nil
}

func (x *CloneRequest) GetTargetKubeconfig() string {
    if x != nil {
        return x.TargetKubeconfig
    }
    return ""
}

func (x *CloneRequest) GetTargetNamespace() string {
    if x != nil {
        return x.TargetNamespace
    }
    return ""
}

func (x *CloneRequest) GetTargetContainer() string {
    if x != nil {
        return x.TargetContainer
    }
    return ""
}

func (x *CloneRequest) GetTargetImage() string {
    if x != nil {
        return x.TargetImage
    }
    return ""
}

func (x *CloneRequest) GetTargetRegistry() string {
    if x != nil {
        return x.TargetRegistry
    }
    return ""
}

func (x *CloneRequest) GetIsChangeTargetRegistry() bool {
    if x != nil {
        return x.IsChangeTargetRegistry
    }
    return false
}

func (x *CloneRequest) GetTransferImage() bool {
    if x != nil {
        return x.TransferImage
    }
    return false
}

func (x *CloneRequest) GetImage() string {
    if x != nil {
        return x.Image
    }
    return ""
}

func (x *CloneRequest) GetLevel() int32 {
    if x != nil {
        return x.Level
    }
    return 0
}

func (x *CloneRequest) GetOriginKubeconfigPath() string {
    if x != nil {
        return x.OriginKubeconfigPath
    }
    return ""
}

func (x *CloneRequest) GetLocalDir() string {
    if x != nil {
        return x.LocalDir
    }
    return ""
}

func (x *CloneRequest) GetRemoteDir() string {
    if x != nil {
        return x.RemoteDir
    }
    return ""
}

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

    Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
}

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

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

func (*CloneResponse) ProtoMessage() {}

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

func (x *CloneResponse) GetMessage() string {
    if x != nil {
        return x.Message
    }
    return ""
}

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

    Workloads []string `protobuf:"bytes,1,rep,name=Workloads,proto3" json:"Workloads,omitempty"`
}

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

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

func (*RemoveRequest) ProtoMessage() {}

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

func (x *RemoveRequest) GetWorkloads() []string {
    if x != nil {
        return x.Workloads
    }
    return nil
}

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

    Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
}

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

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

func (*RemoveResponse) ProtoMessage() {}

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

func (x *RemoveResponse) GetMessage() string {
    if x != nil {
        return x.Message
    }
    return ""
}

type QuitRequest struct {
    state         protoimpl.MessageState
    sizeCache     protoimpl.SizeCache
    unknownFields protoimpl.UnknownFields
}

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

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

func (*QuitRequest) ProtoMessage() {}

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

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

    Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
}

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

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

func (*QuitResponse) ProtoMessage() {}

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

func (x *QuitResponse) GetMessage() string {
    if x != nil {
        return x.Message
    }
    return ""
}

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

    ClusterIDs []string `protobuf:"bytes,1,rep,name=ClusterIDs,proto3" json:"ClusterIDs,omitempty"`
}

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

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

func (*StatusRequest) ProtoMessage() {}

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

func (x *StatusRequest) GetClusterIDs() []string {
    if x != nil {
        return x.ClusterIDs
    }
    return nil
}

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

    List []*Status `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"`
}

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

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

func (*StatusResponse) ProtoMessage() {}

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

func (x *StatusResponse) GetList() []*Status {
    if x != nil {
        return x.List
    }
    return nil
}

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

    ID         int32    `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
    ClusterID  string   `protobuf:"bytes,2,opt,name=ClusterID,proto3" json:"ClusterID,omitempty"`
    Cluster    string   `protobuf:"bytes,3,opt,name=Cluster,proto3" json:"Cluster,omitempty"`
    Mode       string   `protobuf:"bytes,4,opt,name=Mode,proto3" json:"Mode,omitempty"`
    Kubeconfig string   `protobuf:"bytes,5,opt,name=Kubeconfig,proto3" json:"Kubeconfig,omitempty"`
    Namespace  string   `protobuf:"bytes,6,opt,name=Namespace,proto3" json:"Namespace,omitempty"`
    Status     string   `protobuf:"bytes,7,opt,name=Status,proto3" json:"Status,omitempty"`
    Netif      string   `protobuf:"bytes,8,opt,name=Netif,proto3" json:"Netif,omitempty"`
    ProxyList  []*Proxy `protobuf:"bytes,9,rep,name=ProxyList,proto3" json:"ProxyList,omitempty"`
    CloneList  []*Clone `protobuf:"bytes,10,rep,name=CloneList,proto3" json:"CloneList,omitempty"`
}

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

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

func (*Status) ProtoMessage() {}

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

func (x *Status) GetID() int32 {
    if x != nil {
        return x.ID
    }
    return 0
}

func (x *Status) GetClusterID() string {
    if x != nil {
        return x.ClusterID
    }
    return ""
}

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

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

func (x *Status) GetKubeconfig() string {
    if x != nil {
        return x.Kubeconfig
    }
    return ""
}

func (x *Status) GetNamespace() string {
    if x != nil {
        return x.Namespace
    }
    return ""
}

func (x *Status) GetStatus() string {
    if x != nil {
        return x.Status
    }
    return ""
}

func (x *Status) GetNetif() string {
    if x != nil {
        return x.Netif
    }
    return ""
}

func (x *Status) GetProxyList() []*Proxy {
    if x != nil {
        return x.ProxyList
    }
    return nil
}

func (x *Status) GetCloneList() []*Clone {
    if x != nil {
        return x.CloneList
    }
    return nil
}

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

    ClusterID  string       `protobuf:"bytes,1,opt,name=ClusterID,proto3" json:"ClusterID,omitempty"`
    Cluster    string       `protobuf:"bytes,2,opt,name=Cluster,proto3" json:"Cluster,omitempty"`
    Kubeconfig string       `protobuf:"bytes,3,opt,name=Kubeconfig,proto3" json:"Kubeconfig,omitempty"`
    Namespace  string       `protobuf:"bytes,4,opt,name=Namespace,proto3" json:"Namespace,omitempty"`
    Workload   string       `protobuf:"bytes,5,opt,name=Workload,proto3" json:"Workload,omitempty"`
    RuleList   []*ProxyRule `protobuf:"bytes,6,rep,name=RuleList,proto3" json:"RuleList,omitempty"`
}

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

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

func (*Proxy) ProtoMessage() {}

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

func (x *Proxy) GetClusterID() string {
    if x != nil {
        return x.ClusterID
    }
    return ""
}

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

func (x *Proxy) GetKubeconfig() string {
    if x != nil {
        return x.Kubeconfig
    }
    return ""
}

func (x *Proxy) GetNamespace() string {
    if x != nil {
        return x.Namespace
    }
    return ""
}

func (x *Proxy) GetWorkload() string {
    if x != nil {
        return x.Workload
    }
    return ""
}

func (x *Proxy) GetRuleList() []*ProxyRule {
    if x != nil {
        return x.RuleList
    }
    return nil
}

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

    Headers       map[string]string `protobuf:"bytes,1,rep,name=Headers,proto3" json:"Headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
    LocalTunIPv4  string            `protobuf:"bytes,2,opt,name=LocalTunIPv4,proto3" json:"LocalTunIPv4,omitempty"`
    LocalTunIPv6  string            `protobuf:"bytes,3,opt,name=LocalTunIPv6,proto3" json:"LocalTunIPv6,omitempty"`
    CurrentDevice bool              `protobuf:"varint,4,opt,name=CurrentDevice,proto3" json:"CurrentDevice,omitempty"`
    PortMap       map[int32]int32   `protobuf:"bytes,5,rep,name=PortMap,proto3" json:"PortMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}

func (x *ProxyRule) Reset() {
    *x = ProxyRule{}
    if protoimpl.UnsafeEnabled {
        mi := &file_daemon_proto_msgTypes[16]
        ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
        ms.StoreMessageInfo(mi)
    }
}

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

func (*ProxyRule) ProtoMessage() {}

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

func (x *ProxyRule) GetHeaders() map[string]string {
    if x != nil {
        return x.Headers
    }
    return nil
}

func (x *ProxyRule) GetLocalTunIPv4() string {
    if x != nil {
        return x.LocalTunIPv4
    }
    return ""
}

func (x *ProxyRule) GetLocalTunIPv6() string {
    if x != nil {
        return x.LocalTunIPv6
    }
    return ""
}

func (x *ProxyRule) GetCurrentDevice() bool {
    if x != nil {
        return x.CurrentDevice
    }
    return false
}

func (x *ProxyRule) GetPortMap() map[int32]int32 {
    if x != nil {
        return x.PortMap
    }
    return nil
}

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

    ClusterID        string       `protobuf:"bytes,1,opt,name=ClusterID,proto3" json:"ClusterID,omitempty"`
    Cluster          string       `protobuf:"bytes,2,opt,name=Cluster,proto3" json:"Cluster,omitempty"`
    Kubeconfig       string       `protobuf:"bytes,3,opt,name=Kubeconfig,proto3" json:"Kubeconfig,omitempty"`
    Namespace        string       `protobuf:"bytes,4,opt,name=Namespace,proto3" json:"Namespace,omitempty"`
    Workload         string       `protobuf:"bytes,5,opt,name=Workload,proto3" json:"Workload,omitempty"`
    SyncthingGUIAddr string       `protobuf:"bytes,6,opt,name=SyncthingGUIAddr,proto3" json:"SyncthingGUIAddr,omitempty"`
    RuleList         []*CloneRule `protobuf:"bytes,7,rep,name=RuleList,proto3" json:"RuleList,omitempty"`
}

func (x *Clone) Reset() {
    *x = Clone{}
    if protoimpl.UnsafeEnabled {
        mi := &file_daemon_proto_msgTypes[17]
        ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
        ms.StoreMessageInfo(mi)
    }
}

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

func (*Clone) ProtoMessage() {}

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

func (x *Clone) GetClusterID() string {
    if x != nil {
        return x.ClusterID
    }
    return ""
}

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

func (x *Clone) GetKubeconfig() string {
    if x != nil {
        return x.Kubeconfig
    }
    return ""
}

func (x *Clone) GetNamespace() string {
    if x != nil {
        return x.Namespace
    }
    return ""
}

func (x *Clone) GetWorkload() string {
    if x != nil {
        return x.Workload
    }
    return ""
}

func (x *Clone) GetSyncthingGUIAddr() string {
    if x != nil {
        return x.SyncthingGUIAddr
    }
    return ""
}

func (x *Clone) GetRuleList() []*CloneRule {
    if x != nil {
        return x.RuleList
    }
    return nil
}

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

    Headers       map[string]string `protobuf:"bytes,6,rep,name=Headers,proto3" json:"Headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
    DstClusterID  string            `protobuf:"bytes,9,opt,name=DstClusterID,proto3" json:"DstClusterID,omitempty"`
    DstCluster    string            `protobuf:"bytes,10,opt,name=DstCluster,proto3" json:"DstCluster,omitempty"`
    DstKubeconfig string            `protobuf:"bytes,11,opt,name=DstKubeconfig,proto3" json:"DstKubeconfig,omitempty"`
    DstNamespace  string            `protobuf:"bytes,12,opt,name=DstNamespace,proto3" json:"DstNamespace,omitempty"`
    DstWorkload   string            `protobuf:"bytes,13,opt,name=DstWorkload,proto3" json:"DstWorkload,omitempty"`
}

func (x *CloneRule) Reset() {
    *x = CloneRule{}
    if protoimpl.UnsafeEnabled {
        mi := &file_daemon_proto_msgTypes[18]
        ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
        ms.StoreMessageInfo(mi)
    }
}

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

func (*CloneRule) ProtoMessage() {}

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

func (x *CloneRule) GetHeaders() map[string]string {
    if x != nil {
        return x.Headers
    }
    return nil
}

func (x *CloneRule) GetDstClusterID() string {
    if x != nil {
        return x.DstClusterID
    }
    return ""
}

func (x *CloneRule) GetDstCluster() string {
    if x != nil {
        return x.DstCluster
    }
    return ""
}

func (x *CloneRule) GetDstKubeconfig() string {
    if x != nil {
        return x.DstKubeconfig
    }
    return ""
}

func (x *CloneRule) GetDstNamespace() string {
    if x != nil {
        return x.DstNamespace
    }
    return ""
}

func (x *CloneRule) GetDstWorkload() string {
    if x != nil {
        return x.DstWorkload
    }
    return ""
}

type VersionRequest struct {
    state         protoimpl.MessageState
    sizeCache     protoimpl.SizeCache
    unknownFields protoimpl.UnknownFields
}

func (x *VersionRequest) Reset() {
    *x = VersionRequest{}
    if protoimpl.UnsafeEnabled {
        mi := &file_daemon_proto_msgTypes[19]
        ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
        ms.StoreMessageInfo(mi)
    }
}

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

func (*VersionRequest) ProtoMessage() {}

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

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

    Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
}

func (x *VersionResponse) Reset() {
    *x = VersionResponse{}
    if protoimpl.UnsafeEnabled {
        mi := &file_daemon_proto_msgTypes[20]
        ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
        ms.StoreMessageInfo(mi)
    }
}

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

func (*VersionResponse) ProtoMessage() {}

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

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

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

    KubeconfigBytes string `protobuf:"bytes,1,opt,name=KubeconfigBytes,proto3" json:"KubeconfigBytes,omitempty"`
    Namespace       string `protobuf:"bytes,2,opt,name=Namespace,proto3" json:"Namespace,omitempty"`
    // ssh jump
    SshJump *SshJump `protobuf:"bytes,3,opt,name=SshJump,proto3" json:"SshJump,omitempty"`
}

func (x *ConfigAddRequest) Reset() {
    *x = ConfigAddRequest{}
    if protoimpl.UnsafeEnabled {
        mi := &file_daemon_proto_msgTypes[21]
        ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
        ms.StoreMessageInfo(mi)
    }
}

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

func (*ConfigAddRequest) ProtoMessage() {}

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

func (x *ConfigAddRequest) GetKubeconfigBytes() string {
    if x != nil {
        return x.KubeconfigBytes
    }
    return ""
}

func (x *ConfigAddRequest) GetNamespace() string {
    if x != nil {
        return x.Namespace
    }
    return ""
}

func (x *ConfigAddRequest) GetSshJump() *SshJump {
    if x != nil {
        return x.SshJump
    }
    return nil
}

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

    ClientIP string `protobuf:"bytes,1,opt,name=ClientIP,proto3" json:"ClientIP,omitempty"`
}

func (x *SshStartRequest) Reset() {
    *x = SshStartRequest{}
    if protoimpl.UnsafeEnabled {
        mi := &file_daemon_proto_msgTypes[22]
        ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
        ms.StoreMessageInfo(mi)
    }
}

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

func (*SshStartRequest) ProtoMessage() {}

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

func (x *SshStartRequest) GetClientIP() string {
    if x != nil {
        return x.ClientIP
    }
    return ""
}

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

    ServerIP string `protobuf:"bytes,1,opt,name=ServerIP,proto3" json:"ServerIP,omitempty"`
}

func (x *SshStartResponse) Reset() {
    *x = SshStartResponse{}
    if protoimpl.UnsafeEnabled {
        mi := &file_daemon_proto_msgTypes[23]
        ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
        ms.StoreMessageInfo(mi)
    }
}

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

func (*SshStartResponse) ProtoMessage() {}

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

func (x *SshStartResponse) GetServerIP() string {
    if x != nil {
        return x.ServerIP
    }
    return ""
}

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

    ClientIP string `protobuf:"bytes,1,opt,name=ClientIP,proto3" json:"ClientIP,omitempty"`
}

func (x *SshStopRequest) Reset() {
    *x = SshStopRequest{}
    if protoimpl.UnsafeEnabled {
        mi := &file_daemon_proto_msgTypes[24]
        ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
        ms.StoreMessageInfo(mi)
    }
}

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

func (*SshStopRequest) ProtoMessage() {}

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

func (x *SshStopRequest) GetClientIP() string {
    if x != nil {
        return x.ClientIP
    }
    return ""
}

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

    ServerIP string `protobuf:"bytes,1,opt,name=ServerIP,proto3" json:"ServerIP,omitempty"`
}

func (x *SshStopResponse) Reset() {
    *x = SshStopResponse{}
    if protoimpl.UnsafeEnabled {
        mi := &file_daemon_proto_msgTypes[25]
        ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
        ms.StoreMessageInfo(mi)
    }
}

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

func (*SshStopResponse) ProtoMessage() {}

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

func (x *SshStopResponse) GetServerIP() string {
    if x != nil {
        return x.ServerIP
    }
    return ""
}

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

    Stdin   string   `protobuf:"bytes,1,opt,name=Stdin,proto3" json:"Stdin,omitempty"`
    SshJump *SshJump `protobuf:"bytes,2,opt,name=SshJump,proto3" json:"SshJump,omitempty"`
}

func (x *SshConnectRequest) Reset() {
    *x = SshConnectRequest{}
    if protoimpl.UnsafeEnabled {
        mi := &file_daemon_proto_msgTypes[26]
        ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
        ms.StoreMessageInfo(mi)
    }
}

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

func (*SshConnectRequest) ProtoMessage() {}

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

func (x *SshConnectRequest) GetStdin() string {
    if x != nil {
        return x.Stdin
    }
    return ""
}

func (x *SshConnectRequest) GetSshJump() *SshJump {
    if x != nil {
        return x.SshJump
    }
    return nil
}

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

    Stdout string `protobuf:"bytes,1,opt,name=Stdout,proto3" json:"Stdout,omitempty"`
    Stderr string `protobuf:"bytes,2,opt,name=Stderr,proto3" json:"Stderr,omitempty"`
}

func (x *SshConnectResponse) Reset() {
    *x = SshConnectResponse{}
    if protoimpl.UnsafeEnabled {
        mi := &file_daemon_proto_msgTypes[27]
        ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
        ms.StoreMessageInfo(mi)
    }
}

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

func (*SshConnectResponse) ProtoMessage() {}

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

func (x *SshConnectResponse) GetStdout() string {
    if x != nil {
        return x.Stdout
    }
    return ""
}

func (x *SshConnectResponse) GetStderr() string {
    if x != nil {
        return x.Stderr
    }
    return ""
}

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

    ClusterID string `protobuf:"bytes,1,opt,name=ClusterID,proto3" json:"ClusterID,omitempty"`
}

func (x *ConfigAddResponse) Reset() {
    *x = ConfigAddResponse{}
    if protoimpl.UnsafeEnabled {
        mi := &file_daemon_proto_msgTypes[28]
        ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
        ms.StoreMessageInfo(mi)
    }
}

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

func (*ConfigAddResponse) ProtoMessage() {}

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

func (x *ConfigAddResponse) GetClusterID() string {
    if x != nil {
        return x.ClusterID
    }
    return ""
}

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

    ClusterID string `protobuf:"bytes,1,opt,name=ClusterID,proto3" json:"ClusterID,omitempty"`
}

func (x *ConfigRemoveRequest) Reset() {
    *x = ConfigRemoveRequest{}
    if protoimpl.UnsafeEnabled {
        mi := &file_daemon_proto_msgTypes[29]
        ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
        ms.StoreMessageInfo(mi)
    }
}

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

func (*ConfigRemoveRequest) ProtoMessage() {}

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

func (x *ConfigRemoveRequest) GetClusterID() string {
    if x != nil {
        return x.ClusterID
    }
    return ""
}

type ConfigRemoveResponse struct {
    state         protoimpl.MessageState
    sizeCache     protoimpl.SizeCache
    unknownFields protoimpl.UnknownFields
}

func (x *ConfigRemoveResponse) Reset() {
    *x = ConfigRemoveResponse{}
    if protoimpl.UnsafeEnabled {
        mi := &file_daemon_proto_msgTypes[30]
        ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
        ms.StoreMessageInfo(mi)
    }
}

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

func (*ConfigRemoveResponse) ProtoMessage() {}

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

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

    Follow bool  `protobuf:"varint,1,opt,name=Follow,proto3" json:"Follow,omitempty"`
    Lines  int32 `protobuf:"varint,2,opt,name=Lines,proto3" json:"Lines,omitempty"`
}

func (x *LogRequest) Reset() {
    *x = LogRequest{}
    if protoimpl.UnsafeEnabled {
        mi := &file_daemon_proto_msgTypes[31]
        ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
        ms.StoreMessageInfo(mi)
    }
}

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

func (*LogRequest) ProtoMessage() {}

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

func (x *LogRequest) GetFollow() bool {
    if x != nil {
        return x.Follow
    }
    return false
}

func (x *LogRequest) GetLines() int32 {
    if x != nil {
        return x.Lines
    }
    return 0
}

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

    Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
}

func (x *LogResponse) Reset() {
    *x = LogResponse{}
    if protoimpl.UnsafeEnabled {
        mi := &file_daemon_proto_msgTypes[32]
        ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
        ms.StoreMessageInfo(mi)
    }
}

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

func (*LogResponse) ProtoMessage() {}

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

func (x *LogResponse) GetMessage() string {
    if x != nil {
        return x.Message
    }
    return ""
}

type ListRequest struct {
    state         protoimpl.MessageState
    sizeCache     protoimpl.SizeCache
    unknownFields protoimpl.UnknownFields
}

func (x *ListRequest) Reset() {
    *x = ListRequest{}
    if protoimpl.UnsafeEnabled {
        mi := &file_daemon_proto_msgTypes[33]
        ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
        ms.StoreMessageInfo(mi)
    }
}

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

func (*ListRequest) ProtoMessage() {}

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

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

    Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
}

func (x *ListResponse) Reset() {
    *x = ListResponse{}
    if protoimpl.UnsafeEnabled {
        mi := &file_daemon_proto_msgTypes[34]
        ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
        ms.StoreMessageInfo(mi)
    }
}

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

func (*ListResponse) ProtoMessage() {}

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

func (x *ListResponse) GetMessage() string {
    if x != nil {
        return x.Message
    }
    return ""
}

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

    Namespace string `protobuf:"bytes,2,opt,name=Namespace,proto3" json:"Namespace,omitempty"`
    Resource  string `protobuf:"bytes,4,opt,name=resource,proto3" json:"resource,omitempty"`
}

func (x *GetRequest) Reset() {
    *x = GetRequest{}
    if protoimpl.UnsafeEnabled {
        mi := &file_daemon_proto_msgTypes[35]
        ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
        ms.StoreMessageInfo(mi)
    }
}

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

func (*GetRequest) ProtoMessage() {}

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

func (x *GetRequest) GetNamespace() string {
    if x != nil {
        return x.Namespace
    }
    return ""
}

func (x *GetRequest) GetResource() string {
    if x != nil {
        return x.Resource
    }
    return ""
}

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

    Metadata []string `protobuf:"bytes,1,rep,name=metadata,proto3" json:"metadata,omitempty"`
}

func (x *GetResponse) Reset() {
    *x = GetResponse{}
    if protoimpl.UnsafeEnabled {
        mi := &file_daemon_proto_msgTypes[36]
        ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
        ms.StoreMessageInfo(mi)
    }
}

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

func (*GetResponse) ProtoMessage() {}

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

func (x *GetResponse) GetMetadata() []string {
    if x != nil {
        return x.Metadata
    }
    return nil
}

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

    ClientVersion string `protobuf:"bytes,1,opt,name=ClientVersion,proto3" json:"ClientVersion,omitempty"`
}

func (x *UpgradeRequest) Reset() {
    *x = UpgradeRequest{}
    if protoimpl.UnsafeEnabled {
        mi := &file_daemon_proto_msgTypes[37]
        ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
        ms.StoreMessageInfo(mi)
    }
}

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

func (*UpgradeRequest) ProtoMessage() {}

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

func (x *UpgradeRequest) GetClientVersion() string {
    if x != nil {
        return x.ClientVersion
    }
    return ""
}

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

    NeedUpgrade bool `protobuf:"varint,1,opt,name=NeedUpgrade,proto3" json:"NeedUpgrade,omitempty"`
}

func (x *UpgradeResponse) Reset() {
    *x = UpgradeResponse{}
    if protoimpl.UnsafeEnabled {
        mi := &file_daemon_proto_msgTypes[38]
        ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
        ms.StoreMessageInfo(mi)
    }
}

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

func (*UpgradeResponse) ProtoMessage() {}

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

func (x *UpgradeResponse) GetNeedUpgrade() bool {
    if x != nil {
        return x.NeedUpgrade
    }
    return false
}

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

    KubeconfigBytes string `protobuf:"bytes,1,opt,name=KubeconfigBytes,proto3" json:"KubeconfigBytes,omitempty"`
    Namespace       string `protobuf:"bytes,2,opt,name=Namespace,proto3" json:"Namespace,omitempty"`
    // ssh jump
    SshJump *SshJump `protobuf:"bytes,3,opt,name=SshJump,proto3" json:"SshJump,omitempty"`
}

func (x *ResetRequest) Reset() {
    *x = ResetRequest{}
    if protoimpl.UnsafeEnabled {
        mi := &file_daemon_proto_msgTypes[39]
        ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
        ms.StoreMessageInfo(mi)
    }
}

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

func (*ResetRequest) ProtoMessage() {}

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

func (x *ResetRequest) GetKubeconfigBytes() string {
    if x != nil {
        return x.KubeconfigBytes
    }
    return ""
}

func (x *ResetRequest) GetNamespace() string {
    if x != nil {
        return x.Namespace
    }
    return ""
}

func (x *ResetRequest) GetSshJump() *SshJump {
    if x != nil {
        return x.SshJump
    }
    return nil
}

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

    Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
}

func (x *ResetResponse) Reset() {
    *x = ResetResponse{}
    if protoimpl.UnsafeEnabled {
        mi := &file_daemon_proto_msgTypes[40]
        ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
        ms.StoreMessageInfo(mi)
    }
}

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

func (*ResetResponse) ProtoMessage() {}

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

func (x *ResetResponse) GetMessage() string {
    if x != nil {
        return x.Message
    }
    return ""
}

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

    Addr             string `protobuf:"bytes,1,opt,name=Addr,proto3" json:"Addr,omitempty"`
    User             string `protobuf:"bytes,2,opt,name=User,proto3" json:"User,omitempty"`
    Password         string `protobuf:"bytes,3,opt,name=Password,proto3" json:"Password,omitempty"`
    Keyfile          string `protobuf:"bytes,4,opt,name=Keyfile,proto3" json:"Keyfile,omitempty"`
    Jump             string `protobuf:"bytes,5,opt,name=Jump,proto3" json:"Jump,omitempty"`
    ConfigAlias      string `protobuf:"bytes,6,opt,name=ConfigAlias,proto3" json:"ConfigAlias,omitempty"`
    RemoteKubeconfig string `protobuf:"bytes,7,opt,name=RemoteKubeconfig,proto3" json:"RemoteKubeconfig,omitempty"`
    GSSAPIKeytabConf string `protobuf:"bytes,8,opt,name=GSSAPIKeytabConf,proto3" json:"GSSAPIKeytabConf,omitempty"`
    GSSAPIPassword   string `protobuf:"bytes,9,opt,name=GSSAPIPassword,proto3" json:"GSSAPIPassword,omitempty"`
    GSSAPICacheFile  string `protobuf:"bytes,10,opt,name=GSSAPICacheFile,proto3" json:"GSSAPICacheFile,omitempty"`
}

func (x *SshJump) Reset() {
    *x = SshJump{}
    if protoimpl.UnsafeEnabled {
        mi := &file_daemon_proto_msgTypes[41]
        ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
        ms.StoreMessageInfo(mi)
    }
}

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

func (*SshJump) ProtoMessage() {}

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

func (x *SshJump) GetAddr() string {
    if x != nil {
        return x.Addr
    }
    return ""
}

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

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

func (x *SshJump) GetKeyfile() string {
    if x != nil {
        return x.Keyfile
    }
    return ""
}

func (x *SshJump) GetJump() string {
    if x != nil {
        return x.Jump
    }
    return ""
}

func (x *SshJump) GetConfigAlias() string {
    if x != nil {
        return x.ConfigAlias
    }
    return ""
}

func (x *SshJump) GetRemoteKubeconfig() string {
    if x != nil {
        return x.RemoteKubeconfig
    }
    return ""
}

func (x *SshJump) GetGSSAPIKeytabConf() string {
    if x != nil {
        return x.GSSAPIKeytabConf
    }
    return ""
}

func (x *SshJump) GetGSSAPIPassword() string {
    if x != nil {
        return x.GSSAPIPassword
    }
    return ""
}

func (x *SshJump) GetGSSAPICacheFile() string {
    if x != nil {
        return x.GSSAPICacheFile
    }
    return ""
}

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

    ExtraCIDR   []string `protobuf:"bytes,1,rep,name=ExtraCIDR,proto3" json:"ExtraCIDR,omitempty"`
    ExtraDomain []string `protobuf:"bytes,2,rep,name=ExtraDomain,proto3" json:"ExtraDomain,omitempty"`
    ExtraNodeIP bool     `protobuf:"varint,3,opt,name=ExtraNodeIP,proto3" json:"ExtraNodeIP,omitempty"`
}

func (x *ExtraRoute) Reset() {
    *x = ExtraRoute{}
    if protoimpl.UnsafeEnabled {
        mi := &file_daemon_proto_msgTypes[42]
        ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
        ms.StoreMessageInfo(mi)
    }
}

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

func (*ExtraRoute) ProtoMessage() {}

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

func (x *ExtraRoute) GetExtraCIDR() []string {
    if x != nil {
        return x.ExtraCIDR
    }
    return nil
}

func (x *ExtraRoute) GetExtraDomain() []string {
    if x != nil {
        return x.ExtraDomain
    }
    return nil
}

func (x *ExtraRoute) GetExtraNodeIP() bool {
    if x != nil {
        return x.ExtraNodeIP
    }
    return false
}

type IdentifyRequest struct {
    state         protoimpl.MessageState
    sizeCache     protoimpl.SizeCache
    unknownFields protoimpl.UnknownFields
}

func (x *IdentifyRequest) Reset() {
    *x = IdentifyRequest{}
    if protoimpl.UnsafeEnabled {
        mi := &file_daemon_proto_msgTypes[43]
        ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
        ms.StoreMessageInfo(mi)
    }
}

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

func (*IdentifyRequest) ProtoMessage() {}

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

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

    ID string `protobuf:"bytes,1,opt,name=ID,proto3" json:"ID,omitempty"`
}

func (x *IdentifyResponse) Reset() {
    *x = IdentifyResponse{}
    if protoimpl.UnsafeEnabled {
        mi := &file_daemon_proto_msgTypes[44]
        ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
        ms.StoreMessageInfo(mi)
    }
}

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

func (*IdentifyResponse) ProtoMessage() {}

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

func (x *IdentifyResponse) GetID() string {
    if x != nil {
        return x.ID
    }
    return ""
}

var File_daemon_proto protoreflect.FileDescriptor

var file_daemon_proto_rawDesc = []byte{
    0x0a, 0x0c, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x03,
    0x72, 0x70, 0x63, 0x22, 0x9f, 0x04, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52,
    0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x4b, 0x75, 0x62, 0x65, 0x63, 0x6f,
    0x6e, 0x66, 0x69, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
    0x0f, 0x4b, 0x75, 0x62, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73,
    0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20,
    0x01, 0x28, 0x09, 0x52, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x3a,
    0x0a, 0x07, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
    0x20, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71,
    0x75, 0x65, 0x73, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72,
    0x79, 0x52, 0x07, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x6f,
    0x72, 0x74, 0x4d, 0x61, 0x70, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x50, 0x6f, 0x72,
    0x74, 0x4d, 0x61, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64,
    0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61,
    0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01,
    0x28, 0x09, 0x52, 0x06, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 0x2f, 0x0a, 0x0a, 0x45, 0x78,
    0x74, 0x72, 0x61, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f,
    0x2e, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52,
    0x0a, 0x45, 0x78, 0x74, 0x72, 0x61, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x53,
    0x73, 0x68, 0x4a, 0x75, 0x6d, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x72,
    0x70, 0x63, 0x2e, 0x53, 0x73, 0x68, 0x4a, 0x75, 0x6d, 0x70, 0x52, 0x07, 0x53, 0x73, 0x68, 0x4a,
    0x75, 0x6d, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x49,
    0x6d, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x54, 0x72, 0x61, 0x6e,
    0x73, 0x66, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x6d, 0x61,
    0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12,
    0x1e, 0x0a, 0x0a, 0x46, 0x6f, 0x72, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x0c, 0x20,
    0x01, 0x28, 0x08, 0x52, 0x0a, 0x46, 0x6f, 0x72, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12,
    0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
    0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x32, 0x0a, 0x14, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x4b,
    0x75, 0x62, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x61, 0x74, 0x68, 0x18, 0x0e, 0x20,
    0x01, 0x28, 0x09, 0x52, 0x14, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x4b, 0x75, 0x62, 0x65, 0x63,
    0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x61, 0x74, 0x68, 0x1a, 0x3a, 0x0a, 0x0c, 0x48, 0x65, 0x61,
    0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
    0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
    0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
    0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2b, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74,
    0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73,
    0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61,
    0x67, 0x65, 0x22, 0x8a, 0x02, 0x0a, 0x11, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63,
    0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x13, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01,
    0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x02, 0x49, 0x44, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a,
    0x03, 0x41, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x03, 0x41, 0x6c,
    0x6c, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0f, 0x4b, 0x75, 0x62, 0x65, 0x63, 0x6f, 0x6e, 0x66,
    0x69, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52,
    0x0f, 0x4b, 0x75, 0x62, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73,
    0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65,
    0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70,
    0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x07, 0x53, 0x73, 0x68, 0x4a, 0x75, 0x6d,
    0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x73,
    0x68, 0x4a, 0x75, 0x6d, 0x70, 0x52, 0x07, 0x53, 0x73, 0x68, 0x4a, 0x75, 0x6d, 0x70, 0x12, 0x1e,
    0x0a, 0x0a, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x73, 0x18, 0x06, 0x20, 0x03,
    0x28, 0x09, 0x52, 0x0a, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x73, 0x42, 0x05,
    0x0a, 0x03, 0x5f, 0x49, 0x44, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x41, 0x6c, 0x6c, 0x42, 0x12, 0x0a,
    0x10, 0x5f, 0x4b, 0x75, 0x62, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x79, 0x74, 0x65,
    0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22,
    0x2e, 0x0a, 0x12, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73,
    0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
    0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22,
    0x2c, 0x0a, 0x0c, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
    0x1c, 0x0a, 0x09, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03,
    0x28, 0x09, 0x52, 0x09, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x22, 0x29, 0x0a,
    0x0d, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18,
    0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
    0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x9d, 0x06, 0x0a, 0x0c, 0x43, 0x6c, 0x6f,
    0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x4b, 0x75, 0x62,
    0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01,
    0x28, 0x09, 0x52, 0x0f, 0x4b, 0x75, 0x62, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x79,
    0x74, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65,
    0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63,
    0x65, 0x12, 0x38, 0x0a, 0x07, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03,
    0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x52, 0x65,
    0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74,
    0x72, 0x79, 0x52, 0x07, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x57,
    0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09,
    0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x6e, 0x67,
    0x69, 0x6e, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x6e, 0x67, 0x69, 0x6e,
    0x65, 0x12, 0x2f, 0x0a, 0x0a, 0x45, 0x78, 0x74, 0x72, 0x61, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x18,
    0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x74, 0x72,
    0x61, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x0a, 0x45, 0x78, 0x74, 0x72, 0x61, 0x52, 0x6f, 0x75,
    0x74, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x53, 0x73, 0x68, 0x4a, 0x75, 0x6d, 0x70, 0x18, 0x08, 0x20,
    0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x73, 0x68, 0x4a, 0x75, 0x6d,
    0x70, 0x52, 0x07, 0x53, 0x73, 0x68, 0x4a, 0x75, 0x6d, 0x70, 0x12, 0x2a, 0x0a, 0x10, 0x54, 0x61,
    0x72, 0x67, 0x65, 0x74, 0x4b, 0x75, 0x62, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x09,
    0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4b, 0x75, 0x62, 0x65,
    0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x28, 0x0a, 0x0f, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74,
    0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52,
    0x0f, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65,
    0x12, 0x28, 0x0a, 0x0f, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69,
    0x6e, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x54, 0x61, 0x72, 0x67, 0x65,
    0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x61,
    0x72, 0x67, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52,
    0x0b, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e,
    0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x18, 0x0d,
    0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x67, 0x69,
    0x73, 0x74, 0x72, 0x79, 0x12, 0x36, 0x0a, 0x16, 0x49, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65,
    0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x18, 0x0e,
    0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x49, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61,
    0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x12, 0x24, 0x0a, 0x0d,
    0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x0f, 0x20,
    0x01, 0x28, 0x08, 0x52, 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x49, 0x6d, 0x61,
    0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28,
    0x09, 0x52, 0x05, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65,
    0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x32,
    0x0a, 0x14, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x4b, 0x75, 0x62, 0x65, 0x63, 0x6f, 0x6e, 0x66,
    0x69, 0x67, 0x50, 0x61, 0x74, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x4f, 0x72,
    0x69, 0x67, 0x69, 0x6e, 0x4b, 0x75, 0x62, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x61,
    0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x44, 0x69, 0x72, 0x18, 0x13,
    0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x44, 0x69, 0x72, 0x12, 0x1c,
    0x0a, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x69, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28,
    0x09, 0x52, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x69, 0x72, 0x1a, 0x3a, 0x0a, 0x0c,
    0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
    0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
    0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76,
    0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x29, 0x0a, 0x0d, 0x43, 0x6c, 0x6f, 0x6e,
    0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73,
    0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73,
    0x61, 0x67, 0x65, 0x22, 0x2d, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71,
    0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64,
    0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61,
    0x64, 0x73, 0x22, 0x2a, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70,
    0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18,
    0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x0d,
    0x0a, 0x0b, 0x51, 0x75, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x28, 0x0a,
    0x0c, 0x51, 0x75, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a,
    0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
    0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x2f, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x75,
    0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6c, 0x75, 0x73,
    0x74, 0x65, 0x72, 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x43, 0x6c,
    0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x73, 0x22, 0x31, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x74,
    0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x04, 0x4c, 0x69,
    0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53,
    0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xa4, 0x02, 0x0a, 0x06,
    0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01,
    0x28, 0x05, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
    0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x43, 0x6c, 0x75, 0x73, 0x74,
    0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18,
    0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x12,
    0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4d, 0x6f,
    0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4b, 0x75, 0x62, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
    0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x4b, 0x75, 0x62, 0x65, 0x63, 0x6f, 0x6e, 0x66,
    0x69, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18,
    0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65,
    0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
    0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x65, 0x74, 0x69,
    0x66, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4e, 0x65, 0x74, 0x69, 0x66, 0x12, 0x28,
    0x0a, 0x09, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28,
    0x0b, 0x32, 0x0a, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x09, 0x50,
    0x72, 0x6f, 0x78, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x09, 0x43, 0x6c, 0x6f, 0x6e,
    0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x72, 0x70,
    0x63, 0x2e, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x52, 0x09, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x4c, 0x69,
    0x73, 0x74, 0x22, 0xc5, 0x01, 0x0a, 0x05, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x1c, 0x0a, 0x09,
    0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
    0x09, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6c,
    0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6c, 0x75,
    0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x4b, 0x75, 0x62, 0x65, 0x63, 0x6f, 0x6e, 0x66,
    0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x4b, 0x75, 0x62, 0x65, 0x63, 0x6f,
    0x6e, 0x66, 0x69, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63,
    0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61,
    0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x05,
    0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2a,
    0x0a, 0x08, 0x52, 0x75, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b,
    0x32, 0x0e, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x75, 0x6c, 0x65,
    0x52, 0x08, 0x52, 0x75, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xdf, 0x02, 0x0a, 0x09, 0x50,
    0x72, 0x6f, 0x78, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x35, 0x0a, 0x07, 0x48, 0x65, 0x61, 0x64,
    0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x70, 0x63, 0x2e,
    0x50, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
    0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12,
    0x22, 0x0a, 0x0c, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x75, 0x6e, 0x49, 0x50, 0x76, 0x34, 0x18,
    0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x75, 0x6e, 0x49,
    0x50, 0x76, 0x34, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x75, 0x6e, 0x49,
    0x50, 0x76, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x4c, 0x6f, 0x63, 0x61, 0x6c,
    0x54, 0x75, 0x6e, 0x49, 0x50, 0x76, 0x36, 0x12, 0x24, 0x0a, 0x0d, 0x43, 0x75, 0x72, 0x72, 0x65,
    0x6e, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d,
    0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x35, 0x0a,
    0x07, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x70, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b,
    0x2e, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x2e, 0x50,
    0x6f, 0x72, 0x74, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x50, 0x6f, 0x72,
    0x74, 0x4d, 0x61, 0x70, 0x1a, 0x3a, 0x0a, 0x0c, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45,
    0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
    0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
    0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
    0x1a, 0x3a, 0x0a, 0x0c, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79,
    0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b,
    0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
    0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xf1, 0x01, 0x0a,
    0x05, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
    0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x43, 0x6c, 0x75, 0x73, 0x74,
    0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18,
    0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e,
    0x0a, 0x0a, 0x4b, 0x75, 0x62, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01,
    0x28, 0x09, 0x52, 0x0a, 0x4b, 0x75, 0x62, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1c,
    0x0a, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
    0x09, 0x52, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08,
    0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
    0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x53, 0x79, 0x6e, 0x63,
    0x74, 0x68, 0x69, 0x6e, 0x67, 0x47, 0x55, 0x49, 0x41, 0x64, 0x64, 0x72, 0x18, 0x06, 0x20, 0x01,
    0x28, 0x09, 0x52, 0x10, 0x53, 0x79, 0x6e, 0x63, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x47, 0x55, 0x49,
    0x41, 0x64, 0x64, 0x72, 0x12, 0x2a, 0x0a, 0x08, 0x52, 0x75, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74,
    0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x6f,
    0x6e, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x08, 0x52, 0x75, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74,
    0x22, 0xae, 0x02, 0x0a, 0x09, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x35,
    0x0a, 0x07, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32,
    0x1b, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x2e,
    0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x48, 0x65,
    0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x44, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73,
    0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x44, 0x73, 0x74,
    0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x73, 0x74,
    0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x44,
    0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x73, 0x74,
    0x4b, 0x75, 0x62, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09,
    0x52, 0x0d, 0x44, 0x73, 0x74, 0x4b, 0x75, 0x62, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
    0x22, 0x0a, 0x0c, 0x44, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18,
    0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x44, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70,
    0x61, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f,
    0x61, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x44, 0x73, 0x74, 0x57, 0x6f, 0x72,
    0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x1a, 0x3a, 0x0a, 0x0c, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73,
    0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
    0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
    0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
    0x01, 0x22, 0x10, 0x0a, 0x0e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75,
    0x65, 0x73, 0x74, 0x22, 0x2b, 0x0a, 0x0f, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65,
    0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 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,
    0x22, 0x82, 0x01, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x41, 0x64, 0x64, 0x52, 0x65,
    0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x4b, 0x75, 0x62, 0x65, 0x63, 0x6f, 0x6e,
    0x66, 0x69, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f,
    0x4b, 0x75, 0x62, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12,
    0x1c, 0x0a, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01,
    0x28, 0x09, 0x52, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x26, 0x0a,
    0x07, 0x53, 0x73, 0x68, 0x4a, 0x75, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c,
    0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x73, 0x68, 0x4a, 0x75, 0x6d, 0x70, 0x52, 0x07, 0x53, 0x73,
    0x68, 0x4a, 0x75, 0x6d, 0x70, 0x22, 0x2d, 0x0a, 0x0f, 0x53, 0x73, 0x68, 0x53, 0x74, 0x61, 0x72,
    0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6c, 0x69, 0x65,
    0x6e, 0x74, 0x49, 0x50, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x43, 0x6c, 0x69, 0x65,
    0x6e, 0x74, 0x49, 0x50, 0x22, 0x2e, 0x0a, 0x10, 0x53, 0x73, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74,
    0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x65, 0x72, 0x76,
    0x65, 0x72, 0x49, 0x50, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x65, 0x72, 0x76,
    0x65, 0x72, 0x49, 0x50, 0x22, 0x2c, 0x0a, 0x0e, 0x53, 0x73, 0x68, 0x53, 0x74, 0x6f, 0x70, 0x52,
    0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74,
    0x49, 0x50, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74,
    0x49, 0x50, 0x22, 0x2d, 0x0a, 0x0f, 0x53, 0x73, 0x68, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x73,
    0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49,
    0x50, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49,
    0x50, 0x22, 0x51, 0x0a, 0x11, 0x53, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52,
    0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x64, 0x69, 0x6e, 0x18,
    0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x53, 0x74, 0x64, 0x69, 0x6e, 0x12, 0x26, 0x0a, 0x07,
    0x53, 0x73, 0x68, 0x4a, 0x75, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e,
    0x72, 0x70, 0x63, 0x2e, 0x53, 0x73, 0x68, 0x4a, 0x75, 0x6d, 0x70, 0x52, 0x07, 0x53, 0x73, 0x68,
    0x4a, 0x75, 0x6d, 0x70, 0x22, 0x44, 0x0a, 0x12, 0x53, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x6e, 0x65,
    0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74,
    0x64, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x74, 0x64, 0x6f,
    0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x64, 0x65, 0x72, 0x72, 0x18, 0x02, 0x20, 0x01,
    0x28, 0x09, 0x52, 0x06, 0x53, 0x74, 0x64, 0x65, 0x72, 0x72, 0x22, 0x31, 0x0a, 0x11, 0x43, 0x6f,
    0x6e, 0x66, 0x69, 0x67, 0x41, 0x64, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
    0x1c, 0x0a, 0x09, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01,
    0x28, 0x09, 0x52, 0x09, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x22, 0x33, 0x0a,
    0x13, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71,
    0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49,
    0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
    0x49, 0x44, 0x22, 0x16, 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x6d, 0x6f,
    0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x0a, 0x0a, 0x4c, 0x6f,
    0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x46, 0x6f, 0x6c, 0x6c,
    0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77,
    0x12, 0x14, 0x0a, 0x05, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
    0x05, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x22, 0x27, 0x0a, 0x0b, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x73,
    0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
    0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22,
    0x0d, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x28,
    0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18,
    0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
    0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x46, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x52,
    0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70,
    0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73,
    0x70, 0x61, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
    0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
    0x22, 0x29, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
    0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28,
    0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x36, 0x0a, 0x0e, 0x55,
    0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a,
    0x0d, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01,
    0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73,
    0x69, 0x6f, 0x6e, 0x22, 0x33, 0x0a, 0x0f, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65,
    0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4e, 0x65, 0x65, 0x64, 0x55, 0x70,
    0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x4e, 0x65, 0x65,
    0x64, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x22, 0x7e, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x65,
    0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x4b, 0x75, 0x62, 0x65,
    0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
    0x09, 0x52, 0x0f, 0x4b, 0x75, 0x62, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x79, 0x74,
    0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18,
    0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65,
    0x12, 0x26, 0x0a, 0x07, 0x53, 0x73, 0x68, 0x4a, 0x75, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28,
    0x0b, 0x32, 0x0c, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x73, 0x68, 0x4a, 0x75, 0x6d, 0x70, 0x52,
    0x07, 0x53, 0x73, 0x68, 0x4a, 0x75, 0x6d, 0x70, 0x22, 0x29, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x65,
    0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73,
    0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73,
    0x61, 0x67, 0x65, 0x22, 0xc7, 0x02, 0x0a, 0x07, 0x53, 0x73, 0x68, 0x4a, 0x75, 0x6d, 0x70, 0x12,
    0x12, 0x0a, 0x04, 0x41, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x41,
    0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28,
    0x09, 0x52, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77,
    0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77,
    0x6f, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x04,
    0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4b, 0x65, 0x79, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a,
    0x04, 0x4a, 0x75, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4a, 0x75, 0x6d,
    0x70, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x41, 0x6c, 0x69, 0x61, 0x73,
    0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x41, 0x6c,
    0x69, 0x61, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4b, 0x75, 0x62,
    0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x52,
    0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4b, 0x75, 0x62, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
    0x2a, 0x0a, 0x10, 0x47, 0x53, 0x53, 0x41, 0x50, 0x49, 0x4b, 0x65, 0x79, 0x74, 0x61, 0x62, 0x43,
    0x6f, 0x6e, 0x66, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x47, 0x53, 0x53, 0x41, 0x50,
    0x49, 0x4b, 0x65, 0x79, 0x74, 0x61, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x12, 0x26, 0x0a, 0x0e, 0x47,
    0x53, 0x53, 0x41, 0x50, 0x49, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x09, 0x20,
    0x01, 0x28, 0x09, 0x52, 0x0e, 0x47, 0x53, 0x53, 0x41, 0x50, 0x49, 0x50, 0x61, 0x73, 0x73, 0x77,
    0x6f, 0x72, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x47, 0x53, 0x53, 0x41, 0x50, 0x49, 0x43, 0x61, 0x63,
    0x68, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x47, 0x53,
    0x53, 0x41, 0x50, 0x49, 0x43, 0x61, 0x63, 0x68, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x22, 0x6e, 0x0a,
    0x0a, 0x45, 0x78, 0x74, 0x72, 0x61, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x45,
    0x78, 0x74, 0x72, 0x61, 0x43, 0x49, 0x44, 0x52, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09,
    0x45, 0x78, 0x74, 0x72, 0x61, 0x43, 0x49, 0x44, 0x52, 0x12, 0x20, 0x0a, 0x0b, 0x45, 0x78, 0x74,
    0x72, 0x61, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b,
    0x45, 0x78, 0x74, 0x72, 0x61, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x45,
    0x78, 0x74, 0x72, 0x61, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08,
    0x52, 0x0b, 0x45, 0x78, 0x74, 0x72, 0x61, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x22, 0x11, 0x0a,
    0x0f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
    0x22, 0x22, 0x0a, 0x10, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70,
    0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
    0x52, 0x02, 0x49, 0x44, 0x32, 0xa6, 0x09, 0x0a, 0x06, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x12,
    0x38, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x13, 0x2e, 0x72, 0x70, 0x63,
    0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
    0x14, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73,
    0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x3c, 0x0a, 0x0b, 0x43, 0x6f, 0x6e,
    0x6e, 0x65, 0x63, 0x74, 0x46, 0x6f, 0x72, 0x6b, 0x12, 0x13, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43,
    0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e,
    0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
    0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x41, 0x0a, 0x0a, 0x44, 0x69, 0x73, 0x63, 0x6f,
    0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x16, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x69, 0x73, 0x63,
    0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e,
    0x72, 0x70, 0x63, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65,
    0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x36, 0x0a, 0x05, 0x50, 0x72,
    0x6f, 0x78, 0x79, 0x12, 0x13, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63,
    0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43,
    0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
    0x30, 0x01, 0x12, 0x32, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x11, 0x2e, 0x72, 0x70,
    0x63, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12,
    0x2e, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
    0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x32, 0x0a, 0x05, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x12,
    0x11, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
    0x73, 0x74, 0x1a, 0x12, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x52, 0x65,
    0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x35, 0x0a, 0x06, 0x52, 0x65,
    0x6d, 0x6f, 0x76, 0x65, 0x12, 0x12, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76,
    0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x52,
    0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30,
    0x01, 0x12, 0x3c, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x41, 0x64, 0x64, 0x12, 0x15,
    0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x41, 0x64, 0x64, 0x52, 0x65,
    0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66,
    0x69, 0x67, 0x41, 0x64, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
    0x45, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12,
    0x18, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x6d, 0x6f,
    0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x72, 0x70, 0x63, 0x2e,
    0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70,
    0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x08, 0x53, 0x73, 0x68, 0x53, 0x74, 0x61,
    0x72, 0x74, 0x12, 0x14, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x73, 0x68, 0x53, 0x74, 0x61, 0x72,
    0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53,
    0x73, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
    0x00, 0x12, 0x36, 0x0a, 0x07, 0x53, 0x73, 0x68, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x13, 0x2e, 0x72,
    0x70, 0x63, 0x2e, 0x53, 0x73, 0x68, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
    0x74, 0x1a, 0x14, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x73, 0x68, 0x53, 0x74, 0x6f, 0x70, 0x52,
    0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x53, 0x73, 0x68,
    0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x16, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x73,
    0x68, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
    0x17, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74,
    0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x12, 0x2d,
    0x0a, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x0f, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67,
    0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x10, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f,
    0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x2d, 0x0a,
    0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x10, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74,
    0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69,
    0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x2a, 0x0a, 0x03,
    0x47, 0x65, 0x74, 0x12, 0x0f, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71,
    0x75, 0x65, 0x73, 0x74, 0x1a, 0x10, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65,
    0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x07, 0x55, 0x70, 0x67, 0x72,
    0x61, 0x64, 0x65, 0x12, 0x13, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64,
    0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x55,
    0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
    0x12, 0x33, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x2e, 0x72, 0x70, 0x63,
    0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13,
    0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
    0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
    0x12, 0x13, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65,
    0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x65, 0x72, 0x73,
    0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x32, 0x0a,
    0x05, 0x52, 0x65, 0x73, 0x65, 0x74, 0x12, 0x11, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x73,
    0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x72, 0x70, 0x63, 0x2e,
    0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30,
    0x01, 0x12, 0x2f, 0x0a, 0x04, 0x51, 0x75, 0x69, 0x74, 0x12, 0x10, 0x2e, 0x72, 0x70, 0x63, 0x2e,
    0x51, 0x75, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x72, 0x70,
    0x63, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
    0x30, 0x01, 0x12, 0x39, 0x0a, 0x08, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x12, 0x14,
    0x2e, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71,
    0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74,
    0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x07, 0x5a,
    0x05, 0x2e, 0x3b, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
    file_daemon_proto_rawDescOnce sync.Once
    file_daemon_proto_rawDescData = file_daemon_proto_rawDesc
)

func file_daemon_proto_rawDescGZIP() []byte {
    file_daemon_proto_rawDescOnce.Do(func() {
        file_daemon_proto_rawDescData = protoimpl.X.CompressGZIP(file_daemon_proto_rawDescData)
    })
    return file_daemon_proto_rawDescData
}

var file_daemon_proto_msgTypes = make([]protoimpl.MessageInfo, 50)
var file_daemon_proto_goTypes = []interface{}{
    (*ConnectRequest)(nil),       // 0: rpc.ConnectRequest
    (*ConnectResponse)(nil),      // 1: rpc.ConnectResponse
    (*DisconnectRequest)(nil),    // 2: rpc.DisconnectRequest
    (*DisconnectResponse)(nil),   // 3: rpc.DisconnectResponse
    (*LeaveRequest)(nil),         // 4: rpc.LeaveRequest
    (*LeaveResponse)(nil),        // 5: rpc.LeaveResponse
    (*CloneRequest)(nil),         // 6: rpc.CloneRequest
    (*CloneResponse)(nil),        // 7: rpc.CloneResponse
    (*RemoveRequest)(nil),        // 8: rpc.RemoveRequest
    (*RemoveResponse)(nil),       // 9: rpc.RemoveResponse
    (*QuitRequest)(nil),          // 10: rpc.QuitRequest
    (*QuitResponse)(nil),         // 11: rpc.QuitResponse
    (*StatusRequest)(nil),        // 12: rpc.StatusRequest
    (*StatusResponse)(nil),       // 13: rpc.StatusResponse
    (*Status)(nil),               // 14: rpc.Status
    (*Proxy)(nil),                // 15: rpc.Proxy
    (*ProxyRule)(nil),            // 16: rpc.ProxyRule
    (*Clone)(nil),                // 17: rpc.Clone
    (*CloneRule)(nil),            // 18: rpc.CloneRule
    (*VersionRequest)(nil),       // 19: rpc.VersionRequest
    (*VersionResponse)(nil),      // 20: rpc.VersionResponse
    (*ConfigAddRequest)(nil),     // 21: rpc.ConfigAddRequest
    (*SshStartRequest)(nil),      // 22: rpc.SshStartRequest
    (*SshStartResponse)(nil),     // 23: rpc.SshStartResponse
    (*SshStopRequest)(nil),       // 24: rpc.SshStopRequest
    (*SshStopResponse)(nil),      // 25: rpc.SshStopResponse
    (*SshConnectRequest)(nil),    // 26: rpc.SshConnectRequest
    (*SshConnectResponse)(nil),   // 27: rpc.SshConnectResponse
    (*ConfigAddResponse)(nil),    // 28: rpc.ConfigAddResponse
    (*ConfigRemoveRequest)(nil),  // 29: rpc.ConfigRemoveRequest
    (*ConfigRemoveResponse)(nil), // 30: rpc.ConfigRemoveResponse
    (*LogRequest)(nil),           // 31: rpc.LogRequest
    (*LogResponse)(nil),          // 32: rpc.LogResponse
    (*ListRequest)(nil),          // 33: rpc.ListRequest
    (*ListResponse)(nil),         // 34: rpc.ListResponse
    (*GetRequest)(nil),           // 35: rpc.GetRequest
    (*GetResponse)(nil),          // 36: rpc.GetResponse
    (*UpgradeRequest)(nil),       // 37: rpc.UpgradeRequest
    (*UpgradeResponse)(nil),      // 38: rpc.UpgradeResponse
    (*ResetRequest)(nil),         // 39: rpc.ResetRequest
    (*ResetResponse)(nil),        // 40: rpc.ResetResponse
    (*SshJump)(nil),              // 41: rpc.SshJump
    (*ExtraRoute)(nil),           // 42: rpc.ExtraRoute
    (*IdentifyRequest)(nil),      // 43: rpc.IdentifyRequest
    (*IdentifyResponse)(nil),     // 44: rpc.IdentifyResponse
    nil,                          // 45: rpc.ConnectRequest.HeadersEntry
    nil,                          // 46: rpc.CloneRequest.HeadersEntry
    nil,                          // 47: rpc.ProxyRule.HeadersEntry
    nil,                          // 48: rpc.ProxyRule.PortMapEntry
    nil,                          // 49: rpc.CloneRule.HeadersEntry
}
var file_daemon_proto_depIdxs = []int32{
    45, // 0: rpc.ConnectRequest.Headers:type_name -> rpc.ConnectRequest.HeadersEntry
    42, // 1: rpc.ConnectRequest.ExtraRoute:type_name -> rpc.ExtraRoute
    41, // 2: rpc.ConnectRequest.SshJump:type_name -> rpc.SshJump
    41, // 3: rpc.DisconnectRequest.SshJump:type_name -> rpc.SshJump
    46, // 4: rpc.CloneRequest.Headers:type_name -> rpc.CloneRequest.HeadersEntry
    42, // 5: rpc.CloneRequest.ExtraRoute:type_name -> rpc.ExtraRoute
    41, // 6: rpc.CloneRequest.SshJump:type_name -> rpc.SshJump
    14, // 7: rpc.StatusResponse.List:type_name -> rpc.Status
    15, // 8: rpc.Status.ProxyList:type_name -> rpc.Proxy
    17, // 9: rpc.Status.CloneList:type_name -> rpc.Clone
    16, // 10: rpc.Proxy.RuleList:type_name -> rpc.ProxyRule
    47, // 11: rpc.ProxyRule.Headers:type_name -> rpc.ProxyRule.HeadersEntry
    48, // 12: rpc.ProxyRule.PortMap:type_name -> rpc.ProxyRule.PortMapEntry
    18, // 13: rpc.Clone.RuleList:type_name -> rpc.CloneRule
    49, // 14: rpc.CloneRule.Headers:type_name -> rpc.CloneRule.HeadersEntry
    41, // 15: rpc.ConfigAddRequest.SshJump:type_name -> rpc.SshJump
    41, // 16: rpc.SshConnectRequest.SshJump:type_name -> rpc.SshJump
    41, // 17: rpc.ResetRequest.SshJump:type_name -> rpc.SshJump
    0,  // 18: rpc.Daemon.Connect:input_type -> rpc.ConnectRequest
    0,  // 19: rpc.Daemon.ConnectFork:input_type -> rpc.ConnectRequest
    2,  // 20: rpc.Daemon.Disconnect:input_type -> rpc.DisconnectRequest
    0,  // 21: rpc.Daemon.Proxy:input_type -> rpc.ConnectRequest
    4,  // 22: rpc.Daemon.Leave:input_type -> rpc.LeaveRequest
    6,  // 23: rpc.Daemon.Clone:input_type -> rpc.CloneRequest
    8,  // 24: rpc.Daemon.Remove:input_type -> rpc.RemoveRequest
    21, // 25: rpc.Daemon.ConfigAdd:input_type -> rpc.ConfigAddRequest
    29, // 26: rpc.Daemon.ConfigRemove:input_type -> rpc.ConfigRemoveRequest
    22, // 27: rpc.Daemon.SshStart:input_type -> rpc.SshStartRequest
    24, // 28: rpc.Daemon.SshStop:input_type -> rpc.SshStopRequest
    26, // 29: rpc.Daemon.SshConnect:input_type -> rpc.SshConnectRequest
    31, // 30: rpc.Daemon.Logs:input_type -> rpc.LogRequest
    33, // 31: rpc.Daemon.List:input_type -> rpc.ListRequest
    35, // 32: rpc.Daemon.Get:input_type -> rpc.GetRequest
    37, // 33: rpc.Daemon.Upgrade:input_type -> rpc.UpgradeRequest
    12, // 34: rpc.Daemon.Status:input_type -> rpc.StatusRequest
    19, // 35: rpc.Daemon.Version:input_type -> rpc.VersionRequest
    39, // 36: rpc.Daemon.Reset:input_type -> rpc.ResetRequest
    10, // 37: rpc.Daemon.Quit:input_type -> rpc.QuitRequest
    43, // 38: rpc.Daemon.Identify:input_type -> rpc.IdentifyRequest
    1,  // 39: rpc.Daemon.Connect:output_type -> rpc.ConnectResponse
    1,  // 40: rpc.Daemon.ConnectFork:output_type -> rpc.ConnectResponse
    3,  // 41: rpc.Daemon.Disconnect:output_type -> rpc.DisconnectResponse
    1,  // 42: rpc.Daemon.Proxy:output_type -> rpc.ConnectResponse
    5,  // 43: rpc.Daemon.Leave:output_type -> rpc.LeaveResponse
    7,  // 44: rpc.Daemon.Clone:output_type -> rpc.CloneResponse
    9,  // 45: rpc.Daemon.Remove:output_type -> rpc.RemoveResponse
    28, // 46: rpc.Daemon.ConfigAdd:output_type -> rpc.ConfigAddResponse
    30, // 47: rpc.Daemon.ConfigRemove:output_type -> rpc.ConfigRemoveResponse
    23, // 48: rpc.Daemon.SshStart:output_type -> rpc.SshStartResponse
    25, // 49: rpc.Daemon.SshStop:output_type -> rpc.SshStopResponse
    27, // 50: rpc.Daemon.SshConnect:output_type -> rpc.SshConnectResponse
    32, // 51: rpc.Daemon.Logs:output_type -> rpc.LogResponse
    34, // 52: rpc.Daemon.List:output_type -> rpc.ListResponse
    36, // 53: rpc.Daemon.Get:output_type -> rpc.GetResponse
    38, // 54: rpc.Daemon.Upgrade:output_type -> rpc.UpgradeResponse
    13, // 55: rpc.Daemon.Status:output_type -> rpc.StatusResponse
    20, // 56: rpc.Daemon.Version:output_type -> rpc.VersionResponse
    40, // 57: rpc.Daemon.Reset:output_type -> rpc.ResetResponse
    11, // 58: rpc.Daemon.Quit:output_type -> rpc.QuitResponse
    44, // 59: rpc.Daemon.Identify:output_type -> rpc.IdentifyResponse
    39, // [39:60] is the sub-list for method output_type
    18, // [18:39] 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_daemon_proto_init() }
func file_daemon_proto_init() {
    if File_daemon_proto != nil {
        return
    }
    if !protoimpl.UnsafeEnabled {
        file_daemon_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*ConnectRequest); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*ConnectResponse); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*DisconnectRequest); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*DisconnectResponse); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*LeaveRequest); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*LeaveResponse); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*CloneRequest); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*CloneResponse); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*RemoveRequest); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*RemoveResponse); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*QuitRequest); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*QuitResponse); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*StatusRequest); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*StatusResponse); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*Status); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*Proxy); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*ProxyRule); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*Clone); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*CloneRule); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*VersionRequest); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*VersionResponse); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*ConfigAddRequest); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*SshStartRequest); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*SshStartResponse); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*SshStopRequest); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*SshStopResponse); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*SshConnectRequest); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*SshConnectResponse); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*ConfigAddResponse); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*ConfigRemoveRequest); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*ConfigRemoveResponse); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*LogRequest); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*LogResponse); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*ListRequest); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*ListResponse); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*GetRequest); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*GetResponse); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*UpgradeRequest); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*UpgradeResponse); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*ResetRequest); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*ResetResponse); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*SshJump); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*ExtraRoute); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*IdentifyRequest); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
        file_daemon_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
            switch v := v.(*IdentifyResponse); i {
            case 0:
                return &v.state
            case 1:
                return &v.sizeCache
            case 2:
                return &v.unknownFields
            default:
                return nil
            }
        }
    }
    file_daemon_proto_msgTypes[2].OneofWrappers = []interface{}{}
    type x struct{}
    out := protoimpl.TypeBuilder{
        File: protoimpl.DescBuilder{
            GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
            RawDescriptor: file_daemon_proto_rawDesc,
            NumEnums:      0,
            NumMessages:   50,
            NumExtensions: 0,
            NumServices:   1,
        },
        GoTypes:           file_daemon_proto_goTypes,
        DependencyIndexes: file_daemon_proto_depIdxs,
        MessageInfos:      file_daemon_proto_msgTypes,
    }.Build()
    File_daemon_proto = out.File
    file_daemon_proto_rawDesc = nil
    file_daemon_proto_goTypes = nil
    file_daemon_proto_depIdxs = nil
}