// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.27.1
// 	protoc        (unknown)
// source: proto/types/infrapb/v3/cluster.proto

package infrav3

import (
	v3 "github.com/RafayLabs/rcloud-base/proto/types/commonpb/v3"
	_ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	v1 "k8s.io/api/core/v1"
	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 ClusterNodeState int32

const (
	ClusterNodeState_ClusterNodeCreated  ClusterNodeState = 0
	ClusterNodeState_ClusterNodeNotReady ClusterNodeState = 1
	ClusterNodeState_ClusterNodeReady    ClusterNodeState = 2
)

// Enum value maps for ClusterNodeState.
var (
	ClusterNodeState_name = map[int32]string{
		0: "ClusterNodeCreated",
		1: "ClusterNodeNotReady",
		2: "ClusterNodeReady",
	}
	ClusterNodeState_value = map[string]int32{
		"ClusterNodeCreated":  0,
		"ClusterNodeNotReady": 1,
		"ClusterNodeReady":    2,
	}
)

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

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

func (ClusterNodeState) Descriptor() protoreflect.EnumDescriptor {
	return file_proto_types_infrapb_v3_cluster_proto_enumTypes[0].Descriptor()
}

func (ClusterNodeState) Type() protoreflect.EnumType {
	return &file_proto_types_infrapb_v3_cluster_proto_enumTypes[0]
}

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

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

type ClusterConditionType int32

const (
	ClusterConditionType_ClusterBlueprintSync     ClusterConditionType = 0
	ClusterConditionType_ClusterApprove           ClusterConditionType = 1
	ClusterConditionType_ClusterCheckIn           ClusterConditionType = 2
	ClusterConditionType_ClusterNodeSync          ClusterConditionType = 3
	ClusterConditionType_ClusterRegister          ClusterConditionType = 4
	ClusterConditionType_ClusterNamespaceSync     ClusterConditionType = 5
	ClusterConditionType_ClusterReady             ClusterConditionType = 6
	ClusterConditionType_ClusterAuxiliaryTaskSync ClusterConditionType = 7
	ClusterConditionType_ClusterBootstrapAgent    ClusterConditionType = 8
	ClusterConditionType_ClusterDelete            ClusterConditionType = 9
)

// Enum value maps for ClusterConditionType.
var (
	ClusterConditionType_name = map[int32]string{
		0: "ClusterBlueprintSync",
		1: "ClusterApprove",
		2: "ClusterCheckIn",
		3: "ClusterNodeSync",
		4: "ClusterRegister",
		5: "ClusterNamespaceSync",
		6: "ClusterReady",
		7: "ClusterAuxiliaryTaskSync",
		8: "ClusterBootstrapAgent",
		9: "ClusterDelete",
	}
	ClusterConditionType_value = map[string]int32{
		"ClusterBlueprintSync":     0,
		"ClusterApprove":           1,
		"ClusterCheckIn":           2,
		"ClusterNodeSync":          3,
		"ClusterRegister":          4,
		"ClusterNamespaceSync":     5,
		"ClusterReady":             6,
		"ClusterAuxiliaryTaskSync": 7,
		"ClusterBootstrapAgent":    8,
		"ClusterDelete":            9,
	}
)

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

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

func (ClusterConditionType) Descriptor() protoreflect.EnumDescriptor {
	return file_proto_types_infrapb_v3_cluster_proto_enumTypes[1].Descriptor()
}

func (ClusterConditionType) Type() protoreflect.EnumType {
	return &file_proto_types_infrapb_v3_cluster_proto_enumTypes[1]
}

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

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

type ClusterShareMode int32

const (
	ClusterShareMode_ClusterShareModeNotSet ClusterShareMode = 0
	ClusterShareMode_ALL                    ClusterShareMode = 1
	ClusterShareMode_CUSTOM                 ClusterShareMode = 2
)

// Enum value maps for ClusterShareMode.
var (
	ClusterShareMode_name = map[int32]string{
		0: "ClusterShareModeNotSet",
		1: "ALL",
		2: "CUSTOM",
	}
	ClusterShareMode_value = map[string]int32{
		"ClusterShareModeNotSet": 0,
		"ALL":                    1,
		"CUSTOM":                 2,
	}
)

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

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

func (ClusterShareMode) Descriptor() protoreflect.EnumDescriptor {
	return file_proto_types_infrapb_v3_cluster_proto_enumTypes[2].Descriptor()
}

func (ClusterShareMode) Type() protoreflect.EnumType {
	return &file_proto_types_infrapb_v3_cluster_proto_enumTypes[2]
}

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

// Deprecated: Use ClusterShareMode.Descriptor instead.
func (ClusterShareMode) EnumDescriptor() ([]byte, []int) {
	return file_proto_types_infrapb_v3_cluster_proto_rawDescGZIP(), []int{2}
}

type Health int32

const (
	Health_EDGE_IGNORE       Health = 0
	Health_EDGE_HEALTHY      Health = 1
	Health_EDGE_UNHEALTHY    Health = 2
	Health_EDGE_DISCONNECTED Health = 3
)

// Enum value maps for Health.
var (
	Health_name = map[int32]string{
		0: "EDGE_IGNORE",
		1: "EDGE_HEALTHY",
		2: "EDGE_UNHEALTHY",
		3: "EDGE_DISCONNECTED",
	}
	Health_value = map[string]int32{
		"EDGE_IGNORE":       0,
		"EDGE_HEALTHY":      1,
		"EDGE_UNHEALTHY":    2,
		"EDGE_DISCONNECTED": 3,
	}
)

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

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

func (Health) Descriptor() protoreflect.EnumDescriptor {
	return file_proto_types_infrapb_v3_cluster_proto_enumTypes[3].Descriptor()
}

func (Health) Type() protoreflect.EnumType {
	return &file_proto_types_infrapb_v3_cluster_proto_enumTypes[3]
}

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

// Deprecated: Use Health.Descriptor instead.
func (Health) EnumDescriptor() ([]byte, []int) {
	return file_proto_types_infrapb_v3_cluster_proto_rawDescGZIP(), []int{3}
}

type ClusterTokenType int32

const (
	ClusterTokenType_ClusterBootstrapToken ClusterTokenType = 0
)

// Enum value maps for ClusterTokenType.
var (
	ClusterTokenType_name = map[int32]string{
		0: "ClusterBootstrapToken",
	}
	ClusterTokenType_value = map[string]int32{
		"ClusterBootstrapToken": 0,
	}
)

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

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

func (ClusterTokenType) Descriptor() protoreflect.EnumDescriptor {
	return file_proto_types_infrapb_v3_cluster_proto_enumTypes[4].Descriptor()
}

func (ClusterTokenType) Type() protoreflect.EnumType {
	return &file_proto_types_infrapb_v3_cluster_proto_enumTypes[4]
}

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

// Deprecated: Use ClusterTokenType.Descriptor instead.
func (ClusterTokenType) EnumDescriptor() ([]byte, []int) {
	return file_proto_types_infrapb_v3_cluster_proto_rawDescGZIP(), []int{4}
}

type ClusterTokenState int32

const (
	ClusterTokenState_TokenNotUsed ClusterTokenState = 0
	ClusterTokenState_TokenUsed    ClusterTokenState = 1
)

// Enum value maps for ClusterTokenState.
var (
	ClusterTokenState_name = map[int32]string{
		0: "TokenNotUsed",
		1: "TokenUsed",
	}
	ClusterTokenState_value = map[string]int32{
		"TokenNotUsed": 0,
		"TokenUsed":    1,
	}
)

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

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

func (ClusterTokenState) Descriptor() protoreflect.EnumDescriptor {
	return file_proto_types_infrapb_v3_cluster_proto_enumTypes[5].Descriptor()
}

func (ClusterTokenState) Type() protoreflect.EnumType {
	return &file_proto_types_infrapb_v3_cluster_proto_enumTypes[5]
}

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

// Deprecated: Use ClusterTokenState.Descriptor instead.
func (ClusterTokenState) EnumDescriptor() ([]byte, []int) {
	return file_proto_types_infrapb_v3_cluster_proto_rawDescGZIP(), []int{5}
}

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

	ApiVersion string       `protobuf:"bytes,1,opt,name=apiVersion,proto3" json:"apiVersion,omitempty"`
	Kind       string       `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"`
	Metadata   *v3.Metadata `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
	Spec       *ClusterSpec `protobuf:"bytes,4,opt,name=spec,proto3" json:"spec,omitempty"`
	Status     *v3.Status   `protobuf:"bytes,5,opt,name=status,proto3" json:"status,omitempty"`
}

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

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

func (*Cluster) ProtoMessage() {}

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

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

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

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

func (x *Cluster) GetMetadata() *v3.Metadata {
	if x != nil {
		return x.Metadata
	}
	return nil
}

func (x *Cluster) GetSpec() *ClusterSpec {
	if x != nil {
		return x.Spec
	}
	return nil
}

func (x *Cluster) GetStatus() *v3.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

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

	ApiVersion string           `protobuf:"bytes,1,opt,name=apiVersion,proto3" json:"apiVersion,omitempty"`
	Kind       string           `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"`
	Metadata   *v3.ListMetadata `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
	Items      []*Cluster       `protobuf:"bytes,4,rep,name=items,proto3" json:"items,omitempty"`
}

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

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

func (*ClusterList) ProtoMessage() {}

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

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

func (x *ClusterList) GetApiVersion() string {
	if x != nil {
		return x.ApiVersion
	}
	return ""
}

func (x *ClusterList) GetKind() string {
	if x != nil {
		return x.Kind
	}
	return ""
}

func (x *ClusterList) GetMetadata() *v3.ListMetadata {
	if x != nil {
		return x.Metadata
	}
	return nil
}

func (x *ClusterList) GetItems() []*Cluster {
	if x != nil {
		return x.Items
	}
	return nil
}

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

	ClusterType      string           `protobuf:"bytes,1,opt,name=clusterType,proto3" json:"clusterType,omitempty"`
	Metro            *Metro           `protobuf:"bytes,2,opt,name=metro,proto3" json:"metro,omitempty"`
	OverrideSelector string           `protobuf:"bytes,3,opt,name=overrideSelector,proto3" json:"overrideSelector,omitempty"`
	Params           *ProvisionParams `protobuf:"bytes,4,opt,name=params,proto3" json:"params,omitempty"`
	ShareMode        ClusterShareMode `protobuf:"varint,5,opt,name=shareMode,proto3,enum=rafay.dev.types.infra.v3.ClusterShareMode" json:"shareMode,omitempty"`
	ProxyConfig      *ProxyConfig     `protobuf:"bytes,6,opt,name=proxyConfig,proto3" json:"proxyConfig,omitempty"`
	ClusterData      *ClusterData     `protobuf:"bytes,7,opt,name=clusterData,proto3" json:"clusterData,omitempty"`
}

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

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

func (*ClusterSpec) ProtoMessage() {}

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

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

func (x *ClusterSpec) GetClusterType() string {
	if x != nil {
		return x.ClusterType
	}
	return ""
}

func (x *ClusterSpec) GetMetro() *Metro {
	if x != nil {
		return x.Metro
	}
	return nil
}

func (x *ClusterSpec) GetOverrideSelector() string {
	if x != nil {
		return x.OverrideSelector
	}
	return ""
}

func (x *ClusterSpec) GetParams() *ProvisionParams {
	if x != nil {
		return x.Params
	}
	return nil
}

func (x *ClusterSpec) GetShareMode() ClusterShareMode {
	if x != nil {
		return x.ShareMode
	}
	return ClusterShareMode_ClusterShareModeNotSet
}

func (x *ClusterSpec) GetProxyConfig() *ProxyConfig {
	if x != nil {
		return x.ProxyConfig
	}
	return nil
}

func (x *ClusterSpec) GetClusterData() *ClusterData {
	if x != nil {
		return x.ClusterData
	}
	return nil
}

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

	Provider         string            `protobuf:"bytes,1,opt,name=provider,proto3" json:"provider,omitempty"`
	Passphrase       string            `protobuf:"bytes,2,opt,name=passphrase,proto3" json:"passphrase,omitempty"`
	Cname            string            `protobuf:"bytes,3,opt,name=cname,proto3" json:"cname,omitempty"`
	Arecord          string            `protobuf:"bytes,4,opt,name=arecord,proto3" json:"arecord,omitempty"`
	DisplayName      string            `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	Health           Health            `protobuf:"varint,6,opt,name=health,proto3,enum=rafay.dev.types.infra.v3.Health" json:"health,omitempty"`
	Manufacturer     string            `protobuf:"bytes,7,opt,name=manufacturer,proto3" json:"manufacturer,omitempty"`
	ClusterBlueprint string            `protobuf:"bytes,8,opt,name=cluster_blueprint,json=clusterBlueprint,proto3" json:"cluster_blueprint,omitempty"`
	Nodes            []*ClusterNode    `protobuf:"bytes,9,rep,name=nodes,proto3" json:"nodes,omitempty"`
	Projects         []*ProjectCluster `protobuf:"bytes,10,rep,name=projects,proto3" json:"projects,omitempty"`
	ClusterStatus    *ClusterStatus    `protobuf:"bytes,11,opt,name=cluster_status,json=clusterStatus,proto3" json:"cluster_status,omitempty"`
}

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

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

func (*ClusterData) ProtoMessage() {}

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

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

func (x *ClusterData) GetProvider() string {
	if x != nil {
		return x.Provider
	}
	return ""
}

func (x *ClusterData) GetPassphrase() string {
	if x != nil {
		return x.Passphrase
	}
	return ""
}

func (x *ClusterData) GetCname() string {
	if x != nil {
		return x.Cname
	}
	return ""
}

func (x *ClusterData) GetArecord() string {
	if x != nil {
		return x.Arecord
	}
	return ""
}

func (x *ClusterData) GetDisplayName() string {
	if x != nil {
		return x.DisplayName
	}
	return ""
}

func (x *ClusterData) GetHealth() Health {
	if x != nil {
		return x.Health
	}
	return Health_EDGE_IGNORE
}

func (x *ClusterData) GetManufacturer() string {
	if x != nil {
		return x.Manufacturer
	}
	return ""
}

func (x *ClusterData) GetClusterBlueprint() string {
	if x != nil {
		return x.ClusterBlueprint
	}
	return ""
}

func (x *ClusterData) GetNodes() []*ClusterNode {
	if x != nil {
		return x.Nodes
	}
	return nil
}

func (x *ClusterData) GetProjects() []*ProjectCluster {
	if x != nil {
		return x.Projects
	}
	return nil
}

func (x *ClusterData) GetClusterStatus() *ClusterStatus {
	if x != nil {
		return x.ClusterStatus
	}
	return nil
}

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

	Conditions         []*ClusterCondition `protobuf:"bytes,1,rep,name=conditions,proto3" json:"conditions,omitempty"`
	Token              string              `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"`
	PublishedBlueprint string              `protobuf:"bytes,3,opt,name=publishedBlueprint,proto3" json:"publishedBlueprint,omitempty"`
	SystemTaskCount    int64               `protobuf:"zigzag64,4,opt,name=systemTaskCount,proto3" json:"systemTaskCount,omitempty"`
	CustomTaskCount    int64               `protobuf:"zigzag64,5,opt,name=customTaskCount,proto3" json:"customTaskCount,omitempty"`
	AuxiliaryTaskCount int64               `protobuf:"zigzag64,6,opt,name=auxiliaryTaskCount,proto3" json:"auxiliaryTaskCount,omitempty"`
}

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

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

func (*ClusterStatus) ProtoMessage() {}

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

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

func (x *ClusterStatus) GetConditions() []*ClusterCondition {
	if x != nil {
		return x.Conditions
	}
	return nil
}

func (x *ClusterStatus) GetToken() string {
	if x != nil {
		return x.Token
	}
	return ""
}

func (x *ClusterStatus) GetPublishedBlueprint() string {
	if x != nil {
		return x.PublishedBlueprint
	}
	return ""
}

func (x *ClusterStatus) GetSystemTaskCount() int64 {
	if x != nil {
		return x.SystemTaskCount
	}
	return 0
}

func (x *ClusterStatus) GetCustomTaskCount() int64 {
	if x != nil {
		return x.CustomTaskCount
	}
	return 0
}

func (x *ClusterStatus) GetAuxiliaryTaskCount() int64 {
	if x != nil {
		return x.AuxiliaryTaskCount
	}
	return 0
}

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

	CpuCount           int64 `protobuf:"zigzag64,1,opt,name=cpuCount,proto3" json:"cpuCount,omitempty"`
	EphemeralStorageKB int64 `protobuf:"zigzag64,2,opt,name=ephemeralStorageKB,proto3" json:"ephemeralStorageKB,omitempty"`
	MemoryKB           int64 `protobuf:"zigzag64,3,opt,name=memoryKB,proto3" json:"memoryKB,omitempty"`
	PodsCount          int64 `protobuf:"zigzag64,4,opt,name=podsCount,proto3" json:"podsCount,omitempty"`
	GpuCount           int64 `protobuf:"zigzag64,5,opt,name=gpuCount,proto3" json:"gpuCount,omitempty"`
}

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

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

func (*Resources) ProtoMessage() {}

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

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

func (x *Resources) GetCpuCount() int64 {
	if x != nil {
		return x.CpuCount
	}
	return 0
}

func (x *Resources) GetEphemeralStorageKB() int64 {
	if x != nil {
		return x.EphemeralStorageKB
	}
	return 0
}

func (x *Resources) GetMemoryKB() int64 {
	if x != nil {
		return x.MemoryKB
	}
	return 0
}

func (x *Resources) GetPodsCount() int64 {
	if x != nil {
		return x.PodsCount
	}
	return 0
}

func (x *Resources) GetGpuCount() int64 {
	if x != nil {
		return x.GpuCount
	}
	return 0
}

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

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

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

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

func (*ProjectCluster) ProtoMessage() {}

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

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

func (x *ProjectCluster) GetProjectID() string {
	if x != nil {
		return x.ProjectID
	}
	return ""
}

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

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

	Metadata *v3.Metadata       `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
	Spec     *ClusterNodeSpec   `protobuf:"bytes,2,opt,name=spec,proto3" json:"spec,omitempty"`
	Status   *ClusterNodeStatus `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
}

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

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

func (*ClusterNode) ProtoMessage() {}

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

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

func (x *ClusterNode) GetMetadata() *v3.Metadata {
	if x != nil {
		return x.Metadata
	}
	return nil
}

func (x *ClusterNode) GetSpec() *ClusterNodeSpec {
	if x != nil {
		return x.Spec
	}
	return nil
}

func (x *ClusterNode) GetStatus() *ClusterNodeStatus {
	if x != nil {
		return x.Status
	}
	return nil
}

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

	Unschedulable bool        `protobuf:"varint,1,opt,name=unschedulable,proto3" json:"unschedulable,omitempty"`
	Taints        []*v1.Taint `protobuf:"bytes,2,rep,name=taints,proto3" json:"taints,omitempty"`
}

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

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

func (*ClusterNodeSpec) ProtoMessage() {}

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

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

func (x *ClusterNodeSpec) GetUnschedulable() bool {
	if x != nil {
		return x.Unschedulable
	}
	return false
}

func (x *ClusterNodeSpec) GetTaints() []*v1.Taint {
	if x != nil {
		return x.Taints
	}
	return nil
}

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

	State       ClusterNodeState    `protobuf:"varint,1,opt,name=state,proto3,enum=rafay.dev.types.infra.v3.ClusterNodeState" json:"state,omitempty"`
	Conditions  []*v1.NodeCondition `protobuf:"bytes,2,rep,name=conditions,proto3" json:"conditions,omitempty"`
	NodeInfo    *v1.NodeSystemInfo  `protobuf:"bytes,3,opt,name=nodeInfo,proto3" json:"nodeInfo,omitempty"`
	Capacity    *Resources          `protobuf:"bytes,4,opt,name=capacity,proto3" json:"capacity,omitempty"`
	Allocatable *Resources          `protobuf:"bytes,5,opt,name=allocatable,proto3" json:"allocatable,omitempty"`
	Allocated   *Resources          `protobuf:"bytes,6,opt,name=allocated,proto3" json:"allocated,omitempty"`
	Ips         []*ClusterNodeIP    `protobuf:"bytes,7,rep,name=ips,proto3" json:"ips,omitempty"`
}

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

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

func (*ClusterNodeStatus) ProtoMessage() {}

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

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

func (x *ClusterNodeStatus) GetState() ClusterNodeState {
	if x != nil {
		return x.State
	}
	return ClusterNodeState_ClusterNodeCreated
}

func (x *ClusterNodeStatus) GetConditions() []*v1.NodeCondition {
	if x != nil {
		return x.Conditions
	}
	return nil
}

func (x *ClusterNodeStatus) GetNodeInfo() *v1.NodeSystemInfo {
	if x != nil {
		return x.NodeInfo
	}
	return nil
}

func (x *ClusterNodeStatus) GetCapacity() *Resources {
	if x != nil {
		return x.Capacity
	}
	return nil
}

func (x *ClusterNodeStatus) GetAllocatable() *Resources {
	if x != nil {
		return x.Allocatable
	}
	return nil
}

func (x *ClusterNodeStatus) GetAllocated() *Resources {
	if x != nil {
		return x.Allocated
	}
	return nil
}

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

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

	PrivateIP string `protobuf:"bytes,1,opt,name=privateIP,proto3" json:"privateIP,omitempty"`
	PublicIP  string `protobuf:"bytes,2,opt,name=publicIP,proto3" json:"publicIP,omitempty"`
}

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

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

func (*ClusterNodeIP) ProtoMessage() {}

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

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

func (x *ClusterNodeIP) GetPrivateIP() string {
	if x != nil {
		return x.PrivateIP
	}
	return ""
}

func (x *ClusterNodeIP) GetPublicIP() string {
	if x != nil {
		return x.PublicIP
	}
	return ""
}

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

	Type        ClusterConditionType    `protobuf:"varint,1,opt,name=type,proto3,enum=rafay.dev.types.infra.v3.ClusterConditionType" json:"type,omitempty"`
	Status      v3.RafayConditionStatus `protobuf:"varint,2,opt,name=status,proto3,enum=rafay.dev.types.common.v3.RafayConditionStatus" json:"status,omitempty"`
	LastUpdated *timestamppb.Timestamp  `protobuf:"bytes,3,opt,name=lastUpdated,proto3" json:"lastUpdated,omitempty"`
	Reason      string                  `protobuf:"bytes,4,opt,name=reason,proto3" json:"reason,omitempty"`
}

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

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

func (*ClusterCondition) ProtoMessage() {}

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

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

func (x *ClusterCondition) GetType() ClusterConditionType {
	if x != nil {
		return x.Type
	}
	return ClusterConditionType_ClusterBlueprintSync
}

func (x *ClusterCondition) GetStatus() v3.RafayConditionStatus {
	if x != nil {
		return x.Status
	}
	return v3.RafayConditionStatus(0)
}

func (x *ClusterCondition) GetLastUpdated() *timestamppb.Timestamp {
	if x != nil {
		return x.LastUpdated
	}
	return nil
}

func (x *ClusterCondition) GetReason() string {
	if x != nil {
		return x.Reason
	}
	return ""
}

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

	ApiVersion string       `protobuf:"bytes,1,opt,name=apiVersion,proto3" json:"apiVersion,omitempty"`
	Kind       string       `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"`
	Metadata   *v3.Metadata `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
	Spec       *Metro       `protobuf:"bytes,4,opt,name=spec,proto3" json:"spec,omitempty"`
	Status     *v3.Status   `protobuf:"bytes,5,opt,name=status,proto3" json:"status,omitempty"`
}

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

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

func (*Location) ProtoMessage() {}

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

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

func (x *Location) GetApiVersion() string {
	if x != nil {
		return x.ApiVersion
	}
	return ""
}

func (x *Location) GetKind() string {
	if x != nil {
		return x.Kind
	}
	return ""
}

func (x *Location) GetMetadata() *v3.Metadata {
	if x != nil {
		return x.Metadata
	}
	return nil
}

func (x *Location) GetSpec() *Metro {
	if x != nil {
		return x.Spec
	}
	return nil
}

func (x *Location) GetStatus() *v3.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

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

	Id          string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Name        string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	City        string `protobuf:"bytes,3,opt,name=city,proto3" json:"city,omitempty"`
	State       string `protobuf:"bytes,4,opt,name=state,proto3" json:"state,omitempty"`
	Country     string `protobuf:"bytes,5,opt,name=country,proto3" json:"country,omitempty"`
	Locale      string `protobuf:"bytes,6,opt,name=locale,proto3" json:"locale,omitempty"`
	Latitude    string `protobuf:"bytes,7,opt,name=latitude,proto3" json:"latitude,omitempty"`
	Longitude   string `protobuf:"bytes,8,opt,name=longitude,proto3" json:"longitude,omitempty"`
	CountryCode string `protobuf:"bytes,9,opt,name=countryCode,proto3" json:"countryCode,omitempty"`
	StateCode   string `protobuf:"bytes,10,opt,name=stateCode,proto3" json:"stateCode,omitempty"`
}

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

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

func (*Metro) ProtoMessage() {}

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

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

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

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

func (x *Metro) GetCity() string {
	if x != nil {
		return x.City
	}
	return ""
}

func (x *Metro) GetState() string {
	if x != nil {
		return x.State
	}
	return ""
}

func (x *Metro) GetCountry() string {
	if x != nil {
		return x.Country
	}
	return ""
}

func (x *Metro) GetLocale() string {
	if x != nil {
		return x.Locale
	}
	return ""
}

func (x *Metro) GetLatitude() string {
	if x != nil {
		return x.Latitude
	}
	return ""
}

func (x *Metro) GetLongitude() string {
	if x != nil {
		return x.Longitude
	}
	return ""
}

func (x *Metro) GetCountryCode() string {
	if x != nil {
		return x.CountryCode
	}
	return ""
}

func (x *Metro) GetStateCode() string {
	if x != nil {
		return x.StateCode
	}
	return ""
}

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

	ApiVersion string           `protobuf:"bytes,1,opt,name=apiVersion,proto3" json:"apiVersion,omitempty"`
	Kind       string           `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"`
	Metadata   *v3.ListMetadata `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
	Items      []*Metro         `protobuf:"bytes,4,rep,name=items,proto3" json:"items,omitempty"`
}

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

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

func (*LocationList) ProtoMessage() {}

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

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

func (x *LocationList) GetApiVersion() string {
	if x != nil {
		return x.ApiVersion
	}
	return ""
}

func (x *LocationList) GetKind() string {
	if x != nil {
		return x.Kind
	}
	return ""
}

func (x *LocationList) GetMetadata() *v3.ListMetadata {
	if x != nil {
		return x.Metadata
	}
	return nil
}

func (x *LocationList) GetItems() []*Metro {
	if x != nil {
		return x.Items
	}
	return nil
}

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

	EnvironmentProvider  string `protobuf:"bytes,1,opt,name=environmentProvider,proto3" json:"environmentProvider,omitempty"`
	KubernetesProvider   string `protobuf:"bytes,2,opt,name=kubernetesProvider,proto3" json:"kubernetesProvider,omitempty"`
	ProvisionEnvironment string `protobuf:"bytes,3,opt,name=provisionEnvironment,proto3" json:"provisionEnvironment,omitempty"`
	ProvisionPackageType string `protobuf:"bytes,4,opt,name=provisionPackageType,proto3" json:"provisionPackageType,omitempty"`
	ProvisionType        string `protobuf:"bytes,5,opt,name=provisionType,proto3" json:"provisionType,omitempty"`
	State                string `protobuf:"bytes,6,opt,name=state,proto3" json:"state,omitempty"`
}

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

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

func (*ProvisionParams) ProtoMessage() {}

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

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

func (x *ProvisionParams) GetEnvironmentProvider() string {
	if x != nil {
		return x.EnvironmentProvider
	}
	return ""
}

func (x *ProvisionParams) GetKubernetesProvider() string {
	if x != nil {
		return x.KubernetesProvider
	}
	return ""
}

func (x *ProvisionParams) GetProvisionEnvironment() string {
	if x != nil {
		return x.ProvisionEnvironment
	}
	return ""
}

func (x *ProvisionParams) GetProvisionPackageType() string {
	if x != nil {
		return x.ProvisionPackageType
	}
	return ""
}

func (x *ProvisionParams) GetProvisionType() string {
	if x != nil {
		return x.ProvisionType
	}
	return ""
}

func (x *ProvisionParams) GetState() string {
	if x != nil {
		return x.State
	}
	return ""
}

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

	HttpProxy              string `protobuf:"bytes,1,opt,name=httpProxy,proto3" json:"httpProxy,omitempty"`
	HttpsProxy             string `protobuf:"bytes,2,opt,name=httpsProxy,proto3" json:"httpsProxy,omitempty"`
	NoProxy                string `protobuf:"bytes,3,opt,name=noProxy,proto3" json:"noProxy,omitempty"`
	ProxyAuth              string `protobuf:"bytes,4,opt,name=proxyAuth,proto3" json:"proxyAuth,omitempty"`
	AllowInsecureBootstrap bool   `protobuf:"varint,5,opt,name=allowInsecureBootstrap,proto3" json:"allowInsecureBootstrap,omitempty"`
	Enabled                bool   `protobuf:"varint,6,opt,name=enabled,proto3" json:"enabled,omitempty"`
	BootstrapCA            string `protobuf:"bytes,7,opt,name=bootstrapCA,proto3" json:"bootstrapCA,omitempty"`
}

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

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

func (*ProxyConfig) ProtoMessage() {}

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

func (x *ProxyConfig) GetHttpProxy() string {
	if x != nil {
		return x.HttpProxy
	}
	return ""
}

func (x *ProxyConfig) GetHttpsProxy() string {
	if x != nil {
		return x.HttpsProxy
	}
	return ""
}

func (x *ProxyConfig) GetNoProxy() string {
	if x != nil {
		return x.NoProxy
	}
	return ""
}

func (x *ProxyConfig) GetProxyAuth() string {
	if x != nil {
		return x.ProxyAuth
	}
	return ""
}

func (x *ProxyConfig) GetAllowInsecureBootstrap() bool {
	if x != nil {
		return x.AllowInsecureBootstrap
	}
	return false
}

func (x *ProxyConfig) GetEnabled() bool {
	if x != nil {
		return x.Enabled
	}
	return false
}

func (x *ProxyConfig) GetBootstrapCA() string {
	if x != nil {
		return x.BootstrapCA
	}
	return ""
}

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

	TokenType ClusterTokenType `protobuf:"varint,1,opt,name=tokenType,proto3,enum=rafay.dev.types.infra.v3.ClusterTokenType" json:"tokenType,omitempty"`
}

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

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

func (*ClusterTokenSpec) ProtoMessage() {}

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

func (x *ClusterTokenSpec) GetTokenType() ClusterTokenType {
	if x != nil {
		return x.TokenType
	}
	return ClusterTokenType_ClusterBootstrapToken
}

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

	State ClusterTokenState `protobuf:"varint,1,opt,name=state,proto3,enum=rafay.dev.types.infra.v3.ClusterTokenState" json:"state,omitempty"`
}

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

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

func (*ClusterTokenStatus) ProtoMessage() {}

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

func (x *ClusterTokenStatus) GetState() ClusterTokenState {
	if x != nil {
		return x.State
	}
	return ClusterTokenState_TokenNotUsed
}

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

	ApiVersion string              `protobuf:"bytes,1,opt,name=apiVersion,proto3" json:"apiVersion,omitempty"`
	Kind       string              `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"`
	Metadata   *v3.Metadata        `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
	Spec       *ClusterTokenSpec   `protobuf:"bytes,4,opt,name=spec,proto3" json:"spec,omitempty"`
	Status     *ClusterTokenStatus `protobuf:"bytes,5,opt,name=status,proto3" json:"status,omitempty"`
}

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

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

func (*ClusterToken) ProtoMessage() {}

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

func (x *ClusterToken) GetApiVersion() string {
	if x != nil {
		return x.ApiVersion
	}
	return ""
}

func (x *ClusterToken) GetKind() string {
	if x != nil {
		return x.Kind
	}
	return ""
}

func (x *ClusterToken) GetMetadata() *v3.Metadata {
	if x != nil {
		return x.Metadata
	}
	return nil
}

func (x *ClusterToken) GetSpec() *ClusterTokenSpec {
	if x != nil {
		return x.Spec
	}
	return nil
}

func (x *ClusterToken) GetStatus() *ClusterTokenStatus {
	if x != nil {
		return x.Status
	}
	return nil
}

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

	Name     string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Hash     string `protobuf:"bytes,2,opt,name=hash,proto3" json:"hash,omitempty"`
	Deleting bool   `protobuf:"varint,3,opt,name=deleting,proto3" json:"deleting,omitempty"`
}

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

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

func (*NameHash) ProtoMessage() {}

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

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

func (x *NameHash) GetHash() string {
	if x != nil {
		return x.Hash
	}
	return ""
}

func (x *NameHash) GetDeleting() bool {
	if x != nil {
		return x.Deleting
	}
	return false
}

var File_proto_types_infrapb_v3_cluster_proto protoreflect.FileDescriptor

var file_proto_types_infrapb_v3_cluster_proto_rawDesc = []byte{
	0x0a, 0x24, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x69, 0x6e,
	0x66, 0x72, 0x61, 0x70, 0x62, 0x2f, 0x76, 0x33, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x72, 0x61, 0x66, 0x61, 0x79, 0x2e, 0x64, 0x65,
	0x76, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x76, 0x33,
	0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
	0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x1a, 0x24, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x63,
	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x70, 0x62, 0x2f, 0x76, 0x33, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
	0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d,
	0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x22, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2f,
	0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x6e, 0x65,
	0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x96, 0x04, 0x0a, 0x07,
	0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x64, 0x0a, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65,
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x44, 0x92, 0x41, 0x41,
	0x2a, 0x0b, 0x41, 0x50, 0x49, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0x1b, 0x41,
	0x50, 0x49, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68,
	0x65, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3a, 0x13, 0x69, 0x6e, 0x66, 0x72,
	0x61, 0x2e, 0x6b, 0x38, 0x73, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x69, 0x6f, 0x2f, 0x76, 0x33, 0x40,
	0x01, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a,
	0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0x92, 0x41, 0x27,
	0x2a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x32, 0x14, 0x4b, 0x69, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20,
	0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3a, 0x07, 0x43, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x40, 0x01, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x68, 0x0a,
	0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x23, 0x2e, 0x72, 0x61, 0x66, 0x61, 0x79, 0x2e, 0x64, 0x65, 0x76, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65, 0x74, 0x61,
	0x64, 0x61, 0x74, 0x61, 0x42, 0x27, 0x92, 0x41, 0x24, 0x2a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64,
	0x61, 0x74, 0x61, 0x32, 0x18, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x6f, 0x66,
	0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x08, 0x6d,
	0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x5a, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x72, 0x61, 0x66, 0x61, 0x79, 0x2e, 0x64, 0x65,
	0x76, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x76, 0x33,
	0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x42, 0x1f, 0x92, 0x41,
	0x1c, 0x2a, 0x04, 0x53, 0x70, 0x65, 0x63, 0x32, 0x14, 0x53, 0x70, 0x65, 0x63, 0x20, 0x6f, 0x66,
	0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x04, 0x73,
	0x70, 0x65, 0x63, 0x12, 0x60, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x72, 0x61, 0x66, 0x61, 0x79, 0x2e, 0x64, 0x65, 0x76, 0x2e,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x33, 0x2e,
	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x25, 0x92, 0x41, 0x22, 0x2a, 0x06, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x32, 0x16, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74,
	0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x40, 0x01, 0x52, 0x06, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x3a, 0x3d, 0x92, 0x41, 0x3a, 0x0a, 0x38, 0x2a, 0x07, 0x43, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x32, 0x07, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0xd2, 0x01,
	0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0xd2, 0x01, 0x04, 0x6b, 0x69,
	0x6e, 0x64, 0xd2, 0x01, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xd2, 0x01, 0x04,
	0x73, 0x70, 0x65, 0x63, 0x22, 0x98, 0x03, 0x0a, 0x0b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	0x4c, 0x69, 0x73, 0x74, 0x12, 0x69, 0x0a, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69,
	0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x49, 0x92, 0x41, 0x46, 0x2a, 0x0b, 0x41,
	0x50, 0x49, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0x20, 0x41, 0x50, 0x49, 0x20,
	0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c,
	0x69, 0x73, 0x74, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3a, 0x13, 0x69, 0x6e,
	0x66, 0x72, 0x61, 0x2e, 0x6b, 0x38, 0x73, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x69, 0x6f, 0x2f, 0x76,
	0x33, 0x40, 0x01, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12,
	0x47, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0x92,
	0x41, 0x30, 0x2a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x32, 0x19, 0x4b, 0x69, 0x6e, 0x64, 0x20, 0x6f,
	0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x3a, 0x0b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74,
	0x40, 0x01, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x77, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61,
	0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x72, 0x61, 0x66,
	0x61, 0x79, 0x2e, 0x64, 0x65, 0x76, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d,
	0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64,
	0x61, 0x74, 0x61, 0x42, 0x32, 0x92, 0x41, 0x2f, 0x2a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65,
	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x32, 0x1d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
	0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x72, 0x65, 0x73,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x40, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
	0x61, 0x12, 0x5c, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x21, 0x2e, 0x72, 0x61, 0x66, 0x61, 0x79, 0x2e, 0x64, 0x65, 0x76, 0x2e, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x42, 0x23, 0x92, 0x41, 0x20, 0x2a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x32,
	0x15, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x40, 0x01, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22,
	0xb5, 0x06, 0x0a, 0x0b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12,
	0x60, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x3e, 0x92, 0x41, 0x3b, 0x2a, 0x0c, 0x43, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x20, 0x54, 0x79, 0x70, 0x65, 0x32, 0x21, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66,
	0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x62, 0x65, 0x69,
	0x6e, 0x67, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x3a, 0x08, 0x49, 0x6d, 0x70, 0x6f,
	0x72, 0x74, 0x65, 0x64, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70,
	0x65, 0x12, 0x5d, 0x0a, 0x05, 0x6d, 0x65, 0x74, 0x72, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1f, 0x2e, 0x72, 0x61, 0x66, 0x61, 0x79, 0x2e, 0x64, 0x65, 0x76, 0x2e, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65, 0x74, 0x72,
	0x6f, 0x42, 0x26, 0x92, 0x41, 0x23, 0x2a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x32, 0x17, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68,
	0x65, 0x20, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x05, 0x6d, 0x65, 0x74, 0x72, 0x6f,
	0x12, 0x64, 0x0a, 0x10, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65,
	0x63, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x38, 0x92, 0x41, 0x35, 0x2a,
	0x11, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x20, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74,
	0x6f, 0x72, 0x32, 0x20, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x20, 0x73, 0x65, 0x6c,
	0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x52, 0x10, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x53, 0x65,
	0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x75, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x72, 0x61, 0x66, 0x61, 0x79, 0x2e, 0x64,
	0x65, 0x76, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x76,
	0x33, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d,
	0x73, 0x42, 0x32, 0x92, 0x41, 0x2f, 0x2a, 0x10, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f,
	0x6e, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x32, 0x1b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x70,
	0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x82, 0x01,
	0x0a, 0x09, 0x73, 0x68, 0x61, 0x72, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x0e, 0x32, 0x2a, 0x2e, 0x72, 0x61, 0x66, 0x61, 0x79, 0x2e, 0x64, 0x65, 0x76, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x38, 0x92,
	0x41, 0x35, 0x2a, 0x11, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x20, 0x53, 0x65, 0x6c,
	0x65, 0x63, 0x74, 0x6f, 0x72, 0x32, 0x20, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x20,
	0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20,
	0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x09, 0x73, 0x68, 0x61, 0x72, 0x65, 0x4d, 0x6f,
	0x64, 0x65, 0x12, 0x7b, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x72, 0x61, 0x66, 0x61, 0x79, 0x2e,
	0x64, 0x65, 0x76, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e,
	0x76, 0x33, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x32,
	0x92, 0x41, 0x2f, 0x2a, 0x0b, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x32, 0x20, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63,
	0x74, 0x6f, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
	0x85, 0x01, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x72, 0x61, 0x66, 0x61, 0x79, 0x2e, 0x64, 0x65,
	0x76, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x76, 0x33,
	0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x42, 0x3c, 0x92, 0x41,
	0x39, 0x2a, 0x13, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x49, 0x6e, 0x66, 0x6f, 0x72,
	0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x20, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65,
	0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65,
	0x20, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x40, 0x01, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x22, 0xbc, 0x07, 0x0a, 0x0b, 0x43, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x35, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69,
	0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x19, 0x92, 0x41, 0x16, 0x2a, 0x08,
	0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x32, 0x08, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64,
	0x65, 0x72, 0x40, 0x01, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x4c,
	0x0a, 0x0a, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x2c, 0x92, 0x41, 0x29, 0x2a, 0x0a, 0x50, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72,
	0x61, 0x73, 0x65, 0x32, 0x19, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x20,
	0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x40, 0x01,
	0x52, 0x0a, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x05,
	0x63, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x22, 0x92, 0x41, 0x1f,
	0x2a, 0x05, 0x43, 0x4e, 0x41, 0x4d, 0x45, 0x32, 0x14, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f,
	0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x40, 0x01, 0x52,
	0x05, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x07, 0x61, 0x72, 0x65, 0x63, 0x6f, 0x72,
	0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0x92, 0x41, 0x28, 0x2a, 0x0c, 0x44, 0x4e,
	0x53, 0x20, 0x41, 0x20, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x32, 0x16, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x44, 0x4e, 0x53, 0x20, 0x41, 0x20, 0x52, 0x65, 0x63, 0x6f,
	0x72, 0x64, 0x40, 0x01, 0x52, 0x07, 0x61, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x44, 0x0a,
	0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x21, 0x92, 0x41, 0x1e, 0x2a, 0x0c, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61,
	0x79, 0x20, 0x4e, 0x61, 0x6d, 0x65, 0x32, 0x0c, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20,
	0x4e, 0x61, 0x6d, 0x65, 0x40, 0x01, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e,
	0x61, 0x6d, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x72, 0x61, 0x66, 0x61, 0x79, 0x2e, 0x64, 0x65, 0x76, 0x2e,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x76, 0x33, 0x2e, 0x48,
	0x65, 0x61, 0x6c, 0x74, 0x68, 0x42, 0x15, 0x92, 0x41, 0x12, 0x2a, 0x06, 0x48, 0x65, 0x61, 0x6c,
	0x74, 0x68, 0x32, 0x06, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x40, 0x01, 0x52, 0x06, 0x68, 0x65,
	0x61, 0x6c, 0x74, 0x68, 0x12, 0x45, 0x0a, 0x0c, 0x6d, 0x61, 0x6e, 0x75, 0x66, 0x61, 0x63, 0x74,
	0x75, 0x72, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, 0x92, 0x41, 0x1e, 0x2a,
	0x0c, 0x4d, 0x61, 0x6e, 0x75, 0x66, 0x61, 0x63, 0x74, 0x75, 0x72, 0x65, 0x72, 0x32, 0x0c, 0x4d,
	0x61, 0x6e, 0x75, 0x66, 0x61, 0x63, 0x74, 0x75, 0x72, 0x65, 0x72, 0x40, 0x01, 0x52, 0x0c, 0x6d,
	0x61, 0x6e, 0x75, 0x66, 0x61, 0x63, 0x74, 0x75, 0x72, 0x65, 0x72, 0x12, 0x57, 0x0a, 0x11, 0x63,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74,
	0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0x92, 0x41, 0x27, 0x2a, 0x10, 0x43, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x32, 0x11, 0x43,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74,
	0x40, 0x01, 0x52, 0x10, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x42, 0x6c, 0x75, 0x65, 0x70,
	0x72, 0x69, 0x6e, 0x74, 0x12, 0x77, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x09, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x72, 0x61, 0x66, 0x61, 0x79, 0x2e, 0x64, 0x65, 0x76, 0x2e,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x76, 0x33, 0x2e, 0x43,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x42, 0x3a, 0x92, 0x41, 0x37, 0x2a,
	0x13, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x32, 0x20, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x20, 0x73,
	0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x80, 0x01,
	0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x28, 0x2e, 0x72, 0x61, 0x66, 0x61, 0x79, 0x2e, 0x64, 0x65, 0x76, 0x2e, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x72, 0x6f, 0x6a,
	0x65, 0x63, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x42, 0x3a, 0x92, 0x41, 0x37, 0x2a,
	0x13, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x32, 0x20, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x20, 0x73,
	0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73,
	0x12, 0x74, 0x0a, 0x0e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x72, 0x61, 0x66, 0x61, 0x79,
	0x2e, 0x64, 0x65, 0x76, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61,
	0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x42, 0x24, 0x92, 0x41, 0x21, 0x2a, 0x0d, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x32, 0x0e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x40, 0x01, 0x52, 0x0d, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x8e, 0x05, 0x0a, 0x0d, 0x43, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x86, 0x01, 0x0a, 0x0a, 0x63, 0x6f, 0x6e,
	0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e,
	0x72, 0x61, 0x66, 0x61, 0x79, 0x2e, 0x64, 0x65, 0x76, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x3a, 0x92, 0x41, 0x37, 0x2a, 0x13,
	0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x32, 0x20, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x20, 0x73, 0x65,
	0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x12, 0x50, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x3a, 0x92, 0x41, 0x37, 0x2a, 0x13, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x49,
	0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x20, 0x4f, 0x76, 0x65, 0x72,
	0x72, 0x69, 0x64, 0x65, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x6f, 0x66,
	0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x05, 0x74, 0x6f,
	0x6b, 0x65, 0x6e, 0x12, 0x6a, 0x0a, 0x12, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64,
	0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x3a, 0x92, 0x41, 0x37, 0x2a, 0x13, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x49, 0x6e,
	0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x20, 0x4f, 0x76, 0x65, 0x72, 0x72,
	0x69, 0x64, 0x65, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x6f, 0x66, 0x20,
	0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x12, 0x70, 0x75, 0x62,
	0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x12,
	0x64, 0x0a, 0x0f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75,
	0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x42, 0x3a, 0x92, 0x41, 0x37, 0x2a, 0x13, 0x43,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x32, 0x20, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x20, 0x73, 0x65, 0x6c,
	0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x52, 0x0f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x61, 0x73, 0x6b,
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x0f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54,
	0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x42, 0x3a,
	0x92, 0x41, 0x37, 0x2a, 0x13, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x49, 0x6e, 0x66,
	0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x20, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69,
	0x64, 0x65, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74,
	0x68, 0x65, 0x20, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x0f, 0x63, 0x75, 0x73, 0x74,
	0x6f, 0x6d, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x6a, 0x0a, 0x12, 0x61,
	0x75, 0x78, 0x69, 0x6c, 0x69, 0x61, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e,
	0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x42, 0x3a, 0x92, 0x41, 0x37, 0x2a, 0x13, 0x43, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x32, 0x20, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x20, 0x73, 0x65, 0x6c, 0x65,
	0x63, 0x74, 0x6f, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x52, 0x12, 0x61, 0x75, 0x78, 0x69, 0x6c, 0x69, 0x61, 0x72, 0x79, 0x54, 0x61,
	0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xad, 0x01, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x70, 0x75, 0x43, 0x6f, 0x75, 0x6e,
	0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x63, 0x70, 0x75, 0x43, 0x6f, 0x75, 0x6e,
	0x74, 0x12, 0x2e, 0x0a, 0x12, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x53, 0x74,
	0x6f, 0x72, 0x61, 0x67, 0x65, 0x4b, 0x42, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x12, 0x65,
	0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4b,
	0x42, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x4b, 0x42, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x12, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x4b, 0x42, 0x12, 0x1c, 0x0a,
	0x09, 0x70, 0x6f, 0x64, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12,
	0x52, 0x09, 0x70, 0x6f, 0x64, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x67,
	0x70, 0x75, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x67,
	0x70, 0x75, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xbe, 0x01, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x6a,
	0x65, 0x63, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x09, 0x70, 0x72,
	0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0x92,
	0x41, 0x34, 0x2a, 0x0a, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x49, 0x44, 0x32, 0x26,
	0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x49, 0x44, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63,
	0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49,
	0x44, 0x12, 0x55, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0x92, 0x41, 0x34, 0x2a, 0x0a, 0x43, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x20, 0x49, 0x44, 0x32, 0x26, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x49,
	0x44, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74,
	0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x09, 0x63,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x22, 0xd2, 0x01, 0x0a, 0x0b, 0x43, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61,
	0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x72, 0x61, 0x66,
	0x61, 0x79, 0x2e, 0x64, 0x65, 0x76, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d,
	0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52,
	0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3d, 0x0a, 0x04, 0x73, 0x70, 0x65,
	0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x72, 0x61, 0x66, 0x61, 0x79, 0x2e,
	0x64, 0x65, 0x76, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e,
	0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x70,
	0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x43, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x72, 0x61, 0x66, 0x61, 0x79,
	0x2e, 0x64, 0x65, 0x76, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61,
	0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x6a, 0x0a,
	0x0f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x70, 0x65, 0x63,
	0x12, 0x24, 0x0a, 0x0d, 0x75, 0x6e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x61, 0x62, 0x6c,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x75, 0x6e, 0x73, 0x63, 0x68, 0x65, 0x64,
	0x75, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x31, 0x0a, 0x06, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x73,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e,
	0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x69, 0x6e,
	0x74, 0x52, 0x06, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x22, 0xde, 0x03, 0x0a, 0x11, 0x43, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
	0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a,
	0x2e, 0x72, 0x61, 0x66, 0x61, 0x79, 0x2e, 0x64, 0x65, 0x76, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74,
	0x65, 0x12, 0x41, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
	0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61,
	0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x43,
	0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3e, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e,
	0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65,
	0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65,
	0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3f, 0x0a, 0x08, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x72, 0x61, 0x66, 0x61, 0x79, 0x2e, 0x64,
	0x65, 0x76, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x76,
	0x33, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x08, 0x63, 0x61, 0x70,
	0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74,
	0x61, 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x72, 0x61, 0x66,
	0x61, 0x79, 0x2e, 0x64, 0x65, 0x76, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x69, 0x6e, 0x66,
	0x72, 0x61, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52,
	0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x41, 0x0a, 0x09,
	0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x23, 0x2e, 0x72, 0x61, 0x66, 0x61, 0x79, 0x2e, 0x64, 0x65, 0x76, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x73, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12,
	0x39, 0x0a, 0x03, 0x69, 0x70, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x72,
	0x61, 0x66, 0x61, 0x79, 0x2e, 0x64, 0x65, 0x76, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x69,
	0x6e, 0x66, 0x72, 0x61, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e,
	0x6f, 0x64, 0x65, 0x49, 0x50, 0x52, 0x03, 0x69, 0x70, 0x73, 0x22, 0x49, 0x0a, 0x0d, 0x43, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x12, 0x1c, 0x0a, 0x09, 0x70,
	0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x49, 0x50, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
	0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x49, 0x50, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x75, 0x62,
	0x6c, 0x69, 0x63, 0x49, 0x50, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x75, 0x62,
	0x6c, 0x69, 0x63, 0x49, 0x50, 0x22, 0xf5, 0x03, 0x0a, 0x10, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x7e, 0x0a, 0x04, 0x74, 0x79,
	0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x72, 0x61, 0x66, 0x61, 0x79,
	0x2e, 0x64, 0x65, 0x76, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61,
	0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x64, 0x69,
	0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x3a, 0x92, 0x41, 0x37, 0x2a, 0x13, 0x43,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x32, 0x20, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x20, 0x73, 0x65, 0x6c,
	0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x85, 0x01, 0x0a, 0x06, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x72, 0x61,
	0x66, 0x61, 0x79, 0x2e, 0x64, 0x65, 0x76, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x63, 0x6f,
	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x61, 0x66, 0x61, 0x79, 0x43, 0x6f, 0x6e,
	0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x3c, 0x92, 0x41,
	0x39, 0x2a, 0x18, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6e, 0x64, 0x69,
	0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x32, 0x1d, 0x43, 0x75, 0x72,
	0x72, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74,
	0x68, 0x65, 0x20, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x12, 0x81, 0x01, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
	0x74, 0x61, 0x6d, 0x70, 0x42, 0x43, 0x92, 0x41, 0x40, 0x2a, 0x1e, 0x43, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x61, 0x73,
	0x74, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x32, 0x1e, 0x43, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x61, 0x73,
	0x74, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x55, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3d, 0x92, 0x41, 0x3a, 0x2a, 0x1b, 0x52, 0x65, 0x61,
	0x73, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x63,
	0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x1b, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e,
	0x20, 0x6f, 0x66, 0x20, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6f, 0x6e, 0x64,
	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x94, 0x04,
	0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x64, 0x0a, 0x0a, 0x61, 0x70,
	0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x44,
	0x92, 0x41, 0x41, 0x2a, 0x0b, 0x41, 0x50, 0x49, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
	0x32, 0x1b, 0x41, 0x50, 0x49, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66,
	0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3a, 0x13, 0x69,
	0x6e, 0x66, 0x72, 0x61, 0x2e, 0x6b, 0x38, 0x73, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x69, 0x6f, 0x2f,
	0x76, 0x33, 0x40, 0x01, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
	0x12, 0x3f, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b,
	0x92, 0x41, 0x28, 0x2a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x32, 0x14, 0x4b, 0x69, 0x6e, 0x64, 0x20,
	0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3a,
	0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x40, 0x01, 0x52, 0x04, 0x6b, 0x69, 0x6e,
	0x64, 0x12, 0x68, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x72, 0x61, 0x66, 0x61, 0x79, 0x2e, 0x64, 0x65, 0x76, 0x2e,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x33, 0x2e,
	0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x27, 0x92, 0x41, 0x24, 0x2a, 0x08, 0x4d,
	0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x32, 0x18, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
	0x61, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
	0x65, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x54, 0x0a, 0x04, 0x73,
	0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x72, 0x61, 0x66, 0x61,
	0x79, 0x2e, 0x64, 0x65, 0x76, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x72,
	0x61, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x6f, 0x42, 0x1f, 0x92, 0x41, 0x1c, 0x2a,
	0x04, 0x53, 0x70, 0x65, 0x63, 0x32, 0x14, 0x53, 0x70, 0x65, 0x63, 0x20, 0x6f, 0x66, 0x20, 0x74,
	0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x04, 0x73, 0x70, 0x65,
	0x63, 0x12, 0x60, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x21, 0x2e, 0x72, 0x61, 0x66, 0x61, 0x79, 0x2e, 0x64, 0x65, 0x76, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x42, 0x25, 0x92, 0x41, 0x22, 0x2a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x32, 0x16, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65,
	0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x40, 0x01, 0x52, 0x06, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x3a, 0x3f, 0x92, 0x41, 0x3c, 0x0a, 0x3a, 0x2a, 0x08, 0x4c, 0x6f, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x32, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0xd2, 0x01,
	0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0xd2, 0x01, 0x04, 0x6b, 0x69,
	0x6e, 0x64, 0xd2, 0x01, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xd2, 0x01, 0x04,
	0x73, 0x70, 0x65, 0x63, 0x22, 0xa8, 0x05, 0x0a, 0x05, 0x4d, 0x65, 0x74, 0x72, 0x6f, 0x12, 0x3f,
	0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0x92, 0x41, 0x2c, 0x2a,
	0x0e, 0x49, 0x44, 0x20, 0x6f, 0x66, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x32,
	0x1a, 0x49, 0x44, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20,
	0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x02, 0x69, 0x64, 0x12,
	0x3a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0x92,
	0x41, 0x23, 0x2a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x17, 0x4c, 0x6f,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x63,
	0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, 0x92, 0x41, 0x1e, 0x2a, 0x04,
	0x43, 0x69, 0x74, 0x79, 0x32, 0x14, 0x43, 0x69, 0x74, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68,
	0x65, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x40, 0x01, 0x52, 0x04, 0x63, 0x69,
	0x74, 0x79, 0x12, 0x39, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x23, 0x92, 0x41, 0x20, 0x2a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x32, 0x15, 0x53,
	0x74, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x40, 0x01, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x41, 0x0a,
	0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27,
	0x92, 0x41, 0x24, 0x2a, 0x07, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x32, 0x17, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x72, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x6f, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x40, 0x01, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79,
	0x12, 0x3d, 0x0a, 0x06, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x25, 0x92, 0x41, 0x22, 0x2a, 0x06, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x32, 0x16, 0x6c,
	0x6f, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x6f, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x40, 0x01, 0x52, 0x06, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x12,
	0x45, 0x0a, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x29, 0x92, 0x41, 0x26, 0x2a, 0x08, 0x4c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65,
	0x32, 0x18, 0x4c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68,
	0x65, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x40, 0x01, 0x52, 0x08, 0x6c, 0x61,
	0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x49, 0x0a, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74,
	0x75, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0x92, 0x41, 0x28, 0x2a, 0x09,
	0x4c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x32, 0x19, 0x4c, 0x6f, 0x6e, 0x67, 0x69,
	0x74, 0x75, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x40, 0x01, 0x52, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64,
	0x65, 0x12, 0x51, 0x0a, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65,
	0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0x92, 0x41, 0x2c, 0x2a, 0x0b, 0x43, 0x6f, 0x75,
	0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x32, 0x1b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72,
	0x79, 0x43, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x6f, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x40, 0x01, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79,
	0x43, 0x6f, 0x64, 0x65, 0x12, 0x49, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x64,
	0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0x92, 0x41, 0x28, 0x2a, 0x09, 0x53, 0x74,
	0x61, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x32, 0x19, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f,
	0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x40, 0x01, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x22,
	0x98, 0x03, 0x0a, 0x0c, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74,
	0x12, 0x69, 0x0a, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x49, 0x92, 0x41, 0x46, 0x2a, 0x0b, 0x41, 0x50, 0x49, 0x20, 0x56,
	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0x20, 0x41, 0x50, 0x49, 0x20, 0x56, 0x65, 0x72, 0x73,
	0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20,
	0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3a, 0x13, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e,
	0x6b, 0x38, 0x73, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x69, 0x6f, 0x2f, 0x76, 0x33, 0x40, 0x01, 0x52,
	0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x04, 0x6b,
	0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x34, 0x92, 0x41, 0x31, 0x2a, 0x04,
	0x4b, 0x69, 0x6e, 0x64, 0x32, 0x19, 0x4b, 0x69, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68,
	0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3a,
	0x0c, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x40, 0x01, 0x52,
	0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x77, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
	0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x72, 0x61, 0x66, 0x61, 0x79, 0x2e,
	0x64, 0x65, 0x76, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
	0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
	0x42, 0x32, 0x92, 0x41, 0x2f, 0x2a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64,
	0x61, 0x74, 0x61, 0x32, 0x1d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x6f, 0x66,
	0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x40, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x5a,
	0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e,
	0x72, 0x61, 0x66, 0x61, 0x79, 0x2e, 0x64, 0x65, 0x76, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x6f, 0x42, 0x23,
	0x92, 0x41, 0x20, 0x2a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x32, 0x15, 0x4c, 0x69, 0x73, 0x74,
	0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x73, 0x40, 0x01, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0xa0, 0x04, 0x0a, 0x0f, 0x50,
	0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x6f,
	0x0a, 0x13, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f,
	0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3d, 0x92, 0x41, 0x3a,
	0x2a, 0x13, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f,
	0x76, 0x69, 0x64, 0x65, 0x72, 0x32, 0x23, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65,
	0x6e, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74,
	0x68, 0x65, 0x20, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x13, 0x65, 0x6e, 0x76, 0x69,
	0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12,
	0x5c, 0x0a, 0x12, 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x50, 0x72, 0x6f,
	0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0x92, 0x41, 0x29,
	0x2a, 0x12, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x76,
	0x69, 0x64, 0x65, 0x72, 0x32, 0x13, 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73,
	0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x12, 0x6b, 0x75, 0x62, 0x65, 0x72,
	0x6e, 0x65, 0x74, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x64, 0x0a,
	0x14, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f,
	0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0x92, 0x41, 0x2d,
	0x2a, 0x14, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x76, 0x69, 0x72,
	0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x32, 0x15, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f,
	0x6e, 0x20, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x14, 0x70,
	0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d,
	0x65, 0x6e, 0x74, 0x12, 0x65, 0x0a, 0x14, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e,
	0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x31, 0x92, 0x41, 0x2e, 0x2a, 0x14, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f,
	0x6e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x32, 0x16, 0x70, 0x72,
	0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x20,
	0x74, 0x79, 0x70, 0x65, 0x52, 0x14, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x50,
	0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, 0x0d, 0x70, 0x72,
	0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x22, 0x92, 0x41, 0x1f, 0x2a, 0x0d, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f,
	0x6e, 0x54, 0x79, 0x70, 0x65, 0x32, 0x0e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e,
	0x20, 0x74, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e,
	0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x11, 0x92, 0x41, 0x0e, 0x2a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x32,
	0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xef, 0x03,
	0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x38, 0x0a,
	0x09, 0x68, 0x74, 0x74, 0x70, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x1a, 0x92, 0x41, 0x17, 0x2a, 0x09, 0x48, 0x74, 0x74, 0x70, 0x50, 0x72, 0x6f, 0x78, 0x79,
	0x32, 0x0a, 0x68, 0x74, 0x74, 0x70, 0x20, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x09, 0x68, 0x74,
	0x74, 0x70, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x3c, 0x0a, 0x0a, 0x68, 0x74, 0x74, 0x70, 0x73,
	0x50, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1c, 0x92, 0x41, 0x19,
	0x2a, 0x0a, 0x48, 0x74, 0x74, 0x70, 0x73, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x32, 0x0b, 0x68, 0x74,
	0x74, 0x70, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x0a, 0x68, 0x74, 0x74, 0x70, 0x73,
	0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x2f, 0x0a, 0x07, 0x6e, 0x6f, 0x50, 0x72, 0x6f, 0x78, 0x79,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x15, 0x92, 0x41, 0x12, 0x2a, 0x07, 0x6e, 0x6f, 0x70,
	0x72, 0x6f, 0x78, 0x79, 0x32, 0x07, 0x6e, 0x6f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x07, 0x6e,
	0x6f, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x38, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x41,
	0x75, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x17, 0x2a, 0x09,
	0x50, 0x72, 0x6f, 0x78, 0x79, 0x41, 0x75, 0x74, 0x68, 0x32, 0x0a, 0x70, 0x72, 0x6f, 0x78, 0x79,
	0x20, 0x61, 0x75, 0x74, 0x68, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x41, 0x75, 0x74, 0x68,
	0x12, 0x6d, 0x0a, 0x16, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72,
	0x65, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08,
	0x42, 0x35, 0x92, 0x41, 0x32, 0x2a, 0x16, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x73, 0x65,
	0x63, 0x75, 0x72, 0x65, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x32, 0x18, 0x41,
	0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x62, 0x6f,
	0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x52, 0x16, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x49, 0x6e,
	0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x12,
	0x2f, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08,
	0x42, 0x15, 0x92, 0x41, 0x12, 0x2a, 0x07, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x32, 0x07,
	0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
	0x12, 0x5d, 0x0a, 0x0b, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x43, 0x41, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3b, 0x92, 0x41, 0x38, 0x2a, 0x0b, 0x42, 0x6f, 0x6f, 0x74,
	0x73, 0x74, 0x72, 0x61, 0x70, 0x43, 0x41, 0x32, 0x29, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
	0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x6f,
	0x66, 0x20, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x20, 0x73, 0x65, 0x72, 0x76,
	0x65, 0x72, 0x52, 0x0b, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x43, 0x41, 0x22,
	0x5c, 0x0a, 0x10, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x53,
	0x70, 0x65, 0x63, 0x12, 0x48, 0x0a, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x72, 0x61, 0x66, 0x61, 0x79, 0x2e, 0x64,
	0x65, 0x76, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x76,
	0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79,
	0x70, 0x65, 0x52, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x57, 0x0a,
	0x12, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x12, 0x41, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x72, 0x61, 0x66, 0x61, 0x79, 0x2e, 0x64, 0x65, 0x76, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52,
	0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xb5, 0x04, 0x0a, 0x0c, 0x43, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x64, 0x0a, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65,
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x44, 0x92, 0x41, 0x41,
	0x2a, 0x0b, 0x41, 0x50, 0x49, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0x1b, 0x41,
	0x50, 0x49, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68,
	0x65, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3a, 0x13, 0x69, 0x6e, 0x66, 0x72,
	0x61, 0x2e, 0x6b, 0x38, 0x73, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x69, 0x6f, 0x2f, 0x76, 0x33, 0x40,
	0x01, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a,
	0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0x92, 0x41, 0x27,
	0x2a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x32, 0x14, 0x4b, 0x69, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20,
	0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3a, 0x07, 0x43, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x40, 0x01, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x68, 0x0a,
	0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x23, 0x2e, 0x72, 0x61, 0x66, 0x61, 0x79, 0x2e, 0x64, 0x65, 0x76, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65, 0x74, 0x61,
	0x64, 0x61, 0x74, 0x61, 0x42, 0x27, 0x92, 0x41, 0x24, 0x2a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64,
	0x61, 0x74, 0x61, 0x32, 0x18, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x6f, 0x66,
	0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x08, 0x6d,
	0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x5f, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x72, 0x61, 0x66, 0x61, 0x79, 0x2e, 0x64, 0x65,
	0x76, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x76, 0x33,
	0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x53, 0x70, 0x65,
	0x63, 0x42, 0x1f, 0x92, 0x41, 0x1c, 0x2a, 0x04, 0x53, 0x70, 0x65, 0x63, 0x32, 0x14, 0x53, 0x70,
	0x65, 0x63, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x6b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x72, 0x61, 0x66, 0x61, 0x79,
	0x2e, 0x64, 0x65, 0x76, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61,
	0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e,
	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x25, 0x92, 0x41, 0x22, 0x2a, 0x06, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x32, 0x16, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74,
	0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x40, 0x01, 0x52, 0x06, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x3a, 0x47, 0x92, 0x41, 0x44, 0x0a, 0x42, 0x2a, 0x0c, 0x43, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0x0c, 0x43, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0xd2, 0x01, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65,
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0xd2, 0x01, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0xd2, 0x01, 0x08, 0x6d,
	0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xd2, 0x01, 0x04, 0x73, 0x70, 0x65, 0x63, 0x22, 0x4e,
	0x0a, 0x08, 0x4e, 0x61, 0x6d, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12,
	0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61,
	0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2a, 0x59,
	0x0a, 0x10, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61,
	0x74, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64,
	0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x4e, 0x6f, 0x74, 0x52, 0x65, 0x61, 0x64,
	0x79, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f,
	0x64, 0x65, 0x52, 0x65, 0x61, 0x64, 0x79, 0x10, 0x02, 0x2a, 0xfa, 0x01, 0x0a, 0x14, 0x43, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79,
	0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x42, 0x6c, 0x75,
	0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e,
	0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x10, 0x01,
	0x12, 0x12, 0x0a, 0x0e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b,
	0x49, 0x6e, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e,
	0x6f, 0x64, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x10, 0x04, 0x12, 0x18,
	0x0a, 0x14, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61,
	0x63, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x79, 0x10, 0x06, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x75, 0x78, 0x69, 0x6c, 0x69, 0x61, 0x72, 0x79, 0x54, 0x61,
	0x73, 0x6b, 0x53, 0x79, 0x6e, 0x63, 0x10, 0x07, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x41, 0x67, 0x65, 0x6e,
	0x74, 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x44, 0x65,
	0x6c, 0x65, 0x74, 0x65, 0x10, 0x09, 0x2a, 0x43, 0x0a, 0x10, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x4e, 0x6f,
	0x74, 0x53, 0x65, 0x74, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x12,
	0x0a, 0x0a, 0x06, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x10, 0x02, 0x2a, 0x56, 0x0a, 0x06, 0x48,
	0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x0f, 0x0a, 0x0b, 0x45, 0x44, 0x47, 0x45, 0x5f, 0x49, 0x47,
	0x4e, 0x4f, 0x52, 0x45, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x45, 0x44, 0x47, 0x45, 0x5f, 0x48,
	0x45, 0x41, 0x4c, 0x54, 0x48, 0x59, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x44, 0x47, 0x45,
	0x5f, 0x55, 0x4e, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x59, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11,
	0x45, 0x44, 0x47, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45,
	0x44, 0x10, 0x03, 0x2a, 0x2d, 0x0a, 0x10, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x6f,
	0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x54, 0x6f, 0x6b, 0x65, 0x6e,
	0x10, 0x00, 0x2a, 0x34, 0x0a, 0x11, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x6f, 0x6b,
	0x65, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x6f, 0x6b, 0x65, 0x6e,
	0x4e, 0x6f, 0x74, 0x55, 0x73, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x6f, 0x6b,
	0x65, 0x6e, 0x55, 0x73, 0x65, 0x64, 0x10, 0x01, 0x42, 0xf2, 0x01, 0x0a, 0x1c, 0x63, 0x6f, 0x6d,
	0x2e, 0x72, 0x61, 0x66, 0x61, 0x79, 0x2e, 0x64, 0x65, 0x76, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x76, 0x33, 0x42, 0x0c, 0x43, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3f, 0x67, 0x69, 0x74, 0x68, 0x75,
	0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x61, 0x66, 0x61, 0x79, 0x4c, 0x61, 0x62, 0x73, 0x2f,
	0x72, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x70, 0x62, 0x2f,
	0x76, 0x33, 0x3b, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x76, 0x33, 0xa2, 0x02, 0x04, 0x52, 0x44, 0x54,
	0x49, 0xaa, 0x02, 0x18, 0x52, 0x61, 0x66, 0x61, 0x79, 0x2e, 0x44, 0x65, 0x76, 0x2e, 0x54, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x56, 0x33, 0xca, 0x02, 0x18, 0x52,
	0x61, 0x66, 0x61, 0x79, 0x5c, 0x44, 0x65, 0x76, 0x5c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x5c, 0x49,
	0x6e, 0x66, 0x72, 0x61, 0x5c, 0x56, 0x33, 0xe2, 0x02, 0x24, 0x52, 0x61, 0x66, 0x61, 0x79, 0x5c,
	0x44, 0x65, 0x76, 0x5c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x5c, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x5c,
	0x56, 0x33, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02,
	0x1c, 0x52, 0x61, 0x66, 0x61, 0x79, 0x3a, 0x3a, 0x44, 0x65, 0x76, 0x3a, 0x3a, 0x54, 0x79, 0x70,
	0x65, 0x73, 0x3a, 0x3a, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x3a, 0x3a, 0x56, 0x33, 0x62, 0x06, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_proto_types_infrapb_v3_cluster_proto_rawDescOnce sync.Once
	file_proto_types_infrapb_v3_cluster_proto_rawDescData = file_proto_types_infrapb_v3_cluster_proto_rawDesc
)

func file_proto_types_infrapb_v3_cluster_proto_rawDescGZIP() []byte {
	file_proto_types_infrapb_v3_cluster_proto_rawDescOnce.Do(func() {
		file_proto_types_infrapb_v3_cluster_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_types_infrapb_v3_cluster_proto_rawDescData)
	})
	return file_proto_types_infrapb_v3_cluster_proto_rawDescData
}

var file_proto_types_infrapb_v3_cluster_proto_enumTypes = make([]protoimpl.EnumInfo, 6)
var file_proto_types_infrapb_v3_cluster_proto_msgTypes = make([]protoimpl.MessageInfo, 21)
var file_proto_types_infrapb_v3_cluster_proto_goTypes = []interface{}{
	(ClusterNodeState)(0),         // 0: rafay.dev.types.infra.v3.ClusterNodeState
	(ClusterConditionType)(0),     // 1: rafay.dev.types.infra.v3.ClusterConditionType
	(ClusterShareMode)(0),         // 2: rafay.dev.types.infra.v3.ClusterShareMode
	(Health)(0),                   // 3: rafay.dev.types.infra.v3.Health
	(ClusterTokenType)(0),         // 4: rafay.dev.types.infra.v3.ClusterTokenType
	(ClusterTokenState)(0),        // 5: rafay.dev.types.infra.v3.ClusterTokenState
	(*Cluster)(nil),               // 6: rafay.dev.types.infra.v3.Cluster
	(*ClusterList)(nil),           // 7: rafay.dev.types.infra.v3.ClusterList
	(*ClusterSpec)(nil),           // 8: rafay.dev.types.infra.v3.ClusterSpec
	(*ClusterData)(nil),           // 9: rafay.dev.types.infra.v3.ClusterData
	(*ClusterStatus)(nil),         // 10: rafay.dev.types.infra.v3.ClusterStatus
	(*Resources)(nil),             // 11: rafay.dev.types.infra.v3.Resources
	(*ProjectCluster)(nil),        // 12: rafay.dev.types.infra.v3.ProjectCluster
	(*ClusterNode)(nil),           // 13: rafay.dev.types.infra.v3.ClusterNode
	(*ClusterNodeSpec)(nil),       // 14: rafay.dev.types.infra.v3.ClusterNodeSpec
	(*ClusterNodeStatus)(nil),     // 15: rafay.dev.types.infra.v3.ClusterNodeStatus
	(*ClusterNodeIP)(nil),         // 16: rafay.dev.types.infra.v3.ClusterNodeIP
	(*ClusterCondition)(nil),      // 17: rafay.dev.types.infra.v3.ClusterCondition
	(*Location)(nil),              // 18: rafay.dev.types.infra.v3.Location
	(*Metro)(nil),                 // 19: rafay.dev.types.infra.v3.Metro
	(*LocationList)(nil),          // 20: rafay.dev.types.infra.v3.LocationList
	(*ProvisionParams)(nil),       // 21: rafay.dev.types.infra.v3.ProvisionParams
	(*ProxyConfig)(nil),           // 22: rafay.dev.types.infra.v3.ProxyConfig
	(*ClusterTokenSpec)(nil),      // 23: rafay.dev.types.infra.v3.ClusterTokenSpec
	(*ClusterTokenStatus)(nil),    // 24: rafay.dev.types.infra.v3.ClusterTokenStatus
	(*ClusterToken)(nil),          // 25: rafay.dev.types.infra.v3.ClusterToken
	(*NameHash)(nil),              // 26: rafay.dev.types.infra.v3.NameHash
	(*v3.Metadata)(nil),           // 27: rafay.dev.types.common.v3.Metadata
	(*v3.Status)(nil),             // 28: rafay.dev.types.common.v3.Status
	(*v3.ListMetadata)(nil),       // 29: rafay.dev.types.common.v3.ListMetadata
	(*v1.Taint)(nil),              // 30: k8s.io.api.core.v1.Taint
	(*v1.NodeCondition)(nil),      // 31: k8s.io.api.core.v1.NodeCondition
	(*v1.NodeSystemInfo)(nil),     // 32: k8s.io.api.core.v1.NodeSystemInfo
	(v3.RafayConditionStatus)(0),  // 33: rafay.dev.types.common.v3.RafayConditionStatus
	(*timestamppb.Timestamp)(nil), // 34: google.protobuf.Timestamp
}
var file_proto_types_infrapb_v3_cluster_proto_depIdxs = []int32{
	27, // 0: rafay.dev.types.infra.v3.Cluster.metadata:type_name -> rafay.dev.types.common.v3.Metadata
	8,  // 1: rafay.dev.types.infra.v3.Cluster.spec:type_name -> rafay.dev.types.infra.v3.ClusterSpec
	28, // 2: rafay.dev.types.infra.v3.Cluster.status:type_name -> rafay.dev.types.common.v3.Status
	29, // 3: rafay.dev.types.infra.v3.ClusterList.metadata:type_name -> rafay.dev.types.common.v3.ListMetadata
	6,  // 4: rafay.dev.types.infra.v3.ClusterList.items:type_name -> rafay.dev.types.infra.v3.Cluster
	19, // 5: rafay.dev.types.infra.v3.ClusterSpec.metro:type_name -> rafay.dev.types.infra.v3.Metro
	21, // 6: rafay.dev.types.infra.v3.ClusterSpec.params:type_name -> rafay.dev.types.infra.v3.ProvisionParams
	2,  // 7: rafay.dev.types.infra.v3.ClusterSpec.shareMode:type_name -> rafay.dev.types.infra.v3.ClusterShareMode
	22, // 8: rafay.dev.types.infra.v3.ClusterSpec.proxyConfig:type_name -> rafay.dev.types.infra.v3.ProxyConfig
	9,  // 9: rafay.dev.types.infra.v3.ClusterSpec.clusterData:type_name -> rafay.dev.types.infra.v3.ClusterData
	3,  // 10: rafay.dev.types.infra.v3.ClusterData.health:type_name -> rafay.dev.types.infra.v3.Health
	13, // 11: rafay.dev.types.infra.v3.ClusterData.nodes:type_name -> rafay.dev.types.infra.v3.ClusterNode
	12, // 12: rafay.dev.types.infra.v3.ClusterData.projects:type_name -> rafay.dev.types.infra.v3.ProjectCluster
	10, // 13: rafay.dev.types.infra.v3.ClusterData.cluster_status:type_name -> rafay.dev.types.infra.v3.ClusterStatus
	17, // 14: rafay.dev.types.infra.v3.ClusterStatus.conditions:type_name -> rafay.dev.types.infra.v3.ClusterCondition
	27, // 15: rafay.dev.types.infra.v3.ClusterNode.metadata:type_name -> rafay.dev.types.common.v3.Metadata
	14, // 16: rafay.dev.types.infra.v3.ClusterNode.spec:type_name -> rafay.dev.types.infra.v3.ClusterNodeSpec
	15, // 17: rafay.dev.types.infra.v3.ClusterNode.status:type_name -> rafay.dev.types.infra.v3.ClusterNodeStatus
	30, // 18: rafay.dev.types.infra.v3.ClusterNodeSpec.taints:type_name -> k8s.io.api.core.v1.Taint
	0,  // 19: rafay.dev.types.infra.v3.ClusterNodeStatus.state:type_name -> rafay.dev.types.infra.v3.ClusterNodeState
	31, // 20: rafay.dev.types.infra.v3.ClusterNodeStatus.conditions:type_name -> k8s.io.api.core.v1.NodeCondition
	32, // 21: rafay.dev.types.infra.v3.ClusterNodeStatus.nodeInfo:type_name -> k8s.io.api.core.v1.NodeSystemInfo
	11, // 22: rafay.dev.types.infra.v3.ClusterNodeStatus.capacity:type_name -> rafay.dev.types.infra.v3.Resources
	11, // 23: rafay.dev.types.infra.v3.ClusterNodeStatus.allocatable:type_name -> rafay.dev.types.infra.v3.Resources
	11, // 24: rafay.dev.types.infra.v3.ClusterNodeStatus.allocated:type_name -> rafay.dev.types.infra.v3.Resources
	16, // 25: rafay.dev.types.infra.v3.ClusterNodeStatus.ips:type_name -> rafay.dev.types.infra.v3.ClusterNodeIP
	1,  // 26: rafay.dev.types.infra.v3.ClusterCondition.type:type_name -> rafay.dev.types.infra.v3.ClusterConditionType
	33, // 27: rafay.dev.types.infra.v3.ClusterCondition.status:type_name -> rafay.dev.types.common.v3.RafayConditionStatus
	34, // 28: rafay.dev.types.infra.v3.ClusterCondition.lastUpdated:type_name -> google.protobuf.Timestamp
	27, // 29: rafay.dev.types.infra.v3.Location.metadata:type_name -> rafay.dev.types.common.v3.Metadata
	19, // 30: rafay.dev.types.infra.v3.Location.spec:type_name -> rafay.dev.types.infra.v3.Metro
	28, // 31: rafay.dev.types.infra.v3.Location.status:type_name -> rafay.dev.types.common.v3.Status
	29, // 32: rafay.dev.types.infra.v3.LocationList.metadata:type_name -> rafay.dev.types.common.v3.ListMetadata
	19, // 33: rafay.dev.types.infra.v3.LocationList.items:type_name -> rafay.dev.types.infra.v3.Metro
	4,  // 34: rafay.dev.types.infra.v3.ClusterTokenSpec.tokenType:type_name -> rafay.dev.types.infra.v3.ClusterTokenType
	5,  // 35: rafay.dev.types.infra.v3.ClusterTokenStatus.state:type_name -> rafay.dev.types.infra.v3.ClusterTokenState
	27, // 36: rafay.dev.types.infra.v3.ClusterToken.metadata:type_name -> rafay.dev.types.common.v3.Metadata
	23, // 37: rafay.dev.types.infra.v3.ClusterToken.spec:type_name -> rafay.dev.types.infra.v3.ClusterTokenSpec
	24, // 38: rafay.dev.types.infra.v3.ClusterToken.status:type_name -> rafay.dev.types.infra.v3.ClusterTokenStatus
	39, // [39:39] is the sub-list for method output_type
	39, // [39:39] is the sub-list for method input_type
	39, // [39:39] is the sub-list for extension type_name
	39, // [39:39] is the sub-list for extension extendee
	0,  // [0:39] is the sub-list for field type_name
}

func init() { file_proto_types_infrapb_v3_cluster_proto_init() }
func file_proto_types_infrapb_v3_cluster_proto_init() {
	if File_proto_types_infrapb_v3_cluster_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_proto_types_infrapb_v3_cluster_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Cluster); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_types_infrapb_v3_cluster_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ClusterList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_types_infrapb_v3_cluster_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ClusterSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_types_infrapb_v3_cluster_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ClusterData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_types_infrapb_v3_cluster_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ClusterStatus); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_types_infrapb_v3_cluster_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Resources); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_types_infrapb_v3_cluster_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ProjectCluster); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_types_infrapb_v3_cluster_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ClusterNode); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_types_infrapb_v3_cluster_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ClusterNodeSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_types_infrapb_v3_cluster_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ClusterNodeStatus); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_types_infrapb_v3_cluster_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ClusterNodeIP); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_types_infrapb_v3_cluster_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ClusterCondition); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_types_infrapb_v3_cluster_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Location); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_types_infrapb_v3_cluster_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Metro); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_types_infrapb_v3_cluster_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LocationList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_types_infrapb_v3_cluster_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ProvisionParams); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_types_infrapb_v3_cluster_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ProxyConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_types_infrapb_v3_cluster_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ClusterTokenSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_types_infrapb_v3_cluster_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ClusterTokenStatus); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_types_infrapb_v3_cluster_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ClusterToken); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_types_infrapb_v3_cluster_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*NameHash); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_proto_types_infrapb_v3_cluster_proto_rawDesc,
			NumEnums:      6,
			NumMessages:   21,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_proto_types_infrapb_v3_cluster_proto_goTypes,
		DependencyIndexes: file_proto_types_infrapb_v3_cluster_proto_depIdxs,
		EnumInfos:         file_proto_types_infrapb_v3_cluster_proto_enumTypes,
		MessageInfos:      file_proto_types_infrapb_v3_cluster_proto_msgTypes,
	}.Build()
	File_proto_types_infrapb_v3_cluster_proto = out.File
	file_proto_types_infrapb_v3_cluster_proto_rawDesc = nil
	file_proto_types_infrapb_v3_cluster_proto_goTypes = nil
	file_proto_types_infrapb_v3_cluster_proto_depIdxs = nil
}
