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

package rpc

import (
	_ "github.com/envoyproxy/protoc-gen-validate/validate"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	structpb "google.golang.org/protobuf/types/known/structpb"
	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 ConfigClusterType int32

const (
	ConfigClusterType_CONFIG_CLUSTER_TYPE_UNSPECIFIED ConfigClusterType = 0
	ConfigClusterType_TICDC_CLUSTER                   ConfigClusterType = 1
	ConfigClusterType_CHANGEFEED_CLUSTER              ConfigClusterType = 2
)

// Enum value maps for ConfigClusterType.
var (
	ConfigClusterType_name = map[int32]string{
		0: "CONFIG_CLUSTER_TYPE_UNSPECIFIED",
		1: "TICDC_CLUSTER",
		2: "CHANGEFEED_CLUSTER",
	}
	ConfigClusterType_value = map[string]int32{
		"CONFIG_CLUSTER_TYPE_UNSPECIFIED": 0,
		"TICDC_CLUSTER":                   1,
		"CHANGEFEED_CLUSTER":              2,
	}
)

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

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

func (ConfigClusterType) Descriptor() protoreflect.EnumDescriptor {
	return file_rpc_cdc_ops_proto_enumTypes[0].Descriptor()
}

func (ConfigClusterType) Type() protoreflect.EnumType {
	return &file_rpc_cdc_ops_proto_enumTypes[0]
}

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

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

type ConfigFileType int32

const (
	ConfigFileType_CONFIG_FILE_TYPE_UNSPECIFIED ConfigFileType = 0
	ConfigFileType_TICDC_FILE                   ConfigFileType = 1
	ConfigFileType_CHANGEFEED_FILE              ConfigFileType = 2
	ConfigFileType_SINK_URI                     ConfigFileType = 3
)

// Enum value maps for ConfigFileType.
var (
	ConfigFileType_name = map[int32]string{
		0: "CONFIG_FILE_TYPE_UNSPECIFIED",
		1: "TICDC_FILE",
		2: "CHANGEFEED_FILE",
		3: "SINK_URI",
	}
	ConfigFileType_value = map[string]int32{
		"CONFIG_FILE_TYPE_UNSPECIFIED": 0,
		"TICDC_FILE":                   1,
		"CHANGEFEED_FILE":              2,
		"SINK_URI":                     3,
	}
)

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

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

func (ConfigFileType) Descriptor() protoreflect.EnumDescriptor {
	return file_rpc_cdc_ops_proto_enumTypes[1].Descriptor()
}

func (ConfigFileType) Type() protoreflect.EnumType {
	return &file_rpc_cdc_ops_proto_enumTypes[1]
}

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

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

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

	// Optional. Filter by cloud provider (aws / gcp / azure / alicloud).
	Provider string `protobuf:"bytes,1,opt,name=provider,proto3" json:"provider,omitempty"`
	// Optional. Filter by region.
	Region string `protobuf:"bytes,2,opt,name=region,proto3" json:"region,omitempty"`
	// Optional. Filter by state (creating / running / upgrading / deleted).
	State string `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"`
}

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

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

func (*ListTiCDCClustersRequest) ProtoMessage() {}

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

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

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

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

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

	Items []*TiCDCClusterInfo `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
	Total uint32              `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"`
}

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

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

func (*ListTiCDCClustersResponse) ProtoMessage() {}

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

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

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

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

	// Required. Cloud provider (aws / gcp / azure / alicloud).
	Provider string `protobuf:"bytes,1,opt,name=provider,proto3" json:"provider,omitempty"`
	// Required. Region name.
	Region string `protobuf:"bytes,2,opt,name=region,proto3" json:"region,omitempty"`
	// Required. Regional kubernetes cluster name.
	Kubernetes string `protobuf:"bytes,3,opt,name=kubernetes,proto3" json:"kubernetes,omitempty"`
}

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

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

func (*GetTiCDCClusterRequest) ProtoMessage() {}

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

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

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

func (x *GetTiCDCClusterRequest) GetKubernetes() string {
	if x != nil {
		return x.Kubernetes
	}
	return ""
}

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

	// Required. Cloud provider (aws / gcp / azure / alicloud).
	Provider string `protobuf:"bytes,1,opt,name=provider,proto3" json:"provider,omitempty"`
	// Required. Region name.
	Region string `protobuf:"bytes,2,opt,name=region,proto3" json:"region,omitempty"`
	// Required. Regional kubernetes cluster name.
	Kubernetes string `protobuf:"bytes,3,opt,name=kubernetes,proto3" json:"kubernetes,omitempty"`
	// Required. Target TiCDC image version, e.g. "v8.5.4-nextgen.202510.7".
	TargetVersion string `protobuf:"bytes,4,opt,name=target_version,json=targetVersion,proto3" json:"target_version,omitempty"`
}

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

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

func (*UpgradeTiCDCClusterRequest) ProtoMessage() {}

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

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

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

func (x *UpgradeTiCDCClusterRequest) GetKubernetes() string {
	if x != nil {
		return x.Kubernetes
	}
	return ""
}

func (x *UpgradeTiCDCClusterRequest) GetTargetVersion() string {
	if x != nil {
		return x.TargetVersion
	}
	return ""
}

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

	// Required. The ID of the cluster.
	ClusterId string `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// Required. The ID of the changefeed (must be a replication_worker changefeed).
	ChangefeedId string `protobuf:"bytes,2,opt,name=changefeed_id,json=changefeedId,proto3" json:"changefeed_id,omitempty"`
	// Optional. The RCU for the new ticdc_newarch changefeed. Defaults to the
	// existing changefeed's RCU, or 3 if none is set.
	Rcu uint32 `protobuf:"varint,3,opt,name=rcu,proto3" json:"rcu,omitempty"`
	// Optional. The display name for the new changefeed. Defaults to the source
	// changefeed name with a "-newarch" suffix.
	DisplayName string `protobuf:"bytes,4,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
}

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

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

func (*MigrateChangefeedRequest) ProtoMessage() {}

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

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

func (x *MigrateChangefeedRequest) GetChangefeedId() string {
	if x != nil {
		return x.ChangefeedId
	}
	return ""
}

func (x *MigrateChangefeedRequest) GetRcu() uint32 {
	if x != nil {
		return x.Rcu
	}
	return 0
}

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

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

	ClusterId           string `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	ChangefeedId        string `protobuf:"bytes,2,opt,name=changefeed_id,json=changefeedId,proto3" json:"changefeed_id,omitempty"`
	State               string `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"`
	Arch                string `protobuf:"bytes,4,opt,name=arch,proto3" json:"arch,omitempty"`
	Rcu                 uint32 `protobuf:"varint,5,opt,name=rcu,proto3" json:"rcu,omitempty"`
	DisplayName         string `protobuf:"bytes,6,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	SourceChangefeedId  string `protobuf:"bytes,7,opt,name=source_changefeed_id,json=sourceChangefeedId,proto3" json:"source_changefeed_id,omitempty"`
	TargetChangefeedId  string `protobuf:"bytes,8,opt,name=target_changefeed_id,json=targetChangefeedId,proto3" json:"target_changefeed_id,omitempty"`
	SourceCheckpointTso uint64 `protobuf:"varint,9,opt,name=source_checkpoint_tso,json=sourceCheckpointTso,proto3" json:"source_checkpoint_tso,omitempty"`
	TargetStartTso      uint64 `protobuf:"varint,10,opt,name=target_start_tso,json=targetStartTso,proto3" json:"target_start_tso,omitempty"`
}

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

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

func (*MigrateChangefeedResponse) ProtoMessage() {}

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

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

func (x *MigrateChangefeedResponse) GetChangefeedId() string {
	if x != nil {
		return x.ChangefeedId
	}
	return ""
}

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

func (x *MigrateChangefeedResponse) GetArch() string {
	if x != nil {
		return x.Arch
	}
	return ""
}

func (x *MigrateChangefeedResponse) GetRcu() uint32 {
	if x != nil {
		return x.Rcu
	}
	return 0
}

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

func (x *MigrateChangefeedResponse) GetSourceChangefeedId() string {
	if x != nil {
		return x.SourceChangefeedId
	}
	return ""
}

func (x *MigrateChangefeedResponse) GetTargetChangefeedId() string {
	if x != nil {
		return x.TargetChangefeedId
	}
	return ""
}

func (x *MigrateChangefeedResponse) GetSourceCheckpointTso() uint64 {
	if x != nil {
		return x.SourceCheckpointTso
	}
	return 0
}

func (x *MigrateChangefeedResponse) GetTargetStartTso() uint64 {
	if x != nil {
		return x.TargetStartTso
	}
	return 0
}

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

	ClusterId    string `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	ChangefeedId string `protobuf:"bytes,2,opt,name=changefeed_id,json=changefeedId,proto3" json:"changefeed_id,omitempty"`
	Rcu          uint32 `protobuf:"varint,3,opt,name=rcu,proto3" json:"rcu,omitempty"`
	DisplayName  string `protobuf:"bytes,4,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
}

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

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

func (*PrecheckMigrateChangefeedRequest) ProtoMessage() {}

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

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

func (x *PrecheckMigrateChangefeedRequest) GetChangefeedId() string {
	if x != nil {
		return x.ChangefeedId
	}
	return ""
}

func (x *PrecheckMigrateChangefeedRequest) GetRcu() uint32 {
	if x != nil {
		return x.Rcu
	}
	return 0
}

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

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

	Name    string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Passed  bool   `protobuf:"varint,2,opt,name=passed,proto3" json:"passed,omitempty"`
	Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`
}

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

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

func (*MigrationCheckResult) ProtoMessage() {}

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

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

func (x *MigrationCheckResult) GetPassed() bool {
	if x != nil {
		return x.Passed
	}
	return false
}

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

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

	Passed               bool                    `protobuf:"varint,1,opt,name=passed,proto3" json:"passed,omitempty"`
	Checks               []*MigrationCheckResult `protobuf:"bytes,2,rep,name=checks,proto3" json:"checks,omitempty"`
	SourceArch           string                  `protobuf:"bytes,3,opt,name=source_arch,json=sourceArch,proto3" json:"source_arch,omitempty"`
	SourceState          string                  `protobuf:"bytes,4,opt,name=source_state,json=sourceState,proto3" json:"source_state,omitempty"`
	CurrentCheckpointTso uint64                  `protobuf:"varint,5,opt,name=current_checkpoint_tso,json=currentCheckpointTso,proto3" json:"current_checkpoint_tso,omitempty"`
	TargetRcu            uint32                  `protobuf:"varint,6,opt,name=target_rcu,json=targetRcu,proto3" json:"target_rcu,omitempty"`
	TargetProvider       string                  `protobuf:"bytes,7,opt,name=target_provider,json=targetProvider,proto3" json:"target_provider,omitempty"`
	TargetRegion         string                  `protobuf:"bytes,8,opt,name=target_region,json=targetRegion,proto3" json:"target_region,omitempty"`
	TargetKubernetes     string                  `protobuf:"bytes,9,opt,name=target_kubernetes,json=targetKubernetes,proto3" json:"target_kubernetes,omitempty"`
}

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

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

func (*PrecheckMigrateChangefeedResponse) ProtoMessage() {}

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

func (x *PrecheckMigrateChangefeedResponse) GetPassed() bool {
	if x != nil {
		return x.Passed
	}
	return false
}

func (x *PrecheckMigrateChangefeedResponse) GetChecks() []*MigrationCheckResult {
	if x != nil {
		return x.Checks
	}
	return nil
}

func (x *PrecheckMigrateChangefeedResponse) GetSourceArch() string {
	if x != nil {
		return x.SourceArch
	}
	return ""
}

func (x *PrecheckMigrateChangefeedResponse) GetSourceState() string {
	if x != nil {
		return x.SourceState
	}
	return ""
}

func (x *PrecheckMigrateChangefeedResponse) GetCurrentCheckpointTso() uint64 {
	if x != nil {
		return x.CurrentCheckpointTso
	}
	return 0
}

func (x *PrecheckMigrateChangefeedResponse) GetTargetRcu() uint32 {
	if x != nil {
		return x.TargetRcu
	}
	return 0
}

func (x *PrecheckMigrateChangefeedResponse) GetTargetProvider() string {
	if x != nil {
		return x.TargetProvider
	}
	return ""
}

func (x *PrecheckMigrateChangefeedResponse) GetTargetRegion() string {
	if x != nil {
		return x.TargetRegion
	}
	return ""
}

func (x *PrecheckMigrateChangefeedResponse) GetTargetKubernetes() string {
	if x != nil {
		return x.TargetKubernetes
	}
	return ""
}

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

	ClusterId          string `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	SourceChangefeedId string `protobuf:"bytes,2,opt,name=source_changefeed_id,json=sourceChangefeedId,proto3" json:"source_changefeed_id,omitempty"`
	TargetChangefeedId string `protobuf:"bytes,3,opt,name=target_changefeed_id,json=targetChangefeedId,proto3" json:"target_changefeed_id,omitempty"`
}

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

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

func (*CompareChangefeedsRequest) ProtoMessage() {}

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

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

func (x *CompareChangefeedsRequest) GetSourceChangefeedId() string {
	if x != nil {
		return x.SourceChangefeedId
	}
	return ""
}

func (x *CompareChangefeedsRequest) GetTargetChangefeedId() string {
	if x != nil {
		return x.TargetChangefeedId
	}
	return ""
}

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

	Passed              bool                    `protobuf:"varint,1,opt,name=passed,proto3" json:"passed,omitempty"`
	Checks              []*MigrationCheckResult `protobuf:"bytes,2,rep,name=checks,proto3" json:"checks,omitempty"`
	SourceCheckpointTso uint64                  `protobuf:"varint,3,opt,name=source_checkpoint_tso,json=sourceCheckpointTso,proto3" json:"source_checkpoint_tso,omitempty"`
	TargetStartTso      uint64                  `protobuf:"varint,4,opt,name=target_start_tso,json=targetStartTso,proto3" json:"target_start_tso,omitempty"`
	TargetCheckpointTso uint64                  `protobuf:"varint,5,opt,name=target_checkpoint_tso,json=targetCheckpointTso,proto3" json:"target_checkpoint_tso,omitempty"`
	SourceState         string                  `protobuf:"bytes,6,opt,name=source_state,json=sourceState,proto3" json:"source_state,omitempty"`
	TargetState         string                  `protobuf:"bytes,7,opt,name=target_state,json=targetState,proto3" json:"target_state,omitempty"`
}

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

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

func (*CompareChangefeedsResponse) ProtoMessage() {}

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

func (x *CompareChangefeedsResponse) GetPassed() bool {
	if x != nil {
		return x.Passed
	}
	return false
}

func (x *CompareChangefeedsResponse) GetChecks() []*MigrationCheckResult {
	if x != nil {
		return x.Checks
	}
	return nil
}

func (x *CompareChangefeedsResponse) GetSourceCheckpointTso() uint64 {
	if x != nil {
		return x.SourceCheckpointTso
	}
	return 0
}

func (x *CompareChangefeedsResponse) GetTargetStartTso() uint64 {
	if x != nil {
		return x.TargetStartTso
	}
	return 0
}

func (x *CompareChangefeedsResponse) GetTargetCheckpointTso() uint64 {
	if x != nil {
		return x.TargetCheckpointTso
	}
	return 0
}

func (x *CompareChangefeedsResponse) GetSourceState() string {
	if x != nil {
		return x.SourceState
	}
	return ""
}

func (x *CompareChangefeedsResponse) GetTargetState() string {
	if x != nil {
		return x.TargetState
	}
	return ""
}

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

	// Required. The ID of the cluster.
	ClusterId string `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
}

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

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

func (*ListClusterCDCJobsRequest) ProtoMessage() {}

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

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

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

	// The custom status id (stringified uint64 to stay JSON-safe).
	StatusId string `protobuf:"bytes,1,opt,name=status_id,json=statusId,proto3" json:"status_id,omitempty"`
	// The status name. For the legacy cluster-level lock this looks like
	// "cdc-<cluster_id>-<unix_ts>"; for per-changefeed jobs it is the changefeed id.
	StatusName string `protobuf:"bytes,2,opt,name=status_name,json=statusName,proto3" json:"status_name,omitempty"`
	// The custom status type, always CUSTOM_STATUS_TYPE_CDC here.
	StatusType string `protobuf:"bytes,3,opt,name=status_type,json=statusType,proto3" json:"status_type,omitempty"`
	// Status types this record mutexes against.
	MutexStatusTypes []string `protobuf:"bytes,4,rep,name=mutex_status_types,json=mutexStatusTypes,proto3" json:"mutex_status_types,omitempty"`
	// Cluster actions this record blocks.
	MutexClusterActions []string `protobuf:"bytes,5,rep,name=mutex_cluster_actions,json=mutexClusterActions,proto3" json:"mutex_cluster_actions,omitempty"`
	// True when this is the legacy cluster-level CDC lock (CDC-typed and still
	// self-mutexing against CDC) that blocks newarch per-changefeed registration.
	IsLegacyClusterLock bool `protobuf:"varint,6,opt,name=is_legacy_cluster_lock,json=isLegacyClusterLock,proto3" json:"is_legacy_cluster_lock,omitempty"`
	// True when the status has already expired and is no longer enforced.
	IsExpired bool `protobuf:"varint,7,opt,name=is_expired,json=isExpired,proto3" json:"is_expired,omitempty"`
}

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

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

func (*ClusterCDCJobInfo) ProtoMessage() {}

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

func (x *ClusterCDCJobInfo) GetStatusId() string {
	if x != nil {
		return x.StatusId
	}
	return ""
}

func (x *ClusterCDCJobInfo) GetStatusName() string {
	if x != nil {
		return x.StatusName
	}
	return ""
}

func (x *ClusterCDCJobInfo) GetStatusType() string {
	if x != nil {
		return x.StatusType
	}
	return ""
}

func (x *ClusterCDCJobInfo) GetMutexStatusTypes() []string {
	if x != nil {
		return x.MutexStatusTypes
	}
	return nil
}

func (x *ClusterCDCJobInfo) GetMutexClusterActions() []string {
	if x != nil {
		return x.MutexClusterActions
	}
	return nil
}

func (x *ClusterCDCJobInfo) GetIsLegacyClusterLock() bool {
	if x != nil {
		return x.IsLegacyClusterLock
	}
	return false
}

func (x *ClusterCDCJobInfo) GetIsExpired() bool {
	if x != nil {
		return x.IsExpired
	}
	return false
}

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

	Items []*ClusterCDCJobInfo `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
	Total uint32               `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"`
}

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

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

func (*ListClusterCDCJobsResponse) ProtoMessage() {}

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

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

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

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

	// Required. The ID of the cluster.
	ClusterId string `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// Required. The custom status id to delete.
	StatusId uint64 `protobuf:"varint,2,opt,name=status_id,json=statusId,proto3" json:"status_id,omitempty"`
}

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

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

func (*DeleteClusterCDCJobRequest) ProtoMessage() {}

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

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

func (x *DeleteClusterCDCJobRequest) GetStatusId() uint64 {
	if x != nil {
		return x.StatusId
	}
	return 0
}

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

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

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

func (*DeleteClusterCDCJobResponse) ProtoMessage() {}

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

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

	// Required. The ID of the user cluster.
	ClusterId string `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// Optional. Filter by sink type (kafka / mysql / cloud_storage).
	SinkType string `protobuf:"bytes,2,opt,name=sink_type,json=sinkType,proto3" json:"sink_type,omitempty"`
	// Optional. Max rows to return. Defaults to 100.
	Limit int32 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"`
	// Optional. Rows to skip before returning.
	Offset int64 `protobuf:"varint,4,opt,name=offset,proto3" json:"offset,omitempty"`
}

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

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

func (*ListClusterChangefeedsRequest) ProtoMessage() {}

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

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

func (x *ListClusterChangefeedsRequest) GetSinkType() string {
	if x != nil {
		return x.SinkType
	}
	return ""
}

func (x *ListClusterChangefeedsRequest) GetLimit() int32 {
	if x != nil {
		return x.Limit
	}
	return 0
}

func (x *ListClusterChangefeedsRequest) GetOffset() int64 {
	if x != nil {
		return x.Offset
	}
	return 0
}

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

	Items []*ChangefeedInfo `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
	// Total matching rows, ignoring limit/offset.
	Total uint32 `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"`
}

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

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

func (*ListClusterChangefeedsResponse) ProtoMessage() {}

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

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

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

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

	// Required. The ID of the user cluster.
	ClusterId string `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// Required. The ID of the changefeed.
	ChangefeedId string `protobuf:"bytes,2,opt,name=changefeed_id,json=changefeedId,proto3" json:"changefeed_id,omitempty"`
}

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

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

func (*GetChangefeedRequest) ProtoMessage() {}

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

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

func (x *GetChangefeedRequest) GetChangefeedId() string {
	if x != nil {
		return x.ChangefeedId
	}
	return ""
}

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

	// Required. The ID of the user cluster.
	ClusterId string `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// Required. The ID of the changefeed.
	ChangefeedId string `protobuf:"bytes,2,opt,name=changefeed_id,json=changefeedId,proto3" json:"changefeed_id,omitempty"`
	// Optional safety guard. The request fails if the actual arch differs.
	ExpectedArch string `protobuf:"bytes,3,opt,name=expected_arch,json=expectedArch,proto3" json:"expected_arch,omitempty"`
}

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

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

func (*PauseChangefeedRequest) ProtoMessage() {}

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

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

func (x *PauseChangefeedRequest) GetChangefeedId() string {
	if x != nil {
		return x.ChangefeedId
	}
	return ""
}

func (x *PauseChangefeedRequest) GetExpectedArch() string {
	if x != nil {
		return x.ExpectedArch
	}
	return ""
}

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

	// Required. The ID of the user cluster.
	ClusterId string `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// Required. The ID of the changefeed.
	ChangefeedId string `protobuf:"bytes,2,opt,name=changefeed_id,json=changefeedId,proto3" json:"changefeed_id,omitempty"`
	// Optional safety guard. The request fails if the actual arch differs.
	ExpectedArch string `protobuf:"bytes,3,opt,name=expected_arch,json=expectedArch,proto3" json:"expected_arch,omitempty"`
}

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

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

func (*ResumeChangefeedRequest) ProtoMessage() {}

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

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

func (x *ResumeChangefeedRequest) GetChangefeedId() string {
	if x != nil {
		return x.ChangefeedId
	}
	return ""
}

func (x *ResumeChangefeedRequest) GetExpectedArch() string {
	if x != nil {
		return x.ExpectedArch
	}
	return ""
}

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

	ClusterId    string `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	ChangefeedId string `protobuf:"bytes,2,opt,name=changefeed_id,json=changefeedId,proto3" json:"changefeed_id,omitempty"`
	// Optional safety guard. The request fails if the actual arch differs.
	ExpectedArch string `protobuf:"bytes,3,opt,name=expected_arch,json=expectedArch,proto3" json:"expected_arch,omitempty"`
}

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

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

func (*DeleteChangefeedRequest) ProtoMessage() {}

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

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

func (x *DeleteChangefeedRequest) GetChangefeedId() string {
	if x != nil {
		return x.ChangefeedId
	}
	return ""
}

func (x *DeleteChangefeedRequest) GetExpectedArch() string {
	if x != nil {
		return x.ExpectedArch
	}
	return ""
}

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

	// Required. The ID of the user cluster.
	ClusterId string `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// Required. The ID of the changefeed.
	ChangefeedId string `protobuf:"bytes,2,opt,name=changefeed_id,json=changefeedId,proto3" json:"changefeed_id,omitempty"`
}

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

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

func (*RestartChangefeedRequest) ProtoMessage() {}

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

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

func (x *RestartChangefeedRequest) GetChangefeedId() string {
	if x != nil {
		return x.ChangefeedId
	}
	return ""
}

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

	// Required. The ID of the user cluster.
	ClusterId string `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// Required. The ID of the changefeed.
	ChangefeedId string `protobuf:"bytes,2,opt,name=changefeed_id,json=changefeedId,proto3" json:"changefeed_id,omitempty"`
	// Required. The target RCU of the changefeed.
	Rcu uint32 `protobuf:"varint,3,opt,name=rcu,proto3" json:"rcu,omitempty"`
}

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

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

func (*ScaleChangefeedRequest) ProtoMessage() {}

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

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

func (x *ScaleChangefeedRequest) GetChangefeedId() string {
	if x != nil {
		return x.ChangefeedId
	}
	return ""
}

func (x *ScaleChangefeedRequest) GetRcu() uint32 {
	if x != nil {
		return x.Rcu
	}
	return 0
}

// ChangefeedInfo is the ops view of one changefeed. It intentionally
// carries only plain identifiers and status fields — sink endpoints and
// credentials are excluded from the ops surface.
type ChangefeedInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ClusterId    string `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	ChangefeedId string `protobuf:"bytes,2,opt,name=changefeed_id,json=changefeedId,proto3" json:"changefeed_id,omitempty"`
	// Changefeed state (creating / running / paused / failed / ...).
	State string `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"`
	// Changefeed arch (replication_worker / ticdc_newarch).
	Arch        string `protobuf:"bytes,4,opt,name=arch,proto3" json:"arch,omitempty"`
	Rcu         uint32 `protobuf:"varint,5,opt,name=rcu,proto3" json:"rcu,omitempty"`
	DisplayName string `protobuf:"bytes,6,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// Sink type (kafka / mysql / cloud_storage).
	SinkType string `protobuf:"bytes,7,opt,name=sink_type,json=sinkType,proto3" json:"sink_type,omitempty"`
	// Latest replicated checkpoint TSO. 0 when not reported yet.
	CheckpointTso uint64 `protobuf:"varint,8,opt,name=checkpoint_tso,json=checkpointTso,proto3" json:"checkpoint_tso,omitempty"`
	// Checkpoint TSO rendered as UTC time, empty when not reported yet.
	CheckpointTime string `protobuf:"bytes,9,opt,name=checkpoint_time,json=checkpointTime,proto3" json:"checkpoint_time,omitempty"`
	// Last error message, empty when healthy.
	Error     string `protobuf:"bytes,10,opt,name=error,proto3" json:"error,omitempty"`
	CreatedAt string `protobuf:"bytes,11,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	UpdatedAt string `protobuf:"bytes,12,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
	// Cloud provider of the regional dataplane hosting the changefeed.
	Provider string `protobuf:"bytes,13,opt,name=provider,proto3" json:"provider,omitempty"`
	// Region of the regional dataplane hosting the changefeed.
	Region string `protobuf:"bytes,14,opt,name=region,proto3" json:"region,omitempty"`
	// Regional kubernetes cluster hosting the changefeed. Together with
	// provider/region it addresses GetTiCDCCluster for newarch changefeeds.
	Kubernetes string `protobuf:"bytes,15,opt,name=kubernetes,proto3" json:"kubernetes,omitempty"`
	// Name of the shared TiCDC cluster the changefeed is assigned to.
	// Empty for legacy replication_worker changefeeds, which do not run
	// on a shared TiCDC cluster.
	TicdcClusterName string `protobuf:"bytes,16,opt,name=ticdc_cluster_name,json=ticdcClusterName,proto3" json:"ticdc_cluster_name,omitempty"`
	// Configured start TSO. 0 means start from the creation time/default.
	StartTso uint64 `protobuf:"varint,17,opt,name=start_tso,json=startTso,proto3" json:"start_tso,omitempty"`
}

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

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

func (*ChangefeedInfo) ProtoMessage() {}

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

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

func (x *ChangefeedInfo) GetChangefeedId() string {
	if x != nil {
		return x.ChangefeedId
	}
	return ""
}

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

func (x *ChangefeedInfo) GetArch() string {
	if x != nil {
		return x.Arch
	}
	return ""
}

func (x *ChangefeedInfo) GetRcu() uint32 {
	if x != nil {
		return x.Rcu
	}
	return 0
}

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

func (x *ChangefeedInfo) GetSinkType() string {
	if x != nil {
		return x.SinkType
	}
	return ""
}

func (x *ChangefeedInfo) GetCheckpointTso() uint64 {
	if x != nil {
		return x.CheckpointTso
	}
	return 0
}

func (x *ChangefeedInfo) GetCheckpointTime() string {
	if x != nil {
		return x.CheckpointTime
	}
	return ""
}

func (x *ChangefeedInfo) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

func (x *ChangefeedInfo) GetCreatedAt() string {
	if x != nil {
		return x.CreatedAt
	}
	return ""
}

func (x *ChangefeedInfo) GetUpdatedAt() string {
	if x != nil {
		return x.UpdatedAt
	}
	return ""
}

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

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

func (x *ChangefeedInfo) GetKubernetes() string {
	if x != nil {
		return x.Kubernetes
	}
	return ""
}

func (x *ChangefeedInfo) GetTicdcClusterName() string {
	if x != nil {
		return x.TicdcClusterName
	}
	return ""
}

func (x *ChangefeedInfo) GetStartTso() uint64 {
	if x != nil {
		return x.StartTso
	}
	return 0
}

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

	Provider              string `protobuf:"bytes,1,opt,name=provider,proto3" json:"provider,omitempty"`
	Region                string `protobuf:"bytes,2,opt,name=region,proto3" json:"region,omitempty"`
	Kubernetes            string `protobuf:"bytes,3,opt,name=kubernetes,proto3" json:"kubernetes,omitempty"`
	TicdcClusterName      string `protobuf:"bytes,4,opt,name=ticdc_cluster_name,json=ticdcClusterName,proto3" json:"ticdc_cluster_name,omitempty"`
	Version               string `protobuf:"bytes,5,opt,name=version,proto3" json:"version,omitempty"`
	ExpectedSpecification string `protobuf:"bytes,6,opt,name=expected_specification,json=expectedSpecification,proto3" json:"expected_specification,omitempty"`
	ActualSpecification   string `protobuf:"bytes,7,opt,name=actual_specification,json=actualSpecification,proto3" json:"actual_specification,omitempty"`
	State                 string `protobuf:"bytes,8,opt,name=state,proto3" json:"state,omitempty"`
	CreatedAt             string `protobuf:"bytes,9,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	UpdatedAt             string `protobuf:"bytes,10,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
	DeletedAt             string `protobuf:"bytes,11,opt,name=deleted_at,json=deletedAt,proto3" json:"deleted_at,omitempty"`
}

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

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

func (*TiCDCClusterInfo) ProtoMessage() {}

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

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

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

func (x *TiCDCClusterInfo) GetKubernetes() string {
	if x != nil {
		return x.Kubernetes
	}
	return ""
}

func (x *TiCDCClusterInfo) GetTicdcClusterName() string {
	if x != nil {
		return x.TicdcClusterName
	}
	return ""
}

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

func (x *TiCDCClusterInfo) GetExpectedSpecification() string {
	if x != nil {
		return x.ExpectedSpecification
	}
	return ""
}

func (x *TiCDCClusterInfo) GetActualSpecification() string {
	if x != nil {
		return x.ActualSpecification
	}
	return ""
}

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

func (x *TiCDCClusterInfo) GetCreatedAt() string {
	if x != nil {
		return x.CreatedAt
	}
	return ""
}

func (x *TiCDCClusterInfo) GetUpdatedAt() string {
	if x != nil {
		return x.UpdatedAt
	}
	return ""
}

func (x *TiCDCClusterInfo) GetDeletedAt() string {
	if x != nil {
		return x.DeletedAt
	}
	return ""
}

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

	ClusterType       ConfigClusterType     `protobuf:"varint,1,opt,name=cluster_type,json=clusterType,proto3,enum=rpc.ConfigClusterType" json:"cluster_type,omitempty"`
	ClusterId         string                `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	ChangefeedId      string                `protobuf:"bytes,3,opt,name=changefeed_id,json=changefeedId,proto3" json:"changefeed_id,omitempty"`
	ConfigurationFile ConfigFileType        `protobuf:"varint,4,opt,name=configuration_file,json=configurationFile,proto3,enum=rpc.ConfigFileType" json:"configuration_file,omitempty"`
	CustomParams      map[string]*ParamItem `protobuf:"bytes,5,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"`
	TemplateId        *int64                `protobuf:"varint,6,opt,name=template_id,json=templateId,proto3,oneof" json:"template_id,omitempty"`
}

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

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

func (*ApplyConfigChangesRequest) ProtoMessage() {}

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

func (x *ApplyConfigChangesRequest) GetClusterType() ConfigClusterType {
	if x != nil {
		return x.ClusterType
	}
	return ConfigClusterType_CONFIG_CLUSTER_TYPE_UNSPECIFIED
}

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

func (x *ApplyConfigChangesRequest) GetChangefeedId() string {
	if x != nil {
		return x.ChangefeedId
	}
	return ""
}

func (x *ApplyConfigChangesRequest) GetConfigurationFile() ConfigFileType {
	if x != nil {
		return x.ConfigurationFile
	}
	return ConfigFileType_CONFIG_FILE_TYPE_UNSPECIFIED
}

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

func (x *ApplyConfigChangesRequest) GetTemplateId() int64 {
	if x != nil && x.TemplateId != nil {
		return *x.TemplateId
	}
	return 0
}

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

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

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

func (*ApplyConfigChangesResponse) ProtoMessage() {}

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

// Deprecated: Use ApplyConfigChangesResponse.ProtoReflect.Descriptor instead.
func (*ApplyConfigChangesResponse) Descriptor() ([]byte, []int) {
	return file_rpc_cdc_ops_proto_rawDescGZIP(), []int{27}
}

type 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 *ParamItem) Reset() {
	*x = ParamItem{}
	if protoimpl.UnsafeEnabled {
		mi := &file_rpc_cdc_ops_proto_msgTypes[28]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ParamItem) ProtoMessage() {}

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

// Deprecated: Use ParamItem.ProtoReflect.Descriptor instead.
func (*ParamItem) Descriptor() ([]byte, []int) {
	return file_rpc_cdc_ops_proto_rawDescGZIP(), []int{28}
}

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

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

var File_rpc_cdc_ops_proto protoreflect.FileDescriptor

var file_rpc_cdc_ops_proto_rawDesc = []byte{
	0x0a, 0x11, 0x72, 0x70, 0x63, 0x2f, 0x63, 0x64, 0x63, 0x5f, 0x6f, 0x70, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x12, 0x03, 0x72, 0x70, 0x63, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f,
	0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x64,
	0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x69, 0x43, 0x44, 0x43, 0x43, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72,
	0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72,
	0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x14,
	0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73,
	0x74, 0x61, 0x74, 0x65, 0x22, 0x5e, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x69, 0x43, 0x44,
	0x43, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x2b, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x15, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x69, 0x43, 0x44, 0x43, 0x43, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x14,
	0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74,
	0x6f, 0x74, 0x61, 0x6c, 0x22, 0x90, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x54, 0x69, 0x43, 0x44,
	0x43, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x26, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x0a, 0xe0, 0x41, 0x02, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x08, 0x70,
	0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f,
	0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xe0, 0x41, 0x02, 0xfa, 0x42, 0x04, 0x72,
	0x02, 0x10, 0x01, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x0a, 0x6b,
	0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x0a, 0xe0, 0x41, 0x02, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x6b, 0x75, 0x62,
	0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x22, 0xc7, 0x01, 0x0a, 0x1a, 0x55, 0x70, 0x67, 0x72,
	0x61, 0x64, 0x65, 0x54, 0x69, 0x43, 0x44, 0x43, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64,
	0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xe0, 0x41, 0x02, 0xfa, 0x42, 0x04,
	0x72, 0x02, 0x10, 0x01, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x22,
	0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a,
	0xe0, 0x41, 0x02, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69,
	0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x0a, 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xe0, 0x41, 0x02, 0xfa, 0x42, 0x04, 0x72, 0x02,
	0x10, 0x01, 0x52, 0x0a, 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x12, 0x31,
	0x0a, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xe0, 0x41, 0x02, 0xfa, 0x42, 0x04, 0x72, 0x02,
	0x10, 0x01, 0x52, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x22, 0xab, 0x01, 0x0a, 0x18, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29,
	0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x0a, 0xe0, 0x41, 0x02, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09,
	0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x0d, 0x63, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x0a, 0xe0, 0x41, 0x02, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x63, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x63,
	0x75, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x72, 0x63, 0x75, 0x12, 0x21, 0x0a, 0x0c,
	0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22,
	0x80, 0x03, 0x0a, 0x19, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67,
	0x65, 0x66, 0x65, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a,
	0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d,
	0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x49,
	0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x63, 0x68, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x63, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x72,
	0x63, 0x75, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x72, 0x63, 0x75, 0x12, 0x21, 0x0a,
	0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65,
	0x12, 0x30, 0x0a, 0x14, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67,
	0x65, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12,
	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64,
	0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65,
	0x65, 0x64, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63,
	0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x73, 0x6f, 0x18, 0x09, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x13, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b,
	0x70, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x73, 0x6f, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x61, 0x72, 0x67,
	0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x73, 0x6f, 0x18, 0x0a, 0x20, 0x01,
	0x28, 0x04, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54,
	0x73, 0x6f, 0x22, 0xb3, 0x01, 0x0a, 0x20, 0x50, 0x72, 0x65, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x4d,
	0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xe0, 0x41, 0x02,
	0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	0x49, 0x64, 0x12, 0x2f, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64,
	0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xe0, 0x41, 0x02, 0xfa, 0x42,
	0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65,
	0x64, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x63, 0x75, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d,
	0x52, 0x03, 0x72, 0x63, 0x75, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79,
	0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73,
	0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x5c, 0x0a, 0x14, 0x4d, 0x69, 0x67, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
	0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
	0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07,
	0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x82, 0x03, 0x0a, 0x21, 0x50, 0x72, 0x65, 0x63, 0x68,
	0x65, 0x63, 0x6b, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65,
	0x66, 0x65, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06,
	0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x61,
	0x73, 0x73, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x06, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x18, 0x02,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x69, 0x67, 0x72, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52,
	0x06, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63,
	0x65, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x41, 0x72, 0x63, 0x68, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x63,
	0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e,
	0x74, 0x5f, 0x74, 0x73, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x63, 0x75, 0x72,
	0x72, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x73,
	0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x72, 0x63, 0x75, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x63, 0x75,
	0x12, 0x27, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69,
	0x64, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65,
	0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x61, 0x72,
	0x67, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x2b,
	0x0a, 0x11, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65,
	0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65,
	0x74, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x22, 0xc2, 0x01, 0x0a, 0x19,
	0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65,
	0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x0a, 0x63, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xe0,
	0x41, 0x02, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x14, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63,
	0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x0a, 0xe0, 0x41, 0x02, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x12,
	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64,
	0x49, 0x64, 0x12, 0x3c, 0x0a, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x0a, 0xe0, 0x41, 0x02, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x12, 0x74, 0x61,
	0x72, 0x67, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x49, 0x64,
	0x22, 0xbf, 0x02, 0x0a, 0x1a, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x43, 0x68, 0x61, 0x6e,
	0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x16, 0x0a, 0x06, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x06, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x06, 0x63, 0x68, 0x65, 0x63, 0x6b,
	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x69,
	0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x75,
	0x6c, 0x74, 0x52, 0x06, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f,
	0x74, 0x73, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x73, 0x6f, 0x75, 0x72, 0x63,
	0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x73, 0x6f, 0x12, 0x28,
	0x0a, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74,
	0x73, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74,
	0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x73, 0x6f, 0x12, 0x32, 0x0a, 0x15, 0x74, 0x61, 0x72, 0x67,
	0x65, 0x74, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x73,
	0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43,
	0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x73, 0x6f, 0x12, 0x21, 0x0a, 0x0c,
	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12,
	0x21, 0x0a, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61,
	0x74, 0x65, 0x22, 0x46, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x43, 0x44, 0x43, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x29, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x0a, 0xe0, 0x41, 0x02, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52,
	0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0xa8, 0x02, 0x0a, 0x11, 0x43,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x44, 0x43, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f,
	0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x49, 0x64, 0x12, 0x1f, 0x0a,
	0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f,
	0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x2c, 0x0a, 0x12, 0x6d, 0x75, 0x74, 0x65, 0x78, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x75, 0x74,
	0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x32, 0x0a,
	0x15, 0x6d, 0x75, 0x74, 0x65, 0x78, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x6d, 0x75,
	0x74, 0x65, 0x78, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x12, 0x33, 0x0a, 0x16, 0x69, 0x73, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x63,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x13, 0x69, 0x73, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x43, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x70,
	0x69, 0x72, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x45, 0x78,
	0x70, 0x69, 0x72, 0x65, 0x64, 0x22, 0x60, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x43, 0x44, 0x43, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x16, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	0x43, 0x44, 0x43, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d,
	0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d,
	0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x70, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74,
	0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x44, 0x43, 0x4a, 0x6f, 0x62, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xe0, 0x41, 0x02, 0xfa, 0x42,
	0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64,
	0x12, 0x27, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x04, 0x42, 0x0a, 0xe0, 0x41, 0x02, 0xfa, 0x42, 0x04, 0x32, 0x02, 0x20, 0x00, 0x52,
	0x08, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x49, 0x64, 0x22, 0x1d, 0x0a, 0x1b, 0x44, 0x65, 0x6c,
	0x65, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x44, 0x43, 0x4a, 0x6f, 0x62,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x95, 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x73,
	0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65,
	0x65, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x0a, 0x63, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a,
	0xe0, 0x41, 0x02, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x79,
	0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x69, 0x6e, 0x6b, 0x54, 0x79,
	0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73,
	0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74,
	0x22, 0x61, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43,
	0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x13, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65,
	0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x14, 0x0a,
	0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x6f,
	0x74, 0x61, 0x6c, 0x22, 0x72, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65,
	0x66, 0x65, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x0a, 0x63,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x0a, 0xe0, 0x41, 0x02, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
	0x66, 0x65, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xe0,
	0x41, 0x02, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x67,
	0x65, 0x66, 0x65, 0x65, 0x64, 0x49, 0x64, 0x22, 0x99, 0x01, 0x0a, 0x16, 0x50, 0x61, 0x75, 0x73,
	0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x29, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xe0, 0x41, 0x02, 0xfa, 0x42, 0x04, 0x72, 0x02,
	0x10, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2f, 0x0a,
	0x0d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xe0, 0x41, 0x02, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01,
	0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x49, 0x64, 0x12, 0x23,
	0x0a, 0x0d, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41,
	0x72, 0x63, 0x68, 0x22, 0x9a, 0x01, 0x0a, 0x17, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x43, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x29, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x0a, 0xe0, 0x41, 0x02, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52,
	0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x0d, 0x63, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x0a, 0xe0, 0x41, 0x02, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x63,
	0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x65,
	0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x72, 0x63, 0x68,
	0x22, 0x9a, 0x01, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67,
	0x65, 0x66, 0x65, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x0a,
	0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x0a, 0xe0, 0x41, 0x02, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x63, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x67,
	0x65, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a,
	0xe0, 0x41, 0x02, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e,
	0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x65,
	0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0c, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x72, 0x63, 0x68, 0x22, 0x76, 0x0a,
	0x18, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65,
	0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x0a, 0x63, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xe0,
	0x41, 0x02, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65,
	0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xe0, 0x41, 0x02,
	0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66,
	0x65, 0x65, 0x64, 0x49, 0x64, 0x22, 0x92, 0x01, 0x0a, 0x16, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x43,
	0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x29, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xe0, 0x41, 0x02, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01,
	0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x0d, 0x63,
	0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x0a, 0xe0, 0x41, 0x02, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0c,
	0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x03,
	0x72, 0x63, 0x75, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0a, 0xe0, 0x41, 0x02, 0xfa, 0x42,
	0x04, 0x2a, 0x02, 0x20, 0x00, 0x52, 0x03, 0x72, 0x63, 0x75, 0x22, 0x93, 0x04, 0x0a, 0x0e, 0x43,
	0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a,
	0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d,
	0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x49,
	0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x63, 0x68, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x63, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x72,
	0x63, 0x75, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x72, 0x63, 0x75, 0x12, 0x21, 0x0a,
	0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65,
	0x12, 0x1b, 0x0a, 0x09, 0x73, 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x69, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a,
	0x0e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x73, 0x6f, 0x18,
	0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e,
	0x74, 0x54, 0x73, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69,
	0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63,
	0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a,
	0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72,
	0x72, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61,
	0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
	0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74,
	0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41,
	0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x0d, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a,
	0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72,
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65,
	0x74, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6b, 0x75, 0x62, 0x65, 0x72,
	0x6e, 0x65, 0x74, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x69, 0x63, 0x64, 0x63, 0x5f, 0x63,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x10, 0x74, 0x69, 0x63, 0x64, 0x63, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e,
	0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x73, 0x6f,
	0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x73, 0x6f,
	0x22, 0x8b, 0x03, 0x0a, 0x10, 0x54, 0x69, 0x43, 0x44, 0x43, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65,
	0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65,
	0x72, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x6b, 0x75, 0x62,
	0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6b,
	0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x69, 0x63,
	0x64, 0x63, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x74, 0x69, 0x63, 0x64, 0x63, 0x43, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69,
	0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x12, 0x35, 0x0a, 0x16, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x70,
	0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x15, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x70, 0x65, 0x63, 0x69,
	0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x14, 0x61, 0x63, 0x74, 0x75,
	0x61, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x70,
	0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73,
	0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74,
	0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18,
	0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74,
	0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12,
	0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0xec,
	0x03, 0x0a, 0x19, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x0c,
	0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x16, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x82,
	0x01, 0x04, 0x10, 0x01, 0x20, 0x00, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54,
	0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xe0, 0x41, 0x02, 0xfa, 0x42, 0x04, 0x72,
	0x02, 0x10, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2f,
	0x0a, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xe0, 0x41, 0x02, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10,
	0x01, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x49, 0x64, 0x12,
	0x4e, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x72, 0x70,
	0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65,
	0x42, 0x0a, 0xfa, 0x42, 0x07, 0x82, 0x01, 0x04, 0x10, 0x01, 0x20, 0x00, 0x52, 0x11, 0x63, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x12,
	0x55, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73,
	0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x70, 0x70,
	0x6c, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x61, 0x72,
	0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d,
	0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x24, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61,
	0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0a, 0x74,
	0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x4f, 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, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x49, 0x74,
	0x65, 0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0e, 0x0a,
	0x0c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x1c, 0x0a,
	0x1a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x68, 0x61, 0x6e,
	0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 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,
	0x2a, 0x63, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f,
	0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53,
	0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x49,
	0x43, 0x44, 0x43, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x10, 0x01, 0x12, 0x16, 0x0a,
	0x12, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x46, 0x45, 0x45, 0x44, 0x5f, 0x43, 0x4c, 0x55, 0x53,
	0x54, 0x45, 0x52, 0x10, 0x02, 0x2a, 0x65, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46,
	0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x43, 0x4f, 0x4e, 0x46, 0x49,
	0x47, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50,
	0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x49, 0x43,
	0x44, 0x43, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x48, 0x41,
	0x4e, 0x47, 0x45, 0x46, 0x45, 0x45, 0x44, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x0c,
	0x0a, 0x08, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x55, 0x52, 0x49, 0x10, 0x03, 0x32, 0xc2, 0x14, 0x0a,
	0x14, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x4f, 0x70, 0x73, 0x53, 0x65,
	0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x7f, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x69, 0x43,
	0x44, 0x43, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1d, 0x2e, 0x72, 0x70, 0x63,
	0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x69, 0x43, 0x44, 0x43, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x72, 0x70, 0x63, 0x2e,
	0x4c, 0x69, 0x73, 0x74, 0x54, 0x69, 0x43, 0x44, 0x43, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02,
	0x25, 0x12, 0x23, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65,
	0x72, 0x6c, 0x65, 0x73, 0x73, 0x2f, 0x6f, 0x70, 0x73, 0x2f, 0x63, 0x64, 0x63, 0x2f, 0x63, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x8a, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x54, 0x69,
	0x43, 0x44, 0x43, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x72, 0x70, 0x63,
	0x2e, 0x47, 0x65, 0x74, 0x54, 0x69, 0x43, 0x44, 0x43, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x69,
	0x43, 0x44, 0x43, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x43,
	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x12, 0x3b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f,
	0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x6c, 0x65, 0x73, 0x73, 0x2f, 0x6f, 0x70, 0x73, 0x2f, 0x63,
	0x64, 0x63, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x7b, 0x72,
	0x65, 0x67, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x7b, 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74,
	0x65, 0x73, 0x7d, 0x12, 0x9d, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x54,
	0x69, 0x43, 0x44, 0x43, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1f, 0x2e, 0x72, 0x70,
	0x63, 0x2e, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x54, 0x69, 0x43, 0x44, 0x43, 0x43, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x72,
	0x70, 0x63, 0x2e, 0x54, 0x69, 0x43, 0x44, 0x43, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49,
	0x6e, 0x66, 0x6f, 0x22, 0x4e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x48, 0x3a, 0x01, 0x2a, 0x22, 0x43,
	0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x6c, 0x65,
	0x73, 0x73, 0x2f, 0x6f, 0x70, 0x73, 0x2f, 0x63, 0x64, 0x63, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76,
	0x69, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x7b, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x7b,
	0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x7d, 0x3a, 0x75, 0x70, 0x67, 0x72,
	0x61, 0x64, 0x65, 0x12, 0xb3, 0x01, 0x0a, 0x11, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x43,
	0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x12, 0x1d, 0x2e, 0x72, 0x70, 0x63, 0x2e,
	0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65,
	0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x4d,
	0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x59,
	0x3a, 0x01, 0x2a, 0x22, 0x54, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x72,
	0x76, 0x65, 0x72, 0x6c, 0x65, 0x73, 0x73, 0x2f, 0x6f, 0x70, 0x73, 0x2f, 0x63, 0x64, 0x63, 0x2f,
	0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64,
	0x73, 0x2f, 0x7b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x69, 0x64,
	0x7d, 0x3a, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x12, 0xd6, 0x01, 0x0a, 0x19, 0x50, 0x72,
	0x65, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x12, 0x25, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72,
	0x65, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26,
	0x2e, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x65, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x4d, 0x69, 0x67,
	0x72, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x64, 0x3a, 0x01,
	0x2a, 0x22, 0x5f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65,
	0x72, 0x6c, 0x65, 0x73, 0x73, 0x2f, 0x6f, 0x70, 0x73, 0x2f, 0x63, 0x64, 0x63, 0x2f, 0x63, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f,
	0x69, 0x64, 0x7d, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x73, 0x2f,
	0x7b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x7d, 0x3a,
	0x70, 0x72, 0x65, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x2d, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x12, 0xa6, 0x01, 0x0a, 0x12, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x43, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x73, 0x12, 0x1e, 0x2e, 0x72, 0x70, 0x63, 0x2e,
	0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65,
	0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x72, 0x70, 0x63, 0x2e,
	0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65,
	0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4f, 0x82, 0xd3, 0xe4, 0x93,
	0x02, 0x49, 0x3a, 0x01, 0x2a, 0x22, 0x44, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73,
	0x65, 0x72, 0x76, 0x65, 0x72, 0x6c, 0x65, 0x73, 0x73, 0x2f, 0x6f, 0x70, 0x73, 0x2f, 0x63, 0x64,
	0x63, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65,
	0x65, 0x64, 0x73, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x12, 0x94, 0x01, 0x0a, 0x12,
	0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x44, 0x43, 0x4a, 0x6f,
	0x62, 0x73, 0x12, 0x1e, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x43, 0x44, 0x43, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x43, 0x44, 0x43, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x12, 0x35, 0x2f, 0x61, 0x70,
	0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x6c, 0x65, 0x73, 0x73, 0x2f,
	0x6f, 0x70, 0x73, 0x2f, 0x63, 0x64, 0x63, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73,
	0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6a, 0x6f,
	0x62, 0x73, 0x12, 0xa3, 0x01, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x43, 0x44, 0x43, 0x4a, 0x6f, 0x62, 0x12, 0x1f, 0x2e, 0x72, 0x70, 0x63,
	0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x44,
	0x43, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x72, 0x70,
	0x63, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43,
	0x44, 0x43, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x49, 0x82,
	0xd3, 0xe4, 0x93, 0x02, 0x43, 0x2a, 0x41, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73,
	0x65, 0x72, 0x76, 0x65, 0x72, 0x6c, 0x65, 0x73, 0x73, 0x2f, 0x6f, 0x70, 0x73, 0x2f, 0x63, 0x64,
	0x63, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xa7, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73,
	0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65,
	0x65, 0x64, 0x73, 0x12, 0x22, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x73,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69,
	0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66,
	0x65, 0x65, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x44, 0x82, 0xd3,
	0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65,
	0x72, 0x76, 0x65, 0x72, 0x6c, 0x65, 0x73, 0x73, 0x2f, 0x6f, 0x70, 0x73, 0x2f, 0x63, 0x64, 0x63,
	0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65,
	0x64, 0x73, 0x12, 0x95, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65,
	0x66, 0x65, 0x65, 0x64, 0x12, 0x19, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
	0x13, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64,
	0x49, 0x6e, 0x66, 0x6f, 0x22, 0x54, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4e, 0x12, 0x4c, 0x2f, 0x61,
	0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x6c, 0x65, 0x73, 0x73,
	0x2f, 0x6f, 0x70, 0x73, 0x2f, 0x63, 0x64, 0x63, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63,
	0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x73, 0x2f, 0x7b, 0x63, 0x68, 0x61, 0x6e,
	0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x89, 0x01, 0x0a, 0x12, 0x41,
	0x70, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65,
	0x73, 0x12, 0x1e, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x1f, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x3a, 0x01, 0x2a, 0x22, 0x27, 0x2f,
	0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x6c, 0x65, 0x73,
	0x73, 0x2f, 0x6f, 0x70, 0x73, 0x2f, 0x63, 0x64, 0x63, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x2f, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x12, 0xa2, 0x01, 0x0a, 0x0f, 0x50, 0x61, 0x75, 0x73, 0x65,
	0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x12, 0x1b, 0x2e, 0x72, 0x70, 0x63,
	0x2e, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x5d, 0x82, 0xd3,
	0xe4, 0x93, 0x02, 0x57, 0x3a, 0x01, 0x2a, 0x22, 0x52, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31,
	0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x6c, 0x65, 0x73, 0x73, 0x2f, 0x6f, 0x70, 0x73, 0x2f,
	0x63, 0x64, 0x63, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
	0x66, 0x65, 0x65, 0x64, 0x73, 0x2f, 0x7b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65,
	0x64, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x70, 0x61, 0x75, 0x73, 0x65, 0x12, 0xa5, 0x01, 0x0a, 0x10,
	0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64,
	0x12, 0x1c, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x43, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13,
	0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x49,
	0x6e, 0x66, 0x6f, 0x22, 0x5e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x58, 0x3a, 0x01, 0x2a, 0x22, 0x53,
	0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x6c, 0x65,
	0x73, 0x73, 0x2f, 0x6f, 0x70, 0x73, 0x2f, 0x63, 0x64, 0x63, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d,
	0x2f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x73, 0x2f, 0x7b, 0x63, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x72, 0x65, 0x73,
	0x75, 0x6d, 0x65, 0x12, 0x9b, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x12, 0x1c, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x44,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x54, 0x82, 0xd3, 0xe4,
	0x93, 0x02, 0x4e, 0x2a, 0x4c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x72,
	0x76, 0x65, 0x72, 0x6c, 0x65, 0x73, 0x73, 0x2f, 0x6f, 0x70, 0x73, 0x2f, 0x63, 0x64, 0x63, 0x2f,
	0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64,
	0x73, 0x2f, 0x7b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x69, 0x64,
	0x7d, 0x12, 0xa8, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x12, 0x1d, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65,
	0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x5f, 0x82, 0xd3, 0xe4,
	0x93, 0x02, 0x59, 0x3a, 0x01, 0x2a, 0x22, 0x54, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f,
	0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x6c, 0x65, 0x73, 0x73, 0x2f, 0x6f, 0x70, 0x73, 0x2f, 0x63,
	0x64, 0x63, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66,
	0x65, 0x65, 0x64, 0x73, 0x2f, 0x7b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64,
	0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0xa2, 0x01, 0x0a,
	0x0f, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64,
	0x12, 0x1b, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e,
	0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e,
	0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x49, 0x6e,
	0x66, 0x6f, 0x22, 0x5d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x57, 0x3a, 0x01, 0x2a, 0x22, 0x52, 0x2f,
	0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x6c, 0x65, 0x73,
	0x73, 0x2f, 0x6f, 0x70, 0x73, 0x2f, 0x63, 0x64, 0x63, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f,
	0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x73, 0x2f, 0x7b, 0x63, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x73, 0x63, 0x61, 0x6c,
	0x65, 0x42, 0x3d, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
	0x74, 0x69, 0x64, 0x62, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
	0x6c, 0x65, 0x73, 0x73, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x69, 0x64, 0x6c,
	0x2f, 0x70, 0x62, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x72, 0x70, 0x63,
	0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_rpc_cdc_ops_proto_rawDescOnce sync.Once
	file_rpc_cdc_ops_proto_rawDescData = file_rpc_cdc_ops_proto_rawDesc
)

func file_rpc_cdc_ops_proto_rawDescGZIP() []byte {
	file_rpc_cdc_ops_proto_rawDescOnce.Do(func() {
		file_rpc_cdc_ops_proto_rawDescData = protoimpl.X.CompressGZIP(file_rpc_cdc_ops_proto_rawDescData)
	})
	return file_rpc_cdc_ops_proto_rawDescData
}

var file_rpc_cdc_ops_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_rpc_cdc_ops_proto_msgTypes = make([]protoimpl.MessageInfo, 30)
var file_rpc_cdc_ops_proto_goTypes = []any{
	(ConfigClusterType)(0),                    // 0: rpc.ConfigClusterType
	(ConfigFileType)(0),                       // 1: rpc.ConfigFileType
	(*ListTiCDCClustersRequest)(nil),          // 2: rpc.ListTiCDCClustersRequest
	(*ListTiCDCClustersResponse)(nil),         // 3: rpc.ListTiCDCClustersResponse
	(*GetTiCDCClusterRequest)(nil),            // 4: rpc.GetTiCDCClusterRequest
	(*UpgradeTiCDCClusterRequest)(nil),        // 5: rpc.UpgradeTiCDCClusterRequest
	(*MigrateChangefeedRequest)(nil),          // 6: rpc.MigrateChangefeedRequest
	(*MigrateChangefeedResponse)(nil),         // 7: rpc.MigrateChangefeedResponse
	(*PrecheckMigrateChangefeedRequest)(nil),  // 8: rpc.PrecheckMigrateChangefeedRequest
	(*MigrationCheckResult)(nil),              // 9: rpc.MigrationCheckResult
	(*PrecheckMigrateChangefeedResponse)(nil), // 10: rpc.PrecheckMigrateChangefeedResponse
	(*CompareChangefeedsRequest)(nil),         // 11: rpc.CompareChangefeedsRequest
	(*CompareChangefeedsResponse)(nil),        // 12: rpc.CompareChangefeedsResponse
	(*ListClusterCDCJobsRequest)(nil),         // 13: rpc.ListClusterCDCJobsRequest
	(*ClusterCDCJobInfo)(nil),                 // 14: rpc.ClusterCDCJobInfo
	(*ListClusterCDCJobsResponse)(nil),        // 15: rpc.ListClusterCDCJobsResponse
	(*DeleteClusterCDCJobRequest)(nil),        // 16: rpc.DeleteClusterCDCJobRequest
	(*DeleteClusterCDCJobResponse)(nil),       // 17: rpc.DeleteClusterCDCJobResponse
	(*ListClusterChangefeedsRequest)(nil),     // 18: rpc.ListClusterChangefeedsRequest
	(*ListClusterChangefeedsResponse)(nil),    // 19: rpc.ListClusterChangefeedsResponse
	(*GetChangefeedRequest)(nil),              // 20: rpc.GetChangefeedRequest
	(*PauseChangefeedRequest)(nil),            // 21: rpc.PauseChangefeedRequest
	(*ResumeChangefeedRequest)(nil),           // 22: rpc.ResumeChangefeedRequest
	(*DeleteChangefeedRequest)(nil),           // 23: rpc.DeleteChangefeedRequest
	(*RestartChangefeedRequest)(nil),          // 24: rpc.RestartChangefeedRequest
	(*ScaleChangefeedRequest)(nil),            // 25: rpc.ScaleChangefeedRequest
	(*ChangefeedInfo)(nil),                    // 26: rpc.ChangefeedInfo
	(*TiCDCClusterInfo)(nil),                  // 27: rpc.TiCDCClusterInfo
	(*ApplyConfigChangesRequest)(nil),         // 28: rpc.ApplyConfigChangesRequest
	(*ApplyConfigChangesResponse)(nil),        // 29: rpc.ApplyConfigChangesResponse
	(*ParamItem)(nil),                         // 30: rpc.ParamItem
	nil,                                       // 31: rpc.ApplyConfigChangesRequest.CustomParamsEntry
	(*structpb.Value)(nil),                    // 32: google.protobuf.Value
}
var file_rpc_cdc_ops_proto_depIdxs = []int32{
	27, // 0: rpc.ListTiCDCClustersResponse.items:type_name -> rpc.TiCDCClusterInfo
	9,  // 1: rpc.PrecheckMigrateChangefeedResponse.checks:type_name -> rpc.MigrationCheckResult
	9,  // 2: rpc.CompareChangefeedsResponse.checks:type_name -> rpc.MigrationCheckResult
	14, // 3: rpc.ListClusterCDCJobsResponse.items:type_name -> rpc.ClusterCDCJobInfo
	26, // 4: rpc.ListClusterChangefeedsResponse.items:type_name -> rpc.ChangefeedInfo
	0,  // 5: rpc.ApplyConfigChangesRequest.cluster_type:type_name -> rpc.ConfigClusterType
	1,  // 6: rpc.ApplyConfigChangesRequest.configuration_file:type_name -> rpc.ConfigFileType
	31, // 7: rpc.ApplyConfigChangesRequest.custom_params:type_name -> rpc.ApplyConfigChangesRequest.CustomParamsEntry
	32, // 8: rpc.ParamItem.value:type_name -> google.protobuf.Value
	30, // 9: rpc.ApplyConfigChangesRequest.CustomParamsEntry.value:type_name -> rpc.ParamItem
	2,  // 10: rpc.ChangefeedOpsService.ListTiCDCClusters:input_type -> rpc.ListTiCDCClustersRequest
	4,  // 11: rpc.ChangefeedOpsService.GetTiCDCCluster:input_type -> rpc.GetTiCDCClusterRequest
	5,  // 12: rpc.ChangefeedOpsService.UpgradeTiCDCCluster:input_type -> rpc.UpgradeTiCDCClusterRequest
	6,  // 13: rpc.ChangefeedOpsService.MigrateChangefeed:input_type -> rpc.MigrateChangefeedRequest
	8,  // 14: rpc.ChangefeedOpsService.PrecheckMigrateChangefeed:input_type -> rpc.PrecheckMigrateChangefeedRequest
	11, // 15: rpc.ChangefeedOpsService.CompareChangefeeds:input_type -> rpc.CompareChangefeedsRequest
	13, // 16: rpc.ChangefeedOpsService.ListClusterCDCJobs:input_type -> rpc.ListClusterCDCJobsRequest
	16, // 17: rpc.ChangefeedOpsService.DeleteClusterCDCJob:input_type -> rpc.DeleteClusterCDCJobRequest
	18, // 18: rpc.ChangefeedOpsService.ListClusterChangefeeds:input_type -> rpc.ListClusterChangefeedsRequest
	20, // 19: rpc.ChangefeedOpsService.GetChangefeed:input_type -> rpc.GetChangefeedRequest
	28, // 20: rpc.ChangefeedOpsService.ApplyConfigChanges:input_type -> rpc.ApplyConfigChangesRequest
	21, // 21: rpc.ChangefeedOpsService.PauseChangefeed:input_type -> rpc.PauseChangefeedRequest
	22, // 22: rpc.ChangefeedOpsService.ResumeChangefeed:input_type -> rpc.ResumeChangefeedRequest
	23, // 23: rpc.ChangefeedOpsService.DeleteChangefeed:input_type -> rpc.DeleteChangefeedRequest
	24, // 24: rpc.ChangefeedOpsService.RestartChangefeed:input_type -> rpc.RestartChangefeedRequest
	25, // 25: rpc.ChangefeedOpsService.ScaleChangefeed:input_type -> rpc.ScaleChangefeedRequest
	3,  // 26: rpc.ChangefeedOpsService.ListTiCDCClusters:output_type -> rpc.ListTiCDCClustersResponse
	27, // 27: rpc.ChangefeedOpsService.GetTiCDCCluster:output_type -> rpc.TiCDCClusterInfo
	27, // 28: rpc.ChangefeedOpsService.UpgradeTiCDCCluster:output_type -> rpc.TiCDCClusterInfo
	7,  // 29: rpc.ChangefeedOpsService.MigrateChangefeed:output_type -> rpc.MigrateChangefeedResponse
	10, // 30: rpc.ChangefeedOpsService.PrecheckMigrateChangefeed:output_type -> rpc.PrecheckMigrateChangefeedResponse
	12, // 31: rpc.ChangefeedOpsService.CompareChangefeeds:output_type -> rpc.CompareChangefeedsResponse
	15, // 32: rpc.ChangefeedOpsService.ListClusterCDCJobs:output_type -> rpc.ListClusterCDCJobsResponse
	17, // 33: rpc.ChangefeedOpsService.DeleteClusterCDCJob:output_type -> rpc.DeleteClusterCDCJobResponse
	19, // 34: rpc.ChangefeedOpsService.ListClusterChangefeeds:output_type -> rpc.ListClusterChangefeedsResponse
	26, // 35: rpc.ChangefeedOpsService.GetChangefeed:output_type -> rpc.ChangefeedInfo
	29, // 36: rpc.ChangefeedOpsService.ApplyConfigChanges:output_type -> rpc.ApplyConfigChangesResponse
	26, // 37: rpc.ChangefeedOpsService.PauseChangefeed:output_type -> rpc.ChangefeedInfo
	26, // 38: rpc.ChangefeedOpsService.ResumeChangefeed:output_type -> rpc.ChangefeedInfo
	26, // 39: rpc.ChangefeedOpsService.DeleteChangefeed:output_type -> rpc.ChangefeedInfo
	26, // 40: rpc.ChangefeedOpsService.RestartChangefeed:output_type -> rpc.ChangefeedInfo
	26, // 41: rpc.ChangefeedOpsService.ScaleChangefeed:output_type -> rpc.ChangefeedInfo
	26, // [26:42] is the sub-list for method output_type
	10, // [10:26] is the sub-list for method input_type
	10, // [10:10] is the sub-list for extension type_name
	10, // [10:10] is the sub-list for extension extendee
	0,  // [0:10] is the sub-list for field type_name
}

func init() { file_rpc_cdc_ops_proto_init() }
func file_rpc_cdc_ops_proto_init() {
	if File_rpc_cdc_ops_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_rpc_cdc_ops_proto_msgTypes[0].Exporter = func(v any, i int) any {
			switch v := v.(*ListTiCDCClustersRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cdc_ops_proto_msgTypes[1].Exporter = func(v any, i int) any {
			switch v := v.(*ListTiCDCClustersResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cdc_ops_proto_msgTypes[2].Exporter = func(v any, i int) any {
			switch v := v.(*GetTiCDCClusterRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cdc_ops_proto_msgTypes[3].Exporter = func(v any, i int) any {
			switch v := v.(*UpgradeTiCDCClusterRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cdc_ops_proto_msgTypes[4].Exporter = func(v any, i int) any {
			switch v := v.(*MigrateChangefeedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cdc_ops_proto_msgTypes[5].Exporter = func(v any, i int) any {
			switch v := v.(*MigrateChangefeedResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cdc_ops_proto_msgTypes[6].Exporter = func(v any, i int) any {
			switch v := v.(*PrecheckMigrateChangefeedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cdc_ops_proto_msgTypes[7].Exporter = func(v any, i int) any {
			switch v := v.(*MigrationCheckResult); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cdc_ops_proto_msgTypes[8].Exporter = func(v any, i int) any {
			switch v := v.(*PrecheckMigrateChangefeedResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cdc_ops_proto_msgTypes[9].Exporter = func(v any, i int) any {
			switch v := v.(*CompareChangefeedsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cdc_ops_proto_msgTypes[10].Exporter = func(v any, i int) any {
			switch v := v.(*CompareChangefeedsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cdc_ops_proto_msgTypes[11].Exporter = func(v any, i int) any {
			switch v := v.(*ListClusterCDCJobsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cdc_ops_proto_msgTypes[12].Exporter = func(v any, i int) any {
			switch v := v.(*ClusterCDCJobInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cdc_ops_proto_msgTypes[13].Exporter = func(v any, i int) any {
			switch v := v.(*ListClusterCDCJobsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cdc_ops_proto_msgTypes[14].Exporter = func(v any, i int) any {
			switch v := v.(*DeleteClusterCDCJobRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cdc_ops_proto_msgTypes[15].Exporter = func(v any, i int) any {
			switch v := v.(*DeleteClusterCDCJobResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cdc_ops_proto_msgTypes[16].Exporter = func(v any, i int) any {
			switch v := v.(*ListClusterChangefeedsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cdc_ops_proto_msgTypes[17].Exporter = func(v any, i int) any {
			switch v := v.(*ListClusterChangefeedsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cdc_ops_proto_msgTypes[18].Exporter = func(v any, i int) any {
			switch v := v.(*GetChangefeedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cdc_ops_proto_msgTypes[19].Exporter = func(v any, i int) any {
			switch v := v.(*PauseChangefeedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cdc_ops_proto_msgTypes[20].Exporter = func(v any, i int) any {
			switch v := v.(*ResumeChangefeedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cdc_ops_proto_msgTypes[21].Exporter = func(v any, i int) any {
			switch v := v.(*DeleteChangefeedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cdc_ops_proto_msgTypes[22].Exporter = func(v any, i int) any {
			switch v := v.(*RestartChangefeedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cdc_ops_proto_msgTypes[23].Exporter = func(v any, i int) any {
			switch v := v.(*ScaleChangefeedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cdc_ops_proto_msgTypes[24].Exporter = func(v any, i int) any {
			switch v := v.(*ChangefeedInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cdc_ops_proto_msgTypes[25].Exporter = func(v any, i int) any {
			switch v := v.(*TiCDCClusterInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cdc_ops_proto_msgTypes[26].Exporter = func(v any, i int) any {
			switch v := v.(*ApplyConfigChangesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cdc_ops_proto_msgTypes[27].Exporter = func(v any, i int) any {
			switch v := v.(*ApplyConfigChangesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rpc_cdc_ops_proto_msgTypes[28].Exporter = func(v any, i int) any {
			switch v := v.(*ParamItem); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_rpc_cdc_ops_proto_msgTypes[26].OneofWrappers = []any{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_rpc_cdc_ops_proto_rawDesc,
			NumEnums:      2,
			NumMessages:   30,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_rpc_cdc_ops_proto_goTypes,
		DependencyIndexes: file_rpc_cdc_ops_proto_depIdxs,
		EnumInfos:         file_rpc_cdc_ops_proto_enumTypes,
		MessageInfos:      file_rpc_cdc_ops_proto_msgTypes,
	}.Build()
	File_rpc_cdc_ops_proto = out.File
	file_rpc_cdc_ops_proto_rawDesc = nil
	file_rpc_cdc_ops_proto_goTypes = nil
	file_rpc_cdc_ops_proto_depIdxs = nil
}
