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

package dedicatedv1

import (
	datatypev1 "github.com/tidbcloud/tidb-management-service/api/spec/datatype/v1"
	v1 "github.com/tidbcloud/tidb-management-service/api/spec/global/common/v1"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	"google.golang.org/protobuf/proto"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	structpb "google.golang.org/protobuf/types/known/structpb"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type ClusterOperationType int32

const (
	ClusterOperationType_CLUSTER_OPERATION_TYPE_UNSPECIFIED ClusterOperationType = 0
	ClusterOperationType_SCALE                              ClusterOperationType = 1
	ClusterOperationType_PAUSE                              ClusterOperationType = 2
	ClusterOperationType_RESUME                             ClusterOperationType = 3
)

// Enum value maps for ClusterOperationType.
var (
	ClusterOperationType_name = map[int32]string{
		0: "CLUSTER_OPERATION_TYPE_UNSPECIFIED",
		1: "SCALE",
		2: "PAUSE",
		3: "RESUME",
	}
	ClusterOperationType_value = map[string]int32{
		"CLUSTER_OPERATION_TYPE_UNSPECIFIED": 0,
		"SCALE":                              1,
		"PAUSE":                              2,
		"RESUME":                             3,
	}
)

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

func (x ClusterOperationType) String() string {
	valueDesc := x.Descriptor().Values().ByNumber(x.Number())
	if proto.HasExtension(valueDesc.Options(), datatypev1.E_Name) {
		ext := proto.GetExtension(valueDesc.Options(), datatypev1.E_Name)
		s, ok := ext.(string)
		if ok && s != "" {
			return s
		}
	}
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ClusterOperationType) Descriptor() protoreflect.EnumDescriptor {
	return file_global_dedicated_v1_resources_proto_enumTypes[0].Descriptor()
}

func (ClusterOperationType) Type() protoreflect.EnumType {
	return &file_global_dedicated_v1_resources_proto_enumTypes[0]
}

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

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

type ClusterOperationState int32

const (
	ClusterOperationState_CLUSTER_OPERATION_STATE_UNSPECIFIED ClusterOperationState = 0
	ClusterOperationState_CREATED                             ClusterOperationState = 1
	ClusterOperationState_RUNNING                             ClusterOperationState = 2
	ClusterOperationState_DONE                                ClusterOperationState = 3
)

// Enum value maps for ClusterOperationState.
var (
	ClusterOperationState_name = map[int32]string{
		0: "CLUSTER_OPERATION_STATE_UNSPECIFIED",
		1: "CREATED",
		2: "RUNNING",
		3: "DONE",
	}
	ClusterOperationState_value = map[string]int32{
		"CLUSTER_OPERATION_STATE_UNSPECIFIED": 0,
		"CREATED":                             1,
		"RUNNING":                             2,
		"DONE":                                3,
	}
)

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

func (x ClusterOperationState) String() string {
	valueDesc := x.Descriptor().Values().ByNumber(x.Number())
	if proto.HasExtension(valueDesc.Options(), datatypev1.E_Name) {
		ext := proto.GetExtension(valueDesc.Options(), datatypev1.E_Name)
		s, ok := ext.(string)
		if ok && s != "" {
			return s
		}
	}
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ClusterOperationState) Descriptor() protoreflect.EnumDescriptor {
	return file_global_dedicated_v1_resources_proto_enumTypes[1].Descriptor()
}

func (ClusterOperationState) Type() protoreflect.EnumType {
	return &file_global_dedicated_v1_resources_proto_enumTypes[1]
}

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

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

type ComponentType int32

const (
	ComponentType_COMPONENT_TYPE_UNSPECIFIED ComponentType = 0
	ComponentType_TIKV                       ComponentType = 1
	ComponentType_TIDB                       ComponentType = 2
	ComponentType_TIFLASH                    ComponentType = 3
	ComponentType_TIFLASH_LEARNER            ComponentType = 4
	ComponentType_PD                         ComponentType = 5
	ComponentType_TIPROXY                    ComponentType = 6
)

// Enum value maps for ComponentType.
var (
	ComponentType_name = map[int32]string{
		0: "COMPONENT_TYPE_UNSPECIFIED",
		1: "TIKV",
		2: "TIDB",
		3: "TIFLASH",
		4: "TIFLASH_LEARNER",
		5: "PD",
		6: "TIPROXY",
	}
	ComponentType_value = map[string]int32{
		"COMPONENT_TYPE_UNSPECIFIED": 0,
		"TIKV":                       1,
		"TIDB":                       2,
		"TIFLASH":                    3,
		"TIFLASH_LEARNER":            4,
		"PD":                         5,
		"TIPROXY":                    6,
	}
)

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

func (x ComponentType) String() string {
	valueDesc := x.Descriptor().Values().ByNumber(x.Number())
	if proto.HasExtension(valueDesc.Options(), datatypev1.E_Name) {
		ext := proto.GetExtension(valueDesc.Options(), datatypev1.E_Name)
		s, ok := ext.(string)
		if ok && s != "" {
			return s
		}
	}
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ComponentType) Descriptor() protoreflect.EnumDescriptor {
	return file_global_dedicated_v1_resources_proto_enumTypes[2].Descriptor()
}

func (ComponentType) Type() protoreflect.EnumType {
	return &file_global_dedicated_v1_resources_proto_enumTypes[2]
}

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

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

type SKUType int32

const (
	SKUType_SKU_TYPE_UNSPECIFIED          SKUType = 0
	SKUType_SKU_TYPE_NODE                 SKUType = 1
	SKUType_SKU_TYPE_DISK_IOPS            SKUType = 21
	SKUType_SKU_TYPE_DISK_THROUGHPUT      SKUType = 22
	SKUType_SKU_TYPE_DISK_STORAGE         SKUType = 23
	SKUType_SKU_TYPE_DISK_ADDITIONAL_IOPS SKUType = 24
	SKUType_SKU_TYPE_TIPROXY              SKUType = 71
)

// Enum value maps for SKUType.
var (
	SKUType_name = map[int32]string{
		0:  "SKU_TYPE_UNSPECIFIED",
		1:  "SKU_TYPE_NODE",
		21: "SKU_TYPE_DISK_IOPS",
		22: "SKU_TYPE_DISK_THROUGHPUT",
		23: "SKU_TYPE_DISK_STORAGE",
		24: "SKU_TYPE_DISK_ADDITIONAL_IOPS",
		71: "SKU_TYPE_TIPROXY",
	}
	SKUType_value = map[string]int32{
		"SKU_TYPE_UNSPECIFIED":          0,
		"SKU_TYPE_NODE":                 1,
		"SKU_TYPE_DISK_IOPS":            21,
		"SKU_TYPE_DISK_THROUGHPUT":      22,
		"SKU_TYPE_DISK_STORAGE":         23,
		"SKU_TYPE_DISK_ADDITIONAL_IOPS": 24,
		"SKU_TYPE_TIPROXY":              71,
	}
)

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

func (x SKUType) String() string {
	valueDesc := x.Descriptor().Values().ByNumber(x.Number())
	if proto.HasExtension(valueDesc.Options(), datatypev1.E_Name) {
		ext := proto.GetExtension(valueDesc.Options(), datatypev1.E_Name)
		s, ok := ext.(string)
		if ok && s != "" {
			return s
		}
	}
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (SKUType) Descriptor() protoreflect.EnumDescriptor {
	return file_global_dedicated_v1_resources_proto_enumTypes[3].Descriptor()
}

func (SKUType) Type() protoreflect.EnumType {
	return &file_global_dedicated_v1_resources_proto_enumTypes[3]
}

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

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

type PrivateLinkIPAddressType int32

const (
	PrivateLinkIPAddressType_PRIVATE_LINK_IP_ADDRESS_TYPE_UNSPECIFIED PrivateLinkIPAddressType = 0
	PrivateLinkIPAddressType_PRIVATE_LINK_IP_ADDRESS_TYPE_IPV4        PrivateLinkIPAddressType = 1
	PrivateLinkIPAddressType_PRIVATE_LINK_IP_ADDRESS_TYPE_IPV6        PrivateLinkIPAddressType = 2
	PrivateLinkIPAddressType_PRIVATE_LINK_IP_ADDRESS_TYPE_DUALSTACK   PrivateLinkIPAddressType = 3
)

// Enum value maps for PrivateLinkIPAddressType.
var (
	PrivateLinkIPAddressType_name = map[int32]string{
		0: "PRIVATE_LINK_IP_ADDRESS_TYPE_UNSPECIFIED",
		1: "PRIVATE_LINK_IP_ADDRESS_TYPE_IPV4",
		2: "PRIVATE_LINK_IP_ADDRESS_TYPE_IPV6",
		3: "PRIVATE_LINK_IP_ADDRESS_TYPE_DUALSTACK",
	}
	PrivateLinkIPAddressType_value = map[string]int32{
		"PRIVATE_LINK_IP_ADDRESS_TYPE_UNSPECIFIED": 0,
		"PRIVATE_LINK_IP_ADDRESS_TYPE_IPV4":        1,
		"PRIVATE_LINK_IP_ADDRESS_TYPE_IPV6":        2,
		"PRIVATE_LINK_IP_ADDRESS_TYPE_DUALSTACK":   3,
	}
)

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

func (x PrivateLinkIPAddressType) String() string {
	valueDesc := x.Descriptor().Values().ByNumber(x.Number())
	if proto.HasExtension(valueDesc.Options(), datatypev1.E_Name) {
		ext := proto.GetExtension(valueDesc.Options(), datatypev1.E_Name)
		s, ok := ext.(string)
		if ok && s != "" {
			return s
		}
	}
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (PrivateLinkIPAddressType) Descriptor() protoreflect.EnumDescriptor {
	return file_global_dedicated_v1_resources_proto_enumTypes[4].Descriptor()
}

func (PrivateLinkIPAddressType) Type() protoreflect.EnumType {
	return &file_global_dedicated_v1_resources_proto_enumTypes[4]
}

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

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

type Cluster_HealthState int32

const (
	Cluster_HEALTH_STATE_UNSPECIFIED Cluster_HealthState = 0
	Cluster_HEALTHY                  Cluster_HealthState = 1
	Cluster_UNHEALTHY                Cluster_HealthState = 2
)

// Enum value maps for Cluster_HealthState.
var (
	Cluster_HealthState_name = map[int32]string{
		0: "HEALTH_STATE_UNSPECIFIED",
		1: "HEALTHY",
		2: "UNHEALTHY",
	}
	Cluster_HealthState_value = map[string]int32{
		"HEALTH_STATE_UNSPECIFIED": 0,
		"HEALTHY":                  1,
		"UNHEALTHY":                2,
	}
)

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

func (x Cluster_HealthState) String() string {
	valueDesc := x.Descriptor().Values().ByNumber(x.Number())
	if proto.HasExtension(valueDesc.Options(), datatypev1.E_Name) {
		ext := proto.GetExtension(valueDesc.Options(), datatypev1.E_Name)
		s, ok := ext.(string)
		if ok && s != "" {
			return s
		}
	}
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Cluster_HealthState) Descriptor() protoreflect.EnumDescriptor {
	return file_global_dedicated_v1_resources_proto_enumTypes[5].Descriptor()
}

func (Cluster_HealthState) Type() protoreflect.EnumType {
	return &file_global_dedicated_v1_resources_proto_enumTypes[5]
}

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

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

type Cluster_State int32

const (
	Cluster_STATE_UNSPECIFIED Cluster_State = 0
	Cluster_CREATING          Cluster_State = 1
	Cluster_AVAILABLE         Cluster_State = 2
	Cluster_MODIFYING         Cluster_State = 3
	Cluster_PAUSED            Cluster_State = 4
	Cluster_RESUMING          Cluster_State = 5
	Cluster_UNAVAILABLE       Cluster_State = 6
	Cluster_PAUSING           Cluster_State = 7
	Cluster_SCALING           Cluster_State = 8
	Cluster_DELETED           Cluster_State = 9
)

// Enum value maps for Cluster_State.
var (
	Cluster_State_name = map[int32]string{
		0: "STATE_UNSPECIFIED",
		1: "CREATING",
		2: "AVAILABLE",
		3: "MODIFYING",
		4: "PAUSED",
		5: "RESUMING",
		6: "UNAVAILABLE",
		7: "PAUSING",
		8: "SCALING",
		9: "DELETED",
	}
	Cluster_State_value = map[string]int32{
		"STATE_UNSPECIFIED": 0,
		"CREATING":          1,
		"AVAILABLE":         2,
		"MODIFYING":         3,
		"PAUSED":            4,
		"RESUMING":          5,
		"UNAVAILABLE":       6,
		"PAUSING":           7,
		"SCALING":           8,
		"DELETED":           9,
	}
)

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

func (x Cluster_State) String() string {
	valueDesc := x.Descriptor().Values().ByNumber(x.Number())
	if proto.HasExtension(valueDesc.Options(), datatypev1.E_Name) {
		ext := proto.GetExtension(valueDesc.Options(), datatypev1.E_Name)
		s, ok := ext.(string)
		if ok && s != "" {
			return s
		}
	}
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Cluster_State) Descriptor() protoreflect.EnumDescriptor {
	return file_global_dedicated_v1_resources_proto_enumTypes[6].Descriptor()
}

func (Cluster_State) Type() protoreflect.EnumType {
	return &file_global_dedicated_v1_resources_proto_enumTypes[6]
}

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

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

type Cluster_PausePlan_Type int32

const (
	Cluster_PausePlan_PAUSE_TYPE_UNSPECIFIED Cluster_PausePlan_Type = 0
	Cluster_PausePlan_NORMAL                 Cluster_PausePlan_Type = 1
	Cluster_PausePlan_LONG                   Cluster_PausePlan_Type = 2 // not supported yet
)

// Enum value maps for Cluster_PausePlan_Type.
var (
	Cluster_PausePlan_Type_name = map[int32]string{
		0: "PAUSE_TYPE_UNSPECIFIED",
		1: "NORMAL",
		2: "LONG",
	}
	Cluster_PausePlan_Type_value = map[string]int32{
		"PAUSE_TYPE_UNSPECIFIED": 0,
		"NORMAL":                 1,
		"LONG":                   2,
	}
)

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

func (x Cluster_PausePlan_Type) String() string {
	valueDesc := x.Descriptor().Values().ByNumber(x.Number())
	if proto.HasExtension(valueDesc.Options(), datatypev1.E_Name) {
		ext := proto.GetExtension(valueDesc.Options(), datatypev1.E_Name)
		s, ok := ext.(string)
		if ok && s != "" {
			return s
		}
	}
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Cluster_PausePlan_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_global_dedicated_v1_resources_proto_enumTypes[7].Descriptor()
}

func (Cluster_PausePlan_Type) Type() protoreflect.EnumType {
	return &file_global_dedicated_v1_resources_proto_enumTypes[7]
}

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

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

type VpcPeering_State int32

const (
	VpcPeering_STATE_UNSPECIFIED VpcPeering_State = 0
	VpcPeering_PENDING           VpcPeering_State = 1
	VpcPeering_FAILED            VpcPeering_State = 2
	VpcPeering_ACTIVE            VpcPeering_State = 3
)

// Enum value maps for VpcPeering_State.
var (
	VpcPeering_State_name = map[int32]string{
		0: "STATE_UNSPECIFIED",
		1: "PENDING",
		2: "FAILED",
		3: "ACTIVE",
	}
	VpcPeering_State_value = map[string]int32{
		"STATE_UNSPECIFIED": 0,
		"PENDING":           1,
		"FAILED":            2,
		"ACTIVE":            3,
	}
)

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

func (x VpcPeering_State) String() string {
	valueDesc := x.Descriptor().Values().ByNumber(x.Number())
	if proto.HasExtension(valueDesc.Options(), datatypev1.E_Name) {
		ext := proto.GetExtension(valueDesc.Options(), datatypev1.E_Name)
		s, ok := ext.(string)
		if ok && s != "" {
			return s
		}
	}
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (VpcPeering_State) Descriptor() protoreflect.EnumDescriptor {
	return file_global_dedicated_v1_resources_proto_enumTypes[8].Descriptor()
}

func (VpcPeering_State) Type() protoreflect.EnumType {
	return &file_global_dedicated_v1_resources_proto_enumTypes[8]
}

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

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

type VpcPeering_Type int32

const (
	VpcPeering_TYPE_UNSPECIFIED  VpcPeering_Type = 0
	VpcPeering_CUSTOMER          VpcPeering_Type = 1
	VpcPeering_DBAAS             VpcPeering_Type = 2
	VpcPeering_CUSTOMER_READONLY VpcPeering_Type = 3
)

// Enum value maps for VpcPeering_Type.
var (
	VpcPeering_Type_name = map[int32]string{
		0: "TYPE_UNSPECIFIED",
		1: "CUSTOMER",
		2: "DBAAS",
		3: "CUSTOMER_READONLY",
	}
	VpcPeering_Type_value = map[string]int32{
		"TYPE_UNSPECIFIED":  0,
		"CUSTOMER":          1,
		"DBAAS":             2,
		"CUSTOMER_READONLY": 3,
	}
)

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

func (x VpcPeering_Type) String() string {
	valueDesc := x.Descriptor().Values().ByNumber(x.Number())
	if proto.HasExtension(valueDesc.Options(), datatypev1.E_Name) {
		ext := proto.GetExtension(valueDesc.Options(), datatypev1.E_Name)
		s, ok := ext.(string)
		if ok && s != "" {
			return s
		}
	}
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (VpcPeering_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_global_dedicated_v1_resources_proto_enumTypes[9].Descriptor()
}

func (VpcPeering_Type) Type() protoreflect.EnumType {
	return &file_global_dedicated_v1_resources_proto_enumTypes[9]
}

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

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

type InstanceMu_CpuArch int32

const (
	InstanceMu_CPU_ARCH_UNSPECIFIED InstanceMu_CpuArch = 0
	// Amd64 is the same thing as x86_64.
	InstanceMu_AMD64 InstanceMu_CpuArch = 1
	InstanceMu_ARM64 InstanceMu_CpuArch = 2
)

// Enum value maps for InstanceMu_CpuArch.
var (
	InstanceMu_CpuArch_name = map[int32]string{
		0: "CPU_ARCH_UNSPECIFIED",
		1: "AMD64",
		2: "ARM64",
	}
	InstanceMu_CpuArch_value = map[string]int32{
		"CPU_ARCH_UNSPECIFIED": 0,
		"AMD64":                1,
		"ARM64":                2,
	}
)

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

func (x InstanceMu_CpuArch) String() string {
	valueDesc := x.Descriptor().Values().ByNumber(x.Number())
	if proto.HasExtension(valueDesc.Options(), datatypev1.E_Name) {
		ext := proto.GetExtension(valueDesc.Options(), datatypev1.E_Name)
		s, ok := ext.(string)
		if ok && s != "" {
			return s
		}
	}
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (InstanceMu_CpuArch) Descriptor() protoreflect.EnumDescriptor {
	return file_global_dedicated_v1_resources_proto_enumTypes[10].Descriptor()
}

func (InstanceMu_CpuArch) Type() protoreflect.EnumType {
	return &file_global_dedicated_v1_resources_proto_enumTypes[10]
}

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

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

type InstanceMu_CpuGeneration int32

const (
	InstanceMu_CPU_GENERATION_UNSPECIFIED InstanceMu_CpuGeneration = 0
	// AWS self developed arm processors.
	InstanceMu_GRAVITON2 InstanceMu_CpuGeneration = 1
	InstanceMu_GRAVITON3 InstanceMu_CpuGeneration = 2
	InstanceMu_GRAVITON4 InstanceMu_CpuGeneration = 3
	// GCP. Refer to https://cloud.google.com/compute/docs/machine-resource#machine_type_comparison.
	InstanceMu_GENERATION1_INTEL_XEON InstanceMu_CpuGeneration = 21
	InstanceMu_GENERATION2_INTEL_XEON InstanceMu_CpuGeneration = 22
	InstanceMu_GENERATION2_AMD_EPYC   InstanceMu_CpuGeneration = 23
	InstanceMu_GENERATION4_INTEL_XEON InstanceMu_CpuGeneration = 24
	InstanceMu_GENERATION4_AXION      InstanceMu_CpuGeneration = 25
	InstanceMu_GENERATION4_AMD_EPYC   InstanceMu_CpuGeneration = 26
	// Azure.
	// Arm.
	InstanceMu_AMPERE_ALTRA InstanceMu_CpuGeneration = 103
	// Azure self developed arm64 processors.
	InstanceMu_COBALT_100 InstanceMu_CpuGeneration = 104
)

// Enum value maps for InstanceMu_CpuGeneration.
var (
	InstanceMu_CpuGeneration_name = map[int32]string{
		0:   "CPU_GENERATION_UNSPECIFIED",
		1:   "GRAVITON2",
		2:   "GRAVITON3",
		3:   "GRAVITON4",
		21:  "GENERATION1_INTEL_XEON",
		22:  "GENERATION2_INTEL_XEON",
		23:  "GENERATION2_AMD_EPYC",
		24:  "GENERATION4_INTEL_XEON",
		25:  "GENERATION4_AXION",
		26:  "GENERATION4_AMD_EPYC",
		103: "AMPERE_ALTRA",
		104: "COBALT_100",
	}
	InstanceMu_CpuGeneration_value = map[string]int32{
		"CPU_GENERATION_UNSPECIFIED": 0,
		"GRAVITON2":                  1,
		"GRAVITON3":                  2,
		"GRAVITON4":                  3,
		"GENERATION1_INTEL_XEON":     21,
		"GENERATION2_INTEL_XEON":     22,
		"GENERATION2_AMD_EPYC":       23,
		"GENERATION4_INTEL_XEON":     24,
		"GENERATION4_AXION":          25,
		"GENERATION4_AMD_EPYC":       26,
		"AMPERE_ALTRA":               103,
		"COBALT_100":                 104,
	}
)

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

func (x InstanceMu_CpuGeneration) String() string {
	valueDesc := x.Descriptor().Values().ByNumber(x.Number())
	if proto.HasExtension(valueDesc.Options(), datatypev1.E_Name) {
		ext := proto.GetExtension(valueDesc.Options(), datatypev1.E_Name)
		s, ok := ext.(string)
		if ok && s != "" {
			return s
		}
	}
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (InstanceMu_CpuGeneration) Descriptor() protoreflect.EnumDescriptor {
	return file_global_dedicated_v1_resources_proto_enumTypes[11].Descriptor()
}

func (InstanceMu_CpuGeneration) Type() protoreflect.EnumType {
	return &file_global_dedicated_v1_resources_proto_enumTypes[11]
}

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

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

type StorageMu_VolumeType int32

const (
	StorageMu_VOLUME_TYPE_UNSPECIFIED StorageMu_VolumeType = 0
	// AWS
	StorageMu_GP3 StorageMu_VolumeType = 2
	StorageMu_IO2 StorageMu_VolumeType = 3
	// GCP
	StorageMu_PD_SSD StorageMu_VolumeType = 4
	// Azure
	StorageMu_PREMIUMV2 StorageMu_VolumeType = 5
	StorageMu_ULTRASSD  StorageMu_VolumeType = 6
	// GCP Hyperdisk Balanced
	StorageMu_HYPERDISK_BALANCED StorageMu_VolumeType = 7
	StorageMu_HYPERDISK_EXTREME  StorageMu_VolumeType = 8
	// Deprecated
	//
	// Deprecated: Marked as deprecated in global/dedicated/v1/resources.proto.
	StorageMu_GP2 StorageMu_VolumeType = 1
	// Deprecated: Marked as deprecated in global/dedicated/v1/resources.proto.
	StorageMu_LOCAL_STORAGE StorageMu_VolumeType = 99
)

// Enum value maps for StorageMu_VolumeType.
var (
	StorageMu_VolumeType_name = map[int32]string{
		0:  "VOLUME_TYPE_UNSPECIFIED",
		2:  "GP3",
		3:  "IO2",
		4:  "PD_SSD",
		5:  "PREMIUMV2",
		6:  "ULTRASSD",
		7:  "HYPERDISK_BALANCED",
		8:  "HYPERDISK_EXTREME",
		1:  "GP2",
		99: "LOCAL_STORAGE",
	}
	StorageMu_VolumeType_value = map[string]int32{
		"VOLUME_TYPE_UNSPECIFIED": 0,
		"GP3":                     2,
		"IO2":                     3,
		"PD_SSD":                  4,
		"PREMIUMV2":               5,
		"ULTRASSD":                6,
		"HYPERDISK_BALANCED":      7,
		"HYPERDISK_EXTREME":       8,
		"GP2":                     1,
		"LOCAL_STORAGE":           99,
	}
)

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

func (x StorageMu_VolumeType) String() string {
	valueDesc := x.Descriptor().Values().ByNumber(x.Number())
	if proto.HasExtension(valueDesc.Options(), datatypev1.E_Name) {
		ext := proto.GetExtension(valueDesc.Options(), datatypev1.E_Name)
		s, ok := ext.(string)
		if ok && s != "" {
			return s
		}
	}
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (StorageMu_VolumeType) Descriptor() protoreflect.EnumDescriptor {
	return file_global_dedicated_v1_resources_proto_enumTypes[12].Descriptor()
}

func (StorageMu_VolumeType) Type() protoreflect.EnumType {
	return &file_global_dedicated_v1_resources_proto_enumTypes[12]
}

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

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

type Sku_DiskType int32

const (
	Sku_DISK_TYPE_UNSPECIFIED Sku_DiskType = 0
	Sku_DATA                  Sku_DiskType = 1
	Sku_RAFT_LOG              Sku_DiskType = 2
)

// Enum value maps for Sku_DiskType.
var (
	Sku_DiskType_name = map[int32]string{
		0: "DISK_TYPE_UNSPECIFIED",
		1: "DATA",
		2: "RAFT_LOG",
	}
	Sku_DiskType_value = map[string]int32{
		"DISK_TYPE_UNSPECIFIED": 0,
		"DATA":                  1,
		"RAFT_LOG":              2,
	}
)

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

func (x Sku_DiskType) String() string {
	valueDesc := x.Descriptor().Values().ByNumber(x.Number())
	if proto.HasExtension(valueDesc.Options(), datatypev1.E_Name) {
		ext := proto.GetExtension(valueDesc.Options(), datatypev1.E_Name)
		s, ok := ext.(string)
		if ok && s != "" {
			return s
		}
	}
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Sku_DiskType) Descriptor() protoreflect.EnumDescriptor {
	return file_global_dedicated_v1_resources_proto_enumTypes[13].Descriptor()
}

func (Sku_DiskType) Type() protoreflect.EnumType {
	return &file_global_dedicated_v1_resources_proto_enumTypes[13]
}

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

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

type Sku_Condition_Key int32

const (
	Sku_Condition_KEY_UNSPECIFIED Sku_Condition_Key = 0
	Sku_Condition_TENANT          Sku_Condition_Key = 1
	// PROJECT = 2;
	Sku_Condition_PROVIDER        Sku_Condition_Key = 3
	Sku_Condition_REGION          Sku_Condition_Key = 4
	Sku_Condition_ATTACH_TIERUNIT Sku_Condition_Key = 5
	Sku_Condition_TIKV_TOTAL_CPU  Sku_Condition_Key = 6
	// internal use
	Sku_Condition_TIER_ID   Sku_Condition_Key = 7
	Sku_Condition_CPUARCH   Sku_Condition_Key = 8
	Sku_Condition_COMPONENT Sku_Condition_Key = 9
)

// Enum value maps for Sku_Condition_Key.
var (
	Sku_Condition_Key_name = map[int32]string{
		0: "KEY_UNSPECIFIED",
		1: "TENANT",
		3: "PROVIDER",
		4: "REGION",
		5: "ATTACH_TIERUNIT",
		6: "TIKV_TOTAL_CPU",
		7: "TIER_ID",
		8: "CPUARCH",
		9: "COMPONENT",
	}
	Sku_Condition_Key_value = map[string]int32{
		"KEY_UNSPECIFIED": 0,
		"TENANT":          1,
		"PROVIDER":        3,
		"REGION":          4,
		"ATTACH_TIERUNIT": 5,
		"TIKV_TOTAL_CPU":  6,
		"TIER_ID":         7,
		"CPUARCH":         8,
		"COMPONENT":       9,
	}
)

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

func (x Sku_Condition_Key) String() string {
	valueDesc := x.Descriptor().Values().ByNumber(x.Number())
	if proto.HasExtension(valueDesc.Options(), datatypev1.E_Name) {
		ext := proto.GetExtension(valueDesc.Options(), datatypev1.E_Name)
		s, ok := ext.(string)
		if ok && s != "" {
			return s
		}
	}
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Sku_Condition_Key) Descriptor() protoreflect.EnumDescriptor {
	return file_global_dedicated_v1_resources_proto_enumTypes[14].Descriptor()
}

func (Sku_Condition_Key) Type() protoreflect.EnumType {
	return &file_global_dedicated_v1_resources_proto_enumTypes[14]
}

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

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

type Sku_Condition_Operator int32

const (
	Sku_Condition_OPERATOR_UNSPECIFIED Sku_Condition_Operator = 0
	Sku_Condition_EQ                   Sku_Condition_Operator = 1
	Sku_Condition_NE                   Sku_Condition_Operator = 2
	Sku_Condition_IN                   Sku_Condition_Operator = 3
	Sku_Condition_NOTIN                Sku_Condition_Operator = 4
	Sku_Condition_RANGE                Sku_Condition_Operator = 5
)

// Enum value maps for Sku_Condition_Operator.
var (
	Sku_Condition_Operator_name = map[int32]string{
		0: "OPERATOR_UNSPECIFIED",
		1: "EQ",
		2: "NE",
		3: "IN",
		4: "NOTIN",
		5: "RANGE",
	}
	Sku_Condition_Operator_value = map[string]int32{
		"OPERATOR_UNSPECIFIED": 0,
		"EQ":                   1,
		"NE":                   2,
		"IN":                   3,
		"NOTIN":                4,
		"RANGE":                5,
	}
)

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

func (x Sku_Condition_Operator) String() string {
	valueDesc := x.Descriptor().Values().ByNumber(x.Number())
	if proto.HasExtension(valueDesc.Options(), datatypev1.E_Name) {
		ext := proto.GetExtension(valueDesc.Options(), datatypev1.E_Name)
		s, ok := ext.(string)
		if ok && s != "" {
			return s
		}
	}
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Sku_Condition_Operator) Descriptor() protoreflect.EnumDescriptor {
	return file_global_dedicated_v1_resources_proto_enumTypes[15].Descriptor()
}

func (Sku_Condition_Operator) Type() protoreflect.EnumType {
	return &file_global_dedicated_v1_resources_proto_enumTypes[15]
}

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

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

type Spu_StorageType int32

const (
	Spu_STORAGE_TYPE_UNSPECIFIED Spu_StorageType = 0
	// Data disk: gp3; Raft log disk: none.
	Spu_Basic Spu_StorageType = 1
	// Data disk: gp3; Raft log disk: gp3.
	Spu_Standard Spu_StorageType = 2
	// Data disk: gp3; Raft log disk: io2.
	Spu_Performance Spu_StorageType = 3
	// Data disk: io2; Raft log disk: none.
	Spu_Plus Spu_StorageType = 4
)

// Enum value maps for Spu_StorageType.
var (
	Spu_StorageType_name = map[int32]string{
		0: "STORAGE_TYPE_UNSPECIFIED",
		1: "Basic",
		2: "Standard",
		3: "Performance",
		4: "Plus",
	}
	Spu_StorageType_value = map[string]int32{
		"STORAGE_TYPE_UNSPECIFIED": 0,
		"Basic":                    1,
		"Standard":                 2,
		"Performance":              3,
		"Plus":                     4,
	}
)

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

func (x Spu_StorageType) String() string {
	valueDesc := x.Descriptor().Values().ByNumber(x.Number())
	if proto.HasExtension(valueDesc.Options(), datatypev1.E_Name) {
		ext := proto.GetExtension(valueDesc.Options(), datatypev1.E_Name)
		s, ok := ext.(string)
		if ok && s != "" {
			return s
		}
	}
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Spu_StorageType) Descriptor() protoreflect.EnumDescriptor {
	return file_global_dedicated_v1_resources_proto_enumTypes[16].Descriptor()
}

func (Spu_StorageType) Type() protoreflect.EnumType {
	return &file_global_dedicated_v1_resources_proto_enumTypes[16]
}

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

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

type ClusterApplyMask_Strategy int32

const (
	ClusterApplyMask_STRATEGY_UNSPECIFIED ClusterApplyMask_Strategy = 0
	ClusterApplyMask_ROLLING_RESTART      ClusterApplyMask_Strategy = 1
	ClusterApplyMask_HOT_RELOAD           ClusterApplyMask_Strategy = 2
	// CHANGE_CM_ONLY means only change config content into ConfigMap but don't do extra
	// apply operations(such as hotReload or rollingRestart) to apply it to component.
	// Note: There are some components may periodically reload config, so these components still use the new configuration
	// even if without apply operations.
	//
	// This Strategy is useful for ShutdownOperation, such as 'Shutdown for Config Change' which we will recreate all pods of cluster.
	ClusterApplyMask_CHANGE_CM_ONLY ClusterApplyMask_Strategy = 3
	// EnsureUpdateToTC is similar with CHANGE_CM_ONLY but without checking whether
	// config content is applied to ConfigMaps.
	ClusterApplyMask_ENSURE_UPDATE_TO_TC ClusterApplyMask_Strategy = 4
)

// Enum value maps for ClusterApplyMask_Strategy.
var (
	ClusterApplyMask_Strategy_name = map[int32]string{
		0: "STRATEGY_UNSPECIFIED",
		1: "ROLLING_RESTART",
		2: "HOT_RELOAD",
		3: "CHANGE_CM_ONLY",
		4: "ENSURE_UPDATE_TO_TC",
	}
	ClusterApplyMask_Strategy_value = map[string]int32{
		"STRATEGY_UNSPECIFIED": 0,
		"ROLLING_RESTART":      1,
		"HOT_RELOAD":           2,
		"CHANGE_CM_ONLY":       3,
		"ENSURE_UPDATE_TO_TC":  4,
	}
)

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

func (x ClusterApplyMask_Strategy) String() string {
	valueDesc := x.Descriptor().Values().ByNumber(x.Number())
	if proto.HasExtension(valueDesc.Options(), datatypev1.E_Name) {
		ext := proto.GetExtension(valueDesc.Options(), datatypev1.E_Name)
		s, ok := ext.(string)
		if ok && s != "" {
			return s
		}
	}
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ClusterApplyMask_Strategy) Descriptor() protoreflect.EnumDescriptor {
	return file_global_dedicated_v1_resources_proto_enumTypes[17].Descriptor()
}

func (ClusterApplyMask_Strategy) Type() protoreflect.EnumType {
	return &file_global_dedicated_v1_resources_proto_enumTypes[17]
}

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

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

type ComponentNodeInfo_Component_Node_State int32

const (
	ComponentNodeInfo_Component_Node_STATE_UNSPECIFIED ComponentNodeInfo_Component_Node_State = 0
	ComponentNodeInfo_Component_Node_AVAILABLE         ComponentNodeInfo_Component_Node_State = 1
	ComponentNodeInfo_Component_Node_UNAVAILABLE       ComponentNodeInfo_Component_Node_State = 2
	ComponentNodeInfo_Component_Node_CREATING          ComponentNodeInfo_Component_Node_State = 3
	ComponentNodeInfo_Component_Node_DELETING          ComponentNodeInfo_Component_Node_State = 4
)

// Enum value maps for ComponentNodeInfo_Component_Node_State.
var (
	ComponentNodeInfo_Component_Node_State_name = map[int32]string{
		0: "STATE_UNSPECIFIED",
		1: "AVAILABLE",
		2: "UNAVAILABLE",
		3: "CREATING",
		4: "DELETING",
	}
	ComponentNodeInfo_Component_Node_State_value = map[string]int32{
		"STATE_UNSPECIFIED": 0,
		"AVAILABLE":         1,
		"UNAVAILABLE":       2,
		"CREATING":          3,
		"DELETING":          4,
	}
)

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

func (x ComponentNodeInfo_Component_Node_State) String() string {
	valueDesc := x.Descriptor().Values().ByNumber(x.Number())
	if proto.HasExtension(valueDesc.Options(), datatypev1.E_Name) {
		ext := proto.GetExtension(valueDesc.Options(), datatypev1.E_Name)
		s, ok := ext.(string)
		if ok && s != "" {
			return s
		}
	}
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ComponentNodeInfo_Component_Node_State) Descriptor() protoreflect.EnumDescriptor {
	return file_global_dedicated_v1_resources_proto_enumTypes[18].Descriptor()
}

func (ComponentNodeInfo_Component_Node_State) Type() protoreflect.EnumType {
	return &file_global_dedicated_v1_resources_proto_enumTypes[18]
}

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

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

type TidbNodeGroup_State int32

const (
	TidbNodeGroup_STATE_UNSPECIFIED TidbNodeGroup_State = 0
	// All nodes are ready.
	TidbNodeGroup_ACTIVE TidbNodeGroup_State = 1
	// When TiDB group is modifying.
	TidbNodeGroup_MODIFYING TidbNodeGroup_State = 2
	// When cluster is paused.
	TidbNodeGroup_PAUSED TidbNodeGroup_State = 3
)

// Enum value maps for TidbNodeGroup_State.
var (
	TidbNodeGroup_State_name = map[int32]string{
		0: "STATE_UNSPECIFIED",
		1: "ACTIVE",
		2: "MODIFYING",
		3: "PAUSED",
	}
	TidbNodeGroup_State_value = map[string]int32{
		"STATE_UNSPECIFIED": 0,
		"ACTIVE":            1,
		"MODIFYING":         2,
		"PAUSED":            3,
	}
)

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

func (x TidbNodeGroup_State) String() string {
	valueDesc := x.Descriptor().Values().ByNumber(x.Number())
	if proto.HasExtension(valueDesc.Options(), datatypev1.E_Name) {
		ext := proto.GetExtension(valueDesc.Options(), datatypev1.E_Name)
		s, ok := ext.(string)
		if ok && s != "" {
			return s
		}
	}
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (TidbNodeGroup_State) Descriptor() protoreflect.EnumDescriptor {
	return file_global_dedicated_v1_resources_proto_enumTypes[19].Descriptor()
}

func (TidbNodeGroup_State) Type() protoreflect.EnumType {
	return &file_global_dedicated_v1_resources_proto_enumTypes[19]
}

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

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

// Enum for CIDR state.
type Cidr_State int32

const (
	// Unspecified state.
	Cidr_STATE_UNSPECIFIED Cidr_State = 0
	// The CIDR is active.
	Cidr_STATE_ACTIVE Cidr_State = 1
	// The CIDR is inactive.
	Cidr_STATE_INACTIVE Cidr_State = 2
)

// Enum value maps for Cidr_State.
var (
	Cidr_State_name = map[int32]string{
		0: "STATE_UNSPECIFIED",
		1: "STATE_ACTIVE",
		2: "STATE_INACTIVE",
	}
	Cidr_State_value = map[string]int32{
		"STATE_UNSPECIFIED": 0,
		"STATE_ACTIVE":      1,
		"STATE_INACTIVE":    2,
	}
)

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

func (x Cidr_State) String() string {
	valueDesc := x.Descriptor().Values().ByNumber(x.Number())
	if proto.HasExtension(valueDesc.Options(), datatypev1.E_Name) {
		ext := proto.GetExtension(valueDesc.Options(), datatypev1.E_Name)
		s, ok := ext.(string)
		if ok && s != "" {
			return s
		}
	}
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Cidr_State) Descriptor() protoreflect.EnumDescriptor {
	return file_global_dedicated_v1_resources_proto_enumTypes[20].Descriptor()
}

func (Cidr_State) Type() protoreflect.EnumType {
	return &file_global_dedicated_v1_resources_proto_enumTypes[20]
}

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

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

type PrivateLinkService_Status int32

const (
	PrivateLinkService_STATUS_UNSPECIFIED PrivateLinkService_Status = 0
	// The following must be consistent with 'PrivateLinkServicePhase' defined in infra-api
	PrivateLinkService_CREATING PrivateLinkService_Status = 1
	PrivateLinkService_ACTIVE   PrivateLinkService_Status = 2
	PrivateLinkService_DELETING PrivateLinkService_Status = 3
)

// Enum value maps for PrivateLinkService_Status.
var (
	PrivateLinkService_Status_name = map[int32]string{
		0: "STATUS_UNSPECIFIED",
		1: "CREATING",
		2: "ACTIVE",
		3: "DELETING",
	}
	PrivateLinkService_Status_value = map[string]int32{
		"STATUS_UNSPECIFIED": 0,
		"CREATING":           1,
		"ACTIVE":             2,
		"DELETING":           3,
	}
)

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

func (x PrivateLinkService_Status) String() string {
	valueDesc := x.Descriptor().Values().ByNumber(x.Number())
	if proto.HasExtension(valueDesc.Options(), datatypev1.E_Name) {
		ext := proto.GetExtension(valueDesc.Options(), datatypev1.E_Name)
		s, ok := ext.(string)
		if ok && s != "" {
			return s
		}
	}
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (PrivateLinkService_Status) Descriptor() protoreflect.EnumDescriptor {
	return file_global_dedicated_v1_resources_proto_enumTypes[21].Descriptor()
}

func (PrivateLinkService_Status) Type() protoreflect.EnumType {
	return &file_global_dedicated_v1_resources_proto_enumTypes[21]
}

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

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

type PrivateLinkEndpoint_Status int32

const (
	PrivateLinkEndpoint_STATUS_UNSPECIFIED PrivateLinkEndpoint_Status = 0
	PrivateLinkEndpoint_PENDING            PrivateLinkEndpoint_Status = 1
	PrivateLinkEndpoint_ACTIVE             PrivateLinkEndpoint_Status = 2
	PrivateLinkEndpoint_DELETING           PrivateLinkEndpoint_Status = 3
	PrivateLinkEndpoint_FAILED             PrivateLinkEndpoint_Status = 4
	PrivateLinkEndpoint_DISCOVERED         PrivateLinkEndpoint_Status = 5
)

// Enum value maps for PrivateLinkEndpoint_Status.
var (
	PrivateLinkEndpoint_Status_name = map[int32]string{
		0: "STATUS_UNSPECIFIED",
		1: "PENDING",
		2: "ACTIVE",
		3: "DELETING",
		4: "FAILED",
		5: "DISCOVERED",
	}
	PrivateLinkEndpoint_Status_value = map[string]int32{
		"STATUS_UNSPECIFIED": 0,
		"PENDING":            1,
		"ACTIVE":             2,
		"DELETING":           3,
		"FAILED":             4,
		"DISCOVERED":         5,
	}
)

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

func (x PrivateLinkEndpoint_Status) String() string {
	valueDesc := x.Descriptor().Values().ByNumber(x.Number())
	if proto.HasExtension(valueDesc.Options(), datatypev1.E_Name) {
		ext := proto.GetExtension(valueDesc.Options(), datatypev1.E_Name)
		s, ok := ext.(string)
		if ok && s != "" {
			return s
		}
	}
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (PrivateLinkEndpoint_Status) Descriptor() protoreflect.EnumDescriptor {
	return file_global_dedicated_v1_resources_proto_enumTypes[22].Descriptor()
}

func (PrivateLinkEndpoint_Status) Type() protoreflect.EnumType {
	return &file_global_dedicated_v1_resources_proto_enumTypes[22]
}

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

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

type PrivateLinkEndpoint_Type int32

const (
	PrivateLinkEndpoint_TYPE_UNSPECIFIED PrivateLinkEndpoint_Type = 0
	PrivateLinkEndpoint_TYPE_CUSTOMER    PrivateLinkEndpoint_Type = 1 // This endpoint is created by customer
	PrivateLinkEndpoint_TYPE_DBAAS       PrivateLinkEndpoint_Type = 2 // This endpoint is created by DBaaS system and not visible to customer
)

// Enum value maps for PrivateLinkEndpoint_Type.
var (
	PrivateLinkEndpoint_Type_name = map[int32]string{
		0: "TYPE_UNSPECIFIED",
		1: "TYPE_CUSTOMER",
		2: "TYPE_DBAAS",
	}
	PrivateLinkEndpoint_Type_value = map[string]int32{
		"TYPE_UNSPECIFIED": 0,
		"TYPE_CUSTOMER":    1,
		"TYPE_DBAAS":       2,
	}
)

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

func (x PrivateLinkEndpoint_Type) String() string {
	valueDesc := x.Descriptor().Values().ByNumber(x.Number())
	if proto.HasExtension(valueDesc.Options(), datatypev1.E_Name) {
		ext := proto.GetExtension(valueDesc.Options(), datatypev1.E_Name)
		s, ok := ext.(string)
		if ok && s != "" {
			return s
		}
	}
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (PrivateLinkEndpoint_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_global_dedicated_v1_resources_proto_enumTypes[23].Descriptor()
}

func (PrivateLinkEndpoint_Type) Type() protoreflect.EnumType {
	return &file_global_dedicated_v1_resources_proto_enumTypes[23]
}

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

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

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

	// Metadata.
	ClusterId          uint64                 `protobuf:"varint,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	OrganizationId     uint64                 `protobuf:"varint,2,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"`
	ProjectId          uint64                 `protobuf:"varint,3,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	CreateTime         *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	CreateFinishedTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=create_finished_time,json=createFinishedTime,proto3" json:"create_finished_time,omitempty"`
	UpdateTime         *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
	DeleteTime         *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=delete_time,json=deleteTime,proto3" json:"delete_time,omitempty"`
	// Specs.
	CloudProviderId             v1.CloudProvider_Name       `protobuf:"varint,11,opt,name=cloud_provider_id,json=cloudProviderId,proto3,enum=global.common.v1.CloudProvider_Name" json:"cloud_provider_id,omitempty"`
	RegionId                    v1.Region_Name              `protobuf:"varint,12,opt,name=region_id,json=regionId,proto3,enum=global.common.v1.Region_Name" json:"region_id,omitempty"`
	ClusterComponents           []*Cluster_ClusterComponent `protobuf:"bytes,13,rep,name=cluster_components,json=clusterComponents,proto3" json:"cluster_components,omitempty"`
	Port                        uint32                      `protobuf:"varint,14,opt,name=port,proto3" json:"port,omitempty"`
	RootPassword                string                      `protobuf:"bytes,15,opt,name=root_password,json=rootPassword,proto3" json:"root_password,omitempty"`
	EncryptedCloudAdminPassword string                      `protobuf:"bytes,16,opt,name=encrypted_cloud_admin_password,json=encryptedCloudAdminPassword,proto3" json:"encrypted_cloud_admin_password,omitempty"`
	// Default to (project,region) cmek, allow user to specify a cmek.
	CustomerManagedEncryptionKeyId string `protobuf:"bytes,17,opt,name=customer_managed_encryption_key_id,json=customerManagedEncryptionKeyId,proto3" json:"customer_managed_encryption_key_id,omitempty"`
	// Version of TiDB kernel.
	Version string `protobuf:"bytes,18,opt,name=version,proto3" json:"version,omitempty"`
	// Output only fields.
	Features               []v1.AvailableFeature     `protobuf:"varint,19,rep,packed,name=features,proto3,enum=global.common.v1.AvailableFeature" json:"features,omitempty"`
	HasRootPassword        bool                      `protobuf:"varint,20,opt,name=has_root_password,json=hasRootPassword,proto3" json:"has_root_password,omitempty"`
	State                  Cluster_State             `protobuf:"varint,21,opt,name=state,proto3,enum=global.dedicated.v1.Cluster_State" json:"state,omitempty"`
	HealthState            Cluster_HealthState       `protobuf:"varint,22,opt,name=health_state,json=healthState,proto3,enum=global.dedicated.v1.Cluster_HealthState" json:"health_state,omitempty"`
	ProxyBaseUrl           string                    `protobuf:"bytes,23,opt,name=proxy_base_url,json=proxyBaseUrl,proto3" json:"proxy_base_url,omitempty"`
	TokenBasedAuthEnabled  bool                      `protobuf:"varint,24,opt,name=token_based_auth_enabled,json=tokenBasedAuthEnabled,proto3" json:"token_based_auth_enabled,omitempty"`
	TidbNodeGroupEndpoints []*TidbNodeGroup_Endpoint `protobuf:"bytes,25,rep,name=tidb_node_group_endpoints,json=tidbNodeGroupEndpoints,proto3" json:"tidb_node_group_endpoints,omitempty"`
	RegionDisplayName      string                    `protobuf:"bytes,26,opt,name=region_display_name,json=regionDisplayName,proto3" json:"region_display_name,omitempty"`
	AgentBaseUrl           string                    `protobuf:"bytes,27,opt,name=agent_base_url,json=agentBaseUrl,proto3" json:"agent_base_url,omitempty"`
	PausePlan              *Cluster_PausePlan        `protobuf:"bytes,28,opt,name=pause_plan,json=pausePlan,proto3" json:"pause_plan,omitempty"`
	InsufficientVmResource bool                      `protobuf:"varint,29,opt,name=insufficient_vm_resource,json=insufficientVmResource,proto3" json:"insufficient_vm_resource,omitempty"`
}

func (x *Cluster) Reset() {
	*x = Cluster{}
	if protoimpl.UnsafeEnabled {
		mi := &file_global_dedicated_v1_resources_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_global_dedicated_v1_resources_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_global_dedicated_v1_resources_proto_rawDescGZIP(), []int{0}
}

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

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

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

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

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

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

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

func (x *Cluster) GetCloudProviderId() v1.CloudProvider_Name {
	if x != nil {
		return x.CloudProviderId
	}
	return v1.CloudProvider_Name(0)
}

func (x *Cluster) GetRegionId() v1.Region_Name {
	if x != nil {
		return x.RegionId
	}
	return v1.Region_Name(0)
}

func (x *Cluster) GetClusterComponents() []*Cluster_ClusterComponent {
	if x != nil {
		return x.ClusterComponents
	}
	return nil
}

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

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

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

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

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

func (x *Cluster) GetFeatures() []v1.AvailableFeature {
	if x != nil {
		return x.Features
	}
	return nil
}

func (x *Cluster) GetHasRootPassword() bool {
	if x != nil {
		return x.HasRootPassword
	}
	return false
}

func (x *Cluster) GetState() Cluster_State {
	if x != nil {
		return x.State
	}
	return Cluster_STATE_UNSPECIFIED
}

func (x *Cluster) GetHealthState() Cluster_HealthState {
	if x != nil {
		return x.HealthState
	}
	return Cluster_HEALTH_STATE_UNSPECIFIED
}

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

func (x *Cluster) GetTokenBasedAuthEnabled() bool {
	if x != nil {
		return x.TokenBasedAuthEnabled
	}
	return false
}

func (x *Cluster) GetTidbNodeGroupEndpoints() []*TidbNodeGroup_Endpoint {
	if x != nil {
		return x.TidbNodeGroupEndpoints
	}
	return nil
}

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

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

func (x *Cluster) GetPausePlan() *Cluster_PausePlan {
	if x != nil {
		return x.PausePlan
	}
	return nil
}

func (x *Cluster) GetInsufficientVmResource() bool {
	if x != nil {
		return x.InsufficientVmResource
	}
	return false
}

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

	Id                 string                `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	ProjectId          uint64                `protobuf:"varint,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	OrganizationId     uint64                `protobuf:"varint,3,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"`
	CloudProviderId    v1.CloudProvider_Name `protobuf:"varint,4,opt,name=cloud_provider_id,json=cloudProviderId,proto3,enum=global.common.v1.CloudProvider_Name" json:"cloud_provider_id,omitempty"`
	RegionId           v1.Region_Name        `protobuf:"varint,5,opt,name=region_id,json=regionId,proto3,enum=global.common.v1.Region_Name" json:"region_id,omitempty"`
	TidbCloudCidrBlock string                `protobuf:"bytes,6,opt,name=tidb_cloud_cidr_block,json=tidbCloudCidrBlock,proto3" json:"tidb_cloud_cidr_block,omitempty"`
	// Types that are assignable to Info:
	//
	//	*Vpc_Aws
	//	*Vpc_Gcp
	//	*Vpc_Azure
	Info           isVpc_Info `protobuf_oneof:"info"`
	SecondaryCidrs []string   `protobuf:"bytes,10,rep,name=secondary_cidrs,json=secondaryCidrs,proto3" json:"secondary_cidrs,omitempty"`
}

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

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

func (*Vpc) ProtoMessage() {}

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

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

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

func (x *Vpc) GetOrganizationId() uint64 {
	if x != nil {
		return x.OrganizationId
	}
	return 0
}

func (x *Vpc) GetCloudProviderId() v1.CloudProvider_Name {
	if x != nil {
		return x.CloudProviderId
	}
	return v1.CloudProvider_Name(0)
}

func (x *Vpc) GetRegionId() v1.Region_Name {
	if x != nil {
		return x.RegionId
	}
	return v1.Region_Name(0)
}

func (x *Vpc) GetTidbCloudCidrBlock() string {
	if x != nil {
		return x.TidbCloudCidrBlock
	}
	return ""
}

func (m *Vpc) GetInfo() isVpc_Info {
	if m != nil {
		return m.Info
	}
	return nil
}

func (x *Vpc) GetAws() *Vpc_AwsVpcInfo {
	if x, ok := x.GetInfo().(*Vpc_Aws); ok {
		return x.Aws
	}
	return nil
}

func (x *Vpc) GetGcp() *Vpc_GcpVpcInfo {
	if x, ok := x.GetInfo().(*Vpc_Gcp); ok {
		return x.Gcp
	}
	return nil
}

func (x *Vpc) GetAzure() *Vpc_AzureVpcInfo {
	if x, ok := x.GetInfo().(*Vpc_Azure); ok {
		return x.Azure
	}
	return nil
}

func (x *Vpc) GetSecondaryCidrs() []string {
	if x != nil {
		return x.SecondaryCidrs
	}
	return nil
}

type isVpc_Info interface {
	isVpc_Info()
}

type Vpc_Aws struct {
	Aws *Vpc_AwsVpcInfo `protobuf:"bytes,7,opt,name=aws,proto3,oneof"`
}

type Vpc_Gcp struct {
	Gcp *Vpc_GcpVpcInfo `protobuf:"bytes,8,opt,name=gcp,proto3,oneof"`
}

type Vpc_Azure struct {
	Azure *Vpc_AzureVpcInfo `protobuf:"bytes,9,opt,name=azure,proto3,oneof"`
}

func (*Vpc_Aws) isVpc_Info() {}

func (*Vpc_Gcp) isVpc_Info() {}

func (*Vpc_Azure) isVpc_Info() {}

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

	Id                 uint64                 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	ProjectId          uint64                 `protobuf:"varint,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	OrganizationId     uint64                 `protobuf:"varint,3,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"`
	CloudProvider      v1.CloudProvider_Name  `protobuf:"varint,4,opt,name=cloud_provider,json=cloudProvider,proto3,enum=global.common.v1.CloudProvider_Name" json:"cloud_provider,omitempty"`
	Type               VpcPeering_Type        `protobuf:"varint,5,opt,name=type,proto3,enum=global.dedicated.v1.VpcPeering_Type" json:"type,omitempty"`
	TidbCloudRegion    string                 `protobuf:"bytes,6,opt,name=tidb_cloud_region,json=tidbCloudRegion,proto3" json:"tidb_cloud_region,omitempty"`
	CustomerRegion     string                 `protobuf:"bytes,7,opt,name=customer_region,json=customerRegion,proto3" json:"customer_region,omitempty"`
	TidbCloudCidrBlock string                 `protobuf:"bytes,8,opt,name=tidb_cloud_cidr_block,json=tidbCloudCidrBlock,proto3" json:"tidb_cloud_cidr_block,omitempty"`
	CustomerCidrBlock  string                 `protobuf:"bytes,9,opt,name=customer_cidr_block,json=customerCidrBlock,proto3" json:"customer_cidr_block,omitempty"`
	State              VpcPeering_State       `protobuf:"varint,10,opt,name=state,proto3,enum=global.dedicated.v1.VpcPeering_State" json:"state,omitempty"`
	CreateAt           *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=create_at,json=createAt,proto3" json:"create_at,omitempty"`
	Aws                *VpcPeering_Aws        `protobuf:"bytes,12,opt,name=aws,proto3" json:"aws,omitempty"`
	Gcp                *VpcPeering_Gcp        `protobuf:"bytes,13,opt,name=gcp,proto3" json:"gcp,omitempty"`
}

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

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

func (*VpcPeering) ProtoMessage() {}

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

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

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

func (x *VpcPeering) GetOrganizationId() uint64 {
	if x != nil {
		return x.OrganizationId
	}
	return 0
}

func (x *VpcPeering) GetCloudProvider() v1.CloudProvider_Name {
	if x != nil {
		return x.CloudProvider
	}
	return v1.CloudProvider_Name(0)
}

func (x *VpcPeering) GetType() VpcPeering_Type {
	if x != nil {
		return x.Type
	}
	return VpcPeering_TYPE_UNSPECIFIED
}

func (x *VpcPeering) GetTidbCloudRegion() string {
	if x != nil {
		return x.TidbCloudRegion
	}
	return ""
}

func (x *VpcPeering) GetCustomerRegion() string {
	if x != nil {
		return x.CustomerRegion
	}
	return ""
}

func (x *VpcPeering) GetTidbCloudCidrBlock() string {
	if x != nil {
		return x.TidbCloudCidrBlock
	}
	return ""
}

func (x *VpcPeering) GetCustomerCidrBlock() string {
	if x != nil {
		return x.CustomerCidrBlock
	}
	return ""
}

func (x *VpcPeering) GetState() VpcPeering_State {
	if x != nil {
		return x.State
	}
	return VpcPeering_STATE_UNSPECIFIED
}

func (x *VpcPeering) GetCreateAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CreateAt
	}
	return nil
}

func (x *VpcPeering) GetAws() *VpcPeering_Aws {
	if x != nil {
		return x.Aws
	}
	return nil
}

func (x *VpcPeering) GetGcp() *VpcPeering_Gcp {
	if x != nil {
		return x.Gcp
	}
	return nil
}

// Compute Material Unit (InstanceMu) simply contains information of compute resource directly from 3rd-party cloud providers.
type InstanceMu struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id            uint64                   `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	CloudProvider v1.CloudProvider_Name    `protobuf:"varint,2,opt,name=cloud_provider,json=cloudProvider,proto3,enum=global.common.v1.CloudProvider_Name" json:"cloud_provider,omitempty"`
	InstanceType  string                   `protobuf:"bytes,3,opt,name=instance_type,json=instanceType,proto3" json:"instance_type,omitempty"`
	CpuCore       int32                    `protobuf:"varint,4,opt,name=cpu_core,json=cpuCore,proto3" json:"cpu_core,omitempty"`
	MemoryGi      int32                    `protobuf:"varint,5,opt,name=memory_gi,json=memoryGi,proto3" json:"memory_gi,omitempty"`
	CpuArch       InstanceMu_CpuArch       `protobuf:"varint,6,opt,name=cpu_arch,json=cpuArch,proto3,enum=global.dedicated.v1.InstanceMu_CpuArch" json:"cpu_arch,omitempty"`
	CpuGeneration InstanceMu_CpuGeneration `protobuf:"varint,7,opt,name=cpu_generation,json=cpuGeneration,proto3,enum=global.dedicated.v1.InstanceMu_CpuGeneration" json:"cpu_generation,omitempty"`
}

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

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

func (*InstanceMu) ProtoMessage() {}

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

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

func (x *InstanceMu) GetCloudProvider() v1.CloudProvider_Name {
	if x != nil {
		return x.CloudProvider
	}
	return v1.CloudProvider_Name(0)
}

func (x *InstanceMu) GetInstanceType() string {
	if x != nil {
		return x.InstanceType
	}
	return ""
}

func (x *InstanceMu) GetCpuCore() int32 {
	if x != nil {
		return x.CpuCore
	}
	return 0
}

func (x *InstanceMu) GetMemoryGi() int32 {
	if x != nil {
		return x.MemoryGi
	}
	return 0
}

func (x *InstanceMu) GetCpuArch() InstanceMu_CpuArch {
	if x != nil {
		return x.CpuArch
	}
	return InstanceMu_CPU_ARCH_UNSPECIFIED
}

func (x *InstanceMu) GetCpuGeneration() InstanceMu_CpuGeneration {
	if x != nil {
		return x.CpuGeneration
	}
	return InstanceMu_CPU_GENERATION_UNSPECIFIED
}

// Storage Material Unit (StorageMu) simply contains information of storage resource directly from 3rd-party cloud providers.
type StorageMu struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id            uint64                `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	CloudProvider v1.CloudProvider_Name `protobuf:"varint,2,opt,name=cloud_provider,json=cloudProvider,proto3,enum=global.common.v1.CloudProvider_Name" json:"cloud_provider,omitempty"`
	VolumeType    StorageMu_VolumeType  `protobuf:"varint,3,opt,name=volume_type,json=volumeType,proto3,enum=global.dedicated.v1.StorageMu_VolumeType" json:"volume_type,omitempty"`
}

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

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

func (*StorageMu) ProtoMessage() {}

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

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

func (x *StorageMu) GetCloudProvider() v1.CloudProvider_Name {
	if x != nil {
		return x.CloudProvider
	}
	return v1.CloudProvider_Name(0)
}

func (x *StorageMu) GetVolumeType() StorageMu_VolumeType {
	if x != nil {
		return x.VolumeType
	}
	return StorageMu_VOLUME_TYPE_UNSPECIFIED
}

// Stock Keeping Unit.
type Sku struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	// A SKU belongs to a specific SPU.
	SpuId          uint64 `protobuf:"varint,2,opt,name=spu_id,json=spuId,proto3" json:"spu_id,omitempty"`
	SpuKey         string `protobuf:"bytes,16,opt,name=spu_key,json=spuKey,proto3" json:"spu_key,omitempty"`
	SpuName        string `protobuf:"bytes,17,opt,name=spu_name,json=spuName,proto3" json:"spu_name,omitempty"`
	SpuDisplayName string `protobuf:"bytes,18,opt,name=spu_display_name,json=spuDisplayName,proto3" json:"spu_display_name,omitempty"`
	SpuVersion     string `protobuf:"bytes,20,opt,name=spu_version,json=spuVersion,proto3" json:"spu_version,omitempty"`
	// Human readable SKU name.
	Key              string                   `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"`
	CloudProvider    v1.CloudProvider_Name    `protobuf:"varint,4,opt,name=cloud_provider,json=cloudProvider,proto3,enum=global.common.v1.CloudProvider_Name" json:"cloud_provider,omitempty"`
	ComponentType    ComponentType            `protobuf:"varint,5,opt,name=component_type,json=componentType,proto3,enum=global.dedicated.v1.ComponentType" json:"component_type,omitempty"`
	InstanceMuId     uint64                   `protobuf:"varint,6,opt,name=instance_mu_id,json=instanceMuId,proto3" json:"instance_mu_id,omitempty"`
	CpuArch          InstanceMu_CpuArch       `protobuf:"varint,12,opt,name=cpu_arch,json=cpuArch,proto3,enum=global.dedicated.v1.InstanceMu_CpuArch" json:"cpu_arch,omitempty"`
	CpuGeneration    InstanceMu_CpuGeneration `protobuf:"varint,19,opt,name=cpu_generation,json=cpuGeneration,proto3,enum=global.dedicated.v1.InstanceMu_CpuGeneration" json:"cpu_generation,omitempty"`
	InstanceType     string                   `protobuf:"bytes,13,opt,name=instance_type,json=instanceType,proto3" json:"instance_type,omitempty"`
	CpuCore          int32                    `protobuf:"varint,14,opt,name=cpu_core,json=cpuCore,proto3" json:"cpu_core,omitempty"`
	MemoryGi         int32                    `protobuf:"varint,15,opt,name=memory_gi,json=memoryGi,proto3" json:"memory_gi,omitempty"`
	DefaultNodeCount int32                    `protobuf:"varint,7,opt,name=default_node_count,json=defaultNodeCount,proto3" json:"default_node_count,omitempty"`
	Conditions       []*Sku_Condition         `protobuf:"bytes,8,rep,name=conditions,proto3" json:"conditions,omitempty"`
	// Smaller value has higher priority.
	Priority       int32        `protobuf:"varint,9,opt,name=priority,proto3" json:"priority,omitempty"`
	DataStorage    *Sku_Storage `protobuf:"bytes,10,opt,name=data_storage,json=dataStorage,proto3" json:"data_storage,omitempty"`
	RaftlogStorage *Sku_Storage `protobuf:"bytes,11,opt,name=raftlog_storage,json=raftlogStorage,proto3" json:"raftlog_storage,omitempty"`
}

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

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

func (*Sku) ProtoMessage() {}

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

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

func (x *Sku) GetSpuId() uint64 {
	if x != nil {
		return x.SpuId
	}
	return 0
}

func (x *Sku) GetSpuKey() string {
	if x != nil {
		return x.SpuKey
	}
	return ""
}

func (x *Sku) GetSpuName() string {
	if x != nil {
		return x.SpuName
	}
	return ""
}

func (x *Sku) GetSpuDisplayName() string {
	if x != nil {
		return x.SpuDisplayName
	}
	return ""
}

func (x *Sku) GetSpuVersion() string {
	if x != nil {
		return x.SpuVersion
	}
	return ""
}

func (x *Sku) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

func (x *Sku) GetCloudProvider() v1.CloudProvider_Name {
	if x != nil {
		return x.CloudProvider
	}
	return v1.CloudProvider_Name(0)
}

func (x *Sku) GetComponentType() ComponentType {
	if x != nil {
		return x.ComponentType
	}
	return ComponentType_COMPONENT_TYPE_UNSPECIFIED
}

func (x *Sku) GetInstanceMuId() uint64 {
	if x != nil {
		return x.InstanceMuId
	}
	return 0
}

func (x *Sku) GetCpuArch() InstanceMu_CpuArch {
	if x != nil {
		return x.CpuArch
	}
	return InstanceMu_CPU_ARCH_UNSPECIFIED
}

func (x *Sku) GetCpuGeneration() InstanceMu_CpuGeneration {
	if x != nil {
		return x.CpuGeneration
	}
	return InstanceMu_CPU_GENERATION_UNSPECIFIED
}

func (x *Sku) GetInstanceType() string {
	if x != nil {
		return x.InstanceType
	}
	return ""
}

func (x *Sku) GetCpuCore() int32 {
	if x != nil {
		return x.CpuCore
	}
	return 0
}

func (x *Sku) GetMemoryGi() int32 {
	if x != nil {
		return x.MemoryGi
	}
	return 0
}

func (x *Sku) GetDefaultNodeCount() int32 {
	if x != nil {
		return x.DefaultNodeCount
	}
	return 0
}

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

func (x *Sku) GetPriority() int32 {
	if x != nil {
		return x.Priority
	}
	return 0
}

func (x *Sku) GetDataStorage() *Sku_Storage {
	if x != nil {
		return x.DataStorage
	}
	return nil
}

func (x *Sku) GetRaftlogStorage() *Sku_Storage {
	if x != nil {
		return x.RaftlogStorage
	}
	return nil
}

// Standard Product Unit.
type Spu struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	// example: 2C8G:DEPLOY_TYPE_DEDICATED:COMPONENT_TYPE_TIKV
	Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
	// example: 2 vCPU, 8 GiB (Beta)
	DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// example: 2C8G
	Name           string                `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
	Version        string                `protobuf:"bytes,15,opt,name=version,proto3" json:"version,omitempty"`
	ComponentType  ComponentType         `protobuf:"varint,5,opt,name=component_type,json=componentType,proto3,enum=global.dedicated.v1.ComponentType" json:"component_type,omitempty"`
	CloudProvider  v1.CloudProvider_Name `protobuf:"varint,6,opt,name=cloud_provider,json=cloudProvider,proto3,enum=global.common.v1.CloudProvider_Name" json:"cloud_provider,omitempty"`
	Region         v1.Region_Name        `protobuf:"varint,7,opt,name=region,proto3,enum=global.common.v1.Region_Name" json:"region,omitempty"`
	CpuCore        int32                 `protobuf:"varint,8,opt,name=cpu_core,json=cpuCore,proto3" json:"cpu_core,omitempty"`
	MemorySizeGi   int32                 `protobuf:"varint,9,opt,name=memory_size_gi,json=memorySizeGi,proto3" json:"memory_size_gi,omitempty"`
	DefaultCount   int32                 `protobuf:"varint,10,opt,name=default_count,json=defaultCount,proto3" json:"default_count,omitempty"`
	DataStorage    *Spu_Storage          `protobuf:"bytes,11,opt,name=data_storage,json=dataStorage,proto3" json:"data_storage,omitempty"`
	RaftlogStorage *Spu_Storage          `protobuf:"bytes,12,opt,name=raftlog_storage,json=raftlogStorage,proto3" json:"raftlog_storage,omitempty"`
	// Deprecated: Marked as deprecated in global/dedicated/v1/resources.proto.
	Mappings           []*Spu_Mapping  `protobuf:"bytes,13,rep,name=mappings,proto3" json:"mappings,omitempty"`
	SupportedDiskPairs []*Spu_DiskPair `protobuf:"bytes,14,rep,name=supported_disk_pairs,json=supportedDiskPairs,proto3" json:"supported_disk_pairs,omitempty"`
	// Detailed storage capabilities grouped by storage type enum string values. Currently, only Plus storage type is supported.
	StorageTypeDetails map[string]*Spu_StorageTypeDetail `protobuf:"bytes,16,rep,name=storage_type_details,json=storageTypeDetails,proto3" json:"storage_type_details,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

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

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

func (*Spu) ProtoMessage() {}

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

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

func (x *Spu) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

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

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

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

func (x *Spu) GetComponentType() ComponentType {
	if x != nil {
		return x.ComponentType
	}
	return ComponentType_COMPONENT_TYPE_UNSPECIFIED
}

func (x *Spu) GetCloudProvider() v1.CloudProvider_Name {
	if x != nil {
		return x.CloudProvider
	}
	return v1.CloudProvider_Name(0)
}

func (x *Spu) GetRegion() v1.Region_Name {
	if x != nil {
		return x.Region
	}
	return v1.Region_Name(0)
}

func (x *Spu) GetCpuCore() int32 {
	if x != nil {
		return x.CpuCore
	}
	return 0
}

func (x *Spu) GetMemorySizeGi() int32 {
	if x != nil {
		return x.MemorySizeGi
	}
	return 0
}

func (x *Spu) GetDefaultCount() int32 {
	if x != nil {
		return x.DefaultCount
	}
	return 0
}

func (x *Spu) GetDataStorage() *Spu_Storage {
	if x != nil {
		return x.DataStorage
	}
	return nil
}

func (x *Spu) GetRaftlogStorage() *Spu_Storage {
	if x != nil {
		return x.RaftlogStorage
	}
	return nil
}

// Deprecated: Marked as deprecated in global/dedicated/v1/resources.proto.
func (x *Spu) GetMappings() []*Spu_Mapping {
	if x != nil {
		return x.Mappings
	}
	return nil
}

func (x *Spu) GetSupportedDiskPairs() []*Spu_DiskPair {
	if x != nil {
		return x.SupportedDiskPairs
	}
	return nil
}

func (x *Spu) GetStorageTypeDetails() map[string]*Spu_StorageTypeDetail {
	if x != nil {
		return x.StorageTypeDetails
	}
	return nil
}

// SkuSpuMapping defines the mapping between SPU and SKU.
// It allows different tenants and projects to have different mappings.
// If no specific mapping is found for a tenant and project, the general mapping (with tenant_id=0 and project_id=0) will be used as a fallback.
type SkuSpuMapping struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	// Zero value means no filter, for all tenants or projects.
	TenantId       uint64          `protobuf:"varint,2,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
	ProjectId      uint64          `protobuf:"varint,3,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	SpuId          uint64          `protobuf:"varint,4,opt,name=spu_id,json=spuId,proto3" json:"spu_id,omitempty"`
	ComponentType  ComponentType   `protobuf:"varint,5,opt,name=component_type,json=componentType,proto3,enum=global.dedicated.v1.ComponentType" json:"component_type,omitempty"`
	SpuName        string          `protobuf:"bytes,6,opt,name=spu_name,json=spuName,proto3" json:"spu_name,omitempty"`
	SpuVersion     string          `protobuf:"bytes,7,opt,name=spu_version,json=spuVersion,proto3" json:"spu_version,omitempty"`
	SpuDisplayName string          `protobuf:"bytes,8,opt,name=spu_display_name,json=spuDisplayName,proto3" json:"spu_display_name,omitempty"`
	StorageType    Spu_StorageType `protobuf:"varint,9,opt,name=storage_type,json=storageType,proto3,enum=global.dedicated.v1.Spu_StorageType" json:"storage_type,omitempty"`
	// Zero value means no filter, for all cloud providers or regions.
	CloudProvider     v1.CloudProvider_Name    `protobuf:"varint,10,opt,name=cloud_provider,json=cloudProvider,proto3,enum=global.common.v1.CloudProvider_Name" json:"cloud_provider,omitempty"`
	Region            v1.Region_Name           `protobuf:"varint,11,opt,name=region,proto3,enum=global.common.v1.Region_Name" json:"region,omitempty"`
	SkuId             uint64                   `protobuf:"varint,12,opt,name=sku_id,json=skuId,proto3" json:"sku_id,omitempty"`
	SkuKey            string                   `protobuf:"bytes,13,opt,name=sku_key,json=skuKey,proto3" json:"sku_key,omitempty"`
	CpuArch           InstanceMu_CpuArch       `protobuf:"varint,14,opt,name=cpu_arch,json=cpuArch,proto3,enum=global.dedicated.v1.InstanceMu_CpuArch" json:"cpu_arch,omitempty"`
	CpuGeneration     InstanceMu_CpuGeneration `protobuf:"varint,15,opt,name=cpu_generation,json=cpuGeneration,proto3,enum=global.dedicated.v1.InstanceMu_CpuGeneration" json:"cpu_generation,omitempty"`
	InstanceType      string                   `protobuf:"bytes,16,opt,name=instance_type,json=instanceType,proto3" json:"instance_type,omitempty"`
	CpuCore           int32                    `protobuf:"varint,17,opt,name=cpu_core,json=cpuCore,proto3" json:"cpu_core,omitempty"`
	MemoryGi          int32                    `protobuf:"varint,18,opt,name=memory_gi,json=memoryGi,proto3" json:"memory_gi,omitempty"`
	DataVolumeType    StorageMu_VolumeType     `protobuf:"varint,19,opt,name=data_volume_type,json=dataVolumeType,proto3,enum=global.dedicated.v1.StorageMu_VolumeType" json:"data_volume_type,omitempty"`
	RaftlogVolumeType StorageMu_VolumeType     `protobuf:"varint,20,opt,name=raftlog_volume_type,json=raftlogVolumeType,proto3,enum=global.dedicated.v1.StorageMu_VolumeType" json:"raftlog_volume_type,omitempty"`
	// If true, prevent the mapping from being used for cluster creation.
	NoCreate bool `protobuf:"varint,21,opt,name=no_create,json=noCreate,proto3" json:"no_create,omitempty"`
}

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

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

func (*SkuSpuMapping) ProtoMessage() {}

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

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

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

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

func (x *SkuSpuMapping) GetSpuId() uint64 {
	if x != nil {
		return x.SpuId
	}
	return 0
}

func (x *SkuSpuMapping) GetComponentType() ComponentType {
	if x != nil {
		return x.ComponentType
	}
	return ComponentType_COMPONENT_TYPE_UNSPECIFIED
}

func (x *SkuSpuMapping) GetSpuName() string {
	if x != nil {
		return x.SpuName
	}
	return ""
}

func (x *SkuSpuMapping) GetSpuVersion() string {
	if x != nil {
		return x.SpuVersion
	}
	return ""
}

func (x *SkuSpuMapping) GetSpuDisplayName() string {
	if x != nil {
		return x.SpuDisplayName
	}
	return ""
}

func (x *SkuSpuMapping) GetStorageType() Spu_StorageType {
	if x != nil {
		return x.StorageType
	}
	return Spu_STORAGE_TYPE_UNSPECIFIED
}

func (x *SkuSpuMapping) GetCloudProvider() v1.CloudProvider_Name {
	if x != nil {
		return x.CloudProvider
	}
	return v1.CloudProvider_Name(0)
}

func (x *SkuSpuMapping) GetRegion() v1.Region_Name {
	if x != nil {
		return x.Region
	}
	return v1.Region_Name(0)
}

func (x *SkuSpuMapping) GetSkuId() uint64 {
	if x != nil {
		return x.SkuId
	}
	return 0
}

func (x *SkuSpuMapping) GetSkuKey() string {
	if x != nil {
		return x.SkuKey
	}
	return ""
}

func (x *SkuSpuMapping) GetCpuArch() InstanceMu_CpuArch {
	if x != nil {
		return x.CpuArch
	}
	return InstanceMu_CPU_ARCH_UNSPECIFIED
}

func (x *SkuSpuMapping) GetCpuGeneration() InstanceMu_CpuGeneration {
	if x != nil {
		return x.CpuGeneration
	}
	return InstanceMu_CPU_GENERATION_UNSPECIFIED
}

func (x *SkuSpuMapping) GetInstanceType() string {
	if x != nil {
		return x.InstanceType
	}
	return ""
}

func (x *SkuSpuMapping) GetCpuCore() int32 {
	if x != nil {
		return x.CpuCore
	}
	return 0
}

func (x *SkuSpuMapping) GetMemoryGi() int32 {
	if x != nil {
		return x.MemoryGi
	}
	return 0
}

func (x *SkuSpuMapping) GetDataVolumeType() StorageMu_VolumeType {
	if x != nil {
		return x.DataVolumeType
	}
	return StorageMu_VOLUME_TYPE_UNSPECIFIED
}

func (x *SkuSpuMapping) GetRaftlogVolumeType() StorageMu_VolumeType {
	if x != nil {
		return x.RaftlogVolumeType
	}
	return StorageMu_VOLUME_TYPE_UNSPECIFIED
}

func (x *SkuSpuMapping) GetNoCreate() bool {
	if x != nil {
		return x.NoCreate
	}
	return false
}

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

	Id              uint64                `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	ProjectId       uint64                `protobuf:"varint,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	OrganizationId  uint64                `protobuf:"varint,3,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"`
	CloudProviderId v1.CloudProvider_Name `protobuf:"varint,4,opt,name=cloud_provider_id,json=cloudProviderId,proto3,enum=global.common.v1.CloudProvider_Name" json:"cloud_provider_id,omitempty"`
	RegionId        v1.Region_Name        `protobuf:"varint,5,opt,name=region_id,json=regionId,proto3,enum=global.common.v1.Region_Name" json:"region_id,omitempty"`
	// Types that are assignable to MasterKey:
	//
	//	*CustomerManagedEncryptionKey_AwsKeyArn
	//	*CustomerManagedEncryptionKey_GcpKeyName
	//	*CustomerManagedEncryptionKey_AzureKeyVault
	MasterKey         isCustomerManagedEncryptionKey_MasterKey `protobuf_oneof:"master_key"`
	RegionDisplayName string                                   `protobuf:"bytes,6,opt,name=region_display_name,json=regionDisplayName,proto3" json:"region_display_name,omitempty"`
	CreateTime        *timestamppb.Timestamp                   `protobuf:"bytes,20,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	UpdateTime        *timestamppb.Timestamp                   `protobuf:"bytes,21,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
	DeleteTime        *timestamppb.Timestamp                   `protobuf:"bytes,22,opt,name=delete_time,json=deleteTime,proto3" json:"delete_time,omitempty"`
}

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

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

func (*CustomerManagedEncryptionKey) ProtoMessage() {}

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

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

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

func (x *CustomerManagedEncryptionKey) GetOrganizationId() uint64 {
	if x != nil {
		return x.OrganizationId
	}
	return 0
}

func (x *CustomerManagedEncryptionKey) GetCloudProviderId() v1.CloudProvider_Name {
	if x != nil {
		return x.CloudProviderId
	}
	return v1.CloudProvider_Name(0)
}

func (x *CustomerManagedEncryptionKey) GetRegionId() v1.Region_Name {
	if x != nil {
		return x.RegionId
	}
	return v1.Region_Name(0)
}

func (m *CustomerManagedEncryptionKey) GetMasterKey() isCustomerManagedEncryptionKey_MasterKey {
	if m != nil {
		return m.MasterKey
	}
	return nil
}

func (x *CustomerManagedEncryptionKey) GetAwsKeyArn() string {
	if x, ok := x.GetMasterKey().(*CustomerManagedEncryptionKey_AwsKeyArn); ok {
		return x.AwsKeyArn
	}
	return ""
}

func (x *CustomerManagedEncryptionKey) GetGcpKeyName() string {
	if x, ok := x.GetMasterKey().(*CustomerManagedEncryptionKey_GcpKeyName); ok {
		return x.GcpKeyName
	}
	return ""
}

func (x *CustomerManagedEncryptionKey) GetAzureKeyVault() *AzureKeyVault {
	if x, ok := x.GetMasterKey().(*CustomerManagedEncryptionKey_AzureKeyVault); ok {
		return x.AzureKeyVault
	}
	return nil
}

func (x *CustomerManagedEncryptionKey) GetRegionDisplayName() string {
	if x != nil {
		return x.RegionDisplayName
	}
	return ""
}

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

func (x *CustomerManagedEncryptionKey) GetUpdateTime() *timestamppb.Timestamp {
	if x != nil {
		return x.UpdateTime
	}
	return nil
}

func (x *CustomerManagedEncryptionKey) GetDeleteTime() *timestamppb.Timestamp {
	if x != nil {
		return x.DeleteTime
	}
	return nil
}

type isCustomerManagedEncryptionKey_MasterKey interface {
	isCustomerManagedEncryptionKey_MasterKey()
}

type CustomerManagedEncryptionKey_AwsKeyArn struct {
	AwsKeyArn string `protobuf:"bytes,7,opt,name=aws_key_arn,json=awsKeyArn,proto3,oneof"`
}

type CustomerManagedEncryptionKey_GcpKeyName struct {
	GcpKeyName string `protobuf:"bytes,8,opt,name=gcp_key_name,json=gcpKeyName,proto3,oneof"`
}

type CustomerManagedEncryptionKey_AzureKeyVault struct {
	AzureKeyVault *AzureKeyVault `protobuf:"bytes,9,opt,name=azure_key_vault,json=azureKeyVault,proto3,oneof"`
}

func (*CustomerManagedEncryptionKey_AwsKeyArn) isCustomerManagedEncryptionKey_MasterKey() {}

func (*CustomerManagedEncryptionKey_GcpKeyName) isCustomerManagedEncryptionKey_MasterKey() {}

func (*CustomerManagedEncryptionKey_AzureKeyVault) isCustomerManagedEncryptionKey_MasterKey() {}

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

	KeyVaultKey          string                `protobuf:"bytes,1,opt,name=key_vault_key,json=keyVaultKey,proto3" json:"key_vault_key,omitempty"`
	KeyVaultName         string                `protobuf:"bytes,2,opt,name=key_vault_name,json=keyVaultName,proto3" json:"key_vault_name,omitempty"`
	AzureAppRegistration *AzureAppRegistration `protobuf:"bytes,3,opt,name=azure_app_registration,json=azureAppRegistration,proto3" json:"azure_app_registration,omitempty"`
}

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

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

func (*AzureKeyVault) ProtoMessage() {}

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

func (x *AzureKeyVault) GetKeyVaultKey() string {
	if x != nil {
		return x.KeyVaultKey
	}
	return ""
}

func (x *AzureKeyVault) GetKeyVaultName() string {
	if x != nil {
		return x.KeyVaultName
	}
	return ""
}

func (x *AzureKeyVault) GetAzureAppRegistration() *AzureAppRegistration {
	if x != nil {
		return x.AzureAppRegistration
	}
	return nil
}

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

	AppRegistrationId   string `protobuf:"bytes,1,opt,name=app_registration_id,json=appRegistrationId,proto3" json:"app_registration_id,omitempty"`
	AppRegistrationUmi  string `protobuf:"bytes,2,opt,name=app_registration_umi,json=appRegistrationUmi,proto3" json:"app_registration_umi,omitempty"`
	AppRegistrationName string `protobuf:"bytes,3,opt,name=app_registration_name,json=appRegistrationName,proto3" json:"app_registration_name,omitempty"`
}

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

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

func (*AzureAppRegistration) ProtoMessage() {}

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

func (x *AzureAppRegistration) GetAppRegistrationId() string {
	if x != nil {
		return x.AppRegistrationId
	}
	return ""
}

func (x *AzureAppRegistration) GetAppRegistrationUmi() string {
	if x != nil {
		return x.AppRegistrationUmi
	}
	return ""
}

func (x *AzureAppRegistration) GetAppRegistrationName() string {
	if x != nil {
		return x.AppRegistrationName
	}
	return ""
}

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

	MachineType string `protobuf:"bytes,1,opt,name=machine_type,json=machineType,proto3" json:"machine_type,omitempty"`
	PodCount    int32  `protobuf:"varint,2,opt,name=pod_count,json=podCount,proto3" json:"pod_count,omitempty"`
}

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

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

func (*GKEHeterogeneousDeployPodCount) ProtoMessage() {}

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

func (x *GKEHeterogeneousDeployPodCount) GetMachineType() string {
	if x != nil {
		return x.MachineType
	}
	return ""
}

func (x *GKEHeterogeneousDeployPodCount) GetPodCount() int32 {
	if x != nil {
		return x.PodCount
	}
	return 0
}

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

	ComponentConfigurations []*ClusterConfiguration_ComponentConfiguration `protobuf:"bytes,1,rep,name=component_configurations,json=componentConfigurations,proto3" json:"component_configurations,omitempty"`
}

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

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

func (*ClusterConfiguration) ProtoMessage() {}

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

func (x *ClusterConfiguration) GetComponentConfigurations() []*ClusterConfiguration_ComponentConfiguration {
	if x != nil {
		return x.ComponentConfigurations
	}
	return nil
}

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

	// if set to true, tidb cluster version will be updated, but will ingore tiproxy
	// if want to update tiproxy, set component_apply_mask with tiproxy
	Version             bool                                   `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
	ComponentApplyMasks []*ClusterApplyMask_ComponentApplyMask `protobuf:"bytes,2,rep,name=component_apply_masks,json=componentApplyMasks,proto3" json:"component_apply_masks,omitempty"`
	// Deprecated: Marked as deprecated in global/dedicated/v1/resources.proto.
	HotReload bool                      `protobuf:"varint,3,opt,name=hot_reload,json=hotReload,proto3" json:"hot_reload,omitempty"`
	Strategy  ClusterApplyMask_Strategy `protobuf:"varint,4,opt,name=strategy,proto3,enum=global.dedicated.v1.ClusterApplyMask_Strategy" json:"strategy,omitempty"`
}

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

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

func (*ClusterApplyMask) ProtoMessage() {}

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

func (x *ClusterApplyMask) GetVersion() bool {
	if x != nil {
		return x.Version
	}
	return false
}

func (x *ClusterApplyMask) GetComponentApplyMasks() []*ClusterApplyMask_ComponentApplyMask {
	if x != nil {
		return x.ComponentApplyMasks
	}
	return nil
}

// Deprecated: Marked as deprecated in global/dedicated/v1/resources.proto.
func (x *ClusterApplyMask) GetHotReload() bool {
	if x != nil {
		return x.HotReload
	}
	return false
}

func (x *ClusterApplyMask) GetStrategy() ClusterApplyMask_Strategy {
	if x != nil {
		return x.Strategy
	}
	return ClusterApplyMask_STRATEGY_UNSPECIFIED
}

// All fields are output only unless otherwise specified.
type ComponentNodeInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Tidb    []*ComponentNodeInfo_Component `protobuf:"bytes,1,rep,name=tidb,proto3" json:"tidb,omitempty"`
	Tikv    *ComponentNodeInfo_Component   `protobuf:"bytes,2,opt,name=tikv,proto3" json:"tikv,omitempty"`
	Tiflash *ComponentNodeInfo_Component   `protobuf:"bytes,3,opt,name=tiflash,proto3" json:"tiflash,omitempty"`
	Tiproxy []*ComponentNodeInfo_Component `protobuf:"bytes,4,rep,name=tiproxy,proto3" json:"tiproxy,omitempty"`
}

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

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

func (*ComponentNodeInfo) ProtoMessage() {}

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

func (x *ComponentNodeInfo) GetTidb() []*ComponentNodeInfo_Component {
	if x != nil {
		return x.Tidb
	}
	return nil
}

func (x *ComponentNodeInfo) GetTikv() *ComponentNodeInfo_Component {
	if x != nil {
		return x.Tikv
	}
	return nil
}

func (x *ComponentNodeInfo) GetTiflash() *ComponentNodeInfo_Component {
	if x != nil {
		return x.Tiflash
	}
	return nil
}

func (x *ComponentNodeInfo) GetTiproxy() []*ComponentNodeInfo_Component {
	if x != nil {
		return x.Tiproxy
	}
	return nil
}

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

	Id                uint64                      `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	TenantId          uint64                      `protobuf:"varint,2,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
	ProjectId         uint64                      `protobuf:"varint,3,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	CloudProviderName string                      `protobuf:"bytes,4,opt,name=cloud_provider_name,json=cloudProviderName,proto3" json:"cloud_provider_name,omitempty"`
	ClusterId         uint64                      `protobuf:"varint,5,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	Components        []*Cluster_ClusterComponent `protobuf:"bytes,9,rep,name=components,proto3" json:"components,omitempty"`
}

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

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

func (*ClusterSnapshot) ProtoMessage() {}

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

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

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

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

func (x *ClusterSnapshot) GetCloudProviderName() string {
	if x != nil {
		return x.CloudProviderName
	}
	return ""
}

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

func (x *ClusterSnapshot) GetComponents() []*Cluster_ClusterComponent {
	if x != nil {
		return x.Components
	}
	return nil
}

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

	Id        uint64        `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	TenantId  uint64        `protobuf:"varint,2,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
	Component ComponentType `protobuf:"varint,3,opt,name=component,proto3,enum=global.dedicated.v1.ComponentType" json:"component,omitempty"`
	Quota     uint32        `protobuf:"varint,4,opt,name=quota,proto3" json:"quota,omitempty"`
}

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

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

func (*TenantQuota) ProtoMessage() {}

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

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

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

func (x *TenantQuota) GetComponent() ComponentType {
	if x != nil {
		return x.Component
	}
	return ComponentType_COMPONENT_TYPE_UNSPECIFIED
}

func (x *TenantQuota) GetQuota() uint32 {
	if x != nil {
		return x.Quota
	}
	return 0
}

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

	Id                    uint64                                   `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	ClusterId             uint64                                   `protobuf:"varint,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	DisplayName           string                                   `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	Count                 int32                                    `protobuf:"varint,4,opt,name=count,proto3" json:"count,omitempty"`
	Endpoint              *TidbNodeGroup_Endpoint                  `protobuf:"bytes,7,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
	TiproxySetting        *TidbNodeGroup_TiProxySetting            `protobuf:"bytes,11,opt,name=tiproxy_setting,json=tiproxySetting,proto3" json:"tiproxy_setting,omitempty"`
	SpuName               string                                   `protobuf:"bytes,5,opt,name=spu_name,json=spuName,proto3" json:"spu_name,omitempty"`
	SpuDisplayName        string                                   `protobuf:"bytes,6,opt,name=spu_display_name,json=spuDisplayName,proto3" json:"spu_display_name,omitempty"`
	SpuVersion            string                                   `protobuf:"bytes,13,opt,name=spu_version,json=spuVersion,proto3" json:"spu_version,omitempty"`
	IsDefault             bool                                     `protobuf:"varint,8,opt,name=is_default,json=isDefault,proto3" json:"is_default,omitempty"`
	State                 TidbNodeGroup_State                      `protobuf:"varint,9,opt,name=state,proto3,enum=global.dedicated.v1.TidbNodeGroup_State" json:"state,omitempty"`
	ModifyProgress        *Cluster_ClusterComponent_ModifyProgress `protobuf:"bytes,10,opt,name=modify_progress,json=modifyProgress,proto3" json:"modify_progress,omitempty"`
	TiproxyModifyProgress *Cluster_ClusterComponent_ModifyProgress `protobuf:"bytes,12,opt,name=tiproxy_modify_progress,json=tiproxyModifyProgress,proto3" json:"tiproxy_modify_progress,omitempty"`
}

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

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

func (*TidbNodeGroup) ProtoMessage() {}

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

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

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

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

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

func (x *TidbNodeGroup) GetEndpoint() *TidbNodeGroup_Endpoint {
	if x != nil {
		return x.Endpoint
	}
	return nil
}

func (x *TidbNodeGroup) GetTiproxySetting() *TidbNodeGroup_TiProxySetting {
	if x != nil {
		return x.TiproxySetting
	}
	return nil
}

func (x *TidbNodeGroup) GetSpuName() string {
	if x != nil {
		return x.SpuName
	}
	return ""
}

func (x *TidbNodeGroup) GetSpuDisplayName() string {
	if x != nil {
		return x.SpuDisplayName
	}
	return ""
}

func (x *TidbNodeGroup) GetSpuVersion() string {
	if x != nil {
		return x.SpuVersion
	}
	return ""
}

func (x *TidbNodeGroup) GetIsDefault() bool {
	if x != nil {
		return x.IsDefault
	}
	return false
}

func (x *TidbNodeGroup) GetState() TidbNodeGroup_State {
	if x != nil {
		return x.State
	}
	return TidbNodeGroup_STATE_UNSPECIFIED
}

func (x *TidbNodeGroup) GetModifyProgress() *Cluster_ClusterComponent_ModifyProgress {
	if x != nil {
		return x.ModifyProgress
	}
	return nil
}

func (x *TidbNodeGroup) GetTiproxyModifyProgress() *Cluster_ClusterComponent_ModifyProgress {
	if x != nil {
		return x.TiproxyModifyProgress
	}
	return nil
}

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

	// Output_only. The unique ID of the CIDR.
	Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	// Required. The ID of the project.
	ProjectId uint64 `protobuf:"varint,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	// Required. The CIDR setting by user.
	Cidr string `protobuf:"bytes,3,opt,name=cidr,proto3" json:"cidr,omitempty"`
	// Required. The name of the cloud provider.
	CloudProviderName string `protobuf:"bytes,4,opt,name=cloud_provider_name,json=cloudProviderName,proto3" json:"cloud_provider_name,omitempty"`
	// Required. The region of the CIDR.
	RegionName string `protobuf:"bytes,5,opt,name=region_name,json=regionName,proto3" json:"region_name,omitempty"`
	// Output_only. The region display name of the CIDR.
	RegionDisplayName string `protobuf:"bytes,6,opt,name=region_display_name,json=regionDisplayName,proto3" json:"region_display_name,omitempty"`
	// Output_only. The current state of the CIDR.
	State Cidr_State `protobuf:"varint,7,opt,name=state,proto3,enum=global.dedicated.v1.Cidr_State" json:"state,omitempty"`
	// Output_only. The ID of the VPC that the CIDR belongs to.
	VpcId string `protobuf:"bytes,8,opt,name=vpc_id,json=vpcId,proto3" json:"vpc_id,omitempty"`
}

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

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

func (*Cidr) ProtoMessage() {}

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

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

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

func (x *Cidr) GetCidr() string {
	if x != nil {
		return x.Cidr
	}
	return ""
}

func (x *Cidr) GetCloudProviderName() string {
	if x != nil {
		return x.CloudProviderName
	}
	return ""
}

func (x *Cidr) GetRegionName() string {
	if x != nil {
		return x.RegionName
	}
	return ""
}

func (x *Cidr) GetRegionDisplayName() string {
	if x != nil {
		return x.RegionDisplayName
	}
	return ""
}

func (x *Cidr) GetState() Cidr_State {
	if x != nil {
		return x.State
	}
	return Cidr_STATE_UNSPECIFIED
}

func (x *Cidr) GetVpcId() string {
	if x != nil {
		return x.VpcId
	}
	return ""
}

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

	// The list of regions that their CIDRs overlap with the CIDR to be created.
	Regions []*CidrOverlap_CloudRegion `protobuf:"bytes,1,rep,name=regions,proto3" json:"regions,omitempty"`
	// The ID of of the project that the CIDR overlaps with.
	ProjectId uint64 `protobuf:"varint,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
}

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

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

func (*CidrOverlap) ProtoMessage() {}

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

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

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

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

	Name    string                    `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // PrivateLink service name
	Status  PrivateLinkService_Status `protobuf:"varint,2,opt,name=status,proto3,enum=global.dedicated.v1.PrivateLinkService_Status" json:"status,omitempty"`
	DnsName string                    `protobuf:"bytes,3,opt,name=dns_name,json=dnsName,proto3" json:"dns_name,omitempty"`
	AzIds   []string                  `protobuf:"bytes,4,rep,name=az_ids,json=azIds,proto3" json:"az_ids,omitempty"` // availability zones, for example: 'usw2-az2', 'usw2-az1'
}

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

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

func (*PrivateLinkService) ProtoMessage() {}

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

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

func (x *PrivateLinkService) GetStatus() PrivateLinkService_Status {
	if x != nil {
		return x.Status
	}
	return PrivateLinkService_STATUS_UNSPECIFIED
}

func (x *PrivateLinkService) GetDnsName() string {
	if x != nil {
		return x.DnsName
	}
	return ""
}

func (x *PrivateLinkService) GetAzIds() []string {
	if x != nil {
		return x.AzIds
	}
	return nil
}

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

	// Unique ID
	Id           uint64                     `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	EndpointName string                     `protobuf:"bytes,2,opt,name=endpoint_name,json=endpointName,proto3" json:"endpoint_name,omitempty"`
	Status       PrivateLinkEndpoint_Status `protobuf:"varint,3,opt,name=status,proto3,enum=global.dedicated.v1.PrivateLinkEndpoint_Status" json:"status,omitempty"`
	Message      string                     `protobuf:"bytes,4,opt,name=message,proto3" json:"message,omitempty"`
	Type         PrivateLinkEndpoint_Type   `protobuf:"varint,5,opt,name=type,proto3,enum=global.dedicated.v1.PrivateLinkEndpoint_Type" json:"type,omitempty"`
	// Only available for Azure clusters.
	// The private IP address of the private endpoint in the user's vNet.
	// TiDB Cloud will setup a public DNS record for this private IP address. So the user can use DNS address to connect to the cluster.
	PrivateIpAddress string `protobuf:"bytes,6,opt,name=private_ip_address,json=privateIpAddress,proto3" json:"private_ip_address,omitempty"`
	// For gcp and azure, different endpoints of a private link service have different hostnames.
	Host          string                   `protobuf:"bytes,7,opt,name=host,proto3" json:"host,omitempty"`
	IpAddressType PrivateLinkIPAddressType `protobuf:"varint,8,opt,name=ip_address_type,json=ipAddressType,proto3,enum=global.dedicated.v1.PrivateLinkIPAddressType" json:"ip_address_type,omitempty"`
}

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

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

func (*PrivateLinkEndpoint) ProtoMessage() {}

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

// Deprecated: Use PrivateLinkEndpoint.ProtoReflect.Descriptor instead.
func (*PrivateLinkEndpoint) Descriptor() ([]byte, []int) {
	return file_global_dedicated_v1_resources_proto_rawDescGZIP(), []int{21}
}

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

func (x *PrivateLinkEndpoint) GetEndpointName() string {
	if x != nil {
		return x.EndpointName
	}
	return ""
}

func (x *PrivateLinkEndpoint) GetStatus() PrivateLinkEndpoint_Status {
	if x != nil {
		return x.Status
	}
	return PrivateLinkEndpoint_STATUS_UNSPECIFIED
}

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

func (x *PrivateLinkEndpoint) GetType() PrivateLinkEndpoint_Type {
	if x != nil {
		return x.Type
	}
	return PrivateLinkEndpoint_TYPE_UNSPECIFIED
}

func (x *PrivateLinkEndpoint) GetPrivateIpAddress() string {
	if x != nil {
		return x.PrivateIpAddress
	}
	return ""
}

func (x *PrivateLinkEndpoint) GetHost() string {
	if x != nil {
		return x.Host
	}
	return ""
}

func (x *PrivateLinkEndpoint) GetIpAddressType() PrivateLinkIPAddressType {
	if x != nil {
		return x.IpAddressType
	}
	return PrivateLinkIPAddressType_PRIVATE_LINK_IP_ADDRESS_TYPE_UNSPECIFIED
}

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

	Id        uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	ClusterId uint64 `protobuf:"varint,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	BucketUrl string `protobuf:"bytes,3,opt,name=bucket_url,json=bucketUrl,proto3" json:"bucket_url,omitempty"`
	// Required on AWS and GCP.
	Region string `protobuf:"bytes,4,opt,name=region,proto3" json:"region,omitempty"`
	// Required on AWS.
	RoleArn string `protobuf:"bytes,5,opt,name=role_arn,json=roleArn,proto3" json:"role_arn,omitempty"`
	// Required on Azure.
	SasToken string `protobuf:"bytes,6,opt,name=sas_token,json=sasToken,proto3" json:"sas_token,omitempty"`
	// Default is redacted.
	Unredacted *bool `protobuf:"varint,7,opt,name=unredacted,proto3,oneof" json:"unredacted,omitempty"`
	// If unset, default to TEXT.
	Format string `protobuf:"bytes,8,opt,name=format,proto3" json:"format,omitempty"`
	// Set the file size limitation for audit logs. A log rotation is triggered if the log file exceeds this limitation.
	// In the current version, If you set this variable to 0, TiDB automatically changes it to 10.
	MaxSizeMib int32 `protobuf:"varint,9,opt,name=max_size_mib,json=maxSizeMib,proto3" json:"max_size_mib,omitempty"`
	// Set the time limitation for audit logs. A log rotation is triggered if the log file exceeds this limitation.
	// Setting this variable to 0 means to disable automatic log rotation by time.
	MaxAgeSecond *int32 `protobuf:"varint,10,opt,name=max_age_second,json=maxAgeSecond,proto3,oneof" json:"max_age_second,omitempty"`
	// The bucket_manager field is used to indicate who manages the bucket.
	// If this field is not set, the bucket is managed by the CUSTOMER by default.
	BucketManager string `protobuf:"bytes,11,opt,name=bucket_manager,json=bucketManager,proto3" json:"bucket_manager,omitempty"`
	// Default is disabled.
	Enabled *bool `protobuf:"varint,12,opt,name=enabled,proto3,oneof" json:"enabled,omitempty"`
	// Default is false, which means v2 implementation.
	Legacy bool `protobuf:"varint,13,opt,name=legacy,proto3" json:"legacy,omitempty"`
}

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

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

func (*AuditLogConfig) ProtoMessage() {}

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

// Deprecated: Use AuditLogConfig.ProtoReflect.Descriptor instead.
func (*AuditLogConfig) Descriptor() ([]byte, []int) {
	return file_global_dedicated_v1_resources_proto_rawDescGZIP(), []int{22}
}

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

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

func (x *AuditLogConfig) GetBucketUrl() string {
	if x != nil {
		return x.BucketUrl
	}
	return ""
}

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

func (x *AuditLogConfig) GetRoleArn() string {
	if x != nil {
		return x.RoleArn
	}
	return ""
}

func (x *AuditLogConfig) GetSasToken() string {
	if x != nil {
		return x.SasToken
	}
	return ""
}

func (x *AuditLogConfig) GetUnredacted() bool {
	if x != nil && x.Unredacted != nil {
		return *x.Unredacted
	}
	return false
}

func (x *AuditLogConfig) GetFormat() string {
	if x != nil {
		return x.Format
	}
	return ""
}

func (x *AuditLogConfig) GetMaxSizeMib() int32 {
	if x != nil {
		return x.MaxSizeMib
	}
	return 0
}

func (x *AuditLogConfig) GetMaxAgeSecond() int32 {
	if x != nil && x.MaxAgeSecond != nil {
		return *x.MaxAgeSecond
	}
	return 0
}

func (x *AuditLogConfig) GetBucketManager() string {
	if x != nil {
		return x.BucketManager
	}
	return ""
}

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

func (x *AuditLogConfig) GetLegacy() bool {
	if x != nil {
		return x.Legacy
	}
	return false
}

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

	// For audit log v2, id is the pk in management service db.
	Id        uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	ClusterId uint64 `protobuf:"varint,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// For audit log v2, default is enabled.
	Disabled bool `protobuf:"varint,3,opt,name=disabled,proto3" json:"disabled,omitempty"`
	// For audit log v2, user_expr is required.
	UserExpr string `protobuf:"bytes,4,opt,name=user_expr,json=userExpr,proto3" json:"user_expr,omitempty"`
	// For audit log v2, if db_expr is empty, it means all events.
	EventTypes []string `protobuf:"bytes,5,rep,name=event_types,json=eventTypes,proto3" json:"event_types,omitempty"`
	// For audit log v2, if tables is empty, it means all tables.
	Tables []string `protobuf:"bytes,6,rep,name=tables,proto3" json:"tables,omitempty"`
	// For audit log v2, if status_codes is empty, it means all events no matter success or failure.
	StatusCodes []int32 `protobuf:"varint,7,rep,packed,name=status_codes,json=statusCodes,proto3" json:"status_codes,omitempty"`
	// For audit log v2, default to `user_expr`.
	DisplayName string `protobuf:"bytes,8,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// Deprecated: Marked as deprecated in global/dedicated/v1/resources.proto.
	DbExpr string `protobuf:"bytes,9,opt,name=db_expr,json=dbExpr,proto3" json:"db_expr,omitempty"`
	// Deprecated: Marked as deprecated in global/dedicated/v1/resources.proto.
	TableExpr string `protobuf:"bytes,10,opt,name=table_expr,json=tableExpr,proto3" json:"table_expr,omitempty"`
	// Deprecated: Marked as deprecated in global/dedicated/v1/resources.proto.
	AccessTypeList []string `protobuf:"bytes,11,rep,name=access_type_list,json=accessTypeList,proto3" json:"access_type_list,omitempty"`
	Legacy         bool     `protobuf:"varint,12,opt,name=legacy,proto3" json:"legacy,omitempty"`
}

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

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

func (*AuditLogFilterRule) ProtoMessage() {}

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

// Deprecated: Use AuditLogFilterRule.ProtoReflect.Descriptor instead.
func (*AuditLogFilterRule) Descriptor() ([]byte, []int) {
	return file_global_dedicated_v1_resources_proto_rawDescGZIP(), []int{23}
}

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

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

func (x *AuditLogFilterRule) GetDisabled() bool {
	if x != nil {
		return x.Disabled
	}
	return false
}

func (x *AuditLogFilterRule) GetUserExpr() string {
	if x != nil {
		return x.UserExpr
	}
	return ""
}

func (x *AuditLogFilterRule) GetEventTypes() []string {
	if x != nil {
		return x.EventTypes
	}
	return nil
}

func (x *AuditLogFilterRule) GetTables() []string {
	if x != nil {
		return x.Tables
	}
	return nil
}

func (x *AuditLogFilterRule) GetStatusCodes() []int32 {
	if x != nil {
		return x.StatusCodes
	}
	return nil
}

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

// Deprecated: Marked as deprecated in global/dedicated/v1/resources.proto.
func (x *AuditLogFilterRule) GetDbExpr() string {
	if x != nil {
		return x.DbExpr
	}
	return ""
}

// Deprecated: Marked as deprecated in global/dedicated/v1/resources.proto.
func (x *AuditLogFilterRule) GetTableExpr() string {
	if x != nil {
		return x.TableExpr
	}
	return ""
}

// Deprecated: Marked as deprecated in global/dedicated/v1/resources.proto.
func (x *AuditLogFilterRule) GetAccessTypeList() []string {
	if x != nil {
		return x.AccessTypeList
	}
	return nil
}

func (x *AuditLogFilterRule) GetLegacy() bool {
	if x != nil {
		return x.Legacy
	}
	return false
}

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

	ClusterId uint64 `protobuf:"varint,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// Indicates whether to redact sensitive information in logs.
	// Default policy: true (enable log redaction)
	RedactLog *bool `protobuf:"varint,2,opt,name=redact_log,json=redactLog,proto3,oneof" json:"redact_log,omitempty"`
}

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

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

func (*LogRedactionPolicy) ProtoMessage() {}

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

// Deprecated: Use LogRedactionPolicy.ProtoReflect.Descriptor instead.
func (*LogRedactionPolicy) Descriptor() ([]byte, []int) {
	return file_global_dedicated_v1_resources_proto_rawDescGZIP(), []int{24}
}

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

func (x *LogRedactionPolicy) GetRedactLog() bool {
	if x != nil && x.RedactLog != nil {
		return *x.RedactLog
	}
	return false
}

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

	Id            uint64                 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	CreateTime    *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	DeleteTime    *timestamppb.Timestamp `protobuf:"bytes,32,opt,name=delete_time,json=deleteTime,proto3" json:"delete_time,omitempty"`
	ClusterId     uint64                 `protobuf:"varint,9,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	ComponentType ComponentType          `protobuf:"varint,3,opt,name=component_type,json=componentType,proto3,enum=global.dedicated.v1.ComponentType" json:"component_type,omitempty"`
	// 8C16G
	// When new component, the spu_name is required.
	// When update component, the spu_name is optional. Empty means do not change spu.
	SpuName string `protobuf:"bytes,4,opt,name=spu_name,json=spuName,proto3" json:"spu_name,omitempty"`
	// 8C16G:DEPLOY_TYPE_DEDICATED:COMPONENT_TYPE_TIDB
	SpuKey string `protobuf:"bytes,26,opt,name=spu_key,json=spuKey,proto3" json:"spu_key,omitempty"`
	// 8 vCPU, 16 GiB
	SpuDisplayName string `protobuf:"bytes,21,opt,name=spu_display_name,json=spuDisplayName,proto3" json:"spu_display_name,omitempty"`
	SpuVersion     string `protobuf:"bytes,31,opt,name=spu_version,json=spuVersion,proto3" json:"spu_version,omitempty"`
	// aws:tidb:c5.2xlarge:local-storage:0:0
	SkuKey string `protobuf:"bytes,25,opt,name=sku_key,json=skuKey,proto3" json:"sku_key,omitempty"`
	// Required when creating. Optional when scaling.
	// TiFlash can have 0 count ClusterComponent.
	Count *uint32 `protobuf:"varint,5,opt,name=count,proto3,oneof" json:"count,omitempty"`
	// The key is the disk type.
	Storages map[string]*Cluster_ClusterComponent_Storage `protobuf:"bytes,6,rep,name=storages,proto3" json:"storages,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// For non-tidb components, the tidb_group_id is the default TiDB group id.
	TidbGroupId           uint64                                   `protobuf:"varint,7,opt,name=tidb_group_id,json=tidbGroupId,proto3" json:"tidb_group_id,omitempty"`
	IsDefaultTidbGroup    bool                                     `protobuf:"varint,11,opt,name=is_default_tidb_group,json=isDefaultTidbGroup,proto3" json:"is_default_tidb_group,omitempty"`
	TidbGroupDisplayName  string                                   `protobuf:"bytes,12,opt,name=tidb_group_display_name,json=tidbGroupDisplayName,proto3" json:"tidb_group_display_name,omitempty"`
	InstanceType          string                                   `protobuf:"bytes,22,opt,name=instance_type,json=instanceType,proto3" json:"instance_type,omitempty"`
	CpuNum                uint32                                   `protobuf:"varint,23,opt,name=cpu_num,json=cpuNum,proto3" json:"cpu_num,omitempty"`
	MemorySizeGi          uint32                                   `protobuf:"varint,24,opt,name=memory_size_gi,json=memorySizeGi,proto3" json:"memory_size_gi,omitempty"`
	InstanceCpuArch       InstanceMu_CpuArch                       `protobuf:"varint,27,opt,name=instance_cpu_arch,json=instanceCpuArch,proto3,enum=global.dedicated.v1.InstanceMu_CpuArch" json:"instance_cpu_arch,omitempty"`
	InstanceCpuGeneration InstanceMu_CpuGeneration                 `protobuf:"varint,30,opt,name=instance_cpu_generation,json=instanceCpuGeneration,proto3,enum=global.dedicated.v1.InstanceMu_CpuGeneration" json:"instance_cpu_generation,omitempty"`
	ModifyProgress        *Cluster_ClusterComponent_ModifyProgress `protobuf:"bytes,28,opt,name=modify_progress,json=modifyProgress,proto3" json:"modify_progress,omitempty"`
	// node:aws:us-west-2:DEPLOY_TYPE_DEDICATED:m6g.8xlarge
	MeteringSkuKeys map[string]uint32 `protobuf:"bytes,29,rep,name=metering_sku_keys,json=meteringSkuKeys,proto3" json:"metering_sku_keys,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}

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

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

func (*Cluster_ClusterComponent) ProtoMessage() {}

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

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

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

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

func (x *Cluster_ClusterComponent) GetDeleteTime() *timestamppb.Timestamp {
	if x != nil {
		return x.DeleteTime
	}
	return nil
}

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

func (x *Cluster_ClusterComponent) GetComponentType() ComponentType {
	if x != nil {
		return x.ComponentType
	}
	return ComponentType_COMPONENT_TYPE_UNSPECIFIED
}

func (x *Cluster_ClusterComponent) GetSpuName() string {
	if x != nil {
		return x.SpuName
	}
	return ""
}

func (x *Cluster_ClusterComponent) GetSpuKey() string {
	if x != nil {
		return x.SpuKey
	}
	return ""
}

func (x *Cluster_ClusterComponent) GetSpuDisplayName() string {
	if x != nil {
		return x.SpuDisplayName
	}
	return ""
}

func (x *Cluster_ClusterComponent) GetSpuVersion() string {
	if x != nil {
		return x.SpuVersion
	}
	return ""
}

func (x *Cluster_ClusterComponent) GetSkuKey() string {
	if x != nil {
		return x.SkuKey
	}
	return ""
}

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

func (x *Cluster_ClusterComponent) GetStorages() map[string]*Cluster_ClusterComponent_Storage {
	if x != nil {
		return x.Storages
	}
	return nil
}

func (x *Cluster_ClusterComponent) GetTidbGroupId() uint64 {
	if x != nil {
		return x.TidbGroupId
	}
	return 0
}

func (x *Cluster_ClusterComponent) GetIsDefaultTidbGroup() bool {
	if x != nil {
		return x.IsDefaultTidbGroup
	}
	return false
}

func (x *Cluster_ClusterComponent) GetTidbGroupDisplayName() string {
	if x != nil {
		return x.TidbGroupDisplayName
	}
	return ""
}

func (x *Cluster_ClusterComponent) GetInstanceType() string {
	if x != nil {
		return x.InstanceType
	}
	return ""
}

func (x *Cluster_ClusterComponent) GetCpuNum() uint32 {
	if x != nil {
		return x.CpuNum
	}
	return 0
}

func (x *Cluster_ClusterComponent) GetMemorySizeGi() uint32 {
	if x != nil {
		return x.MemorySizeGi
	}
	return 0
}

func (x *Cluster_ClusterComponent) GetInstanceCpuArch() InstanceMu_CpuArch {
	if x != nil {
		return x.InstanceCpuArch
	}
	return InstanceMu_CPU_ARCH_UNSPECIFIED
}

func (x *Cluster_ClusterComponent) GetInstanceCpuGeneration() InstanceMu_CpuGeneration {
	if x != nil {
		return x.InstanceCpuGeneration
	}
	return InstanceMu_CPU_GENERATION_UNSPECIFIED
}

func (x *Cluster_ClusterComponent) GetModifyProgress() *Cluster_ClusterComponent_ModifyProgress {
	if x != nil {
		return x.ModifyProgress
	}
	return nil
}

func (x *Cluster_ClusterComponent) GetMeteringSkuKeys() map[string]uint32 {
	if x != nil {
		return x.MeteringSkuKeys
	}
	return nil
}

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

	PausePlan           Cluster_PausePlan_Type `protobuf:"varint,1,opt,name=pause_plan,json=pausePlan,proto3,enum=global.dedicated.v1.Cluster_PausePlan_Type" json:"pause_plan,omitempty"`
	PauseTime           *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=pause_time,json=pauseTime,proto3" json:"pause_time,omitempty"`
	ScheduledResumeTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=scheduled_resume_time,json=scheduledResumeTime,proto3" json:"scheduled_resume_time,omitempty"`
}

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

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

func (*Cluster_PausePlan) ProtoMessage() {}

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

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

func (x *Cluster_PausePlan) GetPausePlan() Cluster_PausePlan_Type {
	if x != nil {
		return x.PausePlan
	}
	return Cluster_PausePlan_PAUSE_TYPE_UNSPECIFIED
}

func (x *Cluster_PausePlan) GetPauseTime() *timestamppb.Timestamp {
	if x != nil {
		return x.PauseTime
	}
	return nil
}

func (x *Cluster_PausePlan) GetScheduledResumeTime() *timestamppb.Timestamp {
	if x != nil {
		return x.ScheduledResumeTime
	}
	return nil
}

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

	UptodateQuantity          int32 `protobuf:"varint,2,opt,name=uptodate_quantity,json=uptodateQuantity,proto3" json:"uptodate_quantity,omitempty"`
	RemainingDeletionQuantity int32 `protobuf:"varint,3,opt,name=remaining_deletion_quantity,json=remainingDeletionQuantity,proto3" json:"remaining_deletion_quantity,omitempty"` // available if some nodes are deleting
}

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

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

func (*Cluster_ClusterComponent_ModifyProgress) ProtoMessage() {}

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

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

func (x *Cluster_ClusterComponent_ModifyProgress) GetUptodateQuantity() int32 {
	if x != nil {
		return x.UptodateQuantity
	}
	return 0
}

func (x *Cluster_ClusterComponent_ModifyProgress) GetRemainingDeletionQuantity() int32 {
	if x != nil {
		return x.RemainingDeletionQuantity
	}
	return 0
}

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

	// Cluster storage component id.
	StorageId   uint64       `protobuf:"varint,1,opt,name=storage_id,json=storageId,proto3" json:"storage_id,omitempty"`
	ComponentId uint64       `protobuf:"varint,9,opt,name=component_id,json=componentId,proto3" json:"component_id,omitempty"`
	DiskType    Sku_DiskType `protobuf:"varint,10,opt,name=disk_type,json=diskType,proto3,enum=global.dedicated.v1.Sku_DiskType" json:"disk_type,omitempty"`
	// When creating component, 0 size means use the default size.
	// Size changes only when explicitly requested. When updating component, 0 size means do not change the size.
	SizeGi uint32 `protobuf:"varint,2,opt,name=size_gi,json=sizeGi,proto3" json:"size_gi,omitempty"`
	// If not set use the value from SKU, no matter create or update. If selected sku changed at the same time, the iops could be changed at the same time.
	Iops uint32 `protobuf:"varint,3,opt,name=iops,proto3" json:"iops,omitempty"`
	// If not set use the value from SKU, no matter create or update. If selected sku changed at the same time, the throughput could be changed at the same time.
	ThroughputMibps uint32 `protobuf:"varint,4,opt,name=throughput_mibps,json=throughputMibps,proto3" json:"throughput_mibps,omitempty"`
	// In creating or updating request, UNSPECIFIED means not to provision this disk.
	// In creating request, null means ignoring volume_type filter when selecting sku.
	// In updating request, null means do not change volume_type (use current volume type).
	// In response, UNSPECIFIED and null have the same meaning -- this type of disk is not provisioned.
	VolumeType *StorageMu_VolumeType `protobuf:"varint,5,opt,name=volume_type,json=volumeType,proto3,enum=global.dedicated.v1.StorageMu_VolumeType,oneof" json:"volume_type,omitempty"`
	// Only take effect when iops is not set. Final effective iops = SKU iops + additional_iops.
	// In creating or updating request, 0 means explicitly set to 0.
	// In creating request, 0 and null have the same meaning -- set to 0.
	// In updating request, null means do not change additional_iops, 0 means set to 0.
	// In response, 0 and null have the same meaning -- set to 0.
	AdditionalIops *uint32 `protobuf:"varint,6,opt,name=additional_iops,json=additionalIops,proto3,oneof" json:"additional_iops,omitempty"`
	// disk-storage:aws:us-west-2:Standard_Optimized:data:gp3
	MeteringSkuKeys map[string]uint32 `protobuf:"bytes,8,rep,name=metering_sku_keys,json=meteringSkuKeys,proto3" json:"metering_sku_keys,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}

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

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

func (*Cluster_ClusterComponent_Storage) ProtoMessage() {}

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

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

func (x *Cluster_ClusterComponent_Storage) GetStorageId() uint64 {
	if x != nil {
		return x.StorageId
	}
	return 0
}

func (x *Cluster_ClusterComponent_Storage) GetComponentId() uint64 {
	if x != nil {
		return x.ComponentId
	}
	return 0
}

func (x *Cluster_ClusterComponent_Storage) GetDiskType() Sku_DiskType {
	if x != nil {
		return x.DiskType
	}
	return Sku_DISK_TYPE_UNSPECIFIED
}

func (x *Cluster_ClusterComponent_Storage) GetSizeGi() uint32 {
	if x != nil {
		return x.SizeGi
	}
	return 0
}

func (x *Cluster_ClusterComponent_Storage) GetIops() uint32 {
	if x != nil {
		return x.Iops
	}
	return 0
}

func (x *Cluster_ClusterComponent_Storage) GetThroughputMibps() uint32 {
	if x != nil {
		return x.ThroughputMibps
	}
	return 0
}

func (x *Cluster_ClusterComponent_Storage) GetVolumeType() StorageMu_VolumeType {
	if x != nil && x.VolumeType != nil {
		return *x.VolumeType
	}
	return StorageMu_VOLUME_TYPE_UNSPECIFIED
}

func (x *Cluster_ClusterComponent_Storage) GetAdditionalIops() uint32 {
	if x != nil && x.AdditionalIops != nil {
		return *x.AdditionalIops
	}
	return 0
}

func (x *Cluster_ClusterComponent_Storage) GetMeteringSkuKeys() map[string]uint32 {
	if x != nil {
		return x.MeteringSkuKeys
	}
	return nil
}

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

	TidbCloudAccountId string `protobuf:"bytes,1,opt,name=tidb_cloud_account_id,json=tidbCloudAccountId,proto3" json:"tidb_cloud_account_id,omitempty"`
	TidbCloudVpcId     string `protobuf:"bytes,2,opt,name=tidb_cloud_vpc_id,json=tidbCloudVpcId,proto3" json:"tidb_cloud_vpc_id,omitempty"`
}

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

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

func (*Vpc_AwsVpcInfo) ProtoMessage() {}

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

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

func (x *Vpc_AwsVpcInfo) GetTidbCloudAccountId() string {
	if x != nil {
		return x.TidbCloudAccountId
	}
	return ""
}

func (x *Vpc_AwsVpcInfo) GetTidbCloudVpcId() string {
	if x != nil {
		return x.TidbCloudVpcId
	}
	return ""
}

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

	TidbCloudProjectId   string `protobuf:"bytes,1,opt,name=tidb_cloud_project_id,json=tidbCloudProjectId,proto3" json:"tidb_cloud_project_id,omitempty"`
	TidbCloudNetworkName string `protobuf:"bytes,2,opt,name=tidb_cloud_network_name,json=tidbCloudNetworkName,proto3" json:"tidb_cloud_network_name,omitempty"`
}

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

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

func (*Vpc_GcpVpcInfo) ProtoMessage() {}

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

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

func (x *Vpc_GcpVpcInfo) GetTidbCloudProjectId() string {
	if x != nil {
		return x.TidbCloudProjectId
	}
	return ""
}

func (x *Vpc_GcpVpcInfo) GetTidbCloudNetworkName() string {
	if x != nil {
		return x.TidbCloudNetworkName
	}
	return ""
}

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

	TidbCloudVnetId string `protobuf:"bytes,1,opt,name=tidb_cloud_vnet_id,json=tidbCloudVnetId,proto3" json:"tidb_cloud_vnet_id,omitempty"`
}

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

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

func (*Vpc_AzureVpcInfo) ProtoMessage() {}

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

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

func (x *Vpc_AzureVpcInfo) GetTidbCloudVnetId() string {
	if x != nil {
		return x.TidbCloudVnetId
	}
	return ""
}

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

	TidbCloudAccountId     string `protobuf:"bytes,1,opt,name=tidb_cloud_account_id,json=tidbCloudAccountId,proto3" json:"tidb_cloud_account_id,omitempty"`
	CustomerAccountId      string `protobuf:"bytes,2,opt,name=customer_account_id,json=customerAccountId,proto3" json:"customer_account_id,omitempty"`
	TidbCloudVpcId         string `protobuf:"bytes,3,opt,name=tidb_cloud_vpc_id,json=tidbCloudVpcId,proto3" json:"tidb_cloud_vpc_id,omitempty"`
	CustomerVpcId          string `protobuf:"bytes,4,opt,name=customer_vpc_id,json=customerVpcId,proto3" json:"customer_vpc_id,omitempty"`
	VpcPeeringConnectionId string `protobuf:"bytes,5,opt,name=vpc_peering_connection_id,json=vpcPeeringConnectionId,proto3" json:"vpc_peering_connection_id,omitempty"`
}

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

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

func (*VpcPeering_Aws) ProtoMessage() {}

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

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

func (x *VpcPeering_Aws) GetTidbCloudAccountId() string {
	if x != nil {
		return x.TidbCloudAccountId
	}
	return ""
}

func (x *VpcPeering_Aws) GetCustomerAccountId() string {
	if x != nil {
		return x.CustomerAccountId
	}
	return ""
}

func (x *VpcPeering_Aws) GetTidbCloudVpcId() string {
	if x != nil {
		return x.TidbCloudVpcId
	}
	return ""
}

func (x *VpcPeering_Aws) GetCustomerVpcId() string {
	if x != nil {
		return x.CustomerVpcId
	}
	return ""
}

func (x *VpcPeering_Aws) GetVpcPeeringConnectionId() string {
	if x != nil {
		return x.VpcPeeringConnectionId
	}
	return ""
}

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

	TidbCloudProjectId   string `protobuf:"bytes,1,opt,name=tidb_cloud_project_id,json=tidbCloudProjectId,proto3" json:"tidb_cloud_project_id,omitempty"`
	CustomerProjectId    string `protobuf:"bytes,2,opt,name=customer_project_id,json=customerProjectId,proto3" json:"customer_project_id,omitempty"`
	TidbCloudNetworkName string `protobuf:"bytes,3,opt,name=tidb_cloud_network_name,json=tidbCloudNetworkName,proto3" json:"tidb_cloud_network_name,omitempty"`
	CustomerNetworkName  string `protobuf:"bytes,4,opt,name=customer_network_name,json=customerNetworkName,proto3" json:"customer_network_name,omitempty"`
}

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

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

func (*VpcPeering_Gcp) ProtoMessage() {}

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

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

func (x *VpcPeering_Gcp) GetTidbCloudProjectId() string {
	if x != nil {
		return x.TidbCloudProjectId
	}
	return ""
}

func (x *VpcPeering_Gcp) GetCustomerProjectId() string {
	if x != nil {
		return x.CustomerProjectId
	}
	return ""
}

func (x *VpcPeering_Gcp) GetTidbCloudNetworkName() string {
	if x != nil {
		return x.TidbCloudNetworkName
	}
	return ""
}

func (x *VpcPeering_Gcp) GetCustomerNetworkName() string {
	if x != nil {
		return x.CustomerNetworkName
	}
	return ""
}

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

	DiskType      Sku_DiskType         `protobuf:"varint,1,opt,name=disk_type,json=diskType,proto3,enum=global.dedicated.v1.Sku_DiskType" json:"disk_type,omitempty"`
	StorageMuId   uint64               `protobuf:"varint,2,opt,name=storage_mu_id,json=storageMuId,proto3" json:"storage_mu_id,omitempty"`
	VolumeType    StorageMu_VolumeType `protobuf:"varint,3,opt,name=volume_type,json=volumeType,proto3,enum=global.dedicated.v1.StorageMu_VolumeType" json:"volume_type,omitempty"`
	SizeGiDefault int32                `protobuf:"varint,4,opt,name=size_gi_default,json=sizeGiDefault,proto3" json:"size_gi_default,omitempty"`
	// 0 means no limit.
	SizeGiMax int32 `protobuf:"varint,5,opt,name=size_gi_max,json=sizeGiMax,proto3" json:"size_gi_max,omitempty"`
	// 0 means no limit.
	SizeGiMin int32 `protobuf:"varint,6,opt,name=size_gi_min,json=sizeGiMin,proto3" json:"size_gi_min,omitempty"`
	// 0 means no limit.
	IopsMax int32 `protobuf:"varint,7,opt,name=iops_max,json=iopsMax,proto3" json:"iops_max,omitempty"`
	// 0 means no limit.
	IopsMin int32 `protobuf:"varint,8,opt,name=iops_min,json=iopsMin,proto3" json:"iops_min,omitempty"`
	// 0 means no limit.
	ThroughputMibpsMax int32 `protobuf:"varint,9,opt,name=throughput_mibps_max,json=throughputMibpsMax,proto3" json:"throughput_mibps_max,omitempty"`
	// 0 means no limit.
	ThroughputMibpsMin int32 `protobuf:"varint,10,opt,name=throughput_mibps_min,json=throughputMibpsMin,proto3" json:"throughput_mibps_min,omitempty"`
	// Types that are assignable to Iops:
	//
	//	*Sku_Storage_IopsFixed_
	//	*Sku_Storage_IopsDynamic_
	Iops isSku_Storage_Iops `protobuf_oneof:"iops"`
	// Types that are assignable to Throughput:
	//
	//	*Sku_Storage_ThroughputFixed_
	//	*Sku_Storage_ThroughputDynamic_
	Throughput isSku_Storage_Throughput `protobuf_oneof:"throughput"`
}

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

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

func (*Sku_Storage) ProtoMessage() {}

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

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

func (x *Sku_Storage) GetDiskType() Sku_DiskType {
	if x != nil {
		return x.DiskType
	}
	return Sku_DISK_TYPE_UNSPECIFIED
}

func (x *Sku_Storage) GetStorageMuId() uint64 {
	if x != nil {
		return x.StorageMuId
	}
	return 0
}

func (x *Sku_Storage) GetVolumeType() StorageMu_VolumeType {
	if x != nil {
		return x.VolumeType
	}
	return StorageMu_VOLUME_TYPE_UNSPECIFIED
}

func (x *Sku_Storage) GetSizeGiDefault() int32 {
	if x != nil {
		return x.SizeGiDefault
	}
	return 0
}

func (x *Sku_Storage) GetSizeGiMax() int32 {
	if x != nil {
		return x.SizeGiMax
	}
	return 0
}

func (x *Sku_Storage) GetSizeGiMin() int32 {
	if x != nil {
		return x.SizeGiMin
	}
	return 0
}

func (x *Sku_Storage) GetIopsMax() int32 {
	if x != nil {
		return x.IopsMax
	}
	return 0
}

func (x *Sku_Storage) GetIopsMin() int32 {
	if x != nil {
		return x.IopsMin
	}
	return 0
}

func (x *Sku_Storage) GetThroughputMibpsMax() int32 {
	if x != nil {
		return x.ThroughputMibpsMax
	}
	return 0
}

func (x *Sku_Storage) GetThroughputMibpsMin() int32 {
	if x != nil {
		return x.ThroughputMibpsMin
	}
	return 0
}

func (m *Sku_Storage) GetIops() isSku_Storage_Iops {
	if m != nil {
		return m.Iops
	}
	return nil
}

func (x *Sku_Storage) GetIopsFixed() *Sku_Storage_IopsFixed {
	if x, ok := x.GetIops().(*Sku_Storage_IopsFixed_); ok {
		return x.IopsFixed
	}
	return nil
}

func (x *Sku_Storage) GetIopsDynamic() *Sku_Storage_IopsDynamic {
	if x, ok := x.GetIops().(*Sku_Storage_IopsDynamic_); ok {
		return x.IopsDynamic
	}
	return nil
}

func (m *Sku_Storage) GetThroughput() isSku_Storage_Throughput {
	if m != nil {
		return m.Throughput
	}
	return nil
}

func (x *Sku_Storage) GetThroughputFixed() *Sku_Storage_ThroughputFixed {
	if x, ok := x.GetThroughput().(*Sku_Storage_ThroughputFixed_); ok {
		return x.ThroughputFixed
	}
	return nil
}

func (x *Sku_Storage) GetThroughputDynamic() *Sku_Storage_ThroughputDynamic {
	if x, ok := x.GetThroughput().(*Sku_Storage_ThroughputDynamic_); ok {
		return x.ThroughputDynamic
	}
	return nil
}

type isSku_Storage_Iops interface {
	isSku_Storage_Iops()
}

type Sku_Storage_IopsFixed_ struct {
	IopsFixed *Sku_Storage_IopsFixed `protobuf:"bytes,11,opt,name=iops_fixed,json=iopsFixed,proto3,oneof"`
}

type Sku_Storage_IopsDynamic_ struct {
	IopsDynamic *Sku_Storage_IopsDynamic `protobuf:"bytes,12,opt,name=iops_dynamic,json=iopsDynamic,proto3,oneof"`
}

func (*Sku_Storage_IopsFixed_) isSku_Storage_Iops() {}

func (*Sku_Storage_IopsDynamic_) isSku_Storage_Iops() {}

type isSku_Storage_Throughput interface {
	isSku_Storage_Throughput()
}

type Sku_Storage_ThroughputFixed_ struct {
	ThroughputFixed *Sku_Storage_ThroughputFixed `protobuf:"bytes,13,opt,name=throughput_fixed,json=throughputFixed,proto3,oneof"`
}

type Sku_Storage_ThroughputDynamic_ struct {
	ThroughputDynamic *Sku_Storage_ThroughputDynamic `protobuf:"bytes,14,opt,name=throughput_dynamic,json=throughputDynamic,proto3,oneof"`
}

func (*Sku_Storage_ThroughputFixed_) isSku_Storage_Throughput() {}

func (*Sku_Storage_ThroughputDynamic_) isSku_Storage_Throughput() {}

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

	Key      Sku_Condition_Key      `protobuf:"varint,1,opt,name=key,proto3,enum=global.dedicated.v1.Sku_Condition_Key" json:"key,omitempty"`
	Operator Sku_Condition_Operator `protobuf:"varint,2,opt,name=operator,proto3,enum=global.dedicated.v1.Sku_Condition_Operator" json:"operator,omitempty"`
	Values   []string               `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"`
}

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

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

func (*Sku_Condition) ProtoMessage() {}

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

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

func (x *Sku_Condition) GetKey() Sku_Condition_Key {
	if x != nil {
		return x.Key
	}
	return Sku_Condition_KEY_UNSPECIFIED
}

func (x *Sku_Condition) GetOperator() Sku_Condition_Operator {
	if x != nil {
		return x.Operator
	}
	return Sku_Condition_OPERATOR_UNSPECIFIED
}

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

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

	Iops int32 `protobuf:"varint,1,opt,name=iops,proto3" json:"iops,omitempty"`
}

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

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

func (*Sku_Storage_IopsFixed) ProtoMessage() {}

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

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

func (x *Sku_Storage_IopsFixed) GetIops() int32 {
	if x != nil {
		return x.Iops
	}
	return 0
}

// iops = ceil(iops_per_size_gi * size_gi), and in range of [iops_min, iops_max].
type Sku_Storage_IopsDynamic struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	IopsPerSizeGi float32 `protobuf:"fixed32,1,opt,name=iops_per_size_gi,json=iopsPerSizeGi,proto3" json:"iops_per_size_gi,omitempty"`
}

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

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

func (*Sku_Storage_IopsDynamic) ProtoMessage() {}

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

// Deprecated: Use Sku_Storage_IopsDynamic.ProtoReflect.Descriptor instead.
func (*Sku_Storage_IopsDynamic) Descriptor() ([]byte, []int) {
	return file_global_dedicated_v1_resources_proto_rawDescGZIP(), []int{5, 0, 1}
}

func (x *Sku_Storage_IopsDynamic) GetIopsPerSizeGi() float32 {
	if x != nil {
		return x.IopsPerSizeGi
	}
	return 0
}

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

	ThroughputMibps int32 `protobuf:"varint,1,opt,name=throughput_mibps,json=throughputMibps,proto3" json:"throughput_mibps,omitempty"`
}

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

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

func (*Sku_Storage_ThroughputFixed) ProtoMessage() {}

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

// Deprecated: Use Sku_Storage_ThroughputFixed.ProtoReflect.Descriptor instead.
func (*Sku_Storage_ThroughputFixed) Descriptor() ([]byte, []int) {
	return file_global_dedicated_v1_resources_proto_rawDescGZIP(), []int{5, 0, 2}
}

func (x *Sku_Storage_ThroughputFixed) GetThroughputMibps() int32 {
	if x != nil {
		return x.ThroughputMibps
	}
	return 0
}

// throughput = ceil(max(throughput_mibps_per_size_gi * size_gi, throughput_mibps_per_iops * iops)), and in range of [throughput_mibps_min, throughput_mibps_max].
type Sku_Storage_ThroughputDynamic struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ThroughputMibpsPerSizeGi float32 `protobuf:"fixed32,1,opt,name=throughput_mibps_per_size_gi,json=throughputMibpsPerSizeGi,proto3" json:"throughput_mibps_per_size_gi,omitempty"`
	ThroughputMibpsPerIops   float32 `protobuf:"fixed32,2,opt,name=throughput_mibps_per_iops,json=throughputMibpsPerIops,proto3" json:"throughput_mibps_per_iops,omitempty"`
}

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

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

func (*Sku_Storage_ThroughputDynamic) ProtoMessage() {}

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

// Deprecated: Use Sku_Storage_ThroughputDynamic.ProtoReflect.Descriptor instead.
func (*Sku_Storage_ThroughputDynamic) Descriptor() ([]byte, []int) {
	return file_global_dedicated_v1_resources_proto_rawDescGZIP(), []int{5, 0, 3}
}

func (x *Sku_Storage_ThroughputDynamic) GetThroughputMibpsPerSizeGi() float32 {
	if x != nil {
		return x.ThroughputMibpsPerSizeGi
	}
	return 0
}

func (x *Sku_Storage_ThroughputDynamic) GetThroughputMibpsPerIops() float32 {
	if x != nil {
		return x.ThroughputMibpsPerIops
	}
	return 0
}

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

	// Behavior not defined. Currently choose value of the first selected sku.
	DefaultSizeGi int32 `protobuf:"varint,1,opt,name=default_size_gi,json=defaultSizeGi,proto3" json:"default_size_gi,omitempty"`
	// Behavior not defined. Currently choose value of the first selected sku.
	MaxSizeGi int32 `protobuf:"varint,2,opt,name=max_size_gi,json=maxSizeGi,proto3" json:"max_size_gi,omitempty"`
	// Behavior not defined. Currently choose value of the first selected sku.
	MinSizeGi int32 `protobuf:"varint,3,opt,name=min_size_gi,json=minSizeGi,proto3" json:"min_size_gi,omitempty"`
	// Currently only useful when overriding iops for raftlog storage.
	DefaultIops int32 `protobuf:"varint,6,opt,name=default_iops,json=defaultIops,proto3" json:"default_iops,omitempty"`
	// Behavior not defined. Currently choose value of the first selected sku.
	MaxIops int32 `protobuf:"varint,4,opt,name=max_iops,json=maxIops,proto3" json:"max_iops,omitempty"`
	// Behavior not defined. Currently choose value of the first selected sku.
	MinIops int32 `protobuf:"varint,5,opt,name=min_iops,json=minIops,proto3" json:"min_iops,omitempty"`
}

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

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

func (*Spu_Storage) ProtoMessage() {}

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

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

func (x *Spu_Storage) GetDefaultSizeGi() int32 {
	if x != nil {
		return x.DefaultSizeGi
	}
	return 0
}

func (x *Spu_Storage) GetMaxSizeGi() int32 {
	if x != nil {
		return x.MaxSizeGi
	}
	return 0
}

func (x *Spu_Storage) GetMinSizeGi() int32 {
	if x != nil {
		return x.MinSizeGi
	}
	return 0
}

func (x *Spu_Storage) GetDefaultIops() int32 {
	if x != nil {
		return x.DefaultIops
	}
	return 0
}

func (x *Spu_Storage) GetMaxIops() int32 {
	if x != nil {
		return x.MaxIops
	}
	return 0
}

func (x *Spu_Storage) GetMinIops() int32 {
	if x != nil {
		return x.MinIops
	}
	return 0
}

// Deprecated: Marked as deprecated in global/dedicated/v1/resources.proto.
type Spu_Mapping struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CloudProvider   v1.CloudProvider_Name `protobuf:"varint,1,opt,name=cloud_provider,json=cloudProvider,proto3,enum=global.common.v1.CloudProvider_Name" json:"cloud_provider,omitempty"`
	PhysicalRegions []v1.Region_Name      `protobuf:"varint,2,rep,packed,name=physical_regions,json=physicalRegions,proto3,enum=global.common.v1.Region_Name" json:"physical_regions,omitempty"`
	OrganizationIds []uint64              `protobuf:"varint,3,rep,packed,name=organization_ids,json=organizationIds,proto3" json:"organization_ids,omitempty"`
	SkuKey          string                `protobuf:"bytes,4,opt,name=sku_key,json=skuKey,proto3" json:"sku_key,omitempty"`
}

func (x *Spu_Mapping) Reset() {
	*x = Spu_Mapping{}
	if protoimpl.UnsafeEnabled {
		mi := &file_global_dedicated_v1_resources_proto_msgTypes[45]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Spu_Mapping) ProtoMessage() {}

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

func (x *Spu_Mapping) GetCloudProvider() v1.CloudProvider_Name {
	if x != nil {
		return x.CloudProvider
	}
	return v1.CloudProvider_Name(0)
}

func (x *Spu_Mapping) GetPhysicalRegions() []v1.Region_Name {
	if x != nil {
		return x.PhysicalRegions
	}
	return nil
}

func (x *Spu_Mapping) GetOrganizationIds() []uint64 {
	if x != nil {
		return x.OrganizationIds
	}
	return nil
}

func (x *Spu_Mapping) GetSkuKey() string {
	if x != nil {
		return x.SkuKey
	}
	return ""
}

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

	DataVolumeType    StorageMu_VolumeType `protobuf:"varint,1,opt,name=data_volume_type,json=dataVolumeType,proto3,enum=global.dedicated.v1.StorageMu_VolumeType" json:"data_volume_type,omitempty"`
	RaftlogVolumeType StorageMu_VolumeType `protobuf:"varint,2,opt,name=raftlog_volume_type,json=raftlogVolumeType,proto3,enum=global.dedicated.v1.StorageMu_VolumeType" json:"raftlog_volume_type,omitempty"`
}

func (x *Spu_DiskPair) Reset() {
	*x = Spu_DiskPair{}
	if protoimpl.UnsafeEnabled {
		mi := &file_global_dedicated_v1_resources_proto_msgTypes[46]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Spu_DiskPair) ProtoMessage() {}

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

func (x *Spu_DiskPair) GetDataVolumeType() StorageMu_VolumeType {
	if x != nil {
		return x.DataVolumeType
	}
	return StorageMu_VOLUME_TYPE_UNSPECIFIED
}

func (x *Spu_DiskPair) GetRaftlogVolumeType() StorageMu_VolumeType {
	if x != nil {
		return x.RaftlogVolumeType
	}
	return StorageMu_VOLUME_TYPE_UNSPECIFIED
}

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

	DataStorage    *Spu_Storage `protobuf:"bytes,1,opt,name=data_storage,json=dataStorage,proto3" json:"data_storage,omitempty"`
	RaftlogStorage *Spu_Storage `protobuf:"bytes,2,opt,name=raftlog_storage,json=raftlogStorage,proto3" json:"raftlog_storage,omitempty"`
}

func (x *Spu_StorageTypeDetail) Reset() {
	*x = Spu_StorageTypeDetail{}
	if protoimpl.UnsafeEnabled {
		mi := &file_global_dedicated_v1_resources_proto_msgTypes[47]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Spu_StorageTypeDetail) ProtoMessage() {}

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

func (x *Spu_StorageTypeDetail) GetDataStorage() *Spu_Storage {
	if x != nil {
		return x.DataStorage
	}
	return nil
}

func (x *Spu_StorageTypeDetail) GetRaftlogStorage() *Spu_Storage {
	if x != nil {
		return x.RaftlogStorage
	}
	return nil
}

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

	ComponentType     ComponentType                                                     `protobuf:"varint,1,opt,name=component_type,json=componentType,proto3,enum=global.dedicated.v1.ComponentType" json:"component_type,omitempty"`
	CustomParams      map[string]*ClusterConfiguration_ComponentConfiguration_ParamItem `protobuf:"bytes,2,rep,name=custom_params,json=customParams,proto3" json:"custom_params,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	OverwriteImageTag string                                                            `protobuf:"bytes,3,opt,name=overwrite_image_tag,json=overwriteImageTag,proto3" json:"overwrite_image_tag,omitempty"`
}

func (x *ClusterConfiguration_ComponentConfiguration) Reset() {
	*x = ClusterConfiguration_ComponentConfiguration{}
	if protoimpl.UnsafeEnabled {
		mi := &file_global_dedicated_v1_resources_proto_msgTypes[48]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ClusterConfiguration_ComponentConfiguration) ProtoMessage() {}

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

func (x *ClusterConfiguration_ComponentConfiguration) GetComponentType() ComponentType {
	if x != nil {
		return x.ComponentType
	}
	return ComponentType_COMPONENT_TYPE_UNSPECIFIED
}

func (x *ClusterConfiguration_ComponentConfiguration) GetCustomParams() map[string]*ClusterConfiguration_ComponentConfiguration_ParamItem {
	if x != nil {
		return x.CustomParams
	}
	return nil
}

func (x *ClusterConfiguration_ComponentConfiguration) GetOverwriteImageTag() string {
	if x != nil {
		return x.OverwriteImageTag
	}
	return ""
}

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

	Value   *structpb.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
	Comment string          `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment,omitempty"`
}

func (x *ClusterConfiguration_ComponentConfiguration_ParamItem) Reset() {
	*x = ClusterConfiguration_ComponentConfiguration_ParamItem{}
	if protoimpl.UnsafeEnabled {
		mi := &file_global_dedicated_v1_resources_proto_msgTypes[49]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ClusterConfiguration_ComponentConfiguration_ParamItem) ProtoMessage() {}

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

func (x *ClusterConfiguration_ComponentConfiguration_ParamItem) GetValue() *structpb.Value {
	if x != nil {
		return x.Value
	}
	return nil
}

func (x *ClusterConfiguration_ComponentConfiguration_ParamItem) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

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

	ComponentType ComponentType `protobuf:"varint,1,opt,name=component_type,json=componentType,proto3,enum=global.dedicated.v1.ComponentType" json:"component_type,omitempty"`
	Configuration bool          `protobuf:"varint,2,opt,name=configuration,proto3" json:"configuration,omitempty"`
	Image         bool          `protobuf:"varint,3,opt,name=image,proto3" json:"image,omitempty"`
}

func (x *ClusterApplyMask_ComponentApplyMask) Reset() {
	*x = ClusterApplyMask_ComponentApplyMask{}
	if protoimpl.UnsafeEnabled {
		mi := &file_global_dedicated_v1_resources_proto_msgTypes[51]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ClusterApplyMask_ComponentApplyMask) ProtoMessage() {}

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

func (x *ClusterApplyMask_ComponentApplyMask) GetComponentType() ComponentType {
	if x != nil {
		return x.ComponentType
	}
	return ComponentType_COMPONENT_TYPE_UNSPECIFIED
}

func (x *ClusterApplyMask_ComponentApplyMask) GetConfiguration() bool {
	if x != nil {
		return x.Configuration
	}
	return false
}

func (x *ClusterApplyMask_ComponentApplyMask) GetImage() bool {
	if x != nil {
		return x.Image
	}
	return false
}

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

	Nodes                []*ComponentNodeInfo_Component_Node `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"`
	TidbGroupId          uint64                              `protobuf:"varint,2,opt,name=tidb_group_id,json=tidbGroupId,proto3" json:"tidb_group_id,omitempty"`
	TidbGroupDisplayName string                              `protobuf:"bytes,3,opt,name=tidb_group_display_name,json=tidbGroupDisplayName,proto3" json:"tidb_group_display_name,omitempty"`
	IsDefaultTidbGroup   bool                                `protobuf:"varint,4,opt,name=is_default_tidb_group,json=isDefaultTidbGroup,proto3" json:"is_default_tidb_group,omitempty"`
}

func (x *ComponentNodeInfo_Component) Reset() {
	*x = ComponentNodeInfo_Component{}
	if protoimpl.UnsafeEnabled {
		mi := &file_global_dedicated_v1_resources_proto_msgTypes[52]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ComponentNodeInfo_Component) ProtoMessage() {}

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

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

func (x *ComponentNodeInfo_Component) GetTidbGroupId() uint64 {
	if x != nil {
		return x.TidbGroupId
	}
	return 0
}

func (x *ComponentNodeInfo_Component) GetTidbGroupDisplayName() string {
	if x != nil {
		return x.TidbGroupDisplayName
	}
	return ""
}

func (x *ComponentNodeInfo_Component) GetIsDefaultTidbGroup() bool {
	if x != nil {
		return x.IsDefaultTidbGroup
	}
	return false
}

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

	InstanceName string                                 `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
	State        ComponentNodeInfo_Component_Node_State `protobuf:"varint,2,opt,name=state,proto3,enum=global.dedicated.v1.ComponentNodeInfo_Component_Node_State" json:"state,omitempty"`
	Cpu          uint32                                 `protobuf:"varint,3,opt,name=cpu,proto3" json:"cpu,omitempty"`
	MemorySizeGi uint32                                 `protobuf:"varint,4,opt,name=memory_size_gi,json=memorySizeGi,proto3" json:"memory_size_gi,omitempty"`
	// Deprecated fields: Use `storages` field instead.
	//
	// Deprecated: Marked as deprecated in global/dedicated/v1/resources.proto.
	StorageSizeGi uint32 `protobuf:"varint,5,opt,name=storage_size_gi,json=storageSizeGi,proto3" json:"storage_size_gi,omitempty"`
	// Deprecated: Marked as deprecated in global/dedicated/v1/resources.proto.
	StorageIops uint32 `protobuf:"varint,6,opt,name=storage_iops,json=storageIops,proto3" json:"storage_iops,omitempty"`
	// Deprecated: Marked as deprecated in global/dedicated/v1/resources.proto.
	StorageThroughputMibps uint32 `protobuf:"varint,7,opt,name=storage_throughput_mibps,json=storageThroughputMibps,proto3" json:"storage_throughput_mibps,omitempty"`
	// Deprecated: Marked as deprecated in global/dedicated/v1/resources.proto.
	VolumeType          StorageMu_VolumeType                            `protobuf:"varint,10,opt,name=volume_type,json=volumeType,proto3,enum=global.dedicated.v1.StorageMu_VolumeType" json:"volume_type,omitempty"`
	AvailabilityZone    string                                          `protobuf:"bytes,8,opt,name=availability_zone,json=availabilityZone,proto3" json:"availability_zone,omitempty"`
	InstanceType        string                                          `protobuf:"bytes,9,opt,name=instance_type,json=instanceType,proto3" json:"instance_type,omitempty"`
	MeteringSkuKeys     map[string]uint32                               `protobuf:"bytes,11,rep,name=metering_sku_keys,json=meteringSkuKeys,proto3" json:"metering_sku_keys,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
	Storages            map[string]*ComponentNodeInfo_Component_Storage `protobuf:"bytes,12,rep,name=storages,proto3" json:"storages,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	NodeSpecName        string                                          `protobuf:"bytes,15,opt,name=node_spec_name,json=nodeSpecName,proto3" json:"node_spec_name,omitempty"`
	NodeSpecDisplayName string                                          `protobuf:"bytes,13,opt,name=node_spec_display_name,json=nodeSpecDisplayName,proto3" json:"node_spec_display_name,omitempty"`
	NodeSpecVersion     string                                          `protobuf:"bytes,14,opt,name=node_spec_version,json=nodeSpecVersion,proto3" json:"node_spec_version,omitempty"`
}

func (x *ComponentNodeInfo_Component_Node) Reset() {
	*x = ComponentNodeInfo_Component_Node{}
	if protoimpl.UnsafeEnabled {
		mi := &file_global_dedicated_v1_resources_proto_msgTypes[53]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ComponentNodeInfo_Component_Node) ProtoMessage() {}

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

func (x *ComponentNodeInfo_Component_Node) GetInstanceName() string {
	if x != nil {
		return x.InstanceName
	}
	return ""
}

func (x *ComponentNodeInfo_Component_Node) GetState() ComponentNodeInfo_Component_Node_State {
	if x != nil {
		return x.State
	}
	return ComponentNodeInfo_Component_Node_STATE_UNSPECIFIED
}

func (x *ComponentNodeInfo_Component_Node) GetCpu() uint32 {
	if x != nil {
		return x.Cpu
	}
	return 0
}

func (x *ComponentNodeInfo_Component_Node) GetMemorySizeGi() uint32 {
	if x != nil {
		return x.MemorySizeGi
	}
	return 0
}

// Deprecated: Marked as deprecated in global/dedicated/v1/resources.proto.
func (x *ComponentNodeInfo_Component_Node) GetStorageSizeGi() uint32 {
	if x != nil {
		return x.StorageSizeGi
	}
	return 0
}

// Deprecated: Marked as deprecated in global/dedicated/v1/resources.proto.
func (x *ComponentNodeInfo_Component_Node) GetStorageIops() uint32 {
	if x != nil {
		return x.StorageIops
	}
	return 0
}

// Deprecated: Marked as deprecated in global/dedicated/v1/resources.proto.
func (x *ComponentNodeInfo_Component_Node) GetStorageThroughputMibps() uint32 {
	if x != nil {
		return x.StorageThroughputMibps
	}
	return 0
}

// Deprecated: Marked as deprecated in global/dedicated/v1/resources.proto.
func (x *ComponentNodeInfo_Component_Node) GetVolumeType() StorageMu_VolumeType {
	if x != nil {
		return x.VolumeType
	}
	return StorageMu_VOLUME_TYPE_UNSPECIFIED
}

func (x *ComponentNodeInfo_Component_Node) GetAvailabilityZone() string {
	if x != nil {
		return x.AvailabilityZone
	}
	return ""
}

func (x *ComponentNodeInfo_Component_Node) GetInstanceType() string {
	if x != nil {
		return x.InstanceType
	}
	return ""
}

func (x *ComponentNodeInfo_Component_Node) GetMeteringSkuKeys() map[string]uint32 {
	if x != nil {
		return x.MeteringSkuKeys
	}
	return nil
}

func (x *ComponentNodeInfo_Component_Node) GetStorages() map[string]*ComponentNodeInfo_Component_Storage {
	if x != nil {
		return x.Storages
	}
	return nil
}

func (x *ComponentNodeInfo_Component_Node) GetNodeSpecName() string {
	if x != nil {
		return x.NodeSpecName
	}
	return ""
}

func (x *ComponentNodeInfo_Component_Node) GetNodeSpecDisplayName() string {
	if x != nil {
		return x.NodeSpecDisplayName
	}
	return ""
}

func (x *ComponentNodeInfo_Component_Node) GetNodeSpecVersion() string {
	if x != nil {
		return x.NodeSpecVersion
	}
	return ""
}

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

	StorageSizeGi          uint32               `protobuf:"varint,1,opt,name=storage_size_gi,json=storageSizeGi,proto3" json:"storage_size_gi,omitempty"`
	StorageIops            uint32               `protobuf:"varint,2,opt,name=storage_iops,json=storageIops,proto3" json:"storage_iops,omitempty"`
	StorageThroughputMibps uint32               `protobuf:"varint,3,opt,name=storage_throughput_mibps,json=storageThroughputMibps,proto3" json:"storage_throughput_mibps,omitempty"`
	AdditionalIops         uint32               `protobuf:"varint,6,opt,name=additional_iops,json=additionalIops,proto3" json:"additional_iops,omitempty"`
	VolumeType             StorageMu_VolumeType `protobuf:"varint,4,opt,name=volume_type,json=volumeType,proto3,enum=global.dedicated.v1.StorageMu_VolumeType" json:"volume_type,omitempty"`
	// The value is usage value of the SKU.
	MeteringSkuKeys map[string]uint32 `protobuf:"bytes,5,rep,name=metering_sku_keys,json=meteringSkuKeys,proto3" json:"metering_sku_keys,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}

func (x *ComponentNodeInfo_Component_Storage) Reset() {
	*x = ComponentNodeInfo_Component_Storage{}
	if protoimpl.UnsafeEnabled {
		mi := &file_global_dedicated_v1_resources_proto_msgTypes[54]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ComponentNodeInfo_Component_Storage) ProtoMessage() {}

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

func (x *ComponentNodeInfo_Component_Storage) GetStorageSizeGi() uint32 {
	if x != nil {
		return x.StorageSizeGi
	}
	return 0
}

func (x *ComponentNodeInfo_Component_Storage) GetStorageIops() uint32 {
	if x != nil {
		return x.StorageIops
	}
	return 0
}

func (x *ComponentNodeInfo_Component_Storage) GetStorageThroughputMibps() uint32 {
	if x != nil {
		return x.StorageThroughputMibps
	}
	return 0
}

func (x *ComponentNodeInfo_Component_Storage) GetAdditionalIops() uint32 {
	if x != nil {
		return x.AdditionalIops
	}
	return 0
}

func (x *ComponentNodeInfo_Component_Storage) GetVolumeType() StorageMu_VolumeType {
	if x != nil {
		return x.VolumeType
	}
	return StorageMu_VOLUME_TYPE_UNSPECIFIED
}

func (x *ComponentNodeInfo_Component_Storage) GetMeteringSkuKeys() map[string]uint32 {
	if x != nil {
		return x.MeteringSkuKeys
	}
	return nil
}

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

	TidbGroupId        uint64                                     `protobuf:"varint,1,opt,name=tidb_group_id,json=tidbGroupId,proto3" json:"tidb_group_id,omitempty"`
	PublicEndpoint     *TidbNodeGroup_Endpoint_PublicEndpoint     `protobuf:"bytes,2,opt,name=public_endpoint,json=publicEndpoint,proto3" json:"public_endpoint,omitempty"`
	VpcPeeringEndpoint *TidbNodeGroup_Endpoint_VpcPeeringEndpoint `protobuf:"bytes,3,opt,name=vpc_peering_endpoint,json=vpcPeeringEndpoint,proto3" json:"vpc_peering_endpoint,omitempty"`
	// On GCP and Azure, different endpoints of a private link service have different hostnames.
	PrivateLinkEndpoints []*TidbNodeGroup_Endpoint_PrivateLinkEndpoint `protobuf:"bytes,4,rep,name=private_link_endpoints,json=privateLinkEndpoints,proto3" json:"private_link_endpoints,omitempty"`
}

func (x *TidbNodeGroup_Endpoint) Reset() {
	*x = TidbNodeGroup_Endpoint{}
	if protoimpl.UnsafeEnabled {
		mi := &file_global_dedicated_v1_resources_proto_msgTypes[58]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*TidbNodeGroup_Endpoint) ProtoMessage() {}

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

func (x *TidbNodeGroup_Endpoint) GetTidbGroupId() uint64 {
	if x != nil {
		return x.TidbGroupId
	}
	return 0
}

func (x *TidbNodeGroup_Endpoint) GetPublicEndpoint() *TidbNodeGroup_Endpoint_PublicEndpoint {
	if x != nil {
		return x.PublicEndpoint
	}
	return nil
}

func (x *TidbNodeGroup_Endpoint) GetVpcPeeringEndpoint() *TidbNodeGroup_Endpoint_VpcPeeringEndpoint {
	if x != nil {
		return x.VpcPeeringEndpoint
	}
	return nil
}

func (x *TidbNodeGroup_Endpoint) GetPrivateLinkEndpoints() []*TidbNodeGroup_Endpoint_PrivateLinkEndpoint {
	if x != nil {
		return x.PrivateLinkEndpoints
	}
	return nil
}

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

	SpuName        string `protobuf:"bytes,1,opt,name=spu_name,json=spuName,proto3" json:"spu_name,omitempty"`
	SpuDisplayName string `protobuf:"bytes,3,opt,name=spu_display_name,json=spuDisplayName,proto3" json:"spu_display_name,omitempty"`
	SpuVersion     string `protobuf:"bytes,4,opt,name=spu_version,json=spuVersion,proto3" json:"spu_version,omitempty"`
	Count          int32  `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
}

func (x *TidbNodeGroup_TiProxySetting) Reset() {
	*x = TidbNodeGroup_TiProxySetting{}
	if protoimpl.UnsafeEnabled {
		mi := &file_global_dedicated_v1_resources_proto_msgTypes[59]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*TidbNodeGroup_TiProxySetting) ProtoMessage() {}

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

func (x *TidbNodeGroup_TiProxySetting) GetSpuName() string {
	if x != nil {
		return x.SpuName
	}
	return ""
}

func (x *TidbNodeGroup_TiProxySetting) GetSpuDisplayName() string {
	if x != nil {
		return x.SpuDisplayName
	}
	return ""
}

func (x *TidbNodeGroup_TiProxySetting) GetSpuVersion() string {
	if x != nil {
		return x.SpuVersion
	}
	return ""
}

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

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

	Host           string                              `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"`
	Port           uint32                              `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
	IpAllowList    []*TidbNodeGroup_Endpoint_IpAddress `protobuf:"bytes,3,rep,name=ip_allow_list,json=ipAllowList,proto3" json:"ip_allow_list,omitempty"`
	EnablePublicLb *bool                               `protobuf:"varint,4,opt,name=enable_public_lb,json=enablePublicLb,proto3,oneof" json:"enable_public_lb,omitempty"`
}

func (x *TidbNodeGroup_Endpoint_PublicEndpoint) Reset() {
	*x = TidbNodeGroup_Endpoint_PublicEndpoint{}
	if protoimpl.UnsafeEnabled {
		mi := &file_global_dedicated_v1_resources_proto_msgTypes[60]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*TidbNodeGroup_Endpoint_PublicEndpoint) ProtoMessage() {}

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

func (x *TidbNodeGroup_Endpoint_PublicEndpoint) GetHost() string {
	if x != nil {
		return x.Host
	}
	return ""
}

func (x *TidbNodeGroup_Endpoint_PublicEndpoint) GetPort() uint32 {
	if x != nil {
		return x.Port
	}
	return 0
}

func (x *TidbNodeGroup_Endpoint_PublicEndpoint) GetIpAllowList() []*TidbNodeGroup_Endpoint_IpAddress {
	if x != nil {
		return x.IpAllowList
	}
	return nil
}

func (x *TidbNodeGroup_Endpoint_PublicEndpoint) GetEnablePublicLb() bool {
	if x != nil && x.EnablePublicLb != nil {
		return *x.EnablePublicLb
	}
	return false
}

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

	CidrBlock   string `protobuf:"bytes,1,opt,name=cidr_block,json=cidrBlock,proto3" json:"cidr_block,omitempty"`
	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
}

func (x *TidbNodeGroup_Endpoint_IpAddress) Reset() {
	*x = TidbNodeGroup_Endpoint_IpAddress{}
	if protoimpl.UnsafeEnabled {
		mi := &file_global_dedicated_v1_resources_proto_msgTypes[61]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*TidbNodeGroup_Endpoint_IpAddress) ProtoMessage() {}

func (x *TidbNodeGroup_Endpoint_IpAddress) ProtoReflect() protoreflect.Message {
	mi := &file_global_dedicated_v1_resources_proto_msgTypes[61]
	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 TidbNodeGroup_Endpoint_IpAddress.ProtoReflect.Descriptor instead.
func (*TidbNodeGroup_Endpoint_IpAddress) Descriptor() ([]byte, []int) {
	return file_global_dedicated_v1_resources_proto_rawDescGZIP(), []int{17, 0, 1}
}

func (x *TidbNodeGroup_Endpoint_IpAddress) GetCidrBlock() string {
	if x != nil {
		return x.CidrBlock
	}
	return ""
}

func (x *TidbNodeGroup_Endpoint_IpAddress) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

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

	Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"`
	Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
}

func (x *TidbNodeGroup_Endpoint_VpcPeeringEndpoint) Reset() {
	*x = TidbNodeGroup_Endpoint_VpcPeeringEndpoint{}
	if protoimpl.UnsafeEnabled {
		mi := &file_global_dedicated_v1_resources_proto_msgTypes[62]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*TidbNodeGroup_Endpoint_VpcPeeringEndpoint) ProtoMessage() {}

func (x *TidbNodeGroup_Endpoint_VpcPeeringEndpoint) ProtoReflect() protoreflect.Message {
	mi := &file_global_dedicated_v1_resources_proto_msgTypes[62]
	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 TidbNodeGroup_Endpoint_VpcPeeringEndpoint.ProtoReflect.Descriptor instead.
func (*TidbNodeGroup_Endpoint_VpcPeeringEndpoint) Descriptor() ([]byte, []int) {
	return file_global_dedicated_v1_resources_proto_rawDescGZIP(), []int{17, 0, 2}
}

func (x *TidbNodeGroup_Endpoint_VpcPeeringEndpoint) GetHost() string {
	if x != nil {
		return x.Host
	}
	return ""
}

func (x *TidbNodeGroup_Endpoint_VpcPeeringEndpoint) GetPort() uint32 {
	if x != nil {
		return x.Port
	}
	return 0
}

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

	Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"`
	Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
}

func (x *TidbNodeGroup_Endpoint_PrivateLinkEndpoint) Reset() {
	*x = TidbNodeGroup_Endpoint_PrivateLinkEndpoint{}
	if protoimpl.UnsafeEnabled {
		mi := &file_global_dedicated_v1_resources_proto_msgTypes[63]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*TidbNodeGroup_Endpoint_PrivateLinkEndpoint) ProtoMessage() {}

func (x *TidbNodeGroup_Endpoint_PrivateLinkEndpoint) ProtoReflect() protoreflect.Message {
	mi := &file_global_dedicated_v1_resources_proto_msgTypes[63]
	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 TidbNodeGroup_Endpoint_PrivateLinkEndpoint.ProtoReflect.Descriptor instead.
func (*TidbNodeGroup_Endpoint_PrivateLinkEndpoint) Descriptor() ([]byte, []int) {
	return file_global_dedicated_v1_resources_proto_rawDescGZIP(), []int{17, 0, 3}
}

func (x *TidbNodeGroup_Endpoint_PrivateLinkEndpoint) GetHost() string {
	if x != nil {
		return x.Host
	}
	return ""
}

func (x *TidbNodeGroup_Endpoint_PrivateLinkEndpoint) GetPort() uint32 {
	if x != nil {
		return x.Port
	}
	return 0
}

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

	Name              string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	DisplayName       string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	CloudProviderName string `protobuf:"bytes,3,opt,name=cloud_provider_name,json=cloudProviderName,proto3" json:"cloud_provider_name,omitempty"`
}

func (x *CidrOverlap_CloudRegion) Reset() {
	*x = CidrOverlap_CloudRegion{}
	if protoimpl.UnsafeEnabled {
		mi := &file_global_dedicated_v1_resources_proto_msgTypes[64]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CidrOverlap_CloudRegion) ProtoMessage() {}

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

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

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

func (x *CidrOverlap_CloudRegion) GetCloudProviderName() string {
	if x != nil {
		return x.CloudProviderName
	}
	return ""
}

var File_global_dedicated_v1_resources_proto protoreflect.FileDescriptor

var file_global_dedicated_v1_resources_proto_rawDesc = []byte{
	0x0a, 0x23, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2f, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74,
	0x65, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65,
	0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x1a, 0x17, 0x64, 0x61, 0x74, 0x61,
	0x74, 0x79, 0x70, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2f, 0x63, 0x6f, 0x6d, 0x6d,
	0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70,
	0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xba, 0x22, 0x0a, 0x07, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x03,
	0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69,
	0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72,
	0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 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, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x51, 0x0a, 0x14, 0x63, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d,
	0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
	0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b,
	0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 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, 0x03, 0xe0,
	0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40,
	0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 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,
	0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65,
	0x12, 0x55, 0x0a, 0x11, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64,
	0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6c,
	0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43,
	0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x4e, 0x61, 0x6d,
	0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72, 0x6f,
	0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x09, 0x72, 0x65, 0x67, 0x69, 0x6f,
	0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x67, 0x6c, 0x6f,
	0x62, 0x61, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65,
	0x67, 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08,
	0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x61, 0x0a, 0x12, 0x63, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0d,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65,
	0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e,
	0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x70,
	0x6f, 0x72, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04,
	0x70, 0x6f, 0x72, 0x74, 0x12, 0x2b, 0x0a, 0x0d, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x70, 0x61, 0x73,
	0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x01,
	0xe0, 0x41, 0x04, 0x52, 0x0c, 0x72, 0x6f, 0x6f, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72,
	0x64, 0x12, 0x4b, 0x0a, 0x1e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77,
	0x6f, 0x72, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x01, 0xe0, 0x41,
	0x04, 0x52, 0x1b, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x43, 0x6c, 0x6f, 0x75,
	0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x4f,
	0x0a, 0x22, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67,
	0x65, 0x64, 0x5f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65,
	0x79, 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52,
	0x1e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64,
	0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x12,
	0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x43,
	0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0e,
	0x32, 0x22, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
	0x2e, 0x76, 0x31, 0x2e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x11, 0x68, 0x61, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x5f,
	0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03,
	0xe0, 0x41, 0x03, 0x52, 0x0f, 0x68, 0x61, 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x50, 0x61, 0x73, 0x73,
	0x77, 0x6f, 0x72, 0x64, 0x12, 0x3d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x15, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64,
	0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74,
	0x61, 0x74, 0x65, 0x12, 0x50, 0x0a, 0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x73, 0x74,
	0x61, 0x74, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x67, 0x6c, 0x6f, 0x62,
	0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e,
	0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74,
	0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68,
	0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x62,
	0x61, 0x73, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
	0x41, 0x03, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x42, 0x61, 0x73, 0x65, 0x55, 0x72, 0x6c,
	0x12, 0x3c, 0x0a, 0x18, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x64, 0x5f,
	0x61, 0x75, 0x74, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x18, 0x20, 0x01,
	0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x15, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x61,
	0x73, 0x65, 0x64, 0x41, 0x75, 0x74, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x6b,
	0x0a, 0x19, 0x74, 0x69, 0x64, 0x62, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75,
	0x70, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x19, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63,
	0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x64, 0x62, 0x4e, 0x6f, 0x64, 0x65,
	0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x03,
	0xe0, 0x41, 0x03, 0x52, 0x16, 0x74, 0x69, 0x64, 0x62, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f,
	0x75, 0x70, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x13, 0x72,
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x72,
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65,
	0x12, 0x29, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x75,
	0x72, 0x6c, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x61,
	0x67, 0x65, 0x6e, 0x74, 0x42, 0x61, 0x73, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x4a, 0x0a, 0x0a, 0x70,
	0x61, 0x75, 0x73, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x26, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74,
	0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x50, 0x61,
	0x75, 0x73, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x70, 0x61,
	0x75, 0x73, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x3d, 0x0a, 0x18, 0x69, 0x6e, 0x73, 0x75, 0x66,
	0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6d, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x16,
	0x69, 0x6e, 0x73, 0x75, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x56, 0x6d, 0x52, 0x65,
	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0xc3, 0x11, 0x0a, 0x10, 0x43, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x13, 0x0a, 0x02, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x02, 0x69, 0x64,
	0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
	0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69,
	0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d,
	0x65, 0x18, 0x20, 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, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65,
	0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f,
	0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x63,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x4e, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x70,
	0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x22, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61,
	0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,
	0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x6f,
	0x6e, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x70, 0x75, 0x5f,
	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52,
	0x07, 0x73, 0x70, 0x75, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x07, 0x73, 0x70, 0x75, 0x5f,
	0x6b, 0x65, 0x79, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06,
	0x73, 0x70, 0x75, 0x4b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x10, 0x73, 0x70, 0x75, 0x5f, 0x64, 0x69,
	0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x73, 0x70, 0x75, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61,
	0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x70, 0x75, 0x5f, 0x76, 0x65, 0x72,
	0x73, 0x69, 0x6f, 0x6e, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52,
	0x0a, 0x73, 0x70, 0x75, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x07, 0x73,
	0x6b, 0x75, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
	0x03, 0x52, 0x06, 0x73, 0x6b, 0x75, 0x4b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x05, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52,
	0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x08, 0x73, 0x74, 0x6f,
	0x72, 0x61, 0x67, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6c,
	0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76,
	0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61,
	0x67, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x73,
	0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0d, 0x74, 0x69, 0x64, 0x62, 0x5f,
	0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x03,
	0xe0, 0x41, 0x01, 0x52, 0x0b, 0x74, 0x69, 0x64, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64,
	0x12, 0x36, 0x0a, 0x15, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x74,
	0x69, 0x64, 0x62, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x42,
	0x03, 0xe0, 0x41, 0x03, 0x52, 0x12, 0x69, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54,
	0x69, 0x64, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3a, 0x0a, 0x17, 0x74, 0x69, 0x64, 0x62,
	0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x14,
	0x74, 0x69, 0x64, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79,
	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
	0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03,
	0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c,
	0x0a, 0x07, 0x63, 0x70, 0x75, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x42,
	0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x63, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x12, 0x29, 0x0a, 0x0e,
	0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x67, 0x69, 0x18, 0x18,
	0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x6d, 0x65, 0x6d, 0x6f, 0x72,
	0x79, 0x53, 0x69, 0x7a, 0x65, 0x47, 0x69, 0x12, 0x58, 0x0a, 0x11, 0x69, 0x6e, 0x73, 0x74, 0x61,
	0x6e, 0x63, 0x65, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x18, 0x1b, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x27, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69,
	0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63,
	0x65, 0x4d, 0x75, 0x2e, 0x43, 0x70, 0x75, 0x41, 0x72, 0x63, 0x68, 0x42, 0x03, 0xe0, 0x41, 0x03,
	0x52, 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x70, 0x75, 0x41, 0x72, 0x63,
	0x68, 0x12, 0x6a, 0x0a, 0x17, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x70,
	0x75, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x1e, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69,
	0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63,
	0x65, 0x4d, 0x75, 0x2e, 0x43, 0x70, 0x75, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x15, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
	0x43, 0x70, 0x75, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6a, 0x0a,
	0x0f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73,
	0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e,
	0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x70,
	0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x50, 0x72, 0x6f, 0x67,
	0x72, 0x65, 0x73, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x6d, 0x6f, 0x64, 0x69, 0x66,
	0x79, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x73, 0x0a, 0x11, 0x6d, 0x65, 0x74,
	0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x6b, 0x75, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x1d,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65,
	0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e,
	0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x6b, 0x75, 0x4b,
	0x65, 0x79, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x6d,
	0x65, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x6b, 0x75, 0x4b, 0x65, 0x79, 0x73, 0x1a, 0x72,
	0x0a, 0x0d, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
	0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
	0x79, 0x12, 0x4b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x35, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61,
	0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x43,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e,
	0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
	0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x6b,
	0x75, 0x4b, 0x65, 0x79, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x87, 0x01, 0x0a, 0x0e, 0x4d, 0x6f, 0x64, 0x69, 0x66,
	0x79, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x30, 0x0a, 0x11, 0x75, 0x70, 0x74,
	0x6f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x75, 0x70, 0x74, 0x6f, 0x64,
	0x61, 0x74, 0x65, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x1b, 0x72,
	0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f,
	0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x19, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67,
	0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79,
	0x1a, 0xef, 0x04, 0x0a, 0x07, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0a,
	0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04,
	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x49, 0x64,
	0x12, 0x26, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64,
	0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x63, 0x6f, 0x6d,
	0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x6b,
	0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x67, 0x6c,
	0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76,
	0x31, 0x2e, 0x53, 0x6b, 0x75, 0x2e, 0x44, 0x69, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03,
	0xe0, 0x41, 0x03, 0x52, 0x08, 0x64, 0x69, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a,
	0x07, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x67, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03,
	0xe0, 0x41, 0x01, 0x52, 0x06, 0x73, 0x69, 0x7a, 0x65, 0x47, 0x69, 0x12, 0x17, 0x0a, 0x04, 0x69,
	0x6f, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04,
	0x69, 0x6f, 0x70, 0x73, 0x12, 0x2e, 0x0a, 0x10, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70,
	0x75, 0x74, 0x5f, 0x6d, 0x69, 0x62, 0x70, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03,
	0xe0, 0x41, 0x01, 0x52, 0x0f, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x4d,
	0x69, 0x62, 0x70, 0x73, 0x12, 0x54, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x74,
	0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6c, 0x6f, 0x62,
	0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e,
	0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4d, 0x75, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65,
	0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0a, 0x76, 0x6f, 0x6c,
	0x75, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0f, 0x61, 0x64,
	0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6f, 0x70, 0x73, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x0e, 0x61, 0x64, 0x64, 0x69,
	0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6f, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x7b, 0x0a,
	0x11, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x6b, 0x75, 0x5f, 0x6b, 0x65,
	0x79, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61,
	0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f,
	0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e,
	0x4d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x6b, 0x75, 0x4b, 0x65, 0x79, 0x73, 0x45,
	0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x6d, 0x65, 0x74, 0x65, 0x72,
	0x69, 0x6e, 0x67, 0x53, 0x6b, 0x75, 0x4b, 0x65, 0x79, 0x73, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x65,
	0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x6b, 0x75, 0x4b, 0x65, 0x79, 0x73, 0x45, 0x6e, 0x74,
	0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0e,
	0x0a, 0x0c, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12,
	0x0a, 0x10, 0x5f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6f,
	0x70, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0xab, 0x02, 0x0a,
	0x09, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x4f, 0x0a, 0x0a, 0x70, 0x61,
	0x75, 0x73, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b,
	0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65,
	0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x75,
	0x73, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02,
	0x52, 0x09, 0x70, 0x61, 0x75, 0x73, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x3e, 0x0a, 0x0a, 0x70,
	0x61, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
	0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03,
	0x52, 0x09, 0x70, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x53, 0x0a, 0x15, 0x73,
	0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x5f,
	0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x13, 0x73, 0x63, 0x68,
	0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65,
	0x22, 0x38, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x41, 0x55, 0x53,
	0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
	0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x01,
	0x12, 0x08, 0x0a, 0x04, 0x4c, 0x4f, 0x4e, 0x47, 0x10, 0x02, 0x22, 0x47, 0x0a, 0x0b, 0x48, 0x65,
	0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x48, 0x45, 0x41,
	0x4c, 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
	0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x48, 0x45, 0x41, 0x4c, 0x54,
	0x48, 0x59, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48,
	0x59, 0x10, 0x02, 0x22, 0x9c, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a,
	0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
	0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47,
	0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10,
	0x02, 0x12, 0x0d, 0x0a, 0x09, 0x4d, 0x4f, 0x44, 0x49, 0x46, 0x59, 0x49, 0x4e, 0x47, 0x10, 0x03,
	0x12, 0x0a, 0x0a, 0x06, 0x50, 0x41, 0x55, 0x53, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08,
	0x52, 0x45, 0x53, 0x55, 0x4d, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e,
	0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x50,
	0x41, 0x55, 0x53, 0x49, 0x4e, 0x47, 0x10, 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x43, 0x41, 0x4c,
	0x49, 0x4e, 0x47, 0x10, 0x08, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44,
	0x10, 0x09, 0x22, 0xed, 0x06, 0x0a, 0x03, 0x56, 0x70, 0x63, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12,
	0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x04, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
	0x74, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x03, 0xe0, 0x41,
	0x02, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49,
	0x64, 0x12, 0x55, 0x0a, 0x11, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69,
	0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67,
	0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e,
	0x43, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x4e, 0x61,
	0x6d, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72,
	0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x09, 0x72, 0x65, 0x67, 0x69,
	0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x67, 0x6c,
	0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52,
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
	0x08, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x15, 0x74, 0x69, 0x64,
	0x62, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x63, 0x69, 0x64, 0x72, 0x5f, 0x62, 0x6c, 0x6f,
	0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x74,
	0x69, 0x64, 0x62, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x43, 0x69, 0x64, 0x72, 0x42, 0x6c, 0x6f, 0x63,
	0x6b, 0x12, 0x3c, 0x0a, 0x03, 0x61, 0x77, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23,
	0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65,
	0x64, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x70, 0x63, 0x2e, 0x41, 0x77, 0x73, 0x56, 0x70, 0x63, 0x49,
	0x6e, 0x66, 0x6f, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x03, 0x61, 0x77, 0x73, 0x12,
	0x3c, 0x0a, 0x03, 0x67, 0x63, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67,
	0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e,
	0x76, 0x31, 0x2e, 0x56, 0x70, 0x63, 0x2e, 0x47, 0x63, 0x70, 0x56, 0x70, 0x63, 0x49, 0x6e, 0x66,
	0x6f, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x03, 0x67, 0x63, 0x70, 0x12, 0x42, 0x0a,
	0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67,
	0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e,
	0x76, 0x31, 0x2e, 0x56, 0x70, 0x63, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x56, 0x70, 0x63, 0x49,
	0x6e, 0x66, 0x6f, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x05, 0x61, 0x7a, 0x75, 0x72,
	0x65, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f, 0x63,
	0x69, 0x64, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52,
	0x0e, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x43, 0x69, 0x64, 0x72, 0x73, 0x1a,
	0x74, 0x0a, 0x0a, 0x41, 0x77, 0x73, 0x56, 0x70, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x0a,
	0x15, 0x74, 0x69, 0x64, 0x62, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
	0x03, 0x52, 0x12, 0x74, 0x69, 0x64, 0x62, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x41, 0x63, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x11, 0x74, 0x69, 0x64, 0x62, 0x5f, 0x63, 0x6c,
	0x6f, 0x75, 0x64, 0x5f, 0x76, 0x70, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x74, 0x69, 0x64, 0x62, 0x43, 0x6c, 0x6f, 0x75, 0x64,
	0x56, 0x70, 0x63, 0x49, 0x64, 0x1a, 0x80, 0x01, 0x0a, 0x0a, 0x47, 0x63, 0x70, 0x56, 0x70, 0x63,
	0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x0a, 0x15, 0x74, 0x69, 0x64, 0x62, 0x5f, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x12, 0x74, 0x69, 0x64, 0x62, 0x43, 0x6c,
	0x6f, 0x75, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x17,
	0x74, 0x69, 0x64, 0x62, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f,
	0x72, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
	0x41, 0x03, 0x52, 0x14, 0x74, 0x69, 0x64, 0x62, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4e, 0x65, 0x74,
	0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x40, 0x0a, 0x0c, 0x41, 0x7a, 0x75, 0x72,
	0x65, 0x56, 0x70, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x30, 0x0a, 0x12, 0x74, 0x69, 0x64, 0x62,
	0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x76, 0x6e, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x74, 0x69, 0x64, 0x62, 0x43,
	0x6c, 0x6f, 0x75, 0x64, 0x56, 0x6e, 0x65, 0x74, 0x49, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x69, 0x6e,
	0x66, 0x6f, 0x22, 0xd2, 0x0a, 0x0a, 0x0a, 0x56, 0x70, 0x63, 0x50, 0x65, 0x65, 0x72, 0x69, 0x6e,
	0x67, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x03, 0xe0,
	0x41, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
	0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
	0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72,
	0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x04, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69,
	0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x50, 0x0a, 0x0e, 0x63, 0x6c, 0x6f, 0x75,
	0x64, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x24, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
	0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65,
	0x72, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x04, 0x74, 0x79,
	0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61,
	0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x56,
	0x70, 0x63, 0x50, 0x65, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03,
	0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2f, 0x0a, 0x11, 0x74, 0x69, 0x64,
	0x62, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x74, 0x69, 0x64, 0x62, 0x43,
	0x6c, 0x6f, 0x75, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x0f, 0x63, 0x75,
	0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d,
	0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x15, 0x74, 0x69, 0x64, 0x62,
	0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x63, 0x69, 0x64, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63,
	0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x12, 0x74, 0x69,
	0x64, 0x62, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x43, 0x69, 0x64, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b,
	0x12, 0x33, 0x0a, 0x13, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x5f, 0x63, 0x69, 0x64,
	0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
	0x41, 0x02, 0x52, 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x43, 0x69, 0x64, 0x72,
	0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65,
	0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x70, 0x63, 0x50, 0x65,
	0x65, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03,
	0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74,
	0x12, 0x3a, 0x0a, 0x03, 0x61, 0x77, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e,
	0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64,
	0x2e, 0x76, 0x31, 0x2e, 0x56, 0x70, 0x63, 0x50, 0x65, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x41,
	0x77, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x03, 0x61, 0x77, 0x73, 0x12, 0x3a, 0x0a, 0x03,
	0x67, 0x63, 0x70, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6c, 0x6f, 0x62,
	0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e,
	0x56, 0x70, 0x63, 0x50, 0x65, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x47, 0x63, 0x70, 0x42, 0x03,
	0xe0, 0x41, 0x01, 0x52, 0x03, 0x67, 0x63, 0x70, 0x1a, 0x8f, 0x02, 0x0a, 0x03, 0x41, 0x77, 0x73,
	0x12, 0x36, 0x0a, 0x15, 0x74, 0x69, 0x64, 0x62, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x61,
	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x03, 0xe0, 0x41, 0x03, 0x52, 0x12, 0x74, 0x69, 0x64, 0x62, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x41,
	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x13, 0x63, 0x75, 0x73, 0x74,
	0x6f, 0x6d, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x63, 0x75, 0x73, 0x74,
	0x6f, 0x6d, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a,
	0x11, 0x74, 0x69, 0x64, 0x62, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x76, 0x70, 0x63, 0x5f,
	0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x74,
	0x69, 0x64, 0x62, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x56, 0x70, 0x63, 0x49, 0x64, 0x12, 0x2b, 0x0a,
	0x0f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x5f, 0x76, 0x70, 0x63, 0x5f, 0x69, 0x64,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x63, 0x75, 0x73,
	0x74, 0x6f, 0x6d, 0x65, 0x72, 0x56, 0x70, 0x63, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x19, 0x76, 0x70,
	0x63, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
	0x41, 0x03, 0x52, 0x16, 0x76, 0x70, 0x63, 0x50, 0x65, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x6f,
	0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x1a, 0xe7, 0x01, 0x0a, 0x03, 0x47,
	0x63, 0x70, 0x12, 0x36, 0x0a, 0x15, 0x74, 0x69, 0x64, 0x62, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64,
	0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x12, 0x74, 0x69, 0x64, 0x62, 0x43, 0x6c, 0x6f, 0x75,
	0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x13, 0x63, 0x75,
	0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x63, 0x75,
	0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12,
	0x3a, 0x0a, 0x17, 0x74, 0x69, 0x64, 0x62, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x6e, 0x65,
	0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x14, 0x74, 0x69, 0x64, 0x62, 0x43, 0x6c, 0x6f, 0x75, 0x64,
	0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x15, 0x63,
	0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f,
	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
	0x13, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
	0x4e, 0x61, 0x6d, 0x65, 0x22, 0x43, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a,
	0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
	0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10,
	0x01, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0a, 0x0a,
	0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x03, 0x22, 0x4c, 0x0a, 0x04, 0x54, 0x79, 0x70,
	0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
	0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x55, 0x53, 0x54, 0x4f,
	0x4d, 0x45, 0x52, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x42, 0x41, 0x41, 0x53, 0x10, 0x02,
	0x12, 0x15, 0x0a, 0x11, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41,
	0x44, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x03, 0x22, 0xc3, 0x07, 0x0a, 0x0a, 0x49, 0x6e, 0x73, 0x74,
	0x61, 0x6e, 0x63, 0x65, 0x4d, 0x75, 0x12, 0x16, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x04, 0x42, 0x06, 0xe0, 0x41, 0x08, 0xe0, 0x41, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x50,
	0x0a, 0x0e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e,
	0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x50,
	0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x03, 0xe0, 0x41,
	0x02, 0x52, 0x0d, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72,
	0x12, 0x28, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70,
	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x69, 0x6e,
	0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x08, 0x63, 0x70,
	0x75, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41,
	0x02, 0x52, 0x07, 0x63, 0x70, 0x75, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x65,
	0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x67, 0x69, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0,
	0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x47, 0x69, 0x12, 0x47, 0x0a, 0x08,
	0x63, 0x70, 0x75, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27,
	0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65,
	0x64, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x75, 0x2e,
	0x43, 0x70, 0x75, 0x41, 0x72, 0x63, 0x68, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x63, 0x70,
	0x75, 0x41, 0x72, 0x63, 0x68, 0x12, 0x59, 0x0a, 0x0e, 0x63, 0x70, 0x75, 0x5f, 0x67, 0x65, 0x6e,
	0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e,
	0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64,
	0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x75, 0x2e, 0x43,
	0x70, 0x75, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41,
	0x03, 0x52, 0x0d, 0x63, 0x70, 0x75, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x22, 0x4f, 0x0a, 0x07, 0x43, 0x70, 0x75, 0x41, 0x72, 0x63, 0x68, 0x12, 0x18, 0x0a, 0x14, 0x43,
	0x50, 0x55, 0x5f, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46,
	0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x05, 0x41, 0x4d, 0x44, 0x36, 0x34, 0x10, 0x01,
	0x1a, 0x09, 0x82, 0xb5, 0x18, 0x05, 0x61, 0x6d, 0x64, 0x36, 0x34, 0x12, 0x14, 0x0a, 0x05, 0x41,
	0x52, 0x4d, 0x36, 0x34, 0x10, 0x02, 0x1a, 0x09, 0x82, 0xb5, 0x18, 0x05, 0x61, 0x72, 0x6d, 0x36,
	0x34, 0x22, 0xe9, 0x03, 0x0a, 0x0d, 0x43, 0x70, 0x75, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x1a, 0x43, 0x50, 0x55, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52,
	0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45,
	0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x52, 0x41, 0x56, 0x49, 0x54, 0x4f, 0x4e, 0x32,
	0x10, 0x01, 0x1a, 0x0d, 0x82, 0xb5, 0x18, 0x09, 0x67, 0x72, 0x61, 0x76, 0x69, 0x74, 0x6f, 0x6e,
	0x32, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x52, 0x41, 0x56, 0x49, 0x54, 0x4f, 0x4e, 0x33, 0x10, 0x02,
	0x1a, 0x0d, 0x82, 0xb5, 0x18, 0x09, 0x67, 0x72, 0x61, 0x76, 0x69, 0x74, 0x6f, 0x6e, 0x33, 0x12,
	0x1c, 0x0a, 0x09, 0x47, 0x52, 0x41, 0x56, 0x49, 0x54, 0x4f, 0x4e, 0x34, 0x10, 0x03, 0x1a, 0x0d,
	0x82, 0xb5, 0x18, 0x09, 0x67, 0x72, 0x61, 0x76, 0x69, 0x74, 0x6f, 0x6e, 0x34, 0x12, 0x36, 0x0a,
	0x16, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x31, 0x5f, 0x49, 0x4e, 0x54,
	0x45, 0x4c, 0x5f, 0x58, 0x45, 0x4f, 0x4e, 0x10, 0x15, 0x1a, 0x1a, 0x82, 0xb5, 0x18, 0x16, 0x67,
	0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x2d, 0x69, 0x6e, 0x74, 0x65, 0x6c,
	0x2d, 0x78, 0x65, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x16, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54,
	0x49, 0x4f, 0x4e, 0x32, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x4c, 0x5f, 0x58, 0x45, 0x4f, 0x4e, 0x10,
	0x16, 0x1a, 0x1a, 0x82, 0xb5, 0x18, 0x16, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x32, 0x2d, 0x69, 0x6e, 0x74, 0x65, 0x6c, 0x2d, 0x78, 0x65, 0x6f, 0x6e, 0x12, 0x32, 0x0a,
	0x14, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x32, 0x5f, 0x41, 0x4d, 0x44,
	0x5f, 0x45, 0x50, 0x59, 0x43, 0x10, 0x17, 0x1a, 0x18, 0x82, 0xb5, 0x18, 0x14, 0x67, 0x65, 0x6e,
	0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x2d, 0x61, 0x6d, 0x64, 0x2d, 0x65, 0x70, 0x79,
	0x63, 0x12, 0x36, 0x0a, 0x16, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x34,
	0x5f, 0x49, 0x4e, 0x54, 0x45, 0x4c, 0x5f, 0x58, 0x45, 0x4f, 0x4e, 0x10, 0x18, 0x1a, 0x1a, 0x82,
	0xb5, 0x18, 0x16, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x34, 0x2d, 0x69,
	0x6e, 0x74, 0x65, 0x6c, 0x2d, 0x78, 0x65, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x11, 0x47, 0x45, 0x4e,
	0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x34, 0x5f, 0x41, 0x58, 0x49, 0x4f, 0x4e, 0x10, 0x19,
	0x1a, 0x15, 0x82, 0xb5, 0x18, 0x11, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x34, 0x2d, 0x61, 0x78, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x14, 0x47, 0x45, 0x4e, 0x45, 0x52,
	0x41, 0x54, 0x49, 0x4f, 0x4e, 0x34, 0x5f, 0x41, 0x4d, 0x44, 0x5f, 0x45, 0x50, 0x59, 0x43, 0x10,
	0x1a, 0x1a, 0x18, 0x82, 0xb5, 0x18, 0x14, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x34, 0x2d, 0x61, 0x6d, 0x64, 0x2d, 0x65, 0x70, 0x79, 0x63, 0x12, 0x10, 0x0a, 0x0c, 0x41,
	0x4d, 0x50, 0x45, 0x52, 0x45, 0x5f, 0x41, 0x4c, 0x54, 0x52, 0x41, 0x10, 0x67, 0x12, 0x0e, 0x0a,
	0x0a, 0x43, 0x4f, 0x42, 0x41, 0x4c, 0x54, 0x5f, 0x31, 0x30, 0x30, 0x10, 0x68, 0x22, 0x82, 0x04,
	0x0a, 0x09, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4d, 0x75, 0x12, 0x16, 0x0a, 0x02, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x06, 0xe0, 0x41, 0x08, 0xe0, 0x41, 0x03, 0x52,
	0x02, 0x69, 0x64, 0x12, 0x50, 0x0a, 0x0e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x70, 0x72, 0x6f,
	0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6c,
	0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43,
	0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x4e, 0x61, 0x6d,
	0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72, 0x6f,
	0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f,
	0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6c, 0x6f,
	0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31,
	0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4d, 0x75, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d,
	0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x76, 0x6f, 0x6c, 0x75,
	0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0xb9, 0x02, 0x0a, 0x0a, 0x56, 0x6f, 0x6c, 0x75, 0x6d,
	0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f,
	0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44,
	0x10, 0x00, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x50, 0x33, 0x10, 0x02, 0x1a, 0x07, 0x82, 0xb5, 0x18,
	0x03, 0x67, 0x70, 0x33, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x4f, 0x32, 0x10, 0x03, 0x1a, 0x07, 0x82,
	0xb5, 0x18, 0x03, 0x69, 0x6f, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x44, 0x5f, 0x53, 0x53, 0x44,
	0x10, 0x04, 0x1a, 0x0a, 0x82, 0xb5, 0x18, 0x06, 0x70, 0x64, 0x2d, 0x73, 0x73, 0x64, 0x12, 0x1c,
	0x0a, 0x09, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x55, 0x4d, 0x56, 0x32, 0x10, 0x05, 0x1a, 0x0d, 0x82,
	0xb5, 0x18, 0x09, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x76, 0x32, 0x12, 0x1a, 0x0a, 0x08,
	0x55, 0x4c, 0x54, 0x52, 0x41, 0x53, 0x53, 0x44, 0x10, 0x06, 0x1a, 0x0c, 0x82, 0xb5, 0x18, 0x08,
	0x75, 0x6c, 0x74, 0x72, 0x61, 0x73, 0x73, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x48, 0x59, 0x50, 0x45,
	0x52, 0x44, 0x49, 0x53, 0x4b, 0x5f, 0x42, 0x41, 0x4c, 0x41, 0x4e, 0x43, 0x45, 0x44, 0x10, 0x07,
	0x1a, 0x16, 0x82, 0xb5, 0x18, 0x12, 0x68, 0x79, 0x70, 0x65, 0x72, 0x64, 0x69, 0x73, 0x6b, 0x2d,
	0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x48, 0x59, 0x50, 0x45,
	0x52, 0x44, 0x49, 0x53, 0x4b, 0x5f, 0x45, 0x58, 0x54, 0x52, 0x45, 0x4d, 0x45, 0x10, 0x08, 0x1a,
	0x15, 0x82, 0xb5, 0x18, 0x11, 0x68, 0x79, 0x70, 0x65, 0x72, 0x64, 0x69, 0x73, 0x6b, 0x2d, 0x65,
	0x78, 0x74, 0x72, 0x65, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x03, 0x47, 0x50, 0x32, 0x10, 0x01, 0x1a,
	0x09, 0x82, 0xb5, 0x18, 0x03, 0x67, 0x70, 0x32, 0x08, 0x01, 0x12, 0x26, 0x0a, 0x0d, 0x4c, 0x4f,
	0x43, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x10, 0x63, 0x1a, 0x13, 0x82,
	0xb5, 0x18, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x2d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65,
	0x08, 0x01, 0x22, 0x99, 0x15, 0x0a, 0x03, 0x53, 0x6b, 0x75, 0x12, 0x16, 0x0a, 0x02, 0x69, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x06, 0xe0, 0x41, 0x08, 0xe0, 0x41, 0x03, 0x52, 0x02,
	0x69, 0x64, 0x12, 0x1a, 0x0a, 0x06, 0x73, 0x70, 0x75, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x04, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x73, 0x70, 0x75, 0x49, 0x64, 0x12, 0x1c,
	0x0a, 0x07, 0x73, 0x70, 0x75, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x73, 0x70, 0x75, 0x4b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x08,
	0x73, 0x70, 0x75, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03,
	0xe0, 0x41, 0x03, 0x52, 0x07, 0x73, 0x70, 0x75, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x10,
	0x73, 0x70, 0x75, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x73, 0x70, 0x75,
	0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x73,
	0x70, 0x75, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x73, 0x70, 0x75, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x12, 0x15, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03,
	0xe0, 0x41, 0x02, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x50, 0x0a, 0x0e, 0x63, 0x6c, 0x6f, 0x75,
	0x64, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x24, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
	0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65,
	0x72, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x0e, 0x63, 0x6f,
	0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x22, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69,
	0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65,
	0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x63, 0x6f, 0x6d,
	0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x0e, 0x69, 0x6e,
	0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x75, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x04, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63,
	0x65, 0x4d, 0x75, 0x49, 0x64, 0x12, 0x47, 0x0a, 0x08, 0x63, 0x70, 0x75, 0x5f, 0x61, 0x72, 0x63,
	0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c,
	0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e,
	0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x75, 0x2e, 0x43, 0x70, 0x75, 0x41, 0x72, 0x63, 0x68,
	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x63, 0x70, 0x75, 0x41, 0x72, 0x63, 0x68, 0x12, 0x59,
	0x0a, 0x0e, 0x63, 0x70, 0x75, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e,
	0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x73,
	0x74, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x75, 0x2e, 0x43, 0x70, 0x75, 0x47, 0x65, 0x6e, 0x65, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x63, 0x70, 0x75, 0x47,
	0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0d, 0x69, 0x6e, 0x73,
	0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54,
	0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x08, 0x63, 0x70, 0x75, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x18,
	0x0e, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x63, 0x70, 0x75, 0x43,
	0x6f, 0x72, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x67, 0x69,
	0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x6d, 0x65, 0x6d,
	0x6f, 0x72, 0x79, 0x47, 0x69, 0x12, 0x31, 0x0a, 0x12, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,
	0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4e,
	0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64,
	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67,
	0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e,
	0x76, 0x31, 0x2e, 0x53, 0x6b, 0x75, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,
	0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20,
	0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69,
	0x74, 0x79, 0x12, 0x48, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61,
	0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61,
	0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53,
	0x6b, 0x75, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52,
	0x0b, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x4e, 0x0a, 0x0f,
	0x72, 0x61, 0x66, 0x74, 0x6c, 0x6f, 0x67, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18,
	0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64,
	0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6b, 0x75, 0x2e,
	0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x72, 0x61,
	0x66, 0x74, 0x6c, 0x6f, 0x67, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x1a, 0xa8, 0x09, 0x0a,
	0x07, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x6b,
	0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x67, 0x6c,
	0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76,
	0x31, 0x2e, 0x53, 0x6b, 0x75, 0x2e, 0x44, 0x69, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03,
	0xe0, 0x41, 0x03, 0x52, 0x08, 0x64, 0x69, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a,
	0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6d, 0x75, 0x5f, 0x69, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x04, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61,
	0x67, 0x65, 0x4d, 0x75, 0x49, 0x64, 0x12, 0x4f, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65,
	0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6c,
	0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76,
	0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4d, 0x75, 0x2e, 0x56, 0x6f, 0x6c, 0x75,
	0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x76, 0x6f, 0x6c,
	0x75, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2b, 0x0a, 0x0f, 0x73, 0x69, 0x7a, 0x65, 0x5f,
	0x67, 0x69, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x73, 0x69, 0x7a, 0x65, 0x47, 0x69, 0x44, 0x65, 0x66,
	0x61, 0x75, 0x6c, 0x74, 0x12, 0x23, 0x0a, 0x0b, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x67, 0x69, 0x5f,
	0x6d, 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09,
	0x73, 0x69, 0x7a, 0x65, 0x47, 0x69, 0x4d, 0x61, 0x78, 0x12, 0x23, 0x0a, 0x0b, 0x73, 0x69, 0x7a,
	0x65, 0x5f, 0x67, 0x69, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03,
	0xe0, 0x41, 0x01, 0x52, 0x09, 0x73, 0x69, 0x7a, 0x65, 0x47, 0x69, 0x4d, 0x69, 0x6e, 0x12, 0x1e,
	0x0a, 0x08, 0x69, 0x6f, 0x70, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05,
	0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x69, 0x6f, 0x70, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x1e,
	0x0a, 0x08, 0x69, 0x6f, 0x70, 0x73, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05,
	0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x69, 0x6f, 0x70, 0x73, 0x4d, 0x69, 0x6e, 0x12, 0x35,
	0x0a, 0x14, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x5f, 0x6d, 0x69, 0x62,
	0x70, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41,
	0x01, 0x52, 0x12, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x4d, 0x69, 0x62,
	0x70, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x35, 0x0a, 0x14, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68,
	0x70, 0x75, 0x74, 0x5f, 0x6d, 0x69, 0x62, 0x70, 0x73, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x0a, 0x20,
	0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x12, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67,
	0x68, 0x70, 0x75, 0x74, 0x4d, 0x69, 0x62, 0x70, 0x73, 0x4d, 0x69, 0x6e, 0x12, 0x4b, 0x0a, 0x0a,
	0x69, 0x6f, 0x70, 0x73, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x2a, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61,
	0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6b, 0x75, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61,
	0x67, 0x65, 0x2e, 0x49, 0x6f, 0x70, 0x73, 0x46, 0x69, 0x78, 0x65, 0x64, 0x48, 0x00, 0x52, 0x09,
	0x69, 0x6f, 0x70, 0x73, 0x46, 0x69, 0x78, 0x65, 0x64, 0x12, 0x51, 0x0a, 0x0c, 0x69, 0x6f, 0x70,
	0x73, 0x5f, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x2c, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74,
	0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6b, 0x75, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67,
	0x65, 0x2e, 0x49, 0x6f, 0x70, 0x73, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x48, 0x00, 0x52,
	0x0b, 0x69, 0x6f, 0x70, 0x73, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x12, 0x5d, 0x0a, 0x10,
	0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64,
	0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e,
	0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6b, 0x75,
	0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68,
	0x70, 0x75, 0x74, 0x46, 0x69, 0x78, 0x65, 0x64, 0x48, 0x01, 0x52, 0x0f, 0x74, 0x68, 0x72, 0x6f,
	0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x46, 0x69, 0x78, 0x65, 0x64, 0x12, 0x63, 0x0a, 0x12, 0x74,
	0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x5f, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69,
	0x63, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c,
	0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6b,
	0x75, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67,
	0x68, 0x70, 0x75, 0x74, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x48, 0x01, 0x52, 0x11, 0x74,
	0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63,
	0x1a, 0x24, 0x0a, 0x09, 0x49, 0x6f, 0x70, 0x73, 0x46, 0x69, 0x78, 0x65, 0x64, 0x12, 0x17, 0x0a,
	0x04, 0x69, 0x6f, 0x70, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02,
	0x52, 0x04, 0x69, 0x6f, 0x70, 0x73, 0x1a, 0x3b, 0x0a, 0x0b, 0x49, 0x6f, 0x70, 0x73, 0x44, 0x79,
	0x6e, 0x61, 0x6d, 0x69, 0x63, 0x12, 0x2c, 0x0a, 0x10, 0x69, 0x6f, 0x70, 0x73, 0x5f, 0x70, 0x65,
	0x72, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x67, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42,
	0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x69, 0x6f, 0x70, 0x73, 0x50, 0x65, 0x72, 0x53, 0x69, 0x7a,
	0x65, 0x47, 0x69, 0x1a, 0x41, 0x0a, 0x0f, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75,
	0x74, 0x46, 0x69, 0x78, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x10, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67,
	0x68, 0x70, 0x75, 0x74, 0x5f, 0x6d, 0x69, 0x62, 0x70, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75,
	0x74, 0x4d, 0x69, 0x62, 0x70, 0x73, 0x1a, 0x98, 0x01, 0x0a, 0x11, 0x54, 0x68, 0x72, 0x6f, 0x75,
	0x67, 0x68, 0x70, 0x75, 0x74, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x12, 0x43, 0x0a, 0x1c,
	0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x5f, 0x6d, 0x69, 0x62, 0x70, 0x73,
	0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x67, 0x69, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x18, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68,
	0x70, 0x75, 0x74, 0x4d, 0x69, 0x62, 0x70, 0x73, 0x50, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x47,
	0x69, 0x12, 0x3e, 0x0a, 0x19, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x5f,
	0x6d, 0x69, 0x62, 0x70, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x69, 0x6f, 0x70, 0x73, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x16, 0x74, 0x68, 0x72, 0x6f, 0x75,
	0x67, 0x68, 0x70, 0x75, 0x74, 0x4d, 0x69, 0x62, 0x70, 0x73, 0x50, 0x65, 0x72, 0x49, 0x6f, 0x70,
	0x73, 0x42, 0x06, 0x0a, 0x04, 0x69, 0x6f, 0x70, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x74, 0x68, 0x72,
	0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x1a, 0x9e, 0x03, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x64,
	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x26, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69,
	0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6b, 0x75, 0x2e, 0x43, 0x6f, 0x6e,
	0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
	0x03, 0x6b, 0x65, 0x79, 0x12, 0x4c, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e,
	0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6b, 0x75,
	0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61,
	0x74, 0x6f, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74,
	0x6f, 0x72, 0x12, 0x1b, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03,
	0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22,
	0x92, 0x01, 0x0a, 0x03, 0x4b, 0x65, 0x79, 0x12, 0x13, 0x0a, 0x0f, 0x4b, 0x45, 0x59, 0x5f, 0x55,
	0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06,
	0x54, 0x45, 0x4e, 0x41, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x52, 0x4f, 0x56,
	0x49, 0x44, 0x45, 0x52, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x47, 0x49, 0x4f, 0x4e,
	0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x54, 0x54, 0x41, 0x43, 0x48, 0x5f, 0x54, 0x49, 0x45,
	0x52, 0x55, 0x4e, 0x49, 0x54, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x49, 0x4b, 0x56, 0x5f,
	0x54, 0x4f, 0x54, 0x41, 0x4c, 0x5f, 0x43, 0x50, 0x55, 0x10, 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x54,
	0x49, 0x45, 0x52, 0x5f, 0x49, 0x44, 0x10, 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x50, 0x55, 0x41,
	0x52, 0x43, 0x48, 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45,
	0x4e, 0x54, 0x10, 0x09, 0x22, 0x52, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72,
	0x12, 0x18, 0x0a, 0x14, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53,
	0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x45, 0x51,
	0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x06, 0x0a, 0x02, 0x49, 0x4e,
	0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x4f, 0x54, 0x49, 0x4e, 0x10, 0x04, 0x12, 0x09, 0x0a,
	0x05, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x05, 0x22, 0x54, 0x0a, 0x08, 0x44, 0x69, 0x73, 0x6b,
	0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x49, 0x53, 0x4b, 0x5f, 0x54, 0x59, 0x50,
	0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12,
	0x12, 0x0a, 0x04, 0x44, 0x41, 0x54, 0x41, 0x10, 0x01, 0x1a, 0x08, 0x82, 0xb5, 0x18, 0x04, 0x64,
	0x61, 0x74, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x52, 0x41, 0x46, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x10,
	0x02, 0x1a, 0x0b, 0x82, 0xb5, 0x18, 0x07, 0x72, 0x61, 0x66, 0x74, 0x6c, 0x6f, 0x67, 0x22, 0xbe,
	0x0f, 0x0a, 0x03, 0x53, 0x70, 0x75, 0x12, 0x16, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x04, 0x42, 0x06, 0xe0, 0x41, 0x08, 0xe0, 0x41, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x15,
	0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03,
	0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79,
	0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02,
	0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a,
	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02,
	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x76, 0x65,
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4e, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65,
	0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e,
	0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64,
	0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70,
	0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e,
	0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x50, 0x0a, 0x0e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x70,
	0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e,
	0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31,
	0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x4e,
	0x61, 0x6d, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x50,
	0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f,
	0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c,
	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f,
	0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x72, 0x65, 0x67,
	0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x08, 0x63, 0x70, 0x75, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x18,
	0x08, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x63, 0x70, 0x75, 0x43,
	0x6f, 0x72, 0x65, 0x12, 0x29, 0x0a, 0x0e, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x69,
	0x7a, 0x65, 0x5f, 0x67, 0x69, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02,
	0x52, 0x0c, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x47, 0x69, 0x12, 0x28,
	0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
	0x0a, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61,
	0x75, 0x6c, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61,
	0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20,
	0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65,
	0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x75, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65,
	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x61,
	0x67, 0x65, 0x12, 0x4e, 0x0a, 0x0f, 0x72, 0x61, 0x66, 0x74, 0x6c, 0x6f, 0x67, 0x5f, 0x73, 0x74,
	0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6c,
	0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76,
	0x31, 0x2e, 0x53, 0x70, 0x75, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x42, 0x03, 0xe0,
	0x41, 0x03, 0x52, 0x0e, 0x72, 0x61, 0x66, 0x74, 0x6c, 0x6f, 0x67, 0x53, 0x74, 0x6f, 0x72, 0x61,
	0x67, 0x65, 0x12, 0x43, 0x0a, 0x08, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x0d,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65,
	0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x75, 0x2e, 0x4d,
	0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x42, 0x05, 0xe0, 0x41, 0x01, 0x18, 0x01, 0x52, 0x08, 0x6d,
	0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x73, 0x75, 0x70, 0x70, 0x6f,
	0x72, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18,
	0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64,
	0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x75, 0x2e,
	0x44, 0x69, 0x73, 0x6b, 0x50, 0x61, 0x69, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x12, 0x73,
	0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x44, 0x69, 0x73, 0x6b, 0x50, 0x61, 0x69, 0x72,
	0x73, 0x12, 0x67, 0x0a, 0x14, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70,
	0x65, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x30, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74,
	0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x75, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67,
	0x65, 0x54, 0x79, 0x70, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x12, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54,
	0x79, 0x70, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x1a, 0x71, 0x0a, 0x17, 0x53, 0x74,
	0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x40, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e,
	0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x75,
	0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x44, 0x65, 0x74, 0x61,
	0x69, 0x6c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0xe8, 0x01,
	0x0a, 0x07, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x0f, 0x64, 0x65, 0x66,
	0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x67, 0x69, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,
	0x53, 0x69, 0x7a, 0x65, 0x47, 0x69, 0x12, 0x23, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69,
	0x7a, 0x65, 0x5f, 0x67, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03,
	0x52, 0x09, 0x6d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x47, 0x69, 0x12, 0x23, 0x0a, 0x0b, 0x6d,
	0x69, 0x6e, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x67, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x47, 0x69,
	0x12, 0x26, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x69, 0x6f, 0x70, 0x73,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x64, 0x65, 0x66,
	0x61, 0x75, 0x6c, 0x74, 0x49, 0x6f, 0x70, 0x73, 0x12, 0x1e, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f,
	0x69, 0x6f, 0x70, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52,
	0x07, 0x6d, 0x61, 0x78, 0x49, 0x6f, 0x70, 0x73, 0x12, 0x1e, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x5f,
	0x69, 0x6f, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52,
	0x07, 0x6d, 0x69, 0x6e, 0x49, 0x6f, 0x70, 0x73, 0x1a, 0xfc, 0x01, 0x0a, 0x07, 0x4d, 0x61, 0x70,
	0x70, 0x69, 0x6e, 0x67, 0x12, 0x50, 0x0a, 0x0e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x70, 0x72,
	0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67,
	0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e,
	0x43, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x4e, 0x61,
	0x6d, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72,
	0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x10, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63,
	0x61, 0x6c, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e,
	0x32, 0x1d, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
	0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x42,
	0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x52, 0x65,
	0x67, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2e, 0x0a, 0x10, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x42,
	0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x07, 0x73, 0x6b, 0x75, 0x5f, 0x6b, 0x65, 0x79,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x73, 0x6b, 0x75,
	0x4b, 0x65, 0x79, 0x3a, 0x02, 0x18, 0x01, 0x1a, 0xc4, 0x01, 0x0a, 0x08, 0x44, 0x69, 0x73, 0x6b,
	0x50, 0x61, 0x69, 0x72, 0x12, 0x58, 0x0a, 0x10, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x76, 0x6f, 0x6c,
	0x75, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29,
	0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65,
	0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4d, 0x75, 0x2e, 0x56,
	0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e,
	0x64, 0x61, 0x74, 0x61, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x5e,
	0x0a, 0x13, 0x72, 0x61, 0x66, 0x74, 0x6c, 0x6f, 0x67, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65,
	0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6c,
	0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76,
	0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4d, 0x75, 0x2e, 0x56, 0x6f, 0x6c, 0x75,
	0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x72, 0x61, 0x66,
	0x74, 0x6c, 0x6f, 0x67, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x1a, 0xad,
	0x01, 0x0a, 0x11, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x44, 0x65,
	0x74, 0x61, 0x69, 0x6c, 0x12, 0x48, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x6f,
	0x72, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6c, 0x6f,
	0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31,
	0x2e, 0x53, 0x70, 0x75, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x42, 0x03, 0xe0, 0x41,
	0x03, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x4e,
	0x0a, 0x0f, 0x72, 0x61, 0x66, 0x74, 0x6c, 0x6f, 0x67, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c,
	0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70,
	0x75, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e,
	0x72, 0x61, 0x66, 0x74, 0x6c, 0x6f, 0x67, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x22, 0x5f,
	0x0a, 0x0b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a,
	0x18, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e,
	0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x42,
	0x61, 0x73, 0x69, 0x63, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61,
	0x72, 0x64, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61,
	0x6e, 0x63, 0x65, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x6c, 0x75, 0x73, 0x10, 0x04, 0x22,
	0xdf, 0x08, 0x0a, 0x0d, 0x53, 0x6b, 0x75, 0x53, 0x70, 0x75, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e,
	0x67, 0x12, 0x16, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x06, 0xe0,
	0x41, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x02, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x09, 0x74, 0x65, 0x6e,
	0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x06, 0xe0, 0x41,
	0x02, 0xe0, 0x41, 0x05, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x25,
	0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x04, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a,
	0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x06, 0x73, 0x70, 0x75, 0x5f, 0x69, 0x64, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x05, 0x73,
	0x70, 0x75, 0x49, 0x64, 0x12, 0x4e, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e,
	0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x67,
	0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e,
	0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65,
	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,
	0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x70, 0x75, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x73, 0x70, 0x75,
	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x70, 0x75, 0x5f, 0x76, 0x65, 0x72, 0x73,
	0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a,
	0x73, 0x70, 0x75, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x10, 0x73, 0x70,
	0x75, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x73, 0x70, 0x75, 0x44, 0x69,
	0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4c, 0x0a, 0x0c, 0x73, 0x74, 0x6f,
	0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x24, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74,
	0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x75, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67,
	0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72,
	0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x53, 0x0a, 0x0e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
	0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x24, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
	0x76, 0x31, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72,
	0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x0d, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x06,
	0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x67,
	0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e,
	0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x06, 0xe0, 0x41, 0x02,
	0xe0, 0x41, 0x05, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x06, 0x73,
	0x6b, 0x75, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x42, 0x03, 0xe0, 0x41, 0x02,
	0x52, 0x05, 0x73, 0x6b, 0x75, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x07, 0x73, 0x6b, 0x75, 0x5f, 0x6b,
	0x65, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x73,
	0x6b, 0x75, 0x4b, 0x65, 0x79, 0x12, 0x47, 0x0a, 0x08, 0x63, 0x70, 0x75, 0x5f, 0x61, 0x72, 0x63,
	0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c,
	0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e,
	0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x75, 0x2e, 0x43, 0x70, 0x75, 0x41, 0x72, 0x63, 0x68,
	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x63, 0x70, 0x75, 0x41, 0x72, 0x63, 0x68, 0x12, 0x59,
	0x0a, 0x0e, 0x63, 0x70, 0x75, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e,
	0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x73,
	0x74, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x75, 0x2e, 0x43, 0x70, 0x75, 0x47, 0x65, 0x6e, 0x65, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x63, 0x70, 0x75, 0x47,
	0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0d, 0x69, 0x6e, 0x73,
	0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54,
	0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x08, 0x63, 0x70, 0x75, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x18,
	0x11, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x63, 0x70, 0x75, 0x43,
	0x6f, 0x72, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x67, 0x69,
	0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x6d, 0x65, 0x6d,
	0x6f, 0x72, 0x79, 0x47, 0x69, 0x12, 0x58, 0x0a, 0x10, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x76, 0x6f,
	0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x29, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74,
	0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4d, 0x75, 0x2e,
	0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52,
	0x0e, 0x64, 0x61, 0x74, 0x61, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x5e, 0x0a, 0x13, 0x72, 0x61, 0x66, 0x74, 0x6c, 0x6f, 0x67, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d,
	0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67,
	0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e,
	0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4d, 0x75, 0x2e, 0x56, 0x6f, 0x6c,
	0x75, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x72, 0x61,
	0x66, 0x74, 0x6c, 0x6f, 0x67, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x20, 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x18, 0x15, 0x20, 0x01,
	0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6e, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x22, 0xba, 0x05, 0x0a, 0x1c, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4d, 0x61,
	0x6e, 0x61, 0x67, 0x65, 0x64, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b,
	0x65, 0x79, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x03,
	0xe0, 0x41, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65,
	0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x03, 0xe0, 0x41, 0x02,
	0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x0f, 0x6f,
	0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x04, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e,
	0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x55, 0x0a, 0x11, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x63, 0x6f,
	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72, 0x6f,
	0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
	0x0f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x64,
	0x12, 0x3f, 0x0a, 0x09, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x63, 0x6f, 0x6d,
	0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x61,
	0x6d, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x49,
	0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x77, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x61, 0x72, 0x6e,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x61, 0x77, 0x73, 0x4b, 0x65, 0x79,
	0x41, 0x72, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x63, 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x67, 0x63, 0x70,
	0x4b, 0x65, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4c, 0x0a, 0x0f, 0x61, 0x7a, 0x75, 0x72, 0x65,
	0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x76, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x22, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61,
	0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x56,
	0x61, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79,
	0x56, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f,
	0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x44,
	0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x14, 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, 0x03, 0xe0, 0x41, 0x03,
	0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b,
	0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x15, 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, 0x03, 0xe0,
	0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40,
	0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x16, 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,
	0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65,
	0x42, 0x0c, 0x0a, 0x0a, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x22, 0xba,
	0x01, 0x0a, 0x0d, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x75, 0x6c, 0x74,
	0x12, 0x22, 0x0a, 0x0d, 0x6b, 0x65, 0x79, 0x5f, 0x76, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6b, 0x65,
	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6b, 0x65, 0x79, 0x56, 0x61, 0x75, 0x6c,
	0x74, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0e, 0x6b, 0x65, 0x79, 0x5f, 0x76, 0x61, 0x75, 0x6c,
	0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6b, 0x65,
	0x79, 0x56, 0x61, 0x75, 0x6c, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x5f, 0x0a, 0x16, 0x61, 0x7a,
	0x75, 0x72, 0x65, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6c, 0x6f,
	0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31,
	0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x41, 0x70, 0x70, 0x52,
	0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xac, 0x01, 0x0a, 0x14,
	0x41, 0x7a, 0x75, 0x72, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x70, 0x70, 0x5f, 0x72, 0x65, 0x67, 0x69,
	0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x11, 0x61, 0x70, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x70, 0x70, 0x5f, 0x72, 0x65, 0x67, 0x69,
	0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x6d, 0x69, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x12, 0x61, 0x70, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x55, 0x6d, 0x69, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x70, 0x70, 0x5f, 0x72, 0x65,
	0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x61, 0x70, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74,
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x6a, 0x0a, 0x1e, 0x47, 0x4b,
	0x45, 0x48, 0x65, 0x74, 0x65, 0x72, 0x6f, 0x67, 0x65, 0x6e, 0x65, 0x6f, 0x75, 0x73, 0x44, 0x65,
	0x70, 0x6c, 0x6f, 0x79, 0x50, 0x6f, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0c,
	0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65,
	0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e,
	0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x70, 0x6f,
	0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9a, 0x05, 0x0a, 0x14, 0x43, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
	0x80, 0x01, 0x0a, 0x18, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69,
	0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f,
	0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x17, 0x63, 0x6f, 0x6d, 0x70, 0x6f,
	0x6e, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x73, 0x1a, 0xfe, 0x03, 0x0a, 0x16, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4e, 0x0a,
	0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64,
	0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70,
	0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d,
	0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x7c, 0x0a,
	0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x52, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65,
	0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
	0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75,
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x61, 0x72,
	0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x63,
	0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x33, 0x0a, 0x13, 0x6f,
	0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x74,
	0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x11, 0x6f,
	0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x61, 0x67,
	0x1a, 0x53, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x2c, 0x0a,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56,
	0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63,
	0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f,
	0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x8b, 0x01, 0x0a, 0x11, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d,
	0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
	0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x60, 0x0a,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x67,
	0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e,
	0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e,
	0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50,
	0x61, 0x72, 0x61, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
	0x02, 0x38, 0x01, 0x22, 0xc0, 0x04, 0x0a, 0x10, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41,
	0x70, 0x70, 0x6c, 0x79, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73,
	0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07,
	0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x71, 0x0a, 0x15, 0x63, 0x6f, 0x6d, 0x70, 0x6f,
	0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x73,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e,
	0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4d, 0x61, 0x73, 0x6b, 0x2e, 0x43, 0x6f,
	0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4d, 0x61, 0x73, 0x6b,
	0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x13, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,
	0x41, 0x70, 0x70, 0x6c, 0x79, 0x4d, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x24, 0x0a, 0x0a, 0x68, 0x6f,
	0x74, 0x5f, 0x72, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x05,
	0xe0, 0x41, 0x01, 0x18, 0x01, 0x52, 0x09, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64,
	0x12, 0x4f, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69,
	0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	0x41, 0x70, 0x70, 0x6c, 0x79, 0x4d, 0x61, 0x73, 0x6b, 0x2e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65,
	0x67, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67,
	0x79, 0x1a, 0xaa, 0x01, 0x0a, 0x12, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x41,
	0x70, 0x70, 0x6c, 0x79, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x4e, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x70,
	0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x22, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61,
	0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,
	0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x6f,
	0x6e, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42,
	0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x76,
	0x0a, 0x08, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x54,
	0x52, 0x41, 0x54, 0x45, 0x47, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
	0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x4f, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f,
	0x52, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x48, 0x4f, 0x54,
	0x5f, 0x52, 0x45, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x48, 0x41,
	0x4e, 0x47, 0x45, 0x5f, 0x43, 0x4d, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x03, 0x12, 0x17, 0x0a,
	0x13, 0x45, 0x4e, 0x53, 0x55, 0x52, 0x45, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x54,
	0x4f, 0x5f, 0x54, 0x43, 0x10, 0x04, 0x22, 0xc8, 0x10, 0x0a, 0x11, 0x43, 0x6f, 0x6d, 0x70, 0x6f,
	0x6e, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x44, 0x0a, 0x04,
	0x74, 0x69, 0x64, 0x62, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6c, 0x6f,
	0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31,
	0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e,
	0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x74, 0x69,
	0x64, 0x62, 0x12, 0x44, 0x0a, 0x04, 0x74, 0x69, 0x6b, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x30, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61,
	0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,
	0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65,
	0x6e, 0x74, 0x52, 0x04, 0x74, 0x69, 0x6b, 0x76, 0x12, 0x4a, 0x0a, 0x07, 0x74, 0x69, 0x66, 0x6c,
	0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6c, 0x6f, 0x62,
	0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e,
	0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66,
	0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x74, 0x69, 0x66,
	0x6c, 0x61, 0x73, 0x68, 0x12, 0x4a, 0x0a, 0x07, 0x74, 0x69, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18,
	0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64,
	0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70,
	0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f,
	0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x74, 0x69, 0x70, 0x72, 0x6f, 0x78, 0x79,
	0x1a, 0x8e, 0x0e, 0x0a, 0x09, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x4b,
	0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e,
	0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64,
	0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64,
	0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e,
	0x4e, 0x6f, 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x74,
	0x69, 0x64, 0x62, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x04, 0x52, 0x0b, 0x74, 0x69, 0x64, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12,
	0x35, 0x0a, 0x17, 0x74, 0x69, 0x64, 0x62, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x64, 0x69,
	0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x14, 0x74, 0x69, 0x64, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x69, 0x73, 0x70, 0x6c,
	0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x15, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x66,
	0x61, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x69, 0x64, 0x62, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,
	0x54, 0x69, 0x64, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0xe0, 0x08, 0x0a, 0x04, 0x4e, 0x6f,
	0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61,
	0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x51, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e,
	0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d,
	0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43,
	0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x53, 0x74,
	0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x70,
	0x75, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x63, 0x70, 0x75, 0x12, 0x24, 0x0a, 0x0e,
	0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x67, 0x69, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x7a, 0x65,
	0x47, 0x69, 0x12, 0x2a, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69,
	0x7a, 0x65, 0x5f, 0x67, 0x69, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x02, 0x18, 0x01, 0x52,
	0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x47, 0x69, 0x12, 0x25,
	0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6f, 0x70, 0x73, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x0d, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67,
	0x65, 0x49, 0x6f, 0x70, 0x73, 0x12, 0x3c, 0x0a, 0x18, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65,
	0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x5f, 0x6d, 0x69, 0x62, 0x70,
	0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x02, 0x18, 0x01, 0x52, 0x16, 0x73, 0x74, 0x6f,
	0x72, 0x61, 0x67, 0x65, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x4d, 0x69,
	0x62, 0x70, 0x73, 0x12, 0x4e, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x74, 0x79,
	0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61,
	0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53,
	0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4d, 0x75, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x54,
	0x79, 0x70, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x54,
	0x79, 0x70, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c,
	0x69, 0x74, 0x79, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10,
	0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5a, 0x6f, 0x6e, 0x65,
	0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70,
	0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63,
	0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x76, 0x0a, 0x11, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x6e,
	0x67, 0x5f, 0x73, 0x6b, 0x75, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x4a, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61,
	0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,
	0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65,
	0x6e, 0x74, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67,
	0x53, 0x6b, 0x75, 0x4b, 0x65, 0x79, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x65,
	0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x6b, 0x75, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x5f, 0x0a,
	0x08, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x43, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74,
	0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x4e,
	0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e,
	0x74, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x45,
	0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x12, 0x24,
	0x0a, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x53, 0x70, 0x65, 0x63,
	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x70, 0x65,
	0x63, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6e, 0x6f, 0x64, 0x65, 0x53, 0x70, 0x65, 0x63, 0x44, 0x69,
	0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x6e, 0x6f, 0x64,
	0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0e,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x53, 0x70, 0x65, 0x63, 0x56, 0x65,
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x6e,
	0x67, 0x53, 0x6b, 0x75, 0x4b, 0x65, 0x79, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
	0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
	0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x75, 0x0a, 0x0d, 0x53, 0x74, 0x6f,
	0x72, 0x61, 0x67, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4e, 0x0a, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6c,
	0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76,
	0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x49,
	0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74,
	0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
	0x22, 0x5a, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41,
	0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00,
	0x12, 0x0d, 0x0a, 0x09, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12,
	0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x02,
	0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0c,
	0x0a, 0x08, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x1a, 0xc2, 0x03, 0x0a,
	0x07, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x72,
	0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x67, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x47, 0x69,
	0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6f, 0x70, 0x73,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x49,
	0x6f, 0x70, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74,
	0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x5f, 0x6d, 0x69, 0x62, 0x70, 0x73, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x68,
	0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x4d, 0x69, 0x62, 0x70, 0x73, 0x12, 0x27, 0x0a,
	0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6f, 0x70, 0x73,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,
	0x61, 0x6c, 0x49, 0x6f, 0x70, 0x73, 0x12, 0x4a, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65,
	0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6c,
	0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76,
	0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4d, 0x75, 0x2e, 0x56, 0x6f, 0x6c, 0x75,
	0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x54, 0x79,
	0x70, 0x65, 0x12, 0x79, 0x0a, 0x11, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73,
	0x6b, 0x75, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4d, 0x2e,
	0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64,
	0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64,
	0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e,
	0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67,
	0x53, 0x6b, 0x75, 0x4b, 0x65, 0x79, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x65,
	0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x6b, 0x75, 0x4b, 0x65, 0x79, 0x73, 0x1a, 0x42, 0x0a,
	0x14, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x6b, 0x75, 0x4b, 0x65, 0x79, 0x73,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
	0x01, 0x22, 0xfb, 0x01, 0x0a, 0x0f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x61,
	0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f,
	0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74,
	0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49,
	0x64, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69,
	0x64, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11,
	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d,
	0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64,
	0x12, 0x4d, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x09,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65,
	0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e,
	0x65, 0x6e, 0x74, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x22,
	0x92, 0x01, 0x0a, 0x0b, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x12,
	0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12,
	0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x04, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x09,
	0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x22, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74,
	0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x54,
	0x79, 0x70, 0x65, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x14,
	0x0a, 0x05, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x71,
	0x75, 0x6f, 0x74, 0x61, 0x22, 0xd3, 0x0e, 0x0a, 0x0d, 0x54, 0x69, 0x64, 0x62, 0x4e, 0x6f, 0x64,
	0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x04, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x63,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42,
	0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12,
	0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70,
	0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65,
	0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x64, 0x62, 0x4e,
	0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e,
	0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74,
	0x12, 0x5f, 0x0a, 0x0f, 0x74, 0x69, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x73, 0x65, 0x74, 0x74,
	0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6c, 0x6f, 0x62,
	0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e,
	0x54, 0x69, 0x64, 0x62, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x69,
	0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x03, 0xe0, 0x41,
	0x01, 0x52, 0x0e, 0x74, 0x69, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e,
	0x67, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x70, 0x75, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x73, 0x70, 0x75, 0x4e, 0x61, 0x6d,
	0x65, 0x12, 0x2d, 0x0a, 0x10, 0x73, 0x70, 0x75, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79,
	0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03,
	0x52, 0x0e, 0x73, 0x70, 0x75, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65,
	0x12, 0x24, 0x0a, 0x0b, 0x73, 0x70, 0x75, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18,
	0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x73, 0x70, 0x75, 0x56,
	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x66,
	0x61, 0x75, 0x6c, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52,
	0x09, 0x69, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x43, 0x0a, 0x05, 0x73, 0x74,
	0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x67, 0x6c, 0x6f, 0x62,
	0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e,
	0x54, 0x69, 0x64, 0x62, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x74,
	0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12,
	0x6a, 0x0a, 0x0f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65,
	0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61,
	0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f,
	0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x50, 0x72,
	0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x6d, 0x6f, 0x64,
	0x69, 0x66, 0x79, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x79, 0x0a, 0x17, 0x74,
	0x69, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x5f, 0x70, 0x72,
	0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67,
	0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e,
	0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x69,
	0x66, 0x79, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52,
	0x15, 0x74, 0x69, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x50, 0x72,
	0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x1a, 0xe7, 0x06, 0x0a, 0x08, 0x45, 0x6e, 0x64, 0x70, 0x6f,
	0x69, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0d, 0x74, 0x69, 0x64, 0x62, 0x5f, 0x67, 0x72, 0x6f, 0x75,
	0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52,
	0x0b, 0x74, 0x69, 0x64, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x68, 0x0a, 0x0f,
	0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64,
	0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x64, 0x62,
	0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69,
	0x6e, 0x74, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e,
	0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x45, 0x6e,
	0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x75, 0x0a, 0x14, 0x76, 0x70, 0x63, 0x5f, 0x70, 0x65,
	0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65,
	0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x64, 0x62, 0x4e,
	0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e,
	0x74, 0x2e, 0x56, 0x70, 0x63, 0x50, 0x65, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x70,
	0x6f, 0x69, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x12, 0x76, 0x70, 0x63, 0x50, 0x65,
	0x65, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x7a, 0x0a,
	0x16, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x65, 0x6e,
	0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e,
	0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64,
	0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x64, 0x62, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75,
	0x70, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61,
	0x74, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x03,
	0xe0, 0x41, 0x03, 0x52, 0x14, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6e, 0x6b,
	0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x1a, 0xeb, 0x01, 0x0a, 0x0e, 0x50, 0x75,
	0x62, 0x6c, 0x69, 0x63, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x04,
	0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52,
	0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x5e,
	0x0a, 0x0d, 0x69, 0x70, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18,
	0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64,
	0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x64, 0x62,
	0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69,
	0x6e, 0x74, 0x2e, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x03, 0xe0, 0x41,
	0x01, 0x52, 0x0b, 0x69, 0x70, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x32,
	0x0a, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f,
	0x6c, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52,
	0x0e, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4c, 0x62, 0x88,
	0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x75,
	0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6c, 0x62, 0x1a, 0x56, 0x0a, 0x09, 0x49, 0x70, 0x41, 0x64, 0x64,
	0x72, 0x65, 0x73, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x69, 0x64, 0x72, 0x5f, 0x62, 0x6c, 0x6f,
	0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x63,
	0x69, 0x64, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
	0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x1a,
	0x46, 0x0a, 0x12, 0x56, 0x70, 0x63, 0x50, 0x65, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64,
	0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x17,
	0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41,
	0x03, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0x47, 0x0a, 0x13, 0x50, 0x72, 0x69, 0x76, 0x61,
	0x74, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x17,
	0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
	0x03, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74,
	0x1a, 0xa0, 0x01, 0x0a, 0x0e, 0x54, 0x69, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x65, 0x74, 0x74,
	0x69, 0x6e, 0x67, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x70, 0x75, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x73, 0x70, 0x75, 0x4e,
	0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x10, 0x73, 0x70, 0x75, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c,
	0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
	0x41, 0x03, 0x52, 0x0e, 0x73, 0x70, 0x75, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61,
	0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x70, 0x75, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x73, 0x70,
	0x75, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e,
	0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x22, 0x45, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11,
	0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45,
	0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12,
	0x0d, 0x0a, 0x09, 0x4d, 0x4f, 0x44, 0x49, 0x46, 0x59, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0a,
	0x0a, 0x06, 0x50, 0x41, 0x55, 0x53, 0x45, 0x44, 0x10, 0x03, 0x22, 0x86, 0x03, 0x0a, 0x04, 0x43,
	0x69, 0x64, 0x72, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42,
	0x03, 0xe0, 0x41, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a,
	0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x03, 0xe0, 0x41,
	0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x04,
	0x63, 0x69, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
	0x04, 0x63, 0x69, 0x64, 0x72, 0x12, 0x33, 0x0a, 0x13, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x70,
	0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72,
	0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65,
	0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65,
	0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c,
	0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
	0x41, 0x03, 0x52, 0x11, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61,
	0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65,
	0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x69, 0x64, 0x72, 0x2e,
	0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74,
	0x65, 0x12, 0x1a, 0x0a, 0x06, 0x76, 0x70, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x76, 0x70, 0x63, 0x49, 0x64, 0x22, 0x44, 0x0a,
	0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f,
	0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a,
	0x0c, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12,
	0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56,
	0x45, 0x10, 0x02, 0x22, 0xea, 0x01, 0x0a, 0x0b, 0x43, 0x69, 0x64, 0x72, 0x4f, 0x76, 0x65, 0x72,
	0x6c, 0x61, 0x70, 0x12, 0x46, 0x0a, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65,
	0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x69, 0x64, 0x72, 0x4f,
	0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x52, 0x65, 0x67, 0x69,
	0x6f, 0x6e, 0x52, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70,
	0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x1a, 0x74, 0x0a, 0x0b, 0x43, 0x6c,
	0x6f, 0x75, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a,
	0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65,
	0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64,
	0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65,
	0x22, 0xec, 0x01, 0x0a, 0x12, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6e, 0x6b,
	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x06, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6c,
	0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76,
	0x31, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x65, 0x72,
	0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x6e, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x6e, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15,
	0x0a, 0x06, 0x61, 0x7a, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05,
	0x61, 0x7a, 0x49, 0x64, 0x73, 0x22, 0x48, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
	0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
	0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, 0x45, 0x41, 0x54,
	0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10,
	0x02, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x22,
	0xd7, 0x04, 0x0a, 0x13, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x45,
	0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x04, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x0d,
	0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69,
	0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e,
	0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x69,
	0x76, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74,
	0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73,
	0x61, 0x67, 0x65, 0x12, 0x46, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63,
	0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4c,
	0x69, 0x6e, 0x6b, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65,
	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x31, 0x0a, 0x12, 0x70,
	0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
	0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x70, 0x72,
	0x69, 0x76, 0x61, 0x74, 0x65, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x17,
	0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
	0x03, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x5a, 0x0a, 0x0f, 0x69, 0x70, 0x5f, 0x61, 0x64,
	0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x2d, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61,
	0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4c, 0x69,
	0x6e, 0x6b, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x42,
	0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54,
	0x79, 0x70, 0x65, 0x22, 0x63, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a,
	0x12, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46,
	0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47,
	0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x0c,
	0x0a, 0x08, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06,
	0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x49, 0x53, 0x43,
	0x4f, 0x56, 0x45, 0x52, 0x45, 0x44, 0x10, 0x05, 0x22, 0x3f, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65,
	0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49,
	0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43,
	0x55, 0x53, 0x54, 0x4f, 0x4d, 0x45, 0x52, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50,
	0x45, 0x5f, 0x44, 0x42, 0x41, 0x41, 0x53, 0x10, 0x02, 0x22, 0x85, 0x04, 0x0a, 0x0e, 0x41, 0x75,
	0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x13, 0x0a, 0x02,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x02, 0x69,
	0x64, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f,
	0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09,
	0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x65, 0x67,
	0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06,
	0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x61,
	0x72, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x72,
	0x6f, 0x6c, 0x65, 0x41, 0x72, 0x6e, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x61, 0x73, 0x5f, 0x74, 0x6f,
	0x6b, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08,
	0x73, 0x61, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x28, 0x0a, 0x0a, 0x75, 0x6e, 0x72, 0x65,
	0x64, 0x61, 0x63, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41,
	0x01, 0x48, 0x00, 0x52, 0x0a, 0x75, 0x6e, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x65, 0x64, 0x88,
	0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12,
	0x25, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x6d, 0x69, 0x62, 0x18,
	0x09, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x53,
	0x69, 0x7a, 0x65, 0x4d, 0x69, 0x62, 0x12, 0x2e, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x67,
	0x65, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03,
	0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x53, 0x65, 0x63,
	0x6f, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74,
	0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03,
	0xe0, 0x41, 0x01, 0x52, 0x0d, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x4d, 0x61, 0x6e, 0x61, 0x67,
	0x65, 0x72, 0x12, 0x22, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0c, 0x20,
	0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x02, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62,
	0x6c, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79,
	0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x6c, 0x65, 0x67,
	0x61, 0x63, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x75, 0x6e, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74,
	0x65, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x67, 0x65, 0x5f, 0x73,
	0x65, 0x63, 0x6f, 0x6e, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
	0x64, 0x22, 0xb7, 0x03, 0x0a, 0x12, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x46, 0x69,
	0x6c, 0x74, 0x65, 0x72, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x04, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x22, 0x0a,
	0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x04, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49,
	0x64, 0x12, 0x1f, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c,
	0x65, 0x64, 0x12, 0x20, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72,
	0x45, 0x78, 0x70, 0x72, 0x12, 0x24, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a,
	0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x74, 0x61,
	0x62, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52,
	0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x42, 0x03, 0xe0,
	0x41, 0x01, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x12,
	0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70,
	0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x65, 0x78,
	0x70, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x05, 0xe0, 0x41, 0x01, 0x18, 0x01, 0x52,
	0x06, 0x64, 0x62, 0x45, 0x78, 0x70, 0x72, 0x12, 0x24, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65,
	0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x05, 0xe0, 0x41, 0x01,
	0x18, 0x01, 0x52, 0x09, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x78, 0x70, 0x72, 0x12, 0x2f, 0x0a,
	0x10, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6c, 0x69, 0x73,
	0x74, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x42, 0x05, 0xe0, 0x41, 0x01, 0x18, 0x01, 0x52, 0x0e,
	0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b,
	0x0a, 0x06, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03,
	0xe0, 0x41, 0x03, 0x52, 0x06, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x22, 0x70, 0x0a, 0x12, 0x4c,
	0x6f, 0x67, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63,
	0x79, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0a, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x5f,
	0x6c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00,
	0x52, 0x09, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x4c, 0x6f, 0x67, 0x88, 0x01, 0x01, 0x42, 0x0d,
	0x0a, 0x0b, 0x5f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x2a, 0x82, 0x01,
	0x0a, 0x14, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x22, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45,
	0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45,
	0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14,
	0x0a, 0x05, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x10, 0x01, 0x1a, 0x09, 0x82, 0xb5, 0x18, 0x05, 0x73,
	0x63, 0x61, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x41, 0x55, 0x53, 0x45, 0x10, 0x02, 0x1a,
	0x09, 0x82, 0xb5, 0x18, 0x05, 0x70, 0x61, 0x75, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x45,
	0x53, 0x55, 0x4d, 0x45, 0x10, 0x03, 0x1a, 0x0a, 0x82, 0xb5, 0x18, 0x06, 0x72, 0x65, 0x73, 0x75,
	0x6d, 0x65, 0x2a, 0x88, 0x01, 0x0a, 0x15, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4f, 0x70,
	0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x23,
	0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f,
	0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46,
	0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44,
	0x10, 0x01, 0x1a, 0x0b, 0x82, 0xb5, 0x18, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12,
	0x18, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x1a, 0x0b, 0x82, 0xb5,
	0x18, 0x07, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x4f, 0x4e,
	0x45, 0x10, 0x03, 0x1a, 0x08, 0x82, 0xb5, 0x18, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x2a, 0xc5, 0x01,
	0x0a, 0x0d, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x1e, 0x0a, 0x1a, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50,
	0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12,
	0x12, 0x0a, 0x04, 0x54, 0x49, 0x4b, 0x56, 0x10, 0x01, 0x1a, 0x08, 0x82, 0xb5, 0x18, 0x04, 0x74,
	0x69, 0x6b, 0x76, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x49, 0x44, 0x42, 0x10, 0x02, 0x1a, 0x08, 0x82,
	0xb5, 0x18, 0x04, 0x74, 0x69, 0x64, 0x62, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x49, 0x46, 0x4c, 0x41,
	0x53, 0x48, 0x10, 0x03, 0x1a, 0x0b, 0x82, 0xb5, 0x18, 0x07, 0x74, 0x69, 0x66, 0x6c, 0x61, 0x73,
	0x68, 0x12, 0x28, 0x0a, 0x0f, 0x54, 0x49, 0x46, 0x4c, 0x41, 0x53, 0x48, 0x5f, 0x4c, 0x45, 0x41,
	0x52, 0x4e, 0x45, 0x52, 0x10, 0x04, 0x1a, 0x13, 0x82, 0xb5, 0x18, 0x0f, 0x74, 0x69, 0x66, 0x6c,
	0x61, 0x73, 0x68, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x50,
	0x44, 0x10, 0x05, 0x1a, 0x06, 0x82, 0xb5, 0x18, 0x02, 0x70, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x54,
	0x49, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x10, 0x06, 0x1a, 0x0b, 0x82, 0xb5, 0x18, 0x07, 0x74, 0x69,
	0x70, 0x72, 0x6f, 0x78, 0x79, 0x2a, 0xc6, 0x01, 0x0a, 0x07, 0x53, 0x4b, 0x55, 0x54, 0x79, 0x70,
	0x65, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x4b, 0x55, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e,
	0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x53,
	0x4b, 0x55, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x10, 0x01, 0x12, 0x16,
	0x0a, 0x12, 0x53, 0x4b, 0x55, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x4b, 0x5f,
	0x49, 0x4f, 0x50, 0x53, 0x10, 0x15, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x4b, 0x55, 0x5f, 0x54, 0x59,
	0x50, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x4b, 0x5f, 0x54, 0x48, 0x52, 0x4f, 0x55, 0x47, 0x48, 0x50,
	0x55, 0x54, 0x10, 0x16, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x4b, 0x55, 0x5f, 0x54, 0x59, 0x50, 0x45,
	0x5f, 0x44, 0x49, 0x53, 0x4b, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x10, 0x17, 0x12,
	0x21, 0x0a, 0x1d, 0x53, 0x4b, 0x55, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x4b,
	0x5f, 0x41, 0x44, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x49, 0x4f, 0x50, 0x53,
	0x10, 0x18, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x4b, 0x55, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54,
	0x49, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x10, 0x47, 0x22, 0x04, 0x08, 0x1f, 0x10, 0x42, 0x2a, 0xc2,
	0x01, 0x0a, 0x18, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x50,
	0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x28, 0x50,
	0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x49, 0x50, 0x5f, 0x41,
	0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50,
	0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x52, 0x49,
	0x56, 0x41, 0x54, 0x45, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x49, 0x50, 0x5f, 0x41, 0x44, 0x44,
	0x52, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x10, 0x01,
	0x12, 0x25, 0x0a, 0x21, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x5f, 0x4c, 0x49, 0x4e, 0x4b,
	0x5f, 0x49, 0x50, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45,
	0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x02, 0x12, 0x2a, 0x0a, 0x26, 0x50, 0x52, 0x49, 0x56, 0x41,
	0x54, 0x45, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x49, 0x50, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45,
	0x53, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x55, 0x41, 0x4c, 0x53, 0x54, 0x41, 0x43,
	0x4b, 0x10, 0x03, 0x42, 0xf0, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6c, 0x6f, 0x62,
	0x61, 0x6c, 0x2e, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x42,
	0x0e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50,
	0x01, 0x5a, 0x55, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x69,
	0x64, 0x62, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x74, 0x69, 0x64, 0x62, 0x2d, 0x6d, 0x61, 0x6e,
	0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f,
	0x61, 0x70, 0x69, 0x2f, 0x73, 0x70, 0x65, 0x63, 0x2f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2f,
	0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2f, 0x76, 0x31, 0x3b, 0x64, 0x65, 0x64,
	0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x47, 0x44, 0x58, 0xaa, 0x02,
	0x13, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65,
	0x64, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x14, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x5c, 0x44,
	0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x20, 0x47, 0x6c,
	0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x5c, 0x44, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5c,
	0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02,
	0x15, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x3a, 0x3a, 0x44, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74,
	0x65, 0x64, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_global_dedicated_v1_resources_proto_rawDescOnce sync.Once
	file_global_dedicated_v1_resources_proto_rawDescData = file_global_dedicated_v1_resources_proto_rawDesc
)

func file_global_dedicated_v1_resources_proto_rawDescGZIP() []byte {
	file_global_dedicated_v1_resources_proto_rawDescOnce.Do(func() {
		file_global_dedicated_v1_resources_proto_rawDescData = protoimpl.X.CompressGZIP(file_global_dedicated_v1_resources_proto_rawDescData)
	})
	return file_global_dedicated_v1_resources_proto_rawDescData
}

var file_global_dedicated_v1_resources_proto_enumTypes = make([]protoimpl.EnumInfo, 24)
var file_global_dedicated_v1_resources_proto_msgTypes = make([]protoimpl.MessageInfo, 65)
var file_global_dedicated_v1_resources_proto_goTypes = []any{
	(ClusterOperationType)(0),                           // 0: global.dedicated.v1.ClusterOperationType
	(ClusterOperationState)(0),                          // 1: global.dedicated.v1.ClusterOperationState
	(ComponentType)(0),                                  // 2: global.dedicated.v1.ComponentType
	(SKUType)(0),                                        // 3: global.dedicated.v1.SKUType
	(PrivateLinkIPAddressType)(0),                       // 4: global.dedicated.v1.PrivateLinkIPAddressType
	(Cluster_HealthState)(0),                            // 5: global.dedicated.v1.Cluster.HealthState
	(Cluster_State)(0),                                  // 6: global.dedicated.v1.Cluster.State
	(Cluster_PausePlan_Type)(0),                         // 7: global.dedicated.v1.Cluster.PausePlan.Type
	(VpcPeering_State)(0),                               // 8: global.dedicated.v1.VpcPeering.State
	(VpcPeering_Type)(0),                                // 9: global.dedicated.v1.VpcPeering.Type
	(InstanceMu_CpuArch)(0),                             // 10: global.dedicated.v1.InstanceMu.CpuArch
	(InstanceMu_CpuGeneration)(0),                       // 11: global.dedicated.v1.InstanceMu.CpuGeneration
	(StorageMu_VolumeType)(0),                           // 12: global.dedicated.v1.StorageMu.VolumeType
	(Sku_DiskType)(0),                                   // 13: global.dedicated.v1.Sku.DiskType
	(Sku_Condition_Key)(0),                              // 14: global.dedicated.v1.Sku.Condition.Key
	(Sku_Condition_Operator)(0),                         // 15: global.dedicated.v1.Sku.Condition.Operator
	(Spu_StorageType)(0),                                // 16: global.dedicated.v1.Spu.StorageType
	(ClusterApplyMask_Strategy)(0),                      // 17: global.dedicated.v1.ClusterApplyMask.Strategy
	(ComponentNodeInfo_Component_Node_State)(0),         // 18: global.dedicated.v1.ComponentNodeInfo.Component.Node.State
	(TidbNodeGroup_State)(0),                            // 19: global.dedicated.v1.TidbNodeGroup.State
	(Cidr_State)(0),                                     // 20: global.dedicated.v1.Cidr.State
	(PrivateLinkService_Status)(0),                      // 21: global.dedicated.v1.PrivateLinkService.Status
	(PrivateLinkEndpoint_Status)(0),                     // 22: global.dedicated.v1.PrivateLinkEndpoint.Status
	(PrivateLinkEndpoint_Type)(0),                       // 23: global.dedicated.v1.PrivateLinkEndpoint.Type
	(*Cluster)(nil),                                     // 24: global.dedicated.v1.Cluster
	(*Vpc)(nil),                                         // 25: global.dedicated.v1.Vpc
	(*VpcPeering)(nil),                                  // 26: global.dedicated.v1.VpcPeering
	(*InstanceMu)(nil),                                  // 27: global.dedicated.v1.InstanceMu
	(*StorageMu)(nil),                                   // 28: global.dedicated.v1.StorageMu
	(*Sku)(nil),                                         // 29: global.dedicated.v1.Sku
	(*Spu)(nil),                                         // 30: global.dedicated.v1.Spu
	(*SkuSpuMapping)(nil),                               // 31: global.dedicated.v1.SkuSpuMapping
	(*CustomerManagedEncryptionKey)(nil),                // 32: global.dedicated.v1.CustomerManagedEncryptionKey
	(*AzureKeyVault)(nil),                               // 33: global.dedicated.v1.AzureKeyVault
	(*AzureAppRegistration)(nil),                        // 34: global.dedicated.v1.AzureAppRegistration
	(*GKEHeterogeneousDeployPodCount)(nil),              // 35: global.dedicated.v1.GKEHeterogeneousDeployPodCount
	(*ClusterConfiguration)(nil),                        // 36: global.dedicated.v1.ClusterConfiguration
	(*ClusterApplyMask)(nil),                            // 37: global.dedicated.v1.ClusterApplyMask
	(*ComponentNodeInfo)(nil),                           // 38: global.dedicated.v1.ComponentNodeInfo
	(*ClusterSnapshot)(nil),                             // 39: global.dedicated.v1.ClusterSnapshot
	(*TenantQuota)(nil),                                 // 40: global.dedicated.v1.TenantQuota
	(*TidbNodeGroup)(nil),                               // 41: global.dedicated.v1.TidbNodeGroup
	(*Cidr)(nil),                                        // 42: global.dedicated.v1.Cidr
	(*CidrOverlap)(nil),                                 // 43: global.dedicated.v1.CidrOverlap
	(*PrivateLinkService)(nil),                          // 44: global.dedicated.v1.PrivateLinkService
	(*PrivateLinkEndpoint)(nil),                         // 45: global.dedicated.v1.PrivateLinkEndpoint
	(*AuditLogConfig)(nil),                              // 46: global.dedicated.v1.AuditLogConfig
	(*AuditLogFilterRule)(nil),                          // 47: global.dedicated.v1.AuditLogFilterRule
	(*LogRedactionPolicy)(nil),                          // 48: global.dedicated.v1.LogRedactionPolicy
	(*Cluster_ClusterComponent)(nil),                    // 49: global.dedicated.v1.Cluster.ClusterComponent
	(*Cluster_PausePlan)(nil),                           // 50: global.dedicated.v1.Cluster.PausePlan
	nil,                                                 // 51: global.dedicated.v1.Cluster.ClusterComponent.StoragesEntry
	nil,                                                 // 52: global.dedicated.v1.Cluster.ClusterComponent.MeteringSkuKeysEntry
	(*Cluster_ClusterComponent_ModifyProgress)(nil),     // 53: global.dedicated.v1.Cluster.ClusterComponent.ModifyProgress
	(*Cluster_ClusterComponent_Storage)(nil),            // 54: global.dedicated.v1.Cluster.ClusterComponent.Storage
	nil,                                                 // 55: global.dedicated.v1.Cluster.ClusterComponent.Storage.MeteringSkuKeysEntry
	(*Vpc_AwsVpcInfo)(nil),                              // 56: global.dedicated.v1.Vpc.AwsVpcInfo
	(*Vpc_GcpVpcInfo)(nil),                              // 57: global.dedicated.v1.Vpc.GcpVpcInfo
	(*Vpc_AzureVpcInfo)(nil),                            // 58: global.dedicated.v1.Vpc.AzureVpcInfo
	(*VpcPeering_Aws)(nil),                              // 59: global.dedicated.v1.VpcPeering.Aws
	(*VpcPeering_Gcp)(nil),                              // 60: global.dedicated.v1.VpcPeering.Gcp
	(*Sku_Storage)(nil),                                 // 61: global.dedicated.v1.Sku.Storage
	(*Sku_Condition)(nil),                               // 62: global.dedicated.v1.Sku.Condition
	(*Sku_Storage_IopsFixed)(nil),                       // 63: global.dedicated.v1.Sku.Storage.IopsFixed
	(*Sku_Storage_IopsDynamic)(nil),                     // 64: global.dedicated.v1.Sku.Storage.IopsDynamic
	(*Sku_Storage_ThroughputFixed)(nil),                 // 65: global.dedicated.v1.Sku.Storage.ThroughputFixed
	(*Sku_Storage_ThroughputDynamic)(nil),               // 66: global.dedicated.v1.Sku.Storage.ThroughputDynamic
	nil,                                                 // 67: global.dedicated.v1.Spu.StorageTypeDetailsEntry
	(*Spu_Storage)(nil),                                 // 68: global.dedicated.v1.Spu.Storage
	(*Spu_Mapping)(nil),                                 // 69: global.dedicated.v1.Spu.Mapping
	(*Spu_DiskPair)(nil),                                // 70: global.dedicated.v1.Spu.DiskPair
	(*Spu_StorageTypeDetail)(nil),                       // 71: global.dedicated.v1.Spu.StorageTypeDetail
	(*ClusterConfiguration_ComponentConfiguration)(nil), // 72: global.dedicated.v1.ClusterConfiguration.ComponentConfiguration
	(*ClusterConfiguration_ComponentConfiguration_ParamItem)(nil), // 73: global.dedicated.v1.ClusterConfiguration.ComponentConfiguration.ParamItem
	nil, // 74: global.dedicated.v1.ClusterConfiguration.ComponentConfiguration.CustomParamsEntry
	(*ClusterApplyMask_ComponentApplyMask)(nil), // 75: global.dedicated.v1.ClusterApplyMask.ComponentApplyMask
	(*ComponentNodeInfo_Component)(nil),         // 76: global.dedicated.v1.ComponentNodeInfo.Component
	(*ComponentNodeInfo_Component_Node)(nil),    // 77: global.dedicated.v1.ComponentNodeInfo.Component.Node
	(*ComponentNodeInfo_Component_Storage)(nil), // 78: global.dedicated.v1.ComponentNodeInfo.Component.Storage
	nil,                                  // 79: global.dedicated.v1.ComponentNodeInfo.Component.Node.MeteringSkuKeysEntry
	nil,                                  // 80: global.dedicated.v1.ComponentNodeInfo.Component.Node.StoragesEntry
	nil,                                  // 81: global.dedicated.v1.ComponentNodeInfo.Component.Storage.MeteringSkuKeysEntry
	(*TidbNodeGroup_Endpoint)(nil),       // 82: global.dedicated.v1.TidbNodeGroup.Endpoint
	(*TidbNodeGroup_TiProxySetting)(nil), // 83: global.dedicated.v1.TidbNodeGroup.TiProxySetting
	(*TidbNodeGroup_Endpoint_PublicEndpoint)(nil),      // 84: global.dedicated.v1.TidbNodeGroup.Endpoint.PublicEndpoint
	(*TidbNodeGroup_Endpoint_IpAddress)(nil),           // 85: global.dedicated.v1.TidbNodeGroup.Endpoint.IpAddress
	(*TidbNodeGroup_Endpoint_VpcPeeringEndpoint)(nil),  // 86: global.dedicated.v1.TidbNodeGroup.Endpoint.VpcPeeringEndpoint
	(*TidbNodeGroup_Endpoint_PrivateLinkEndpoint)(nil), // 87: global.dedicated.v1.TidbNodeGroup.Endpoint.PrivateLinkEndpoint
	(*CidrOverlap_CloudRegion)(nil),                    // 88: global.dedicated.v1.CidrOverlap.CloudRegion
	(*timestamppb.Timestamp)(nil),                      // 89: google.protobuf.Timestamp
	(v1.CloudProvider_Name)(0),                         // 90: global.common.v1.CloudProvider.Name
	(v1.Region_Name)(0),                                // 91: global.common.v1.Region.Name
	(v1.AvailableFeature)(0),                           // 92: global.common.v1.AvailableFeature
	(*structpb.Value)(nil),                             // 93: google.protobuf.Value
}
var file_global_dedicated_v1_resources_proto_depIdxs = []int32{
	89,  // 0: global.dedicated.v1.Cluster.create_time:type_name -> google.protobuf.Timestamp
	89,  // 1: global.dedicated.v1.Cluster.create_finished_time:type_name -> google.protobuf.Timestamp
	89,  // 2: global.dedicated.v1.Cluster.update_time:type_name -> google.protobuf.Timestamp
	89,  // 3: global.dedicated.v1.Cluster.delete_time:type_name -> google.protobuf.Timestamp
	90,  // 4: global.dedicated.v1.Cluster.cloud_provider_id:type_name -> global.common.v1.CloudProvider.Name
	91,  // 5: global.dedicated.v1.Cluster.region_id:type_name -> global.common.v1.Region.Name
	49,  // 6: global.dedicated.v1.Cluster.cluster_components:type_name -> global.dedicated.v1.Cluster.ClusterComponent
	92,  // 7: global.dedicated.v1.Cluster.features:type_name -> global.common.v1.AvailableFeature
	6,   // 8: global.dedicated.v1.Cluster.state:type_name -> global.dedicated.v1.Cluster.State
	5,   // 9: global.dedicated.v1.Cluster.health_state:type_name -> global.dedicated.v1.Cluster.HealthState
	82,  // 10: global.dedicated.v1.Cluster.tidb_node_group_endpoints:type_name -> global.dedicated.v1.TidbNodeGroup.Endpoint
	50,  // 11: global.dedicated.v1.Cluster.pause_plan:type_name -> global.dedicated.v1.Cluster.PausePlan
	90,  // 12: global.dedicated.v1.Vpc.cloud_provider_id:type_name -> global.common.v1.CloudProvider.Name
	91,  // 13: global.dedicated.v1.Vpc.region_id:type_name -> global.common.v1.Region.Name
	56,  // 14: global.dedicated.v1.Vpc.aws:type_name -> global.dedicated.v1.Vpc.AwsVpcInfo
	57,  // 15: global.dedicated.v1.Vpc.gcp:type_name -> global.dedicated.v1.Vpc.GcpVpcInfo
	58,  // 16: global.dedicated.v1.Vpc.azure:type_name -> global.dedicated.v1.Vpc.AzureVpcInfo
	90,  // 17: global.dedicated.v1.VpcPeering.cloud_provider:type_name -> global.common.v1.CloudProvider.Name
	9,   // 18: global.dedicated.v1.VpcPeering.type:type_name -> global.dedicated.v1.VpcPeering.Type
	8,   // 19: global.dedicated.v1.VpcPeering.state:type_name -> global.dedicated.v1.VpcPeering.State
	89,  // 20: global.dedicated.v1.VpcPeering.create_at:type_name -> google.protobuf.Timestamp
	59,  // 21: global.dedicated.v1.VpcPeering.aws:type_name -> global.dedicated.v1.VpcPeering.Aws
	60,  // 22: global.dedicated.v1.VpcPeering.gcp:type_name -> global.dedicated.v1.VpcPeering.Gcp
	90,  // 23: global.dedicated.v1.InstanceMu.cloud_provider:type_name -> global.common.v1.CloudProvider.Name
	10,  // 24: global.dedicated.v1.InstanceMu.cpu_arch:type_name -> global.dedicated.v1.InstanceMu.CpuArch
	11,  // 25: global.dedicated.v1.InstanceMu.cpu_generation:type_name -> global.dedicated.v1.InstanceMu.CpuGeneration
	90,  // 26: global.dedicated.v1.StorageMu.cloud_provider:type_name -> global.common.v1.CloudProvider.Name
	12,  // 27: global.dedicated.v1.StorageMu.volume_type:type_name -> global.dedicated.v1.StorageMu.VolumeType
	90,  // 28: global.dedicated.v1.Sku.cloud_provider:type_name -> global.common.v1.CloudProvider.Name
	2,   // 29: global.dedicated.v1.Sku.component_type:type_name -> global.dedicated.v1.ComponentType
	10,  // 30: global.dedicated.v1.Sku.cpu_arch:type_name -> global.dedicated.v1.InstanceMu.CpuArch
	11,  // 31: global.dedicated.v1.Sku.cpu_generation:type_name -> global.dedicated.v1.InstanceMu.CpuGeneration
	62,  // 32: global.dedicated.v1.Sku.conditions:type_name -> global.dedicated.v1.Sku.Condition
	61,  // 33: global.dedicated.v1.Sku.data_storage:type_name -> global.dedicated.v1.Sku.Storage
	61,  // 34: global.dedicated.v1.Sku.raftlog_storage:type_name -> global.dedicated.v1.Sku.Storage
	2,   // 35: global.dedicated.v1.Spu.component_type:type_name -> global.dedicated.v1.ComponentType
	90,  // 36: global.dedicated.v1.Spu.cloud_provider:type_name -> global.common.v1.CloudProvider.Name
	91,  // 37: global.dedicated.v1.Spu.region:type_name -> global.common.v1.Region.Name
	68,  // 38: global.dedicated.v1.Spu.data_storage:type_name -> global.dedicated.v1.Spu.Storage
	68,  // 39: global.dedicated.v1.Spu.raftlog_storage:type_name -> global.dedicated.v1.Spu.Storage
	69,  // 40: global.dedicated.v1.Spu.mappings:type_name -> global.dedicated.v1.Spu.Mapping
	70,  // 41: global.dedicated.v1.Spu.supported_disk_pairs:type_name -> global.dedicated.v1.Spu.DiskPair
	67,  // 42: global.dedicated.v1.Spu.storage_type_details:type_name -> global.dedicated.v1.Spu.StorageTypeDetailsEntry
	2,   // 43: global.dedicated.v1.SkuSpuMapping.component_type:type_name -> global.dedicated.v1.ComponentType
	16,  // 44: global.dedicated.v1.SkuSpuMapping.storage_type:type_name -> global.dedicated.v1.Spu.StorageType
	90,  // 45: global.dedicated.v1.SkuSpuMapping.cloud_provider:type_name -> global.common.v1.CloudProvider.Name
	91,  // 46: global.dedicated.v1.SkuSpuMapping.region:type_name -> global.common.v1.Region.Name
	10,  // 47: global.dedicated.v1.SkuSpuMapping.cpu_arch:type_name -> global.dedicated.v1.InstanceMu.CpuArch
	11,  // 48: global.dedicated.v1.SkuSpuMapping.cpu_generation:type_name -> global.dedicated.v1.InstanceMu.CpuGeneration
	12,  // 49: global.dedicated.v1.SkuSpuMapping.data_volume_type:type_name -> global.dedicated.v1.StorageMu.VolumeType
	12,  // 50: global.dedicated.v1.SkuSpuMapping.raftlog_volume_type:type_name -> global.dedicated.v1.StorageMu.VolumeType
	90,  // 51: global.dedicated.v1.CustomerManagedEncryptionKey.cloud_provider_id:type_name -> global.common.v1.CloudProvider.Name
	91,  // 52: global.dedicated.v1.CustomerManagedEncryptionKey.region_id:type_name -> global.common.v1.Region.Name
	33,  // 53: global.dedicated.v1.CustomerManagedEncryptionKey.azure_key_vault:type_name -> global.dedicated.v1.AzureKeyVault
	89,  // 54: global.dedicated.v1.CustomerManagedEncryptionKey.create_time:type_name -> google.protobuf.Timestamp
	89,  // 55: global.dedicated.v1.CustomerManagedEncryptionKey.update_time:type_name -> google.protobuf.Timestamp
	89,  // 56: global.dedicated.v1.CustomerManagedEncryptionKey.delete_time:type_name -> google.protobuf.Timestamp
	34,  // 57: global.dedicated.v1.AzureKeyVault.azure_app_registration:type_name -> global.dedicated.v1.AzureAppRegistration
	72,  // 58: global.dedicated.v1.ClusterConfiguration.component_configurations:type_name -> global.dedicated.v1.ClusterConfiguration.ComponentConfiguration
	75,  // 59: global.dedicated.v1.ClusterApplyMask.component_apply_masks:type_name -> global.dedicated.v1.ClusterApplyMask.ComponentApplyMask
	17,  // 60: global.dedicated.v1.ClusterApplyMask.strategy:type_name -> global.dedicated.v1.ClusterApplyMask.Strategy
	76,  // 61: global.dedicated.v1.ComponentNodeInfo.tidb:type_name -> global.dedicated.v1.ComponentNodeInfo.Component
	76,  // 62: global.dedicated.v1.ComponentNodeInfo.tikv:type_name -> global.dedicated.v1.ComponentNodeInfo.Component
	76,  // 63: global.dedicated.v1.ComponentNodeInfo.tiflash:type_name -> global.dedicated.v1.ComponentNodeInfo.Component
	76,  // 64: global.dedicated.v1.ComponentNodeInfo.tiproxy:type_name -> global.dedicated.v1.ComponentNodeInfo.Component
	49,  // 65: global.dedicated.v1.ClusterSnapshot.components:type_name -> global.dedicated.v1.Cluster.ClusterComponent
	2,   // 66: global.dedicated.v1.TenantQuota.component:type_name -> global.dedicated.v1.ComponentType
	82,  // 67: global.dedicated.v1.TidbNodeGroup.endpoint:type_name -> global.dedicated.v1.TidbNodeGroup.Endpoint
	83,  // 68: global.dedicated.v1.TidbNodeGroup.tiproxy_setting:type_name -> global.dedicated.v1.TidbNodeGroup.TiProxySetting
	19,  // 69: global.dedicated.v1.TidbNodeGroup.state:type_name -> global.dedicated.v1.TidbNodeGroup.State
	53,  // 70: global.dedicated.v1.TidbNodeGroup.modify_progress:type_name -> global.dedicated.v1.Cluster.ClusterComponent.ModifyProgress
	53,  // 71: global.dedicated.v1.TidbNodeGroup.tiproxy_modify_progress:type_name -> global.dedicated.v1.Cluster.ClusterComponent.ModifyProgress
	20,  // 72: global.dedicated.v1.Cidr.state:type_name -> global.dedicated.v1.Cidr.State
	88,  // 73: global.dedicated.v1.CidrOverlap.regions:type_name -> global.dedicated.v1.CidrOverlap.CloudRegion
	21,  // 74: global.dedicated.v1.PrivateLinkService.status:type_name -> global.dedicated.v1.PrivateLinkService.Status
	22,  // 75: global.dedicated.v1.PrivateLinkEndpoint.status:type_name -> global.dedicated.v1.PrivateLinkEndpoint.Status
	23,  // 76: global.dedicated.v1.PrivateLinkEndpoint.type:type_name -> global.dedicated.v1.PrivateLinkEndpoint.Type
	4,   // 77: global.dedicated.v1.PrivateLinkEndpoint.ip_address_type:type_name -> global.dedicated.v1.PrivateLinkIPAddressType
	89,  // 78: global.dedicated.v1.Cluster.ClusterComponent.create_time:type_name -> google.protobuf.Timestamp
	89,  // 79: global.dedicated.v1.Cluster.ClusterComponent.delete_time:type_name -> google.protobuf.Timestamp
	2,   // 80: global.dedicated.v1.Cluster.ClusterComponent.component_type:type_name -> global.dedicated.v1.ComponentType
	51,  // 81: global.dedicated.v1.Cluster.ClusterComponent.storages:type_name -> global.dedicated.v1.Cluster.ClusterComponent.StoragesEntry
	10,  // 82: global.dedicated.v1.Cluster.ClusterComponent.instance_cpu_arch:type_name -> global.dedicated.v1.InstanceMu.CpuArch
	11,  // 83: global.dedicated.v1.Cluster.ClusterComponent.instance_cpu_generation:type_name -> global.dedicated.v1.InstanceMu.CpuGeneration
	53,  // 84: global.dedicated.v1.Cluster.ClusterComponent.modify_progress:type_name -> global.dedicated.v1.Cluster.ClusterComponent.ModifyProgress
	52,  // 85: global.dedicated.v1.Cluster.ClusterComponent.metering_sku_keys:type_name -> global.dedicated.v1.Cluster.ClusterComponent.MeteringSkuKeysEntry
	7,   // 86: global.dedicated.v1.Cluster.PausePlan.pause_plan:type_name -> global.dedicated.v1.Cluster.PausePlan.Type
	89,  // 87: global.dedicated.v1.Cluster.PausePlan.pause_time:type_name -> google.protobuf.Timestamp
	89,  // 88: global.dedicated.v1.Cluster.PausePlan.scheduled_resume_time:type_name -> google.protobuf.Timestamp
	54,  // 89: global.dedicated.v1.Cluster.ClusterComponent.StoragesEntry.value:type_name -> global.dedicated.v1.Cluster.ClusterComponent.Storage
	13,  // 90: global.dedicated.v1.Cluster.ClusterComponent.Storage.disk_type:type_name -> global.dedicated.v1.Sku.DiskType
	12,  // 91: global.dedicated.v1.Cluster.ClusterComponent.Storage.volume_type:type_name -> global.dedicated.v1.StorageMu.VolumeType
	55,  // 92: global.dedicated.v1.Cluster.ClusterComponent.Storage.metering_sku_keys:type_name -> global.dedicated.v1.Cluster.ClusterComponent.Storage.MeteringSkuKeysEntry
	13,  // 93: global.dedicated.v1.Sku.Storage.disk_type:type_name -> global.dedicated.v1.Sku.DiskType
	12,  // 94: global.dedicated.v1.Sku.Storage.volume_type:type_name -> global.dedicated.v1.StorageMu.VolumeType
	63,  // 95: global.dedicated.v1.Sku.Storage.iops_fixed:type_name -> global.dedicated.v1.Sku.Storage.IopsFixed
	64,  // 96: global.dedicated.v1.Sku.Storage.iops_dynamic:type_name -> global.dedicated.v1.Sku.Storage.IopsDynamic
	65,  // 97: global.dedicated.v1.Sku.Storage.throughput_fixed:type_name -> global.dedicated.v1.Sku.Storage.ThroughputFixed
	66,  // 98: global.dedicated.v1.Sku.Storage.throughput_dynamic:type_name -> global.dedicated.v1.Sku.Storage.ThroughputDynamic
	14,  // 99: global.dedicated.v1.Sku.Condition.key:type_name -> global.dedicated.v1.Sku.Condition.Key
	15,  // 100: global.dedicated.v1.Sku.Condition.operator:type_name -> global.dedicated.v1.Sku.Condition.Operator
	71,  // 101: global.dedicated.v1.Spu.StorageTypeDetailsEntry.value:type_name -> global.dedicated.v1.Spu.StorageTypeDetail
	90,  // 102: global.dedicated.v1.Spu.Mapping.cloud_provider:type_name -> global.common.v1.CloudProvider.Name
	91,  // 103: global.dedicated.v1.Spu.Mapping.physical_regions:type_name -> global.common.v1.Region.Name
	12,  // 104: global.dedicated.v1.Spu.DiskPair.data_volume_type:type_name -> global.dedicated.v1.StorageMu.VolumeType
	12,  // 105: global.dedicated.v1.Spu.DiskPair.raftlog_volume_type:type_name -> global.dedicated.v1.StorageMu.VolumeType
	68,  // 106: global.dedicated.v1.Spu.StorageTypeDetail.data_storage:type_name -> global.dedicated.v1.Spu.Storage
	68,  // 107: global.dedicated.v1.Spu.StorageTypeDetail.raftlog_storage:type_name -> global.dedicated.v1.Spu.Storage
	2,   // 108: global.dedicated.v1.ClusterConfiguration.ComponentConfiguration.component_type:type_name -> global.dedicated.v1.ComponentType
	74,  // 109: global.dedicated.v1.ClusterConfiguration.ComponentConfiguration.custom_params:type_name -> global.dedicated.v1.ClusterConfiguration.ComponentConfiguration.CustomParamsEntry
	93,  // 110: global.dedicated.v1.ClusterConfiguration.ComponentConfiguration.ParamItem.value:type_name -> google.protobuf.Value
	73,  // 111: global.dedicated.v1.ClusterConfiguration.ComponentConfiguration.CustomParamsEntry.value:type_name -> global.dedicated.v1.ClusterConfiguration.ComponentConfiguration.ParamItem
	2,   // 112: global.dedicated.v1.ClusterApplyMask.ComponentApplyMask.component_type:type_name -> global.dedicated.v1.ComponentType
	77,  // 113: global.dedicated.v1.ComponentNodeInfo.Component.nodes:type_name -> global.dedicated.v1.ComponentNodeInfo.Component.Node
	18,  // 114: global.dedicated.v1.ComponentNodeInfo.Component.Node.state:type_name -> global.dedicated.v1.ComponentNodeInfo.Component.Node.State
	12,  // 115: global.dedicated.v1.ComponentNodeInfo.Component.Node.volume_type:type_name -> global.dedicated.v1.StorageMu.VolumeType
	79,  // 116: global.dedicated.v1.ComponentNodeInfo.Component.Node.metering_sku_keys:type_name -> global.dedicated.v1.ComponentNodeInfo.Component.Node.MeteringSkuKeysEntry
	80,  // 117: global.dedicated.v1.ComponentNodeInfo.Component.Node.storages:type_name -> global.dedicated.v1.ComponentNodeInfo.Component.Node.StoragesEntry
	12,  // 118: global.dedicated.v1.ComponentNodeInfo.Component.Storage.volume_type:type_name -> global.dedicated.v1.StorageMu.VolumeType
	81,  // 119: global.dedicated.v1.ComponentNodeInfo.Component.Storage.metering_sku_keys:type_name -> global.dedicated.v1.ComponentNodeInfo.Component.Storage.MeteringSkuKeysEntry
	78,  // 120: global.dedicated.v1.ComponentNodeInfo.Component.Node.StoragesEntry.value:type_name -> global.dedicated.v1.ComponentNodeInfo.Component.Storage
	84,  // 121: global.dedicated.v1.TidbNodeGroup.Endpoint.public_endpoint:type_name -> global.dedicated.v1.TidbNodeGroup.Endpoint.PublicEndpoint
	86,  // 122: global.dedicated.v1.TidbNodeGroup.Endpoint.vpc_peering_endpoint:type_name -> global.dedicated.v1.TidbNodeGroup.Endpoint.VpcPeeringEndpoint
	87,  // 123: global.dedicated.v1.TidbNodeGroup.Endpoint.private_link_endpoints:type_name -> global.dedicated.v1.TidbNodeGroup.Endpoint.PrivateLinkEndpoint
	85,  // 124: global.dedicated.v1.TidbNodeGroup.Endpoint.PublicEndpoint.ip_allow_list:type_name -> global.dedicated.v1.TidbNodeGroup.Endpoint.IpAddress
	125, // [125:125] is the sub-list for method output_type
	125, // [125:125] is the sub-list for method input_type
	125, // [125:125] is the sub-list for extension type_name
	125, // [125:125] is the sub-list for extension extendee
	0,   // [0:125] is the sub-list for field type_name
}

func init() { file_global_dedicated_v1_resources_proto_init() }
func file_global_dedicated_v1_resources_proto_init() {
	if File_global_dedicated_v1_resources_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_global_dedicated_v1_resources_proto_msgTypes[0].Exporter = func(v any, i int) any {
			switch v := v.(*Cluster); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[1].Exporter = func(v any, i int) any {
			switch v := v.(*Vpc); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[2].Exporter = func(v any, i int) any {
			switch v := v.(*VpcPeering); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[3].Exporter = func(v any, i int) any {
			switch v := v.(*InstanceMu); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[4].Exporter = func(v any, i int) any {
			switch v := v.(*StorageMu); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[5].Exporter = func(v any, i int) any {
			switch v := v.(*Sku); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[6].Exporter = func(v any, i int) any {
			switch v := v.(*Spu); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[7].Exporter = func(v any, i int) any {
			switch v := v.(*SkuSpuMapping); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[8].Exporter = func(v any, i int) any {
			switch v := v.(*CustomerManagedEncryptionKey); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[9].Exporter = func(v any, i int) any {
			switch v := v.(*AzureKeyVault); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[10].Exporter = func(v any, i int) any {
			switch v := v.(*AzureAppRegistration); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[11].Exporter = func(v any, i int) any {
			switch v := v.(*GKEHeterogeneousDeployPodCount); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[12].Exporter = func(v any, i int) any {
			switch v := v.(*ClusterConfiguration); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[13].Exporter = func(v any, i int) any {
			switch v := v.(*ClusterApplyMask); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[14].Exporter = func(v any, i int) any {
			switch v := v.(*ComponentNodeInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[15].Exporter = func(v any, i int) any {
			switch v := v.(*ClusterSnapshot); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[16].Exporter = func(v any, i int) any {
			switch v := v.(*TenantQuota); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[17].Exporter = func(v any, i int) any {
			switch v := v.(*TidbNodeGroup); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[18].Exporter = func(v any, i int) any {
			switch v := v.(*Cidr); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[19].Exporter = func(v any, i int) any {
			switch v := v.(*CidrOverlap); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[20].Exporter = func(v any, i int) any {
			switch v := v.(*PrivateLinkService); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[21].Exporter = func(v any, i int) any {
			switch v := v.(*PrivateLinkEndpoint); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[22].Exporter = func(v any, i int) any {
			switch v := v.(*AuditLogConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[23].Exporter = func(v any, i int) any {
			switch v := v.(*AuditLogFilterRule); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[24].Exporter = func(v any, i int) any {
			switch v := v.(*LogRedactionPolicy); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[25].Exporter = func(v any, i int) any {
			switch v := v.(*Cluster_ClusterComponent); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[26].Exporter = func(v any, i int) any {
			switch v := v.(*Cluster_PausePlan); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[29].Exporter = func(v any, i int) any {
			switch v := v.(*Cluster_ClusterComponent_ModifyProgress); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[30].Exporter = func(v any, i int) any {
			switch v := v.(*Cluster_ClusterComponent_Storage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[32].Exporter = func(v any, i int) any {
			switch v := v.(*Vpc_AwsVpcInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[33].Exporter = func(v any, i int) any {
			switch v := v.(*Vpc_GcpVpcInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[34].Exporter = func(v any, i int) any {
			switch v := v.(*Vpc_AzureVpcInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[35].Exporter = func(v any, i int) any {
			switch v := v.(*VpcPeering_Aws); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[36].Exporter = func(v any, i int) any {
			switch v := v.(*VpcPeering_Gcp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[37].Exporter = func(v any, i int) any {
			switch v := v.(*Sku_Storage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[38].Exporter = func(v any, i int) any {
			switch v := v.(*Sku_Condition); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[39].Exporter = func(v any, i int) any {
			switch v := v.(*Sku_Storage_IopsFixed); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[40].Exporter = func(v any, i int) any {
			switch v := v.(*Sku_Storage_IopsDynamic); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[41].Exporter = func(v any, i int) any {
			switch v := v.(*Sku_Storage_ThroughputFixed); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[42].Exporter = func(v any, i int) any {
			switch v := v.(*Sku_Storage_ThroughputDynamic); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[44].Exporter = func(v any, i int) any {
			switch v := v.(*Spu_Storage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[45].Exporter = func(v any, i int) any {
			switch v := v.(*Spu_Mapping); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[46].Exporter = func(v any, i int) any {
			switch v := v.(*Spu_DiskPair); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[47].Exporter = func(v any, i int) any {
			switch v := v.(*Spu_StorageTypeDetail); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[48].Exporter = func(v any, i int) any {
			switch v := v.(*ClusterConfiguration_ComponentConfiguration); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[49].Exporter = func(v any, i int) any {
			switch v := v.(*ClusterConfiguration_ComponentConfiguration_ParamItem); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[51].Exporter = func(v any, i int) any {
			switch v := v.(*ClusterApplyMask_ComponentApplyMask); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[52].Exporter = func(v any, i int) any {
			switch v := v.(*ComponentNodeInfo_Component); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[53].Exporter = func(v any, i int) any {
			switch v := v.(*ComponentNodeInfo_Component_Node); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[54].Exporter = func(v any, i int) any {
			switch v := v.(*ComponentNodeInfo_Component_Storage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[58].Exporter = func(v any, i int) any {
			switch v := v.(*TidbNodeGroup_Endpoint); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[59].Exporter = func(v any, i int) any {
			switch v := v.(*TidbNodeGroup_TiProxySetting); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[60].Exporter = func(v any, i int) any {
			switch v := v.(*TidbNodeGroup_Endpoint_PublicEndpoint); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[61].Exporter = func(v any, i int) any {
			switch v := v.(*TidbNodeGroup_Endpoint_IpAddress); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[62].Exporter = func(v any, i int) any {
			switch v := v.(*TidbNodeGroup_Endpoint_VpcPeeringEndpoint); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[63].Exporter = func(v any, i int) any {
			switch v := v.(*TidbNodeGroup_Endpoint_PrivateLinkEndpoint); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_global_dedicated_v1_resources_proto_msgTypes[64].Exporter = func(v any, i int) any {
			switch v := v.(*CidrOverlap_CloudRegion); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_global_dedicated_v1_resources_proto_msgTypes[1].OneofWrappers = []any{
		(*Vpc_Aws)(nil),
		(*Vpc_Gcp)(nil),
		(*Vpc_Azure)(nil),
	}
	file_global_dedicated_v1_resources_proto_msgTypes[8].OneofWrappers = []any{
		(*CustomerManagedEncryptionKey_AwsKeyArn)(nil),
		(*CustomerManagedEncryptionKey_GcpKeyName)(nil),
		(*CustomerManagedEncryptionKey_AzureKeyVault)(nil),
	}
	file_global_dedicated_v1_resources_proto_msgTypes[22].OneofWrappers = []any{}
	file_global_dedicated_v1_resources_proto_msgTypes[24].OneofWrappers = []any{}
	file_global_dedicated_v1_resources_proto_msgTypes[25].OneofWrappers = []any{}
	file_global_dedicated_v1_resources_proto_msgTypes[30].OneofWrappers = []any{}
	file_global_dedicated_v1_resources_proto_msgTypes[37].OneofWrappers = []any{
		(*Sku_Storage_IopsFixed_)(nil),
		(*Sku_Storage_IopsDynamic_)(nil),
		(*Sku_Storage_ThroughputFixed_)(nil),
		(*Sku_Storage_ThroughputDynamic_)(nil),
	}
	file_global_dedicated_v1_resources_proto_msgTypes[60].OneofWrappers = []any{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_global_dedicated_v1_resources_proto_rawDesc,
			NumEnums:      24,
			NumMessages:   65,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_global_dedicated_v1_resources_proto_goTypes,
		DependencyIndexes: file_global_dedicated_v1_resources_proto_depIdxs,
		EnumInfos:         file_global_dedicated_v1_resources_proto_enumTypes,
		MessageInfos:      file_global_dedicated_v1_resources_proto_msgTypes,
	}.Build()
	File_global_dedicated_v1_resources_proto = out.File
	file_global_dedicated_v1_resources_proto_rawDesc = nil
	file_global_dedicated_v1_resources_proto_goTypes = nil
	file_global_dedicated_v1_resources_proto_depIdxs = nil
}
