// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.12
// 	protoc        (unknown)
// source: openapi/v1beta1/changefeed.proto

package v1beta1

import (
	_ "buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate"
	_ "github.com/envoyproxy/protoc-gen-validate/validate"
	_ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options"
	_ "github.com/tidbcloud/dataflow-service/idl/pbgen/proto/common"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	_ "google.golang.org/genproto/googleapis/api/visibility"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	emptypb "google.golang.org/protobuf/types/known/emptypb"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

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)
)

// DownstreamType defines the possible downstream types for a changefeed.
type DownstreamType int32

const (
	// Default value. Should not be used.
	DownstreamType_DOWNSTREAM_TYPE_UNSPECIFIED DownstreamType = 0
	// Apache Kafka.
	DownstreamType_KAFKA DownstreamType = 1
	// MySQL-compatible database.
	DownstreamType_MYSQL DownstreamType = 3
	// Amazon S3 or S3-compatible storage.
	DownstreamType_S3 DownstreamType = 5
	// Google Cloud Storage.
	DownstreamType_GCS DownstreamType = 6
	// Azure Blob Storage.
	DownstreamType_AZURE_BLOB DownstreamType = 8
)

// Enum value maps for DownstreamType.
var (
	DownstreamType_name = map[int32]string{
		0: "DOWNSTREAM_TYPE_UNSPECIFIED",
		1: "KAFKA",
		3: "MYSQL",
		5: "S3",
		6: "GCS",
		8: "AZURE_BLOB",
	}
	DownstreamType_value = map[string]int32{
		"DOWNSTREAM_TYPE_UNSPECIFIED": 0,
		"KAFKA":                       1,
		"MYSQL":                       3,
		"S3":                          5,
		"GCS":                         6,
		"AZURE_BLOB":                  8,
	}
)

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

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

func (DownstreamType) Descriptor() protoreflect.EnumDescriptor {
	return file_openapi_v1beta1_changefeed_proto_enumTypes[0].Descriptor()
}

func (DownstreamType) Type() protoreflect.EnumType {
	return &file_openapi_v1beta1_changefeed_proto_enumTypes[0]
}

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

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

// State defines the possible states of a changefeed.
type Changefeed_State int32

const (
	// Default value. Should not be used.
	Changefeed_STATE_UNSPECIFIED Changefeed_State = 0
	// Changefeed is actively replicating data.
	Changefeed_RUNNING Changefeed_State = 1
	// Changefeed encountered a fatal error and stopped.
	Changefeed_FAILED Changefeed_State = 2
	// Changefeed encountered an error but may recover.
	Changefeed_ERROR Changefeed_State = 3
	// Changefeed is being created.
	Changefeed_CREATING Changefeed_State = 4
	// Changefeed is in the process of pausing.
	Changefeed_PAUSING Changefeed_State = 5
	// Changefeed is paused.
	Changefeed_PAUSED Changefeed_State = 6
	// Changefeed is being deleted.
	Changefeed_DELETING Changefeed_State = 7
	// Changefeed has been deleted.
	Changefeed_DELETED Changefeed_State = 8
	// Changefeed configuration is being updated.
	Changefeed_EDITING Changefeed_State = 9
	// Changefeed is running but has warnings.
	Changefeed_WARNING Changefeed_State = 10
	// Changefeed is being scaled.
	Changefeed_SCALING Changefeed_State = 11
)

// Enum value maps for Changefeed_State.
var (
	Changefeed_State_name = map[int32]string{
		0:  "STATE_UNSPECIFIED",
		1:  "RUNNING",
		2:  "FAILED",
		3:  "ERROR",
		4:  "CREATING",
		5:  "PAUSING",
		6:  "PAUSED",
		7:  "DELETING",
		8:  "DELETED",
		9:  "EDITING",
		10: "WARNING",
		11: "SCALING",
	}
	Changefeed_State_value = map[string]int32{
		"STATE_UNSPECIFIED": 0,
		"RUNNING":           1,
		"FAILED":            2,
		"ERROR":             3,
		"CREATING":          4,
		"PAUSING":           5,
		"PAUSED":            6,
		"DELETING":          7,
		"DELETED":           8,
		"EDITING":           9,
		"WARNING":           10,
		"SCALING":           11,
	}
)

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

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

func (Changefeed_State) Descriptor() protoreflect.EnumDescriptor {
	return file_openapi_v1beta1_changefeed_proto_enumTypes[1].Descriptor()
}

func (Changefeed_State) Type() protoreflect.EnumType {
	return &file_openapi_v1beta1_changefeed_proto_enumTypes[1]
}

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

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

// KernelType defines the TiCDC kernel architecture.
type ChangefeedKernelInfo_KernelType int32

const (
	// Default / unknown (e.g. during provisioning).
	ChangefeedKernelInfo_KERNEL_TYPE_UNSPECIFIED ChangefeedKernelInfo_KernelType = 0
	// Classic (legacy) TiCDC architecture, based on tiflow.
	// See https://docs.pingcap.com/tidb/stable/ticdc-classic-architecture/
	ChangefeedKernelInfo_KERNEL_TYPE_CLASSIC ChangefeedKernelInfo_KernelType = 1
	// New TiCDC architecture (coordinator / maintainer / dispatcher model),
	// independent from the TiDB kernel version.
	// See https://docs.pingcap.com/tidb/stable/ticdc-architecture/
	ChangefeedKernelInfo_KERNEL_TYPE_NEW ChangefeedKernelInfo_KernelType = 2
)

// Enum value maps for ChangefeedKernelInfo_KernelType.
var (
	ChangefeedKernelInfo_KernelType_name = map[int32]string{
		0: "KERNEL_TYPE_UNSPECIFIED",
		1: "KERNEL_TYPE_CLASSIC",
		2: "KERNEL_TYPE_NEW",
	}
	ChangefeedKernelInfo_KernelType_value = map[string]int32{
		"KERNEL_TYPE_UNSPECIFIED": 0,
		"KERNEL_TYPE_CLASSIC":     1,
		"KERNEL_TYPE_NEW":         2,
	}
)

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

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

func (ChangefeedKernelInfo_KernelType) Descriptor() protoreflect.EnumDescriptor {
	return file_openapi_v1beta1_changefeed_proto_enumTypes[2].Descriptor()
}

func (ChangefeedKernelInfo_KernelType) Type() protoreflect.EnumType {
	return &file_openapi_v1beta1_changefeed_proto_enumTypes[2]
}

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

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

// Mode defines how to handle tables that are not supported by the changefeed.
type TableConfig_Mode int32

const (
	// Default value.
	TableConfig_MODE_UNSPECIFIED TableConfig_Mode = 0
	// Skip unsupported tables silently.
	TableConfig_IGNORE_NOT_SUPPORT_TABLE TableConfig_Mode = 1
	// Force sync all tables (may fail on unsupported tables).
	TableConfig_FORCE_SYNC TableConfig_Mode = 2
)

// Enum value maps for TableConfig_Mode.
var (
	TableConfig_Mode_name = map[int32]string{
		0: "MODE_UNSPECIFIED",
		1: "IGNORE_NOT_SUPPORT_TABLE",
		2: "FORCE_SYNC",
	}
	TableConfig_Mode_value = map[string]int32{
		"MODE_UNSPECIFIED":         0,
		"IGNORE_NOT_SUPPORT_TABLE": 1,
		"FORCE_SYNC":               2,
	}
)

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

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

func (TableConfig_Mode) Descriptor() protoreflect.EnumDescriptor {
	return file_openapi_v1beta1_changefeed_proto_enumTypes[3].Descriptor()
}

func (TableConfig_Mode) Type() protoreflect.EnumType {
	return &file_openapi_v1beta1_changefeed_proto_enumTypes[3]
}

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

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

// Mode defines the start position mode.
type StartPosition_Mode int32

const (
	// Default value.
	StartPosition_MODE_UNSPECIFIED StartPosition_Mode = 0
	// Start from the current time.
	StartPosition_FROM_NOW StartPosition_Mode = 1
	// Start from a specific TSO.
	StartPosition_FROM_TSO StartPosition_Mode = 2
	// Start from a specific UTC timestamp.
	StartPosition_FROM_UTC StartPosition_Mode = 3
)

// Enum value maps for StartPosition_Mode.
var (
	StartPosition_Mode_name = map[int32]string{
		0: "MODE_UNSPECIFIED",
		1: "FROM_NOW",
		2: "FROM_TSO",
		3: "FROM_UTC",
	}
	StartPosition_Mode_value = map[string]int32{
		"MODE_UNSPECIFIED": 0,
		"FROM_NOW":         1,
		"FROM_TSO":         2,
		"FROM_UTC":         3,
	}
)

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

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

func (StartPosition_Mode) Descriptor() protoreflect.EnumDescriptor {
	return file_openapi_v1beta1_changefeed_proto_enumTypes[4].Descriptor()
}

func (StartPosition_Mode) Type() protoreflect.EnumType {
	return &file_openapi_v1beta1_changefeed_proto_enumTypes[4]
}

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

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

// NetworkType defines the possible network types.
type NetworkInfo_NetworkType int32

const (
	// Default value.
	NetworkInfo_NETWORK_TYPE_UNSPECIFIED NetworkInfo_NetworkType = 0
	// Public internet access.
	NetworkInfo_NETWORK_TYPE_PUBLIC NetworkInfo_NetworkType = 1
	// AWS VPC Peering.
	NetworkInfo_NETWORK_TYPE_VPC_PEERING NetworkInfo_NetworkType = 2
	// Private endpoint connectivity managed by TiDB Cloud.
	NetworkInfo_NETWORK_TYPE_PRIVATE_LINK NetworkInfo_NetworkType = 3
)

// Enum value maps for NetworkInfo_NetworkType.
var (
	NetworkInfo_NetworkType_name = map[int32]string{
		0: "NETWORK_TYPE_UNSPECIFIED",
		1: "NETWORK_TYPE_PUBLIC",
		2: "NETWORK_TYPE_VPC_PEERING",
		3: "NETWORK_TYPE_PRIVATE_LINK",
	}
	NetworkInfo_NetworkType_value = map[string]int32{
		"NETWORK_TYPE_UNSPECIFIED":  0,
		"NETWORK_TYPE_PUBLIC":       1,
		"NETWORK_TYPE_VPC_PEERING":  2,
		"NETWORK_TYPE_PRIVATE_LINK": 3,
	}
)

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

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

func (NetworkInfo_NetworkType) Descriptor() protoreflect.EnumDescriptor {
	return file_openapi_v1beta1_changefeed_proto_enumTypes[5].Descriptor()
}

func (NetworkInfo_NetworkType) Type() protoreflect.EnumType {
	return &file_openapi_v1beta1_changefeed_proto_enumTypes[5]
}

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

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

// KafkaVersion defines supported Kafka broker versions.
type KafkaDownstreamConfig_KafkaVersion int32

const (
	KafkaDownstreamConfig_KAFKA_VERSION_UNSPECIFIED KafkaDownstreamConfig_KafkaVersion = 0
	// Kafka 0.x
	KafkaDownstreamConfig_KAFKA_VERSION_0XX KafkaDownstreamConfig_KafkaVersion = 1
	// Kafka 1.x
	KafkaDownstreamConfig_KAFKA_VERSION_1XX KafkaDownstreamConfig_KafkaVersion = 2
	// Kafka 2.x
	KafkaDownstreamConfig_KAFKA_VERSION_2XX KafkaDownstreamConfig_KafkaVersion = 3
	// Kafka 3.x
	KafkaDownstreamConfig_KAFKA_VERSION_3XX KafkaDownstreamConfig_KafkaVersion = 4
)

// Enum value maps for KafkaDownstreamConfig_KafkaVersion.
var (
	KafkaDownstreamConfig_KafkaVersion_name = map[int32]string{
		0: "KAFKA_VERSION_UNSPECIFIED",
		1: "KAFKA_VERSION_0XX",
		2: "KAFKA_VERSION_1XX",
		3: "KAFKA_VERSION_2XX",
		4: "KAFKA_VERSION_3XX",
	}
	KafkaDownstreamConfig_KafkaVersion_value = map[string]int32{
		"KAFKA_VERSION_UNSPECIFIED": 0,
		"KAFKA_VERSION_0XX":         1,
		"KAFKA_VERSION_1XX":         2,
		"KAFKA_VERSION_2XX":         3,
		"KAFKA_VERSION_3XX":         4,
	}
)

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

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

func (KafkaDownstreamConfig_KafkaVersion) Descriptor() protoreflect.EnumDescriptor {
	return file_openapi_v1beta1_changefeed_proto_enumTypes[6].Descriptor()
}

func (KafkaDownstreamConfig_KafkaVersion) Type() protoreflect.EnumType {
	return &file_openapi_v1beta1_changefeed_proto_enumTypes[6]
}

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

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

// CompressionType defines the compression types for Kafka messages.
type KafkaDownstreamConfig_CompressionType int32

const (
	KafkaDownstreamConfig_COMPRESSION_TYPE_UNSPECIFIED KafkaDownstreamConfig_CompressionType = 0
	// No compression.
	KafkaDownstreamConfig_NONE KafkaDownstreamConfig_CompressionType = 1
	// GZIP compression.
	KafkaDownstreamConfig_GZIP KafkaDownstreamConfig_CompressionType = 2
	// Snappy compression.
	KafkaDownstreamConfig_SNAPPY KafkaDownstreamConfig_CompressionType = 3
	// LZ4 compression.
	KafkaDownstreamConfig_LZ4 KafkaDownstreamConfig_CompressionType = 4
	// ZSTD compression.
	KafkaDownstreamConfig_ZSTD KafkaDownstreamConfig_CompressionType = 5
)

// Enum value maps for KafkaDownstreamConfig_CompressionType.
var (
	KafkaDownstreamConfig_CompressionType_name = map[int32]string{
		0: "COMPRESSION_TYPE_UNSPECIFIED",
		1: "NONE",
		2: "GZIP",
		3: "SNAPPY",
		4: "LZ4",
		5: "ZSTD",
	}
	KafkaDownstreamConfig_CompressionType_value = map[string]int32{
		"COMPRESSION_TYPE_UNSPECIFIED": 0,
		"NONE":                         1,
		"GZIP":                         2,
		"SNAPPY":                       3,
		"LZ4":                          4,
		"ZSTD":                         5,
	}
)

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

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

func (KafkaDownstreamConfig_CompressionType) Descriptor() protoreflect.EnumDescriptor {
	return file_openapi_v1beta1_changefeed_proto_enumTypes[7].Descriptor()
}

func (KafkaDownstreamConfig_CompressionType) Type() protoreflect.EnumType {
	return &file_openapi_v1beta1_changefeed_proto_enumTypes[7]
}

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

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

// AuthType defines the supported Kafka authentication types.
type KafkaDownstreamConfig_Authentication_AuthType int32

const (
	KafkaDownstreamConfig_Authentication_AUTH_TYPE_UNSPECIFIED KafkaDownstreamConfig_Authentication_AuthType = 0
	// No authentication.
	KafkaDownstreamConfig_Authentication_DISABLE KafkaDownstreamConfig_Authentication_AuthType = 1
	// SASL/PLAIN authentication.
	KafkaDownstreamConfig_Authentication_SASL_PLAIN KafkaDownstreamConfig_Authentication_AuthType = 2
	// SASL/SCRAM-SHA-256 authentication.
	KafkaDownstreamConfig_Authentication_SASL_SCRAM_SHA_256 KafkaDownstreamConfig_Authentication_AuthType = 3
	// SASL/SCRAM-SHA-512 authentication.
	KafkaDownstreamConfig_Authentication_SASL_SCRAM_SHA_512 KafkaDownstreamConfig_Authentication_AuthType = 4
)

// Enum value maps for KafkaDownstreamConfig_Authentication_AuthType.
var (
	KafkaDownstreamConfig_Authentication_AuthType_name = map[int32]string{
		0: "AUTH_TYPE_UNSPECIFIED",
		1: "DISABLE",
		2: "SASL_PLAIN",
		3: "SASL_SCRAM_SHA_256",
		4: "SASL_SCRAM_SHA_512",
	}
	KafkaDownstreamConfig_Authentication_AuthType_value = map[string]int32{
		"AUTH_TYPE_UNSPECIFIED": 0,
		"DISABLE":               1,
		"SASL_PLAIN":            2,
		"SASL_SCRAM_SHA_256":    3,
		"SASL_SCRAM_SHA_512":    4,
	}
)

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

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

func (KafkaDownstreamConfig_Authentication_AuthType) Descriptor() protoreflect.EnumDescriptor {
	return file_openapi_v1beta1_changefeed_proto_enumTypes[8].Descriptor()
}

func (KafkaDownstreamConfig_Authentication_AuthType) Type() protoreflect.EnumType {
	return &file_openapi_v1beta1_changefeed_proto_enumTypes[8]
}

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

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

// Protocol defines the supported output protocols.
type KafkaDownstreamConfig_DataFormat_Protocol int32

const (
	KafkaDownstreamConfig_DataFormat_PROTOCOL_UNSPECIFIED KafkaDownstreamConfig_DataFormat_Protocol = 0
	// Canal JSON format. Recommended for most use cases.
	KafkaDownstreamConfig_DataFormat_PROTOCOL_CANAL_JSON KafkaDownstreamConfig_DataFormat_Protocol = 1
	// Open Protocol (TiDB native format). Encodes multiple events into one message.
	KafkaDownstreamConfig_DataFormat_PROTOCOL_OPEN_PROTOCOL KafkaDownstreamConfig_DataFormat_Protocol = 2
	// Apache Avro format. Supports Confluent Schema Registry and AWS Glue Schema Registry.
	KafkaDownstreamConfig_DataFormat_PROTOCOL_AVRO KafkaDownstreamConfig_DataFormat_Protocol = 3
	// Debezium format.
	KafkaDownstreamConfig_DataFormat_PROTOCOL_DEBEZIUM KafkaDownstreamConfig_DataFormat_Protocol = 5
)

// Enum value maps for KafkaDownstreamConfig_DataFormat_Protocol.
var (
	KafkaDownstreamConfig_DataFormat_Protocol_name = map[int32]string{
		0: "PROTOCOL_UNSPECIFIED",
		1: "PROTOCOL_CANAL_JSON",
		2: "PROTOCOL_OPEN_PROTOCOL",
		3: "PROTOCOL_AVRO",
		5: "PROTOCOL_DEBEZIUM",
	}
	KafkaDownstreamConfig_DataFormat_Protocol_value = map[string]int32{
		"PROTOCOL_UNSPECIFIED":   0,
		"PROTOCOL_CANAL_JSON":    1,
		"PROTOCOL_OPEN_PROTOCOL": 2,
		"PROTOCOL_AVRO":          3,
		"PROTOCOL_DEBEZIUM":      5,
	}
)

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

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

func (KafkaDownstreamConfig_DataFormat_Protocol) Descriptor() protoreflect.EnumDescriptor {
	return file_openapi_v1beta1_changefeed_proto_enumTypes[9].Descriptor()
}

func (KafkaDownstreamConfig_DataFormat_Protocol) Type() protoreflect.EnumType {
	return &file_openapi_v1beta1_changefeed_proto_enumTypes[9]
}

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

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

// DecimalHandlingMode defines how decimal values are serialized.
type KafkaDownstreamConfig_DataFormat_AvroConfig_DecimalHandlingMode int32

const (
	KafkaDownstreamConfig_DataFormat_AvroConfig_DECIMAL_HANDLING_MODE_UNSPECIFIED KafkaDownstreamConfig_DataFormat_AvroConfig_DecimalHandlingMode = 0
	// Use precise decimal representation.
	KafkaDownstreamConfig_DataFormat_AvroConfig_DECIMAL_HANDLING_MODE_PRECISE KafkaDownstreamConfig_DataFormat_AvroConfig_DecimalHandlingMode = 1
	// Use string representation.
	KafkaDownstreamConfig_DataFormat_AvroConfig_DECIMAL_HANDLING_MODE_STRING KafkaDownstreamConfig_DataFormat_AvroConfig_DecimalHandlingMode = 2
)

// Enum value maps for KafkaDownstreamConfig_DataFormat_AvroConfig_DecimalHandlingMode.
var (
	KafkaDownstreamConfig_DataFormat_AvroConfig_DecimalHandlingMode_name = map[int32]string{
		0: "DECIMAL_HANDLING_MODE_UNSPECIFIED",
		1: "DECIMAL_HANDLING_MODE_PRECISE",
		2: "DECIMAL_HANDLING_MODE_STRING",
	}
	KafkaDownstreamConfig_DataFormat_AvroConfig_DecimalHandlingMode_value = map[string]int32{
		"DECIMAL_HANDLING_MODE_UNSPECIFIED": 0,
		"DECIMAL_HANDLING_MODE_PRECISE":     1,
		"DECIMAL_HANDLING_MODE_STRING":      2,
	}
)

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

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

func (KafkaDownstreamConfig_DataFormat_AvroConfig_DecimalHandlingMode) Descriptor() protoreflect.EnumDescriptor {
	return file_openapi_v1beta1_changefeed_proto_enumTypes[10].Descriptor()
}

func (KafkaDownstreamConfig_DataFormat_AvroConfig_DecimalHandlingMode) Type() protoreflect.EnumType {
	return &file_openapi_v1beta1_changefeed_proto_enumTypes[10]
}

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

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

// BigintUnsignedHandlingMode defines how BIGINT UNSIGNED values are handled.
type KafkaDownstreamConfig_DataFormat_AvroConfig_BigintUnsignedHandlingMode int32

const (
	// Use 64-bit integer (may overflow for very large values).
	KafkaDownstreamConfig_DataFormat_AvroConfig_BIGINT_UNSIGNED_HANDLING_MODE_LONG KafkaDownstreamConfig_DataFormat_AvroConfig_BigintUnsignedHandlingMode = 0
	// Use string representation (safe for all values).
	KafkaDownstreamConfig_DataFormat_AvroConfig_BIGINT_UNSIGNED_HANDLING_MODE_STRING KafkaDownstreamConfig_DataFormat_AvroConfig_BigintUnsignedHandlingMode = 1
)

// Enum value maps for KafkaDownstreamConfig_DataFormat_AvroConfig_BigintUnsignedHandlingMode.
var (
	KafkaDownstreamConfig_DataFormat_AvroConfig_BigintUnsignedHandlingMode_name = map[int32]string{
		0: "BIGINT_UNSIGNED_HANDLING_MODE_LONG",
		1: "BIGINT_UNSIGNED_HANDLING_MODE_STRING",
	}
	KafkaDownstreamConfig_DataFormat_AvroConfig_BigintUnsignedHandlingMode_value = map[string]int32{
		"BIGINT_UNSIGNED_HANDLING_MODE_LONG":   0,
		"BIGINT_UNSIGNED_HANDLING_MODE_STRING": 1,
	}
)

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

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

func (KafkaDownstreamConfig_DataFormat_AvroConfig_BigintUnsignedHandlingMode) Descriptor() protoreflect.EnumDescriptor {
	return file_openapi_v1beta1_changefeed_proto_enumTypes[11].Descriptor()
}

func (KafkaDownstreamConfig_DataFormat_AvroConfig_BigintUnsignedHandlingMode) Type() protoreflect.EnumType {
	return &file_openapi_v1beta1_changefeed_proto_enumTypes[11]
}

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

// Deprecated: Use KafkaDownstreamConfig_DataFormat_AvroConfig_BigintUnsignedHandlingMode.Descriptor instead.
func (KafkaDownstreamConfig_DataFormat_AvroConfig_BigintUnsignedHandlingMode) EnumDescriptor() ([]byte, []int) {
	return file_openapi_v1beta1_changefeed_proto_rawDescGZIP(), []int{27, 2, 0, 1}
}

// DispatchType defines how messages are dispatched to topics.
type KafkaDownstreamConfig_TopicPartitionConfig_DispatchType int32

const (
	KafkaDownstreamConfig_TopicPartitionConfig_DISPATCH_TYPE_UNSPECIFIED KafkaDownstreamConfig_TopicPartitionConfig_DispatchType = 0
	// All messages go to a single topic.
	KafkaDownstreamConfig_TopicPartitionConfig_DISPATCH_TYPE_ONE_TOPIC KafkaDownstreamConfig_TopicPartitionConfig_DispatchType = 1
	// Each table gets its own topic.
	KafkaDownstreamConfig_TopicPartitionConfig_DISPATCH_TYPE_BY_TABLE KafkaDownstreamConfig_TopicPartitionConfig_DispatchType = 2
	// Each database gets its own topic.
	KafkaDownstreamConfig_TopicPartitionConfig_DISPATCH_TYPE_BY_DATABASE KafkaDownstreamConfig_TopicPartitionConfig_DispatchType = 3
)

// Enum value maps for KafkaDownstreamConfig_TopicPartitionConfig_DispatchType.
var (
	KafkaDownstreamConfig_TopicPartitionConfig_DispatchType_name = map[int32]string{
		0: "DISPATCH_TYPE_UNSPECIFIED",
		1: "DISPATCH_TYPE_ONE_TOPIC",
		2: "DISPATCH_TYPE_BY_TABLE",
		3: "DISPATCH_TYPE_BY_DATABASE",
	}
	KafkaDownstreamConfig_TopicPartitionConfig_DispatchType_value = map[string]int32{
		"DISPATCH_TYPE_UNSPECIFIED": 0,
		"DISPATCH_TYPE_ONE_TOPIC":   1,
		"DISPATCH_TYPE_BY_TABLE":    2,
		"DISPATCH_TYPE_BY_DATABASE": 3,
	}
)

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

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

func (KafkaDownstreamConfig_TopicPartitionConfig_DispatchType) Descriptor() protoreflect.EnumDescriptor {
	return file_openapi_v1beta1_changefeed_proto_enumTypes[12].Descriptor()
}

func (KafkaDownstreamConfig_TopicPartitionConfig_DispatchType) Type() protoreflect.EnumType {
	return &file_openapi_v1beta1_changefeed_proto_enumTypes[12]
}

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

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

// PartitionDispatcher defines the partition dispatch strategies.
type KafkaDownstreamConfig_TopicPartitionConfig_PartitionDispatcher int32

const (
	KafkaDownstreamConfig_TopicPartitionConfig_PARTITION_DISPATCHER_UNSPECIFIED KafkaDownstreamConfig_TopicPartitionConfig_PartitionDispatcher = 0
	// Dispatch by table name.
	KafkaDownstreamConfig_TopicPartitionConfig_TABLE KafkaDownstreamConfig_TopicPartitionConfig_PartitionDispatcher = 1
	// Dispatch by index value.
	KafkaDownstreamConfig_TopicPartitionConfig_INDEX_VALUE KafkaDownstreamConfig_TopicPartitionConfig_PartitionDispatcher = 2
	// Dispatch by timestamp.
	KafkaDownstreamConfig_TopicPartitionConfig_Timestamp KafkaDownstreamConfig_TopicPartitionConfig_PartitionDispatcher = 3
	// Dispatch by column values.
	KafkaDownstreamConfig_TopicPartitionConfig_COLUMNS KafkaDownstreamConfig_TopicPartitionConfig_PartitionDispatcher = 4
)

// Enum value maps for KafkaDownstreamConfig_TopicPartitionConfig_PartitionDispatcher.
var (
	KafkaDownstreamConfig_TopicPartitionConfig_PartitionDispatcher_name = map[int32]string{
		0: "PARTITION_DISPATCHER_UNSPECIFIED",
		1: "TABLE",
		2: "INDEX_VALUE",
		3: "Timestamp",
		4: "COLUMNS",
	}
	KafkaDownstreamConfig_TopicPartitionConfig_PartitionDispatcher_value = map[string]int32{
		"PARTITION_DISPATCHER_UNSPECIFIED": 0,
		"TABLE":                            1,
		"INDEX_VALUE":                      2,
		"Timestamp":                        3,
		"COLUMNS":                          4,
	}
)

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

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

func (KafkaDownstreamConfig_TopicPartitionConfig_PartitionDispatcher) Descriptor() protoreflect.EnumDescriptor {
	return file_openapi_v1beta1_changefeed_proto_enumTypes[13].Descriptor()
}

func (KafkaDownstreamConfig_TopicPartitionConfig_PartitionDispatcher) Type() protoreflect.EnumType {
	return &file_openapi_v1beta1_changefeed_proto_enumTypes[13]
}

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

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

// DateSeparator defines the date separator options for directory structure.
type S3DataFormat_DateSeparator int32

const (
	S3DataFormat_DATE_SEPARATOR_UNSPECIFIED S3DataFormat_DateSeparator = 0
	// No date separator.
	S3DataFormat_NONE S3DataFormat_DateSeparator = 1
	// Separate by year.
	S3DataFormat_YEAR S3DataFormat_DateSeparator = 2
	// Separate by month.
	S3DataFormat_MONTH S3DataFormat_DateSeparator = 3
	// Separate by day.
	S3DataFormat_DAY S3DataFormat_DateSeparator = 4
)

// Enum value maps for S3DataFormat_DateSeparator.
var (
	S3DataFormat_DateSeparator_name = map[int32]string{
		0: "DATE_SEPARATOR_UNSPECIFIED",
		1: "NONE",
		2: "YEAR",
		3: "MONTH",
		4: "DAY",
	}
	S3DataFormat_DateSeparator_value = map[string]int32{
		"DATE_SEPARATOR_UNSPECIFIED": 0,
		"NONE":                       1,
		"YEAR":                       2,
		"MONTH":                      3,
		"DAY":                        4,
	}
)

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

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

func (S3DataFormat_DateSeparator) Descriptor() protoreflect.EnumDescriptor {
	return file_openapi_v1beta1_changefeed_proto_enumTypes[14].Descriptor()
}

func (S3DataFormat_DateSeparator) Type() protoreflect.EnumType {
	return &file_openapi_v1beta1_changefeed_proto_enumTypes[14]
}

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

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

// Protocol defines the supported output protocols for cloud storage sinks.
type S3DataFormat_Protocol int32

const (
	S3DataFormat_PROTOCOL_UNSPECIFIED S3DataFormat_Protocol = 0
	// CSV format.
	S3DataFormat_PROTOCOL_CSV S3DataFormat_Protocol = 1
	// Canal JSON format.
	S3DataFormat_PROTOCOL_CANAL_JSON S3DataFormat_Protocol = 2
	// Apache Parquet format.
	S3DataFormat_PROTOCOL_PARQUET S3DataFormat_Protocol = 3
)

// Enum value maps for S3DataFormat_Protocol.
var (
	S3DataFormat_Protocol_name = map[int32]string{
		0: "PROTOCOL_UNSPECIFIED",
		1: "PROTOCOL_CSV",
		2: "PROTOCOL_CANAL_JSON",
		3: "PROTOCOL_PARQUET",
	}
	S3DataFormat_Protocol_value = map[string]int32{
		"PROTOCOL_UNSPECIFIED": 0,
		"PROTOCOL_CSV":         1,
		"PROTOCOL_CANAL_JSON":  2,
		"PROTOCOL_PARQUET":     3,
	}
)

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

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

func (S3DataFormat_Protocol) Descriptor() protoreflect.EnumDescriptor {
	return file_openapi_v1beta1_changefeed_proto_enumTypes[15].Descriptor()
}

func (S3DataFormat_Protocol) Type() protoreflect.EnumType {
	return &file_openapi_v1beta1_changefeed_proto_enumTypes[15]
}

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

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

// BinaryEncodingMethod defines how binary values are encoded.
type S3DataFormat_BinaryEncodingMethod int32

const (
	S3DataFormat_BINARY_ENCODING_METHOD_UNSPECIFIED S3DataFormat_BinaryEncodingMethod = 0
	// Base64 encoding.
	S3DataFormat_BASE64 S3DataFormat_BinaryEncodingMethod = 1
	// Hexadecimal encoding.
	S3DataFormat_HEX S3DataFormat_BinaryEncodingMethod = 2
)

// Enum value maps for S3DataFormat_BinaryEncodingMethod.
var (
	S3DataFormat_BinaryEncodingMethod_name = map[int32]string{
		0: "BINARY_ENCODING_METHOD_UNSPECIFIED",
		1: "BASE64",
		2: "HEX",
	}
	S3DataFormat_BinaryEncodingMethod_value = map[string]int32{
		"BINARY_ENCODING_METHOD_UNSPECIFIED": 0,
		"BASE64":                             1,
		"HEX":                                2,
	}
)

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

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

func (S3DataFormat_BinaryEncodingMethod) Descriptor() protoreflect.EnumDescriptor {
	return file_openapi_v1beta1_changefeed_proto_enumTypes[16].Descriptor()
}

func (S3DataFormat_BinaryEncodingMethod) Type() protoreflect.EnumType {
	return &file_openapi_v1beta1_changefeed_proto_enumTypes[16]
}

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

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

// S3AuthType defines the supported S3 authentication types.
type S3DownstreamConfig_Endpoint_S3AuthType int32

const (
	S3DownstreamConfig_Endpoint_S3_AUTH_TYPE_UNSPECIFIED S3DownstreamConfig_Endpoint_S3AuthType = 0
	// Access Key / Secret Key authentication.
	S3DownstreamConfig_Endpoint_S3_AUTH_TYPE_AK_SK S3DownstreamConfig_Endpoint_S3AuthType = 1
	// IAM Assume Role authentication.
	S3DownstreamConfig_Endpoint_S3_AUTH_TYPE_ASSUME_ROLE S3DownstreamConfig_Endpoint_S3AuthType = 2
)

// Enum value maps for S3DownstreamConfig_Endpoint_S3AuthType.
var (
	S3DownstreamConfig_Endpoint_S3AuthType_name = map[int32]string{
		0: "S3_AUTH_TYPE_UNSPECIFIED",
		1: "S3_AUTH_TYPE_AK_SK",
		2: "S3_AUTH_TYPE_ASSUME_ROLE",
	}
	S3DownstreamConfig_Endpoint_S3AuthType_value = map[string]int32{
		"S3_AUTH_TYPE_UNSPECIFIED": 0,
		"S3_AUTH_TYPE_AK_SK":       1,
		"S3_AUTH_TYPE_ASSUME_ROLE": 2,
	}
)

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

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

func (S3DownstreamConfig_Endpoint_S3AuthType) Descriptor() protoreflect.EnumDescriptor {
	return file_openapi_v1beta1_changefeed_proto_enumTypes[17].Descriptor()
}

func (S3DownstreamConfig_Endpoint_S3AuthType) Type() protoreflect.EnumType {
	return &file_openapi_v1beta1_changefeed_proto_enumTypes[17]
}

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

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

// ListChangefeedsRequest represents the request for listing changefeeds
// (-- api-linter: core::0158::request-page-size-field=disabled --)
// (-- api-linter: core::0158::request-page-token-field=disabled --)
type ListChangefeedsRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The ID of the cluster to list changefeeds for.
	// Example: "1234567890123"
	// (-- api-linter: core::0141::forbidden-types=disabled --)
	ClusterId string `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// Filter by downstream type. If not specified, returns all types.
	// Example: KAFKA
	DownstreamType *DownstreamType `protobuf:"varint,2,opt,name=downstream_type,json=downstreamType,proto3,enum=openapi.v1beta1.DownstreamType,oneof" json:"downstream_type,omitempty"`
	// The maximum number of items to return.
	// Defaults to 20. Valid values are in the range [1, 100].
	PageSize int32 `protobuf:"varint,100,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// The next_page_token value returned from a previous List request, if any.
	PageToken     string `protobuf:"bytes,101,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListChangefeedsRequest) Reset() {
	*x = ListChangefeedsRequest{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListChangefeedsRequest) ProtoMessage() {}

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

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

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

func (x *ListChangefeedsRequest) GetDownstreamType() DownstreamType {
	if x != nil && x.DownstreamType != nil {
		return *x.DownstreamType
	}
	return DownstreamType_DOWNSTREAM_TYPE_UNSPECIFIED
}

func (x *ListChangefeedsRequest) GetPageSize() int32 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

func (x *ListChangefeedsRequest) GetPageToken() string {
	if x != nil {
		return x.PageToken
	}
	return ""
}

// ListChangefeedsResponse represents the response for listing changefeeds
// (-- api-linter: core::0158::response-page-size-field=disabled --)
// (-- api-linter: core::0158::response-next-page-token-field=disabled --)
type ListChangefeedsResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The list of changefeeds matching the query.
	Changefeeds []*Changefeed `protobuf:"bytes,1,rep,name=changefeeds,proto3" json:"changefeeds,omitempty"`
	// Total number of changefeeds across all pages.
	// Example: 42
	TotalSize int32 `protobuf:"varint,2,opt,name=total_size,json=totalSize,proto3" json:"total_size,omitempty"`
	// Token for retrieving the next page. Empty if no more pages.
	// Example: "eyJpZCI6Njc4OTB9"
	NextPageToken string `protobuf:"bytes,3,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListChangefeedsResponse) Reset() {
	*x = ListChangefeedsResponse{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListChangefeedsResponse) ProtoMessage() {}

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

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

func (x *ListChangefeedsResponse) GetChangefeeds() []*Changefeed {
	if x != nil {
		return x.Changefeeds
	}
	return nil
}

func (x *ListChangefeedsResponse) GetTotalSize() int32 {
	if x != nil {
		return x.TotalSize
	}
	return 0
}

func (x *ListChangefeedsResponse) GetNextPageToken() string {
	if x != nil {
		return x.NextPageToken
	}
	return ""
}

// Changefeed represents a changefeed instance.
// A changefeed captures row-level changes from TiDB and replicates them to a downstream system.
type Changefeed struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Unique identifier of the changefeed (generated by the system).
	// Example: "67890"
	// (-- api-linter: core::0203::resource-name-identifier=disabled)
	// (-- api-linter: core::0148::use-uid=disabled --)
	// (-- api-linter: core::0141::forbidden-types=disabled --)
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// The ID of the source TiDB cluster.
	// Example: "1234567890123"
	ClusterId string `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// User-defined name for the changefeed.
	// Example: "my-kafka-changefeed"
	// (-- api-linter: core::0203::resource-name-identifier=disabled)
	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	// Network configuration for connecting to the downstream.
	// Required for Kafka, MySQL, and Pulsar downstream types.
	NetworkInfo *NetworkInfo `protobuf:"bytes,4,opt,name=network_info,json=networkInfo,proto3,oneof" json:"network_info,omitempty"`
	// Current state of the changefeed.
	// Example: RUNNING
	State Changefeed_State `protobuf:"varint,5,opt,name=state,proto3,enum=openapi.v1beta1.Changefeed_State" json:"state,omitempty"`
	// Timestamp when the changefeed was created.
	// Example: "2026-06-08T10:30:00Z"
	CreateTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// The TSO (Timestamp Oracle) of the changefeed's current checkpoint.
	// Represents the last successfully replicated timestamp.
	// Example: 452348901234567890
	// (-- api-linter: core::0141::forbidden-types=disabled --)
	CheckpointTso uint64 `protobuf:"varint,7,opt,name=checkpoint_tso,json=checkpointTso,proto3" json:"checkpoint_tso,omitempty"`
	// Human-readable timestamp of the changefeed's current checkpoint.
	// Example: "2026-06-08T10:35:00Z"
	CheckpointTs *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=checkpoint_ts,json=checkpointTs,proto3" json:"checkpoint_ts,omitempty"`
	// The replication capacity (RCU size) for the changefeed.
	// Example: "4rcu"
	ReplicationCapacity string `protobuf:"bytes,9,opt,name=replication_capacity,json=replicationCapacity,proto3" json:"replication_capacity,omitempty"`
	// The downstream type. Cannot be changed after creation.
	// Example: KAFKA
	DownstreamType DownstreamType `protobuf:"varint,10,opt,name=downstream_type,json=downstreamType,proto3,enum=openapi.v1beta1.DownstreamType" json:"downstream_type,omitempty"`
	// Table filtering and event filter configuration.
	// This field is editable only when the changefeed is in PAUSED state.
	TableConfig *TableConfig `protobuf:"bytes,17,opt,name=table_config,json=tableConfig,proto3" json:"table_config,omitempty"`
	// Start position configuration.
	// This field can only be set during creation and cannot be modified afterward.
	StartPosition *StartPosition `protobuf:"bytes,18,opt,name=start_position,json=startPosition,proto3" json:"start_position,omitempty"`
	// Downstream configuration. Exactly one must be set based on downstream_type.
	//
	// Types that are valid to be assigned to DownstreamConfig:
	//
	//	*Changefeed_Kafka
	//	*Changefeed_Mysql
	//	*Changefeed_S3
	//	*Changefeed_Gcs
	//	*Changefeed_AzureBlob
	DownstreamConfig isChangefeed_DownstreamConfig `protobuf_oneof:"downstream_config"`
	// Error message if state is FAILED or ERROR. Empty otherwise.
	// Example: "kafka: broker not available"
	Error         string `protobuf:"bytes,16,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Changefeed) Reset() {
	*x = Changefeed{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Changefeed) ProtoMessage() {}

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

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

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

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

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

func (x *Changefeed) GetNetworkInfo() *NetworkInfo {
	if x != nil {
		return x.NetworkInfo
	}
	return nil
}

func (x *Changefeed) GetState() Changefeed_State {
	if x != nil {
		return x.State
	}
	return Changefeed_STATE_UNSPECIFIED
}

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

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

func (x *Changefeed) GetCheckpointTs() *timestamppb.Timestamp {
	if x != nil {
		return x.CheckpointTs
	}
	return nil
}

func (x *Changefeed) GetReplicationCapacity() string {
	if x != nil {
		return x.ReplicationCapacity
	}
	return ""
}

func (x *Changefeed) GetDownstreamType() DownstreamType {
	if x != nil {
		return x.DownstreamType
	}
	return DownstreamType_DOWNSTREAM_TYPE_UNSPECIFIED
}

func (x *Changefeed) GetTableConfig() *TableConfig {
	if x != nil {
		return x.TableConfig
	}
	return nil
}

func (x *Changefeed) GetStartPosition() *StartPosition {
	if x != nil {
		return x.StartPosition
	}
	return nil
}

func (x *Changefeed) GetDownstreamConfig() isChangefeed_DownstreamConfig {
	if x != nil {
		return x.DownstreamConfig
	}
	return nil
}

func (x *Changefeed) GetKafka() *KafkaDownstreamConfig {
	if x != nil {
		if x, ok := x.DownstreamConfig.(*Changefeed_Kafka); ok {
			return x.Kafka
		}
	}
	return nil
}

func (x *Changefeed) GetMysql() *MySQLDownstreamConfig {
	if x != nil {
		if x, ok := x.DownstreamConfig.(*Changefeed_Mysql); ok {
			return x.Mysql
		}
	}
	return nil
}

func (x *Changefeed) GetS3() *S3DownstreamConfig {
	if x != nil {
		if x, ok := x.DownstreamConfig.(*Changefeed_S3); ok {
			return x.S3
		}
	}
	return nil
}

func (x *Changefeed) GetGcs() *GcsDownstreamConfig {
	if x != nil {
		if x, ok := x.DownstreamConfig.(*Changefeed_Gcs); ok {
			return x.Gcs
		}
	}
	return nil
}

func (x *Changefeed) GetAzureBlob() *AzureBlobDownstreamConfig {
	if x != nil {
		if x, ok := x.DownstreamConfig.(*Changefeed_AzureBlob); ok {
			return x.AzureBlob
		}
	}
	return nil
}

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

type isChangefeed_DownstreamConfig interface {
	isChangefeed_DownstreamConfig()
}

type Changefeed_Kafka struct {
	// Kafka downstream configuration.
	Kafka *KafkaDownstreamConfig `protobuf:"bytes,11,opt,name=kafka,proto3,oneof"`
}

type Changefeed_Mysql struct {
	// MySQL downstream configuration.
	Mysql *MySQLDownstreamConfig `protobuf:"bytes,12,opt,name=mysql,proto3,oneof"`
}

type Changefeed_S3 struct {
	// S3 downstream configuration.
	S3 *S3DownstreamConfig `protobuf:"bytes,13,opt,name=s3,proto3,oneof"`
}

type Changefeed_Gcs struct {
	// GCS downstream configuration.
	Gcs *GcsDownstreamConfig `protobuf:"bytes,14,opt,name=gcs,proto3,oneof"`
}

type Changefeed_AzureBlob struct {
	// Azure Blob downstream configuration.
	AzureBlob *AzureBlobDownstreamConfig `protobuf:"bytes,15,opt,name=azure_blob,json=azureBlob,proto3,oneof"`
}

func (*Changefeed_Kafka) isChangefeed_DownstreamConfig() {}

func (*Changefeed_Mysql) isChangefeed_DownstreamConfig() {}

func (*Changefeed_S3) isChangefeed_DownstreamConfig() {}

func (*Changefeed_Gcs) isChangefeed_DownstreamConfig() {}

func (*Changefeed_AzureBlob) isChangefeed_DownstreamConfig() {}

// GetChangefeedRequest represents the request for getting a changefeed.
type GetChangefeedRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The ID of the changefeed to retrieve.
	// Example: "67890"
	// (-- api-linter: core::0141::forbidden-types=disabled --)
	ChangefeedId string `protobuf:"bytes,1,opt,name=changefeed_id,json=changefeedId,proto3" json:"changefeed_id,omitempty"`
	// Whether to invalidate cache and return realtime checkpoint information.
	// Example: true
	InvalidateCache bool `protobuf:"varint,2,opt,name=invalidate_cache,json=invalidateCache,proto3" json:"invalidate_cache,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *GetChangefeedRequest) Reset() {
	*x = GetChangefeedRequest{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[3]
	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_openapi_v1beta1_changefeed_proto_msgTypes[3]
	if 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_openapi_v1beta1_changefeed_proto_rawDescGZIP(), []int{3}
}

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

func (x *GetChangefeedRequest) GetInvalidateCache() bool {
	if x != nil {
		return x.InvalidateCache
	}
	return false
}

// PauseChangefeedRequest represents the request for pausing a changefeed.
type PauseChangefeedRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The ID of the changefeed to pause.
	// Example: "67890"
	// (-- api-linter: core::0141::forbidden-types=disabled --)
	ChangefeedId  string `protobuf:"bytes,1,opt,name=changefeed_id,json=changefeedId,proto3" json:"changefeed_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *PauseChangefeedRequest) Reset() {
	*x = PauseChangefeedRequest{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[4]
	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_openapi_v1beta1_changefeed_proto_msgTypes[4]
	if 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_openapi_v1beta1_changefeed_proto_rawDescGZIP(), []int{4}
}

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

// ResumeChangefeedRequest represents the request for resuming a changefeed.
type ResumeChangefeedRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The ID of the changefeed to resume.
	// Example: "67890"
	// (-- api-linter: core::0141::forbidden-types=disabled --)
	ChangefeedId  string `protobuf:"bytes,1,opt,name=changefeed_id,json=changefeedId,proto3" json:"changefeed_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ResumeChangefeedRequest) Reset() {
	*x = ResumeChangefeedRequest{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[5]
	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_openapi_v1beta1_changefeed_proto_msgTypes[5]
	if 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_openapi_v1beta1_changefeed_proto_rawDescGZIP(), []int{5}
}

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

// GetChangefeedKernelInfoRequest represents the request for getting the TiCDC
// kernel info of a changefeed.
// (-- api-linter: core::0131::request-unknown-fields=disabled --)
type GetChangefeedKernelInfoRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The ID of the changefeed to query.
	// Example: "2068955910051614720"
	// (-- api-linter: core::0141::forbidden-types=disabled --)
	ChangefeedId  string `protobuf:"bytes,1,opt,name=changefeed_id,json=changefeedId,proto3" json:"changefeed_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetChangefeedKernelInfoRequest) Reset() {
	*x = GetChangefeedKernelInfoRequest{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*GetChangefeedKernelInfoRequest) ProtoMessage() {}

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

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

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

// ChangefeedKernelInfo represents the TiCDC kernel runtime info of a changefeed.
type ChangefeedKernelInfo struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The changefeed identifier echoed back for correlation.
	// Matches the id field of v1beta1Changefeed.
	// Example: "2068955910051614720"
	ChangefeedId string `protobuf:"bytes,1,opt,name=changefeed_id,json=changefeedId,proto3" json:"changefeed_id,omitempty"`
	// The TiCDC component version that the changefeed is currently running on.
	// Example: "v8.5.4"
	TicdcVersion string `protobuf:"bytes,2,opt,name=ticdc_version,json=ticdcVersion,proto3" json:"ticdc_version,omitempty"`
	// The effective image tag of the TiCDC component the changefeed runs on.
	// Example: "v8.5.4-release.1"
	ImageTag string `protobuf:"bytes,3,opt,name=image_tag,json=imageTag,proto3" json:"image_tag,omitempty"`
	// The TiCDC kernel type that the changefeed is running on.
	KernelType    ChangefeedKernelInfo_KernelType `protobuf:"varint,4,opt,name=kernel_type,json=kernelType,proto3,enum=openapi.v1beta1.ChangefeedKernelInfo_KernelType" json:"kernel_type,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ChangefeedKernelInfo) Reset() {
	*x = ChangefeedKernelInfo{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ChangefeedKernelInfo) ProtoMessage() {}

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

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

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

func (x *ChangefeedKernelInfo) GetTicdcVersion() string {
	if x != nil {
		return x.TicdcVersion
	}
	return ""
}

func (x *ChangefeedKernelInfo) GetImageTag() string {
	if x != nil {
		return x.ImageTag
	}
	return ""
}

func (x *ChangefeedKernelInfo) GetKernelType() ChangefeedKernelInfo_KernelType {
	if x != nil {
		return x.KernelType
	}
	return ChangefeedKernelInfo_KERNEL_TYPE_UNSPECIFIED
}

// GetEventFiltersRequest represents the request for getting event filters.
type GetEventFiltersRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The ID of the changefeed to get event filters for.
	// Example: "67890"
	// (-- api-linter: core::0141::forbidden-types=disabled --)
	ChangefeedId  string `protobuf:"bytes,1,opt,name=changefeed_id,json=changefeedId,proto3" json:"changefeed_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetEventFiltersRequest) Reset() {
	*x = GetEventFiltersRequest{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*GetEventFiltersRequest) ProtoMessage() {}

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

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

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

// EventFilters represents a list of event filters.
type EventFilters struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// List of event filters.
	EventFilters  []*EventFilter `protobuf:"bytes,1,rep,name=event_filters,json=eventFilters,proto3" json:"event_filters,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *EventFilters) Reset() {
	*x = EventFilters{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*EventFilters) ProtoMessage() {}

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

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

func (x *EventFilters) GetEventFilters() []*EventFilter {
	if x != nil {
		return x.EventFilters
	}
	return nil
}

// SetEventFiltersResponse represents the response for setting event filters.
type SetEventFiltersResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The updated list of event filters.
	EventFilters  []*EventFilter `protobuf:"bytes,1,rep,name=event_filters,json=eventFilters,proto3" json:"event_filters,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SetEventFiltersResponse) Reset() {
	*x = SetEventFiltersResponse{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*SetEventFiltersResponse) ProtoMessage() {}

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

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

func (x *SetEventFiltersResponse) GetEventFilters() []*EventFilter {
	if x != nil {
		return x.EventFilters
	}
	return nil
}

// EventFilter defines rules for filtering specific events in a changefeed.
// Used to skip or modify certain DML and DDL operations during replication.
//
// Reference: https://docs.pingcap.com/tidb/stable/ticdc-filter/#event-filter-rules
//
// Multiple event filters can be configured simultaneously. Each filter rule can:
// - Match specific tables using `table_matchers` (supports wildcards)
// - Ignore specific event types (DML/DDL) via `ignored_events`
// - Ignore DDL statements matching regex patterns via `ignored_sql_statements`
// - Filter DML events by column value expressions
//
// Important caveats:
//   - When TiDB updates a clustered index column, UPDATE is split into DELETE + INSERT.
//     TiCDC cannot identify these as UPDATE events, so update-specific filters may not apply.
//   - All tables matched by `table_matchers` must contain all columns referenced in
//     value expressions. Schema changes that remove required columns will cause the
//     replication task to fail.
type EventFilter struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Table name patterns to match (allow list). Uses the same syntax as TiCDC table filter.
	// Supports wildcards. Matches database name, so be careful with database-level DDLs.
	// Example: ["mydb.orders", "mydb.user_*", "test.*"]
	TableMatchers []string `protobuf:"bytes,1,rep,name=table_matchers,json=tableMatchers,proto3" json:"table_matchers,omitempty"`
	// Event types to ignore.
	//
	// DML events: "insert", "update", "delete", "all dml"
	// DDL events: "create schema", "drop schema", "create table", "drop table",
	//
	//	"rename table", "truncate table", "alter table", "add table partition",
	//	"drop table partition", "truncate table partition", "create view",
	//	"drop view", "modify schema charset and collate", "recover table",
	//	"rebase auto id", "modify table comment", "modify table charset and collate",
	//	"exchange table partition", "reorganize table partition", "alter table partitioning",
	//	"remove table partitioning", "add column", "drop column", "modify column",
	//	"set default value", "add primary key", "drop primary key", "rename index",
	//	"alter index visibility", "alter ttl info", "alter ttl remove", "multi schema change"
	//
	// Example: ["insert", "delete", "alter table"]
	IgnoredEvents []string `protobuf:"bytes,2,rep,name=ignored_events,json=ignoredEvents,proto3" json:"ignored_events,omitempty"`
	// SQL statement patterns to ignore (DDL only). Supports regular expressions.
	// Example: ["^drop", "add column"]
	IgnoredSqlStatements []string `protobuf:"bytes,3,rep,name=ignored_sql_statements,json=ignoredSqlStatements,proto3" json:"ignored_sql_statements,omitempty"`
	// Expression to filter INSERT events by column value.
	// Uses SQL expressions in default SQL mode.
	// All tables matched by `table_matchers` must contain all columns referenced.
	// Example: "status = 'deleted'"
	IgnoredInsertValueExpression string `protobuf:"bytes,4,opt,name=ignored_insert_value_expression,json=ignoredInsertValueExpression,proto3" json:"ignored_insert_value_expression,omitempty"`
	// Expression to filter UPDATE events by old column value (before update).
	// Uses SQL expressions in default SQL mode.
	// All tables matched by `table_matchers` must contain all columns referenced.
	// Example: "status = 'archived'"
	IgnoredUpdateOldValueExpression string `protobuf:"bytes,5,opt,name=ignored_update_old_value_expression,json=ignoredUpdateOldValueExpression,proto3" json:"ignored_update_old_value_expression,omitempty"`
	// Expression to filter UPDATE events by new column value (after update).
	// Uses SQL expressions in default SQL mode.
	// All tables matched by `table_matchers` must contain all columns referenced.
	// Example: "status = 'deleted'"
	IgnoredUpdateNewValueExpression string `protobuf:"bytes,6,opt,name=ignored_update_new_value_expression,json=ignoredUpdateNewValueExpression,proto3" json:"ignored_update_new_value_expression,omitempty"`
	// Expression to filter DELETE events by column value.
	// Uses SQL expressions in default SQL mode.
	// All tables matched by `table_matchers` must contain all columns referenced.
	// Example: "soft_delete = true"
	IgnoredDeleteValueExpression string `protobuf:"bytes,7,opt,name=ignored_delete_value_expression,json=ignoredDeleteValueExpression,proto3" json:"ignored_delete_value_expression,omitempty"`
	unknownFields                protoimpl.UnknownFields
	sizeCache                    protoimpl.SizeCache
}

func (x *EventFilter) Reset() {
	*x = EventFilter{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*EventFilter) ProtoMessage() {}

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

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

func (x *EventFilter) GetTableMatchers() []string {
	if x != nil {
		return x.TableMatchers
	}
	return nil
}

func (x *EventFilter) GetIgnoredEvents() []string {
	if x != nil {
		return x.IgnoredEvents
	}
	return nil
}

func (x *EventFilter) GetIgnoredSqlStatements() []string {
	if x != nil {
		return x.IgnoredSqlStatements
	}
	return nil
}

func (x *EventFilter) GetIgnoredInsertValueExpression() string {
	if x != nil {
		return x.IgnoredInsertValueExpression
	}
	return ""
}

func (x *EventFilter) GetIgnoredUpdateOldValueExpression() string {
	if x != nil {
		return x.IgnoredUpdateOldValueExpression
	}
	return ""
}

func (x *EventFilter) GetIgnoredUpdateNewValueExpression() string {
	if x != nil {
		return x.IgnoredUpdateNewValueExpression
	}
	return ""
}

func (x *EventFilter) GetIgnoredDeleteValueExpression() string {
	if x != nil {
		return x.IgnoredDeleteValueExpression
	}
	return ""
}

// SetEventFiltersRequest represents the request for setting event filters.
type SetEventFiltersRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The ID of the changefeed to set event filters for.
	// Example: "67890"
	// (-- api-linter: core::0141::forbidden-types=disabled --)
	ChangefeedId string `protobuf:"bytes,1,opt,name=changefeed_id,json=changefeedId,proto3" json:"changefeed_id,omitempty"`
	// The event filters to apply. Replaces existing filters entirely.
	EventFilters  []*EventFilter `protobuf:"bytes,2,rep,name=event_filters,json=eventFilters,proto3" json:"event_filters,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SetEventFiltersRequest) Reset() {
	*x = SetEventFiltersRequest{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*SetEventFiltersRequest) ProtoMessage() {}

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

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

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

func (x *SetEventFiltersRequest) GetEventFilters() []*EventFilter {
	if x != nil {
		return x.EventFilters
	}
	return nil
}

// CreateChangefeedRequest represents the request for creating a changefeed.
type CreateChangefeedRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The changefeed to create. All required fields must be set.
	Changefeed *Changefeed `protobuf:"bytes,1,opt,name=changefeed,proto3" json:"changefeed,omitempty"`
	// Whether to run dry-run validation only (parameter + connectivity checks) without creating a changefeed.
	// Example: true
	DryRun        bool `protobuf:"varint,2,opt,name=dry_run,json=dryRun,proto3" json:"dry_run,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CreateChangefeedRequest) Reset() {
	*x = CreateChangefeedRequest{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*CreateChangefeedRequest) ProtoMessage() {}

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

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

func (x *CreateChangefeedRequest) GetChangefeed() *Changefeed {
	if x != nil {
		return x.Changefeed
	}
	return nil
}

func (x *CreateChangefeedRequest) GetDryRun() bool {
	if x != nil {
		return x.DryRun
	}
	return false
}

// EditChangefeedDownstreamConfigRequest represents the request for updating a changefeed's downstream config.
type EditChangefeedDownstreamConfigRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The ID of the changefeed to update.
	// Example: "67890"
	ChangefeedId string `protobuf:"bytes,1,opt,name=changefeed_id,json=changefeedId,proto3" json:"changefeed_id,omitempty"`
	// Whether to run dry-run validation only (parameter + connectivity checks) without applying update.
	// Example: true
	DryRun bool `protobuf:"varint,2,opt,name=dry_run,json=dryRun,proto3" json:"dry_run,omitempty"`
	// Table filtering and event filter configuration.
	// This field is editable only when the changefeed is in PAUSED state.
	TableConfig *TableConfig `protobuf:"bytes,3,opt,name=table_config,json=tableConfig,proto3" json:"table_config,omitempty"`
	// The downstream type. Must match the existing downstream type (cannot be changed).
	// Example: KAFKA
	DownstreamType DownstreamType `protobuf:"varint,4,opt,name=downstream_type,json=downstreamType,proto3,enum=openapi.v1beta1.DownstreamType" json:"downstream_type,omitempty"`
	// Downstream configuration to update. Exactly one must be set based on downstream_type.
	//
	// Types that are valid to be assigned to DownstreamConfig:
	//
	//	*EditChangefeedDownstreamConfigRequest_Kafka
	//	*EditChangefeedDownstreamConfigRequest_Mysql
	//	*EditChangefeedDownstreamConfigRequest_S3
	//	*EditChangefeedDownstreamConfigRequest_Gcs
	//	*EditChangefeedDownstreamConfigRequest_AzureBlob
	DownstreamConfig isEditChangefeedDownstreamConfigRequest_DownstreamConfig `protobuf_oneof:"downstream_config"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *EditChangefeedDownstreamConfigRequest) Reset() {
	*x = EditChangefeedDownstreamConfigRequest{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*EditChangefeedDownstreamConfigRequest) ProtoMessage() {}

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

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

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

func (x *EditChangefeedDownstreamConfigRequest) GetDryRun() bool {
	if x != nil {
		return x.DryRun
	}
	return false
}

func (x *EditChangefeedDownstreamConfigRequest) GetTableConfig() *TableConfig {
	if x != nil {
		return x.TableConfig
	}
	return nil
}

func (x *EditChangefeedDownstreamConfigRequest) GetDownstreamType() DownstreamType {
	if x != nil {
		return x.DownstreamType
	}
	return DownstreamType_DOWNSTREAM_TYPE_UNSPECIFIED
}

func (x *EditChangefeedDownstreamConfigRequest) GetDownstreamConfig() isEditChangefeedDownstreamConfigRequest_DownstreamConfig {
	if x != nil {
		return x.DownstreamConfig
	}
	return nil
}

func (x *EditChangefeedDownstreamConfigRequest) GetKafka() *KafkaDownstreamConfig {
	if x != nil {
		if x, ok := x.DownstreamConfig.(*EditChangefeedDownstreamConfigRequest_Kafka); ok {
			return x.Kafka
		}
	}
	return nil
}

func (x *EditChangefeedDownstreamConfigRequest) GetMysql() *MySQLDownstreamConfig {
	if x != nil {
		if x, ok := x.DownstreamConfig.(*EditChangefeedDownstreamConfigRequest_Mysql); ok {
			return x.Mysql
		}
	}
	return nil
}

func (x *EditChangefeedDownstreamConfigRequest) GetS3() *S3DownstreamConfig {
	if x != nil {
		if x, ok := x.DownstreamConfig.(*EditChangefeedDownstreamConfigRequest_S3); ok {
			return x.S3
		}
	}
	return nil
}

func (x *EditChangefeedDownstreamConfigRequest) GetGcs() *GcsDownstreamConfig {
	if x != nil {
		if x, ok := x.DownstreamConfig.(*EditChangefeedDownstreamConfigRequest_Gcs); ok {
			return x.Gcs
		}
	}
	return nil
}

func (x *EditChangefeedDownstreamConfigRequest) GetAzureBlob() *AzureBlobDownstreamConfig {
	if x != nil {
		if x, ok := x.DownstreamConfig.(*EditChangefeedDownstreamConfigRequest_AzureBlob); ok {
			return x.AzureBlob
		}
	}
	return nil
}

type isEditChangefeedDownstreamConfigRequest_DownstreamConfig interface {
	isEditChangefeedDownstreamConfigRequest_DownstreamConfig()
}

type EditChangefeedDownstreamConfigRequest_Kafka struct {
	// Updated Kafka configuration.
	Kafka *KafkaDownstreamConfig `protobuf:"bytes,11,opt,name=kafka,proto3,oneof"`
}

type EditChangefeedDownstreamConfigRequest_Mysql struct {
	// Updated MySQL configuration.
	Mysql *MySQLDownstreamConfig `protobuf:"bytes,12,opt,name=mysql,proto3,oneof"`
}

type EditChangefeedDownstreamConfigRequest_S3 struct {
	// Updated S3 configuration.
	S3 *S3DownstreamConfig `protobuf:"bytes,13,opt,name=s3,proto3,oneof"`
}

type EditChangefeedDownstreamConfigRequest_Gcs struct {
	// Updated GCS configuration.
	Gcs *GcsDownstreamConfig `protobuf:"bytes,14,opt,name=gcs,proto3,oneof"`
}

type EditChangefeedDownstreamConfigRequest_AzureBlob struct {
	// Updated Azure Blob configuration.
	AzureBlob *AzureBlobDownstreamConfig `protobuf:"bytes,15,opt,name=azure_blob,json=azureBlob,proto3,oneof"`
}

func (*EditChangefeedDownstreamConfigRequest_Kafka) isEditChangefeedDownstreamConfigRequest_DownstreamConfig() {
}

func (*EditChangefeedDownstreamConfigRequest_Mysql) isEditChangefeedDownstreamConfigRequest_DownstreamConfig() {
}

func (*EditChangefeedDownstreamConfigRequest_S3) isEditChangefeedDownstreamConfigRequest_DownstreamConfig() {
}

func (*EditChangefeedDownstreamConfigRequest_Gcs) isEditChangefeedDownstreamConfigRequest_DownstreamConfig() {
}

func (*EditChangefeedDownstreamConfigRequest_AzureBlob) isEditChangefeedDownstreamConfigRequest_DownstreamConfig() {
}

// DeleteChangefeedRequest represents the request for deleting a changefeed.
type DeleteChangefeedRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The ID of the changefeed to delete.
	// Example: "67890"
	ChangefeedId  string `protobuf:"bytes,1,opt,name=changefeed_id,json=changefeedId,proto3" json:"changefeed_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteChangefeedRequest) Reset() {
	*x = DeleteChangefeedRequest{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[15]
	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_openapi_v1beta1_changefeed_proto_msgTypes[15]
	if 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_openapi_v1beta1_changefeed_proto_rawDescGZIP(), []int{15}
}

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

// ScaleChangefeedRequest represents the request for scaling a changefeed.
type ScaleChangefeedRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The ID of the changefeed to scale.
	// Example: "67890"
	ChangefeedId string `protobuf:"bytes,1,opt,name=changefeed_id,json=changefeedId,proto3" json:"changefeed_id,omitempty"`
	// The target replication capacity to scale to.
	// Example: "8rcu"
	ReplicationCapacity string `protobuf:"bytes,2,opt,name=replication_capacity,json=replicationCapacity,proto3" json:"replication_capacity,omitempty"`
	unknownFields       protoimpl.UnknownFields
	sizeCache           protoimpl.SizeCache
}

func (x *ScaleChangefeedRequest) Reset() {
	*x = ScaleChangefeedRequest{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[16]
	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_openapi_v1beta1_changefeed_proto_msgTypes[16]
	if 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_openapi_v1beta1_changefeed_proto_rawDescGZIP(), []int{16}
}

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

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

// TestConnectionRequest represents the request for testing a downstream connection.
type TestConnectionRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The source cluster ID to test connection from.
	// Example: "1234567890123"
	ClusterId string `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// Network configuration for connecting to the downstream.
	// Required for Kafka, MySQL, and Pulsar downstream types.
	NetworkInfo *NetworkInfo `protobuf:"bytes,2,opt,name=network_info,json=networkInfo,proto3,oneof" json:"network_info,omitempty"`
	// The downstream type to test.
	// Example: KAFKA
	DownstreamType DownstreamType `protobuf:"varint,3,opt,name=downstream_type,json=downstreamType,proto3,enum=openapi.v1beta1.DownstreamType" json:"downstream_type,omitempty"`
	// Downstream configuration to test. Exactly one must be set based on downstream_type.
	//
	// Types that are valid to be assigned to DownstreamConfig:
	//
	//	*TestConnectionRequest_Kafka
	//	*TestConnectionRequest_Mysql
	//	*TestConnectionRequest_S3
	//	*TestConnectionRequest_Gcs
	//	*TestConnectionRequest_AzureBlob
	DownstreamConfig isTestConnectionRequest_DownstreamConfig `protobuf_oneof:"downstream_config"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *TestConnectionRequest) Reset() {
	*x = TestConnectionRequest{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestConnectionRequest) ProtoMessage() {}

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

// Deprecated: Use TestConnectionRequest.ProtoReflect.Descriptor instead.
func (*TestConnectionRequest) Descriptor() ([]byte, []int) {
	return file_openapi_v1beta1_changefeed_proto_rawDescGZIP(), []int{17}
}

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

func (x *TestConnectionRequest) GetNetworkInfo() *NetworkInfo {
	if x != nil {
		return x.NetworkInfo
	}
	return nil
}

func (x *TestConnectionRequest) GetDownstreamType() DownstreamType {
	if x != nil {
		return x.DownstreamType
	}
	return DownstreamType_DOWNSTREAM_TYPE_UNSPECIFIED
}

func (x *TestConnectionRequest) GetDownstreamConfig() isTestConnectionRequest_DownstreamConfig {
	if x != nil {
		return x.DownstreamConfig
	}
	return nil
}

func (x *TestConnectionRequest) GetKafka() *KafkaDownstreamConfig {
	if x != nil {
		if x, ok := x.DownstreamConfig.(*TestConnectionRequest_Kafka); ok {
			return x.Kafka
		}
	}
	return nil
}

func (x *TestConnectionRequest) GetMysql() *MySQLDownstreamConfig {
	if x != nil {
		if x, ok := x.DownstreamConfig.(*TestConnectionRequest_Mysql); ok {
			return x.Mysql
		}
	}
	return nil
}

func (x *TestConnectionRequest) GetS3() *S3DownstreamConfig {
	if x != nil {
		if x, ok := x.DownstreamConfig.(*TestConnectionRequest_S3); ok {
			return x.S3
		}
	}
	return nil
}

func (x *TestConnectionRequest) GetGcs() *GcsDownstreamConfig {
	if x != nil {
		if x, ok := x.DownstreamConfig.(*TestConnectionRequest_Gcs); ok {
			return x.Gcs
		}
	}
	return nil
}

func (x *TestConnectionRequest) GetAzureBlob() *AzureBlobDownstreamConfig {
	if x != nil {
		if x, ok := x.DownstreamConfig.(*TestConnectionRequest_AzureBlob); ok {
			return x.AzureBlob
		}
	}
	return nil
}

type isTestConnectionRequest_DownstreamConfig interface {
	isTestConnectionRequest_DownstreamConfig()
}

type TestConnectionRequest_Kafka struct {
	// Kafka configuration to test.
	Kafka *KafkaDownstreamConfig `protobuf:"bytes,10,opt,name=kafka,proto3,oneof"`
}

type TestConnectionRequest_Mysql struct {
	// MySQL configuration to test.
	Mysql *MySQLDownstreamConfig `protobuf:"bytes,11,opt,name=mysql,proto3,oneof"`
}

type TestConnectionRequest_S3 struct {
	// S3 configuration to test.
	S3 *S3DownstreamConfig `protobuf:"bytes,12,opt,name=s3,proto3,oneof"`
}

type TestConnectionRequest_Gcs struct {
	// GCS configuration to test.
	Gcs *GcsDownstreamConfig `protobuf:"bytes,13,opt,name=gcs,proto3,oneof"`
}

type TestConnectionRequest_AzureBlob struct {
	// Azure Blob configuration to test.
	AzureBlob *AzureBlobDownstreamConfig `protobuf:"bytes,14,opt,name=azure_blob,json=azureBlob,proto3,oneof"`
}

func (*TestConnectionRequest_Kafka) isTestConnectionRequest_DownstreamConfig() {}

func (*TestConnectionRequest_Mysql) isTestConnectionRequest_DownstreamConfig() {}

func (*TestConnectionRequest_S3) isTestConnectionRequest_DownstreamConfig() {}

func (*TestConnectionRequest_Gcs) isTestConnectionRequest_DownstreamConfig() {}

func (*TestConnectionRequest_AzureBlob) isTestConnectionRequest_DownstreamConfig() {}

// DescribeSchemaTableRequest represents the request for describing schema/table information.
type DescribeSchemaTableRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The source cluster ID to describe schemas/tables from.
	// Example: "1234567890123"
	ClusterId string `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// Filter rules for schemas/tables (supports wildcards).
	// Example: ["mydb.*", "test.orders"]
	FilterRule []string `protobuf:"bytes,2,rep,name=filter_rule,json=filterRule,proto3" json:"filter_rule,omitempty"`
	// Whether to use case-sensitive matching for filter rules.
	// Default: false (case-insensitive).
	// Example: true
	CaseSensitive bool `protobuf:"varint,3,opt,name=case_sensitive,json=caseSensitive,proto3" json:"case_sensitive,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DescribeSchemaTableRequest) Reset() {
	*x = DescribeSchemaTableRequest{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[18]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*DescribeSchemaTableRequest) ProtoMessage() {}

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

// Deprecated: Use DescribeSchemaTableRequest.ProtoReflect.Descriptor instead.
func (*DescribeSchemaTableRequest) Descriptor() ([]byte, []int) {
	return file_openapi_v1beta1_changefeed_proto_rawDescGZIP(), []int{18}
}

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

func (x *DescribeSchemaTableRequest) GetFilterRule() []string {
	if x != nil {
		return x.FilterRule
	}
	return nil
}

func (x *DescribeSchemaTableRequest) GetCaseSensitive() bool {
	if x != nil {
		return x.CaseSensitive
	}
	return false
}

// DescribeSchemaTableResponse represents the response for schema/table information.
type DescribeSchemaTableResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The cluster ID.
	// Example: "1234567890123"
	ClusterId string `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// List of schemas and their tables.
	Schemas []*DescribeSchemaTableResponse_SchemaInfo `protobuf:"bytes,2,rep,name=schemas,proto3" json:"schemas,omitempty"`
	// GC (Garbage Collection) safe point timestamp.
	// Data before this timestamp may not be available for replication.
	// Example: "2026-06-08T09:00:00Z"
	GcSafePoint   *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=gc_safe_point,json=gcSafePoint,proto3" json:"gc_safe_point,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DescribeSchemaTableResponse) Reset() {
	*x = DescribeSchemaTableResponse{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[19]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*DescribeSchemaTableResponse) ProtoMessage() {}

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

// Deprecated: Use DescribeSchemaTableResponse.ProtoReflect.Descriptor instead.
func (*DescribeSchemaTableResponse) Descriptor() ([]byte, []int) {
	return file_openapi_v1beta1_changefeed_proto_rawDescGZIP(), []int{19}
}

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

func (x *DescribeSchemaTableResponse) GetSchemas() []*DescribeSchemaTableResponse_SchemaInfo {
	if x != nil {
		return x.Schemas
	}
	return nil
}

func (x *DescribeSchemaTableResponse) GetGcSafePoint() *timestamppb.Timestamp {
	if x != nil {
		return x.GcSafePoint
	}
	return nil
}

// ListChangefeedRCUsRequest represents the request for listing RCU options.
type ListChangefeedRCUsRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListChangefeedRCUsRequest) Reset() {
	*x = ListChangefeedRCUsRequest{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[20]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListChangefeedRCUsRequest) ProtoMessage() {}

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

// Deprecated: Use ListChangefeedRCUsRequest.ProtoReflect.Descriptor instead.
func (*ListChangefeedRCUsRequest) Descriptor() ([]byte, []int) {
	return file_openapi_v1beta1_changefeed_proto_rawDescGZIP(), []int{20}
}

// ListChangefeedRCUsResponse represents the response for listing RCU options.
type ListChangefeedRCUsResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The list of available RCU options.
	Rcus          []*ChangefeedRCU `protobuf:"bytes,1,rep,name=rcus,proto3" json:"rcus,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListChangefeedRCUsResponse) Reset() {
	*x = ListChangefeedRCUsResponse{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[21]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListChangefeedRCUsResponse) ProtoMessage() {}

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

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

func (x *ListChangefeedRCUsResponse) GetRcus() []*ChangefeedRCU {
	if x != nil {
		return x.Rcus
	}
	return nil
}

// ChangefeedRCU represents a changefeed RCU option.
type ChangefeedRCU struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The identifier of the RCU option.
	// Example: "4rcu"
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Human-readable display name.
	// Example: "4 RCU - Small"
	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// The number of RCU (Resource Capacity Units) allocated.
	// Example: 4
	RcuNum uint32 `protobuf:"varint,3,opt,name=rcu_num,json=rcuNum,proto3" json:"rcu_num,omitempty"`
	// The maximum rows per second this instance type can process.
	// Example: 5000
	RpsLimit      uint32 `protobuf:"varint,4,opt,name=rps_limit,json=rpsLimit,proto3" json:"rps_limit,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ChangefeedRCU) Reset() {
	*x = ChangefeedRCU{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[22]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ChangefeedRCU) ProtoMessage() {}

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

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

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

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

func (x *ChangefeedRCU) GetRcuNum() uint32 {
	if x != nil {
		return x.RcuNum
	}
	return 0
}

func (x *ChangefeedRCU) GetRpsLimit() uint32 {
	if x != nil {
		return x.RpsLimit
	}
	return 0
}

// TableConfig defines table filtering and event filter configuration.
type TableConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Filter rules for tables. Supports wildcards.
	// Example: ["mydb.orders", "mydb.user_*", "!mydb.secret_*"]
	FilterRules []string `protobuf:"bytes,1,rep,name=filter_rules,json=filterRules,proto3" json:"filter_rules,omitempty"`
	// Mode for handling unsupported tables.
	// Example: IGNORE_NOT_SUPPORT_TABLE
	Mode TableConfig_Mode `protobuf:"varint,2,opt,name=mode,proto3,enum=openapi.v1beta1.TableConfig_Mode" json:"mode,omitempty"`
	// Whether filter rules are case-sensitive.
	// Default: false.
	// Example: true
	CaseSensitive bool `protobuf:"varint,3,opt,name=case_sensitive,json=caseSensitive,proto3" json:"case_sensitive,omitempty"`
	// Event filter rules for fine-grained control.
	EventFilters  []*EventFilter `protobuf:"bytes,4,rep,name=event_filters,json=eventFilters,proto3" json:"event_filters,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TableConfig) Reset() {
	*x = TableConfig{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[23]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TableConfig) ProtoMessage() {}

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

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

func (x *TableConfig) GetFilterRules() []string {
	if x != nil {
		return x.FilterRules
	}
	return nil
}

func (x *TableConfig) GetMode() TableConfig_Mode {
	if x != nil {
		return x.Mode
	}
	return TableConfig_MODE_UNSPECIFIED
}

func (x *TableConfig) GetCaseSensitive() bool {
	if x != nil {
		return x.CaseSensitive
	}
	return false
}

func (x *TableConfig) GetEventFilters() []*EventFilter {
	if x != nil {
		return x.EventFilters
	}
	return nil
}

// StartPosition defines where the changefeed starts reading changes.
type StartPosition struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The start position mode.
	// Example: FROM_NOW
	Mode StartPosition_Mode `protobuf:"varint,1,opt,name=mode,proto3,enum=openapi.v1beta1.StartPosition_Mode" json:"mode,omitempty"`
	// Start position value. Exactly one must be set based on mode.
	//
	// Types that are valid to be assigned to Position:
	//
	//	*StartPosition_StartTso
	//	*StartPosition_StartTimestamp
	Position      isStartPosition_Position `protobuf_oneof:"position"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *StartPosition) Reset() {
	*x = StartPosition{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[24]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*StartPosition) ProtoMessage() {}

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

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

func (x *StartPosition) GetMode() StartPosition_Mode {
	if x != nil {
		return x.Mode
	}
	return StartPosition_MODE_UNSPECIFIED
}

func (x *StartPosition) GetPosition() isStartPosition_Position {
	if x != nil {
		return x.Position
	}
	return nil
}

func (x *StartPosition) GetStartTso() uint64 {
	if x != nil {
		if x, ok := x.Position.(*StartPosition_StartTso); ok {
			return x.StartTso
		}
	}
	return 0
}

func (x *StartPosition) GetStartTimestamp() string {
	if x != nil {
		if x, ok := x.Position.(*StartPosition_StartTimestamp); ok {
			return x.StartTimestamp
		}
	}
	return ""
}

type isStartPosition_Position interface {
	isStartPosition_Position()
}

type StartPosition_StartTso struct {
	// Start from a specific TSO. Used with FROM_TSO mode.
	// Example: 452348901234567890
	// (-- api-linter: core::0141::forbidden-types=disabled --)
	StartTso uint64 `protobuf:"varint,2,opt,name=start_tso,json=startTso,proto3,oneof"`
}

type StartPosition_StartTimestamp struct {
	// Start from a specific timestamp (RFC3339 format). Used with FROM_UTC mode.
	// Example: "2026-01-01T00:00:00Z"
	StartTimestamp string `protobuf:"bytes,3,opt,name=start_timestamp,json=startTimestamp,proto3,oneof"`
}

func (*StartPosition_StartTso) isStartPosition_Position() {}

func (*StartPosition_StartTimestamp) isStartPosition_Position() {}

// Connection defines the connection configuration for MySQL downstream.
type Connection struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Endpoint address (host:port).
	// Required for PUBLIC/VPC_PEERING networks.
	// Optional for PRIVATE_LINK, where the endpoint can be assembled server-side
	// from sink endpoint and ports.
	// Example: "mysql.example.com:3306"
	Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
	// Username for authentication.
	// Example: "cdc_user"
	Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`
	// Password for authentication.
	// Example: "********"
	// For edit requests, empty string means keeping the existing password.
	Password      string `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Connection) Reset() {
	*x = Connection{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[25]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Connection) ProtoMessage() {}

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

// Deprecated: Use Connection.ProtoReflect.Descriptor instead.
func (*Connection) Descriptor() ([]byte, []int) {
	return file_openapi_v1beta1_changefeed_proto_rawDescGZIP(), []int{25}
}

func (x *Connection) GetEndpoint() string {
	if x != nil {
		return x.Endpoint
	}
	return ""
}

func (x *Connection) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

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

// NetworkInfo defines the network configuration for connecting to downstream.
type NetworkInfo struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The network type to use.
	// Example: NETWORK_TYPE_PUBLIC
	NetworkType NetworkInfo_NetworkType `protobuf:"varint,1,opt,name=network_type,json=networkType,proto3,enum=openapi.v1beta1.NetworkInfo_NetworkType" json:"network_type,omitempty"`
	// The sink endpoint ID for VPC Peering or Private Link.
	// Required when network_type is VPC_PEERING or PRIVATE_LINK.
	// Example: 12345
	SinkEndpointId *uint64 `protobuf:"varint,2,opt,name=sink_endpoint_id,json=sinkEndpointId,proto3,oneof" json:"sink_endpoint_id,omitempty"`
	// The ports for private endpoint connectivity.
	// Required when network_type is PRIVATE_LINK.
	// The server uses these ports to construct broker endpoints as <sink_endpoint_address>:<port>.
	// Example: [9092]
	Ports         []uint32 `protobuf:"varint,4,rep,packed,name=ports,proto3" json:"ports,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *NetworkInfo) Reset() {
	*x = NetworkInfo{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[26]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*NetworkInfo) ProtoMessage() {}

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

// Deprecated: Use NetworkInfo.ProtoReflect.Descriptor instead.
func (*NetworkInfo) Descriptor() ([]byte, []int) {
	return file_openapi_v1beta1_changefeed_proto_rawDescGZIP(), []int{26}
}

func (x *NetworkInfo) GetNetworkType() NetworkInfo_NetworkType {
	if x != nil {
		return x.NetworkType
	}
	return NetworkInfo_NETWORK_TYPE_UNSPECIFIED
}

func (x *NetworkInfo) GetSinkEndpointId() uint64 {
	if x != nil && x.SinkEndpointId != nil {
		return *x.SinkEndpointId
	}
	return 0
}

func (x *NetworkInfo) GetPorts() []uint32 {
	if x != nil {
		return x.Ports
	}
	return nil
}

// KafkaDownstreamConfig defines the Kafka downstream configuration.
type KafkaDownstreamConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Broker connection configuration.
	Broker *KafkaDownstreamConfig_Broker `protobuf:"bytes,1,opt,name=broker,proto3" json:"broker,omitempty"`
	// Authentication configuration.
	Authentication *KafkaDownstreamConfig_Authentication `protobuf:"bytes,2,opt,name=authentication,proto3" json:"authentication,omitempty"`
	// Data format and serialization configuration.
	DataFormat *KafkaDownstreamConfig_DataFormat `protobuf:"bytes,3,opt,name=data_format,json=dataFormat,proto3" json:"data_format,omitempty"`
	// Topic and partition configuration.
	TopicPartitionConfig *KafkaDownstreamConfig_TopicPartitionConfig `protobuf:"bytes,4,opt,name=topic_partition_config,json=topicPartitionConfig,proto3" json:"topic_partition_config,omitempty"`
	// Column selector for filtering specific columns.
	ColumnSelectors []*KafkaDownstreamConfig_ColumnSelector `protobuf:"bytes,5,rep,name=column_selectors,json=columnSelectors,proto3" json:"column_selectors,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *KafkaDownstreamConfig) Reset() {
	*x = KafkaDownstreamConfig{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[27]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*KafkaDownstreamConfig) ProtoMessage() {}

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

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

func (x *KafkaDownstreamConfig) GetBroker() *KafkaDownstreamConfig_Broker {
	if x != nil {
		return x.Broker
	}
	return nil
}

func (x *KafkaDownstreamConfig) GetAuthentication() *KafkaDownstreamConfig_Authentication {
	if x != nil {
		return x.Authentication
	}
	return nil
}

func (x *KafkaDownstreamConfig) GetDataFormat() *KafkaDownstreamConfig_DataFormat {
	if x != nil {
		return x.DataFormat
	}
	return nil
}

func (x *KafkaDownstreamConfig) GetTopicPartitionConfig() *KafkaDownstreamConfig_TopicPartitionConfig {
	if x != nil {
		return x.TopicPartitionConfig
	}
	return nil
}

func (x *KafkaDownstreamConfig) GetColumnSelectors() []*KafkaDownstreamConfig_ColumnSelector {
	if x != nil {
		return x.ColumnSelectors
	}
	return nil
}

// MySQLDownstreamConfig defines the MySQL downstream configuration.
type MySQLDownstreamConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Connection configuration.
	Connection    *Connection `protobuf:"bytes,1,opt,name=connection,proto3" json:"connection,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *MySQLDownstreamConfig) Reset() {
	*x = MySQLDownstreamConfig{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[28]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*MySQLDownstreamConfig) ProtoMessage() {}

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

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

func (x *MySQLDownstreamConfig) GetConnection() *Connection {
	if x != nil {
		return x.Connection
	}
	return nil
}

// S3DataFormat defines the data format configuration for S3-compatible storage.
type S3DataFormat struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Output protocol.
	// Example: PROTOCOL_CANAL_JSON
	Protocol S3DataFormat_Protocol `protobuf:"varint,1,opt,name=protocol,proto3,enum=openapi.v1beta1.S3DataFormat_Protocol" json:"protocol,omitempty"`
	// Line terminator character.
	// Example: "\n"
	Terminator string `protobuf:"bytes,2,opt,name=terminator,proto3" json:"terminator,omitempty"`
	// Date separator for directory structure.
	// - NONE: No date separator (default).
	// - YEAR: Separate by year.
	// - MONTH: Separate by month.
	// - DAY: Separate by day.
	// Example: DAY
	DateSeparator S3DataFormat_DateSeparator `protobuf:"varint,3,opt,name=date_separator,json=dateSeparator,proto3,enum=openapi.v1beta1.S3DataFormat_DateSeparator" json:"date_separator,omitempty"`
	// Whether to include TiDB extension fields.
	// Example: true
	EnableTidbExtension bool `protobuf:"varint,4,opt,name=enable_tidb_extension,json=enableTidbExtension,proto3" json:"enable_tidb_extension,omitempty"`
	// CSV delimiter character.
	// Example: ","
	Delimiter string `protobuf:"bytes,5,opt,name=delimiter,proto3" json:"delimiter,omitempty"`
	// CSV quote character.
	// Example: "\""
	Quote string `protobuf:"bytes,6,opt,name=quote,proto3" json:"quote,omitempty"`
	// CSV null value representation.
	// Example: "NULL"
	Null string `protobuf:"bytes,7,opt,name=null,proto3" json:"null,omitempty"`
	// Whether to include commit timestamp in the output.
	// Example: true
	IncludeCommitTs bool `protobuf:"varint,8,opt,name=include_commit_ts,json=includeCommitTs,proto3" json:"include_commit_ts,omitempty"`
	// Binary encoding method.
	// Example: BASE64
	BinaryEncodingMethod S3DataFormat_BinaryEncodingMethod `protobuf:"varint,9,opt,name=binary_encoding_method,json=binaryEncodingMethod,proto3,enum=openapi.v1beta1.S3DataFormat_BinaryEncodingMethod" json:"binary_encoding_method,omitempty"`
	// Whether to output raw change events.
	// Example: false
	OutputRawChangeEvent bool `protobuf:"varint,10,opt,name=output_raw_change_event,json=outputRawChangeEvent,proto3" json:"output_raw_change_event,omitempty"`
	// Whether to output field headers.
	// Example: true
	OutputFieldHeader bool `protobuf:"varint,11,opt,name=output_field_header,json=outputFieldHeader,proto3" json:"output_field_header,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *S3DataFormat) Reset() {
	*x = S3DataFormat{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[29]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*S3DataFormat) ProtoMessage() {}

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

// Deprecated: Use S3DataFormat.ProtoReflect.Descriptor instead.
func (*S3DataFormat) Descriptor() ([]byte, []int) {
	return file_openapi_v1beta1_changefeed_proto_rawDescGZIP(), []int{29}
}

func (x *S3DataFormat) GetProtocol() S3DataFormat_Protocol {
	if x != nil {
		return x.Protocol
	}
	return S3DataFormat_PROTOCOL_UNSPECIFIED
}

func (x *S3DataFormat) GetTerminator() string {
	if x != nil {
		return x.Terminator
	}
	return ""
}

func (x *S3DataFormat) GetDateSeparator() S3DataFormat_DateSeparator {
	if x != nil {
		return x.DateSeparator
	}
	return S3DataFormat_DATE_SEPARATOR_UNSPECIFIED
}

func (x *S3DataFormat) GetEnableTidbExtension() bool {
	if x != nil {
		return x.EnableTidbExtension
	}
	return false
}

func (x *S3DataFormat) GetDelimiter() string {
	if x != nil {
		return x.Delimiter
	}
	return ""
}

func (x *S3DataFormat) GetQuote() string {
	if x != nil {
		return x.Quote
	}
	return ""
}

func (x *S3DataFormat) GetNull() string {
	if x != nil {
		return x.Null
	}
	return ""
}

func (x *S3DataFormat) GetIncludeCommitTs() bool {
	if x != nil {
		return x.IncludeCommitTs
	}
	return false
}

func (x *S3DataFormat) GetBinaryEncodingMethod() S3DataFormat_BinaryEncodingMethod {
	if x != nil {
		return x.BinaryEncodingMethod
	}
	return S3DataFormat_BINARY_ENCODING_METHOD_UNSPECIFIED
}

func (x *S3DataFormat) GetOutputRawChangeEvent() bool {
	if x != nil {
		return x.OutputRawChangeEvent
	}
	return false
}

func (x *S3DataFormat) GetOutputFieldHeader() bool {
	if x != nil {
		return x.OutputFieldHeader
	}
	return false
}

// StorageFlushConfig defines the storage flush configuration.
// Controls when data is flushed to the storage backend.
// Files are flushed when either interval or file_size threshold is met.
type StorageFlushConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Flush interval (duration string).
	// Range: 2s to 10m. Default: "1m".
	// Example: "1m"
	Interval string `protobuf:"bytes,1,opt,name=interval,proto3" json:"interval,omitempty"`
	// File size threshold in bytes. Data is flushed when this size is reached.
	// Range: 1048576 (1MB) to 536870912 (512MB). Default: 67108864 (64MB).
	// Example: 67108864
	FileSize      uint64 `protobuf:"varint,2,opt,name=file_size,json=fileSize,proto3" json:"file_size,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *StorageFlushConfig) Reset() {
	*x = StorageFlushConfig{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[30]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*StorageFlushConfig) ProtoMessage() {}

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

// Deprecated: Use StorageFlushConfig.ProtoReflect.Descriptor instead.
func (*StorageFlushConfig) Descriptor() ([]byte, []int) {
	return file_openapi_v1beta1_changefeed_proto_rawDescGZIP(), []int{30}
}

func (x *StorageFlushConfig) GetInterval() string {
	if x != nil {
		return x.Interval
	}
	return ""
}

func (x *StorageFlushConfig) GetFileSize() uint64 {
	if x != nil {
		return x.FileSize
	}
	return 0
}

// S3DownstreamConfig defines the S3 downstream configuration.
type S3DownstreamConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// S3 endpoint configuration.
	Endpoint *S3DownstreamConfig_Endpoint `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
	// Data format configuration.
	DataFormat *S3DataFormat `protobuf:"bytes,2,opt,name=data_format,json=dataFormat,proto3" json:"data_format,omitempty"`
	// Storage flush configuration.
	StorageFlushConfig *StorageFlushConfig `protobuf:"bytes,3,opt,name=storage_flush_config,json=storageFlushConfig,proto3" json:"storage_flush_config,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

func (x *S3DownstreamConfig) Reset() {
	*x = S3DownstreamConfig{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[31]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*S3DownstreamConfig) ProtoMessage() {}

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

// Deprecated: Use S3DownstreamConfig.ProtoReflect.Descriptor instead.
func (*S3DownstreamConfig) Descriptor() ([]byte, []int) {
	return file_openapi_v1beta1_changefeed_proto_rawDescGZIP(), []int{31}
}

func (x *S3DownstreamConfig) GetEndpoint() *S3DownstreamConfig_Endpoint {
	if x != nil {
		return x.Endpoint
	}
	return nil
}

func (x *S3DownstreamConfig) GetDataFormat() *S3DataFormat {
	if x != nil {
		return x.DataFormat
	}
	return nil
}

func (x *S3DownstreamConfig) GetStorageFlushConfig() *StorageFlushConfig {
	if x != nil {
		return x.StorageFlushConfig
	}
	return nil
}

// GcsDownstreamConfig defines the GCS downstream configuration.
type GcsDownstreamConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// GCS endpoint configuration.
	Endpoint *GcsDownstreamConfig_Endpoint `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
	// Data format configuration (reuses S3 data format).
	DataFormat *S3DataFormat `protobuf:"bytes,2,opt,name=data_format,json=dataFormat,proto3" json:"data_format,omitempty"`
	// Storage flush configuration.
	StorageFlushConfig *StorageFlushConfig `protobuf:"bytes,3,opt,name=storage_flush_config,json=storageFlushConfig,proto3" json:"storage_flush_config,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

func (x *GcsDownstreamConfig) Reset() {
	*x = GcsDownstreamConfig{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[32]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*GcsDownstreamConfig) ProtoMessage() {}

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

// Deprecated: Use GcsDownstreamConfig.ProtoReflect.Descriptor instead.
func (*GcsDownstreamConfig) Descriptor() ([]byte, []int) {
	return file_openapi_v1beta1_changefeed_proto_rawDescGZIP(), []int{32}
}

func (x *GcsDownstreamConfig) GetEndpoint() *GcsDownstreamConfig_Endpoint {
	if x != nil {
		return x.Endpoint
	}
	return nil
}

func (x *GcsDownstreamConfig) GetDataFormat() *S3DataFormat {
	if x != nil {
		return x.DataFormat
	}
	return nil
}

func (x *GcsDownstreamConfig) GetStorageFlushConfig() *StorageFlushConfig {
	if x != nil {
		return x.StorageFlushConfig
	}
	return nil
}

// AzureBlobDownstreamConfig defines the Azure Blob downstream configuration.
type AzureBlobDownstreamConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Azure Blob endpoint configuration.
	Endpoint *AzureBlobDownstreamConfig_Endpoint `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
	// Data format configuration (reuses S3 data format).
	DataFormat *S3DataFormat `protobuf:"bytes,2,opt,name=data_format,json=dataFormat,proto3" json:"data_format,omitempty"`
	// Storage flush configuration.
	StorageFlushConfig *StorageFlushConfig `protobuf:"bytes,3,opt,name=storage_flush_config,json=storageFlushConfig,proto3" json:"storage_flush_config,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

func (x *AzureBlobDownstreamConfig) Reset() {
	*x = AzureBlobDownstreamConfig{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[33]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*AzureBlobDownstreamConfig) ProtoMessage() {}

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

// Deprecated: Use AzureBlobDownstreamConfig.ProtoReflect.Descriptor instead.
func (*AzureBlobDownstreamConfig) Descriptor() ([]byte, []int) {
	return file_openapi_v1beta1_changefeed_proto_rawDescGZIP(), []int{33}
}

func (x *AzureBlobDownstreamConfig) GetEndpoint() *AzureBlobDownstreamConfig_Endpoint {
	if x != nil {
		return x.Endpoint
	}
	return nil
}

func (x *AzureBlobDownstreamConfig) GetDataFormat() *S3DataFormat {
	if x != nil {
		return x.DataFormat
	}
	return nil
}

func (x *AzureBlobDownstreamConfig) GetStorageFlushConfig() *StorageFlushConfig {
	if x != nil {
		return x.StorageFlushConfig
	}
	return nil
}

// SchemaInfo represents a schema and its tables.
type DescribeSchemaTableResponse_SchemaInfo struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The schema (database) name.
	// Example: "mydb"
	SchemaName string `protobuf:"bytes,1,opt,name=schema_name,json=schemaName,proto3" json:"schema_name,omitempty"`
	// List of table names in this schema.
	// Example: ["orders", "users", "products"]
	TableNames []string `protobuf:"bytes,2,rep,name=table_names,json=tableNames,proto3" json:"table_names,omitempty"`
	// Whether this schema/table matches the filter rules and is allowed for replication.
	// Example: true
	Allowed       bool `protobuf:"varint,3,opt,name=allowed,proto3" json:"allowed,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DescribeSchemaTableResponse_SchemaInfo) Reset() {
	*x = DescribeSchemaTableResponse_SchemaInfo{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[34]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*DescribeSchemaTableResponse_SchemaInfo) ProtoMessage() {}

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

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

func (x *DescribeSchemaTableResponse_SchemaInfo) GetSchemaName() string {
	if x != nil {
		return x.SchemaName
	}
	return ""
}

func (x *DescribeSchemaTableResponse_SchemaInfo) GetTableNames() []string {
	if x != nil {
		return x.TableNames
	}
	return nil
}

func (x *DescribeSchemaTableResponse_SchemaInfo) GetAllowed() bool {
	if x != nil {
		return x.Allowed
	}
	return false
}

// Broker defines the Kafka broker connection configuration.
type KafkaDownstreamConfig_Broker struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Kafka broker version.
	// Example: KAFKA_VERSION_3XX
	Version KafkaDownstreamConfig_KafkaVersion `protobuf:"varint,1,opt,name=version,proto3,enum=openapi.v1beta1.KafkaDownstreamConfig_KafkaVersion" json:"version,omitempty"`
	// Comma-separated list of broker addresses.
	// Required for PUBLIC and VPC_PEERING network types.
	// Not required for PRIVATE_LINK, where broker endpoints are assembled
	// server-side from sink_endpoint_id + ports.
	// Example: "broker1:9092,broker2:9092,broker3:9092"
	BrokerEndpoints string `protobuf:"bytes,2,opt,name=broker_endpoints,json=brokerEndpoints,proto3" json:"broker_endpoints,omitempty"`
	// Whether to enable TLS for the connection.
	// Example: true
	UseTls bool `protobuf:"varint,3,opt,name=use_tls,json=useTls,proto3" json:"use_tls,omitempty"`
	// Whether to skip TLS certificate verification.
	// WARNING: Only use for testing with self-signed certificates.
	// Example: false
	InsecureSkipVerify bool `protobuf:"varint,4,opt,name=insecure_skip_verify,json=insecureSkipVerify,proto3" json:"insecure_skip_verify,omitempty"`
	// Compression type for messages.
	// Example: LZ4
	Compression KafkaDownstreamConfig_CompressionType `protobuf:"varint,5,opt,name=compression,proto3,enum=openapi.v1beta1.KafkaDownstreamConfig_CompressionType" json:"compression,omitempty"`
	// Optional Kafka client ID. When left empty it is not passed to the TiCDC
	// kernel and the kernel keeps its own default. When set, it is forwarded to
	// the kernel via the sink URI `kafka-client-id` parameter.
	// Example: "my-changefeed-client"
	KafkaClientId string `protobuf:"bytes,6,opt,name=kafka_client_id,json=kafkaClientId,proto3" json:"kafka_client_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *KafkaDownstreamConfig_Broker) Reset() {
	*x = KafkaDownstreamConfig_Broker{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[35]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*KafkaDownstreamConfig_Broker) ProtoMessage() {}

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

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

func (x *KafkaDownstreamConfig_Broker) GetVersion() KafkaDownstreamConfig_KafkaVersion {
	if x != nil {
		return x.Version
	}
	return KafkaDownstreamConfig_KAFKA_VERSION_UNSPECIFIED
}

func (x *KafkaDownstreamConfig_Broker) GetBrokerEndpoints() string {
	if x != nil {
		return x.BrokerEndpoints
	}
	return ""
}

func (x *KafkaDownstreamConfig_Broker) GetUseTls() bool {
	if x != nil {
		return x.UseTls
	}
	return false
}

func (x *KafkaDownstreamConfig_Broker) GetInsecureSkipVerify() bool {
	if x != nil {
		return x.InsecureSkipVerify
	}
	return false
}

func (x *KafkaDownstreamConfig_Broker) GetCompression() KafkaDownstreamConfig_CompressionType {
	if x != nil {
		return x.Compression
	}
	return KafkaDownstreamConfig_COMPRESSION_TYPE_UNSPECIFIED
}

func (x *KafkaDownstreamConfig_Broker) GetKafkaClientId() string {
	if x != nil {
		return x.KafkaClientId
	}
	return ""
}

// Authentication defines the Kafka authentication configuration.
type KafkaDownstreamConfig_Authentication struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Authentication type.
	// Example: SASL_SCRAM_SHA_256
	AuthType KafkaDownstreamConfig_Authentication_AuthType `protobuf:"varint,1,opt,name=auth_type,json=authType,proto3,enum=openapi.v1beta1.KafkaDownstreamConfig_Authentication_AuthType" json:"auth_type,omitempty"`
	// Username for SASL authentication.
	// Example: "kafka_user"
	Username *string `protobuf:"bytes,2,opt,name=username,proto3,oneof" json:"username,omitempty"`
	// Password for SASL authentication.
	// Example: "********"
	Password      *string `protobuf:"bytes,3,opt,name=password,proto3,oneof" json:"password,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *KafkaDownstreamConfig_Authentication) Reset() {
	*x = KafkaDownstreamConfig_Authentication{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[36]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*KafkaDownstreamConfig_Authentication) ProtoMessage() {}

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

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

func (x *KafkaDownstreamConfig_Authentication) GetAuthType() KafkaDownstreamConfig_Authentication_AuthType {
	if x != nil {
		return x.AuthType
	}
	return KafkaDownstreamConfig_Authentication_AUTH_TYPE_UNSPECIFIED
}

func (x *KafkaDownstreamConfig_Authentication) GetUsername() string {
	if x != nil && x.Username != nil {
		return *x.Username
	}
	return ""
}

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

// DataFormat defines the message format and serialization configuration.
type KafkaDownstreamConfig_DataFormat struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Output protocol for changefeed messages.
	// Example: PROTOCOL_CANAL_JSON
	Protocol KafkaDownstreamConfig_DataFormat_Protocol `protobuf:"varint,1,opt,name=protocol,proto3,enum=openapi.v1beta1.KafkaDownstreamConfig_DataFormat_Protocol" json:"protocol,omitempty"`
	// Protocol-specific configuration. Exactly one must be set based on protocol.
	//
	// Types that are valid to be assigned to Config:
	//
	//	*KafkaDownstreamConfig_DataFormat_DebeziumConfig_
	//	*KafkaDownstreamConfig_DataFormat_AvroConfig_
	Config isKafkaDownstreamConfig_DataFormat_Config `protobuf_oneof:"config"`
	// Whether to include TiDB extension fields in the output.
	// Example: true
	EnableTidbExtension bool `protobuf:"varint,6,opt,name=enable_tidb_extension,json=enableTidbExtension,proto3" json:"enable_tidb_extension,omitempty"`
	// Whether to output raw change events without transformation.
	// Example: false
	OutputRawChangeEvent bool `protobuf:"varint,7,opt,name=output_raw_change_event,json=outputRawChangeEvent,proto3" json:"output_raw_change_event,omitempty"`
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

func (x *KafkaDownstreamConfig_DataFormat) Reset() {
	*x = KafkaDownstreamConfig_DataFormat{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[37]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*KafkaDownstreamConfig_DataFormat) ProtoMessage() {}

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

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

func (x *KafkaDownstreamConfig_DataFormat) GetProtocol() KafkaDownstreamConfig_DataFormat_Protocol {
	if x != nil {
		return x.Protocol
	}
	return KafkaDownstreamConfig_DataFormat_PROTOCOL_UNSPECIFIED
}

func (x *KafkaDownstreamConfig_DataFormat) GetConfig() isKafkaDownstreamConfig_DataFormat_Config {
	if x != nil {
		return x.Config
	}
	return nil
}

func (x *KafkaDownstreamConfig_DataFormat) GetDebeziumConfig() *KafkaDownstreamConfig_DataFormat_DebeziumConfig {
	if x != nil {
		if x, ok := x.Config.(*KafkaDownstreamConfig_DataFormat_DebeziumConfig_); ok {
			return x.DebeziumConfig
		}
	}
	return nil
}

func (x *KafkaDownstreamConfig_DataFormat) GetAvroConfig() *KafkaDownstreamConfig_DataFormat_AvroConfig {
	if x != nil {
		if x, ok := x.Config.(*KafkaDownstreamConfig_DataFormat_AvroConfig_); ok {
			return x.AvroConfig
		}
	}
	return nil
}

func (x *KafkaDownstreamConfig_DataFormat) GetEnableTidbExtension() bool {
	if x != nil {
		return x.EnableTidbExtension
	}
	return false
}

func (x *KafkaDownstreamConfig_DataFormat) GetOutputRawChangeEvent() bool {
	if x != nil {
		return x.OutputRawChangeEvent
	}
	return false
}

type isKafkaDownstreamConfig_DataFormat_Config interface {
	isKafkaDownstreamConfig_DataFormat_Config()
}

type KafkaDownstreamConfig_DataFormat_DebeziumConfig_ struct {
	// Debezium-specific configuration.
	DebeziumConfig *KafkaDownstreamConfig_DataFormat_DebeziumConfig `protobuf:"bytes,2,opt,name=debezium_config,json=debeziumConfig,proto3,oneof"`
}

type KafkaDownstreamConfig_DataFormat_AvroConfig_ struct {
	// Avro-specific configuration.
	AvroConfig *KafkaDownstreamConfig_DataFormat_AvroConfig `protobuf:"bytes,3,opt,name=avro_config,json=avroConfig,proto3,oneof"`
}

func (*KafkaDownstreamConfig_DataFormat_DebeziumConfig_) isKafkaDownstreamConfig_DataFormat_Config() {
}

func (*KafkaDownstreamConfig_DataFormat_AvroConfig_) isKafkaDownstreamConfig_DataFormat_Config() {}

// TopicPartitionConfig defines topic and partition configuration.
type KafkaDownstreamConfig_TopicPartitionConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// How to dispatch messages to topics.
	// Example: DISPATCH_TYPE_BY_TABLE
	DispatchType KafkaDownstreamConfig_TopicPartitionConfig_DispatchType `protobuf:"varint,1,opt,name=dispatch_type,json=dispatchType,proto3,enum=openapi.v1beta1.KafkaDownstreamConfig_TopicPartitionConfig_DispatchType" json:"dispatch_type,omitempty"`
	// Default topic name (used with DISPATCH_TYPE_ONE_TOPIC).
	// Example: "cdc-events"
	DefaultTopic string `protobuf:"bytes,2,opt,name=default_topic,json=defaultTopic,proto3" json:"default_topic,omitempty"`
	// Topic prefix (used with DISPATCH_TYPE_BY_TABLE or DISPATCH_TYPE_BY_DATABASE).
	// Example: "cdc-"
	TopicPrefix *string `protobuf:"bytes,3,opt,name=topic_prefix,json=topicPrefix,proto3,oneof" json:"topic_prefix,omitempty"`
	// Separator between prefix and table/database name.
	// Example: "."
	Separator *string `protobuf:"bytes,4,opt,name=separator,proto3,oneof" json:"separator,omitempty"`
	// Topic suffix.
	// Example: "-v1"
	TopicSuffix *string `protobuf:"bytes,5,opt,name=topic_suffix,json=topicSuffix,proto3,oneof" json:"topic_suffix,omitempty"`
	// Replication factor for auto-created topics.
	// Example: 3
	ReplicationFactor uint32 `protobuf:"varint,6,opt,name=replication_factor,json=replicationFactor,proto3" json:"replication_factor,omitempty"`
	// Number of partitions for auto-created topics.
	// Example: 6
	PartitionNum uint32 `protobuf:"varint,7,opt,name=partition_num,json=partitionNum,proto3" json:"partition_num,omitempty"`
	// Custom partition dispatcher configurations.
	PartitionDispatchers []*KafkaDownstreamConfig_TopicPartitionConfig_PartitionDispatcherConfig `protobuf:"bytes,9,rep,name=partition_dispatchers,json=partitionDispatchers,proto3" json:"partition_dispatchers,omitempty"`
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

func (x *KafkaDownstreamConfig_TopicPartitionConfig) Reset() {
	*x = KafkaDownstreamConfig_TopicPartitionConfig{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[38]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*KafkaDownstreamConfig_TopicPartitionConfig) ProtoMessage() {}

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

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

func (x *KafkaDownstreamConfig_TopicPartitionConfig) GetDispatchType() KafkaDownstreamConfig_TopicPartitionConfig_DispatchType {
	if x != nil {
		return x.DispatchType
	}
	return KafkaDownstreamConfig_TopicPartitionConfig_DISPATCH_TYPE_UNSPECIFIED
}

func (x *KafkaDownstreamConfig_TopicPartitionConfig) GetDefaultTopic() string {
	if x != nil {
		return x.DefaultTopic
	}
	return ""
}

func (x *KafkaDownstreamConfig_TopicPartitionConfig) GetTopicPrefix() string {
	if x != nil && x.TopicPrefix != nil {
		return *x.TopicPrefix
	}
	return ""
}

func (x *KafkaDownstreamConfig_TopicPartitionConfig) GetSeparator() string {
	if x != nil && x.Separator != nil {
		return *x.Separator
	}
	return ""
}

func (x *KafkaDownstreamConfig_TopicPartitionConfig) GetTopicSuffix() string {
	if x != nil && x.TopicSuffix != nil {
		return *x.TopicSuffix
	}
	return ""
}

func (x *KafkaDownstreamConfig_TopicPartitionConfig) GetReplicationFactor() uint32 {
	if x != nil {
		return x.ReplicationFactor
	}
	return 0
}

func (x *KafkaDownstreamConfig_TopicPartitionConfig) GetPartitionNum() uint32 {
	if x != nil {
		return x.PartitionNum
	}
	return 0
}

func (x *KafkaDownstreamConfig_TopicPartitionConfig) GetPartitionDispatchers() []*KafkaDownstreamConfig_TopicPartitionConfig_PartitionDispatcherConfig {
	if x != nil {
		return x.PartitionDispatchers
	}
	return nil
}

// ColumnSelector defines column filtering for specific tables.
type KafkaDownstreamConfig_ColumnSelector struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Table name patterns to match.
	// Example: ["mydb.orders", "mydb.user_*"]
	Matcher []string `protobuf:"bytes,1,rep,name=matcher,proto3" json:"matcher,omitempty"`
	// Columns to include in the output.
	// Example: ["id", "name", "status"]
	Columns       []string `protobuf:"bytes,2,rep,name=columns,proto3" json:"columns,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *KafkaDownstreamConfig_ColumnSelector) Reset() {
	*x = KafkaDownstreamConfig_ColumnSelector{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[39]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*KafkaDownstreamConfig_ColumnSelector) ProtoMessage() {}

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

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

func (x *KafkaDownstreamConfig_ColumnSelector) GetMatcher() []string {
	if x != nil {
		return x.Matcher
	}
	return nil
}

func (x *KafkaDownstreamConfig_ColumnSelector) GetColumns() []string {
	if x != nil {
		return x.Columns
	}
	return nil
}

// AvroConfig defines Avro-specific configuration.
type KafkaDownstreamConfig_DataFormat_AvroConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// How to handle decimal values.
	// Example: DECIMAL_HANDLING_MODE_PRECISE
	DecimalHandlingMode KafkaDownstreamConfig_DataFormat_AvroConfig_DecimalHandlingMode `protobuf:"varint,3,opt,name=decimal_handling_mode,json=decimalHandlingMode,proto3,enum=openapi.v1beta1.KafkaDownstreamConfig_DataFormat_AvroConfig_DecimalHandlingMode" json:"decimal_handling_mode,omitempty"`
	// How to handle BIGINT UNSIGNED values.
	// Example: BIGINT_UNSIGNED_HANDLING_MODE_STRING
	BigintUnsignedHandlingMode KafkaDownstreamConfig_DataFormat_AvroConfig_BigintUnsignedHandlingMode `protobuf:"varint,4,opt,name=bigint_unsigned_handling_mode,json=bigintUnsignedHandlingMode,proto3,enum=openapi.v1beta1.KafkaDownstreamConfig_DataFormat_AvroConfig_BigintUnsignedHandlingMode" json:"bigint_unsigned_handling_mode,omitempty"`
	// Schema Registry configuration.
	SchemaRegistry *KafkaDownstreamConfig_DataFormat_AvroConfig_SchemaRegistry `protobuf:"bytes,5,opt,name=schema_registry,json=schemaRegistry,proto3" json:"schema_registry,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

func (x *KafkaDownstreamConfig_DataFormat_AvroConfig) Reset() {
	*x = KafkaDownstreamConfig_DataFormat_AvroConfig{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[40]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*KafkaDownstreamConfig_DataFormat_AvroConfig) ProtoMessage() {}

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

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

func (x *KafkaDownstreamConfig_DataFormat_AvroConfig) GetDecimalHandlingMode() KafkaDownstreamConfig_DataFormat_AvroConfig_DecimalHandlingMode {
	if x != nil {
		return x.DecimalHandlingMode
	}
	return KafkaDownstreamConfig_DataFormat_AvroConfig_DECIMAL_HANDLING_MODE_UNSPECIFIED
}

func (x *KafkaDownstreamConfig_DataFormat_AvroConfig) GetBigintUnsignedHandlingMode() KafkaDownstreamConfig_DataFormat_AvroConfig_BigintUnsignedHandlingMode {
	if x != nil {
		return x.BigintUnsignedHandlingMode
	}
	return KafkaDownstreamConfig_DataFormat_AvroConfig_BIGINT_UNSIGNED_HANDLING_MODE_LONG
}

func (x *KafkaDownstreamConfig_DataFormat_AvroConfig) GetSchemaRegistry() *KafkaDownstreamConfig_DataFormat_AvroConfig_SchemaRegistry {
	if x != nil {
		return x.SchemaRegistry
	}
	return nil
}

// DebeziumConfig defines Debezium-specific configuration.
type KafkaDownstreamConfig_DataFormat_DebeziumConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Whether to include the old value (before update) in the output.
	// Example: true
	OutputOldValue bool `protobuf:"varint,1,opt,name=output_old_value,json=outputOldValue,proto3" json:"output_old_value,omitempty"`
	// Whether to disable schema in the output.
	// Example: false
	DisableSchema bool `protobuf:"varint,2,opt,name=disable_schema,json=disableSchema,proto3" json:"disable_schema,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *KafkaDownstreamConfig_DataFormat_DebeziumConfig) Reset() {
	*x = KafkaDownstreamConfig_DataFormat_DebeziumConfig{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[41]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*KafkaDownstreamConfig_DataFormat_DebeziumConfig) ProtoMessage() {}

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

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

func (x *KafkaDownstreamConfig_DataFormat_DebeziumConfig) GetOutputOldValue() bool {
	if x != nil {
		return x.OutputOldValue
	}
	return false
}

func (x *KafkaDownstreamConfig_DataFormat_DebeziumConfig) GetDisableSchema() bool {
	if x != nil {
		return x.DisableSchema
	}
	return false
}

// SchemaRegistry defines the Schema Registry connection configuration.
type KafkaDownstreamConfig_DataFormat_AvroConfig_SchemaRegistry struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Comma-separated list of Schema Registry endpoints.
	// Required for Confluent Schema Registry.
	// Example: "http://schema-registry:8081"
	SchemaRegistryEndpoints string `protobuf:"bytes,2,opt,name=schema_registry_endpoints,json=schemaRegistryEndpoints,proto3" json:"schema_registry_endpoints,omitempty"`
	// Whether to enable HTTP basic authentication for Schema Registry.
	// Example: true
	EnableBasicAuth bool `protobuf:"varint,3,opt,name=enable_basic_auth,json=enableBasicAuth,proto3" json:"enable_basic_auth,omitempty"`
	// Username for Schema Registry authentication.
	// Example: "schema_user"
	BasicAuthUsername string `protobuf:"bytes,4,opt,name=basic_auth_username,json=basicAuthUsername,proto3" json:"basic_auth_username,omitempty"`
	// Password for Schema Registry authentication.
	// Example: "********"
	BasicAuthPassword string `protobuf:"bytes,5,opt,name=basic_auth_password,json=basicAuthPassword,proto3" json:"basic_auth_password,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *KafkaDownstreamConfig_DataFormat_AvroConfig_SchemaRegistry) Reset() {
	*x = KafkaDownstreamConfig_DataFormat_AvroConfig_SchemaRegistry{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[42]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*KafkaDownstreamConfig_DataFormat_AvroConfig_SchemaRegistry) ProtoMessage() {}

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

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

func (x *KafkaDownstreamConfig_DataFormat_AvroConfig_SchemaRegistry) GetSchemaRegistryEndpoints() string {
	if x != nil {
		return x.SchemaRegistryEndpoints
	}
	return ""
}

func (x *KafkaDownstreamConfig_DataFormat_AvroConfig_SchemaRegistry) GetEnableBasicAuth() bool {
	if x != nil {
		return x.EnableBasicAuth
	}
	return false
}

func (x *KafkaDownstreamConfig_DataFormat_AvroConfig_SchemaRegistry) GetBasicAuthUsername() string {
	if x != nil {
		return x.BasicAuthUsername
	}
	return ""
}

func (x *KafkaDownstreamConfig_DataFormat_AvroConfig_SchemaRegistry) GetBasicAuthPassword() string {
	if x != nil {
		return x.BasicAuthPassword
	}
	return ""
}

// PartitionDispatcherConfig defines a custom partition dispatcher configuration.
type KafkaDownstreamConfig_TopicPartitionConfig_PartitionDispatcherConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The partition dispatch strategy.
	// Example: TABLE
	PartitionType KafkaDownstreamConfig_TopicPartitionConfig_PartitionDispatcher `protobuf:"varint,1,opt,name=partition_type,json=partitionType,proto3,enum=openapi.v1beta1.KafkaDownstreamConfig_TopicPartitionConfig_PartitionDispatcher" json:"partition_type,omitempty"`
	// Table matchers for this dispatcher.
	// Example: ["mydb.orders"]
	Matcher []string `protobuf:"bytes,2,rep,name=matcher,proto3" json:"matcher,omitempty"`
	// Index name (used with INDEX_VALUE dispatcher).
	// Example: "primary"
	IndexName string `protobuf:"bytes,3,opt,name=index_name,json=indexName,proto3" json:"index_name,omitempty"`
	// Column names (used with COLUMNS dispatcher).
	// Example: ["user_id", "order_id"]
	Columns       []string `protobuf:"bytes,4,rep,name=columns,proto3" json:"columns,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *KafkaDownstreamConfig_TopicPartitionConfig_PartitionDispatcherConfig) Reset() {
	*x = KafkaDownstreamConfig_TopicPartitionConfig_PartitionDispatcherConfig{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[43]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*KafkaDownstreamConfig_TopicPartitionConfig_PartitionDispatcherConfig) ProtoMessage() {}

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

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

func (x *KafkaDownstreamConfig_TopicPartitionConfig_PartitionDispatcherConfig) GetPartitionType() KafkaDownstreamConfig_TopicPartitionConfig_PartitionDispatcher {
	if x != nil {
		return x.PartitionType
	}
	return KafkaDownstreamConfig_TopicPartitionConfig_PARTITION_DISPATCHER_UNSPECIFIED
}

func (x *KafkaDownstreamConfig_TopicPartitionConfig_PartitionDispatcherConfig) GetMatcher() []string {
	if x != nil {
		return x.Matcher
	}
	return nil
}

func (x *KafkaDownstreamConfig_TopicPartitionConfig_PartitionDispatcherConfig) GetIndexName() string {
	if x != nil {
		return x.IndexName
	}
	return ""
}

func (x *KafkaDownstreamConfig_TopicPartitionConfig_PartitionDispatcherConfig) GetColumns() []string {
	if x != nil {
		return x.Columns
	}
	return nil
}

// Endpoint defines the S3 connection endpoint configuration.
type S3DownstreamConfig_Endpoint struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// S3 bucket URI.
	// Example: "s3://my-bucket/cdc-data"
	S3Uri string `protobuf:"bytes,1,opt,name=s3_uri,json=s3Uri,proto3" json:"s3_uri,omitempty"`
	// Authentication type.
	// Example: S3_AUTH_TYPE_AK_SK
	AuthType S3DownstreamConfig_Endpoint_S3AuthType `protobuf:"varint,4,opt,name=auth_type,json=authType,proto3,enum=openapi.v1beta1.S3DownstreamConfig_Endpoint_S3AuthType" json:"auth_type,omitempty"`
	// Access key ID. Required for AK/SK authentication.
	// Example: "AKIAIOSFODNN7EXAMPLE"
	AccessKey string `protobuf:"bytes,2,opt,name=access_key,json=accessKey,proto3" json:"access_key,omitempty"`
	// Secret access key. Required for AK/SK authentication.
	// Example: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
	SecretKey string `protobuf:"bytes,3,opt,name=secret_key,json=secretKey,proto3" json:"secret_key,omitempty"`
	// IAM assumed role ARN. Required for Assume Role authentication.
	// Example: "arn:aws:iam::123456789012:role/CDCS3AccessRole"
	IamAssumedRoleArn string `protobuf:"bytes,5,opt,name=iam_assumed_role_arn,json=iamAssumedRoleArn,proto3" json:"iam_assumed_role_arn,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *S3DownstreamConfig_Endpoint) Reset() {
	*x = S3DownstreamConfig_Endpoint{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[44]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*S3DownstreamConfig_Endpoint) ProtoMessage() {}

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

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

func (x *S3DownstreamConfig_Endpoint) GetS3Uri() string {
	if x != nil {
		return x.S3Uri
	}
	return ""
}

func (x *S3DownstreamConfig_Endpoint) GetAuthType() S3DownstreamConfig_Endpoint_S3AuthType {
	if x != nil {
		return x.AuthType
	}
	return S3DownstreamConfig_Endpoint_S3_AUTH_TYPE_UNSPECIFIED
}

func (x *S3DownstreamConfig_Endpoint) GetAccessKey() string {
	if x != nil {
		return x.AccessKey
	}
	return ""
}

func (x *S3DownstreamConfig_Endpoint) GetSecretKey() string {
	if x != nil {
		return x.SecretKey
	}
	return ""
}

func (x *S3DownstreamConfig_Endpoint) GetIamAssumedRoleArn() string {
	if x != nil {
		return x.IamAssumedRoleArn
	}
	return ""
}

// Endpoint defines the GCS connection endpoint configuration.
type GcsDownstreamConfig_Endpoint struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// GCS bucket URI.
	// Example: "gs://my-bucket/cdc-data"
	GcsUri        string `protobuf:"bytes,1,opt,name=gcs_uri,json=gcsUri,proto3" json:"gcs_uri,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GcsDownstreamConfig_Endpoint) Reset() {
	*x = GcsDownstreamConfig_Endpoint{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[45]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*GcsDownstreamConfig_Endpoint) ProtoMessage() {}

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

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

func (x *GcsDownstreamConfig_Endpoint) GetGcsUri() string {
	if x != nil {
		return x.GcsUri
	}
	return ""
}

// Endpoint defines the Azure Blob connection endpoint configuration.
type AzureBlobDownstreamConfig_Endpoint struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Azure Blob container URI.
	// Example: "https://myaccount.blob.core.windows.net/mycontainer/cdc-data"
	BlobUri string `protobuf:"bytes,1,opt,name=blob_uri,json=blobUri,proto3" json:"blob_uri,omitempty"`
	// SAS token for authentication.
	// Example: "sv=2022-11-02&ss=b&srt=sco&sp=rwdlaciytfx&se=2026-06-09T00:00:00Z&st=2026-06-08T00:00:00Z&spr=https&sig=..."
	SasToken      string `protobuf:"bytes,2,opt,name=sas_token,json=sasToken,proto3" json:"sas_token,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AzureBlobDownstreamConfig_Endpoint) Reset() {
	*x = AzureBlobDownstreamConfig_Endpoint{}
	mi := &file_openapi_v1beta1_changefeed_proto_msgTypes[46]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*AzureBlobDownstreamConfig_Endpoint) ProtoMessage() {}

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

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

func (x *AzureBlobDownstreamConfig_Endpoint) GetBlobUri() string {
	if x != nil {
		return x.BlobUri
	}
	return ""
}

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

var File_openapi_v1beta1_changefeed_proto protoreflect.FileDescriptor

const file_openapi_v1beta1_changefeed_proto_rawDesc = "" +
	"\n" +
	" openapi/v1beta1/changefeed.proto\x12\x0fopenapi.v1beta1\x1a\x1bbuf/validate/validate.proto\x1a\x13common/common.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1bgoogle/api/visibility.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x17validate/validate.proto\"\xd4\x05\n" +
	"\x16ListChangefeedsRequest\x12s\n" +
	"\n" +
	"cluster_id\x18\x01 \x01(\tBT\x92AA2.The ID of the cluster to list changefeeds for.J\x0f\"1234567890123\"\xe0A\x02\xfaB\x04r\x02\x10\x01\xbaH\x03\xc8\x01\x01R\tclusterId\x12\xe2\x02\n" +
	"\x0fdownstream_type\x18\x02 \x01(\x0e2\x1f.openapi.v1beta1.DownstreamTypeB\x92\x02\x92A\x83\x022\xf7\x01Filter by downstream type. If not specified, returns all types.\n" +
	"\n" +
	"- `\"KAFKA\"`: Apache Kafka\n" +
	"\n" +
	"- `\"MYSQL\"`: MySQL-compatible database\n" +
	"\n" +
	"- `\"S3\"`: Amazon S3 or S3-compatible storage\n" +
	"\n" +
	"- `\"GCS\"`: Google Cloud Storage\n" +
	"\n" +
	"- `\"AZURE_BLOB\"`: Azure Blob StorageJ\a\"KAFKA\"\xe0A\x01\xfaB\x05\x82\x01\x02\x10\x01H\x00R\x0edownstreamType\x88\x01\x01\x12\xa7\x01\n" +
	"\tpage_size\x18d \x01(\x05B\x89\x01\x92Ax2`The maximum number of changefeeds to return. If not specified, 20 items are returned by default.J\x0220Y\x00\x00\x00\x00\x00\x00Y@i\x00\x00\x00\x00\x00\x00\xf0?\xe0A\x01\xfaB\b\x1a\x06\x18d(\x01@\x01R\bpageSize\x12\"\n" +
	"\n" +
	"page_token\x18e \x01(\tB\x03\xe0A\x01R\tpageTokenB\x12\n" +
	"\x10_downstream_type\"\xb8\x02\n" +
	"\x17ListChangefeedsResponse\x12B\n" +
	"\vchangefeeds\x18\x01 \x03(\v2\x1b.openapi.v1beta1.ChangefeedB\x03\xe0A\x03R\vchangefeeds\x12X\n" +
	"\n" +
	"total_size\x18\x02 \x01(\x05B9\x92A32-Total number of changefeeds across all pages.J\x0242\xe0A\x03R\ttotalSize\x12\x7f\n" +
	"\x0fnext_page_token\x18\x03 \x01(\tBW\x92AQ2;Token for retrieving the next page. Empty if no more pages.J\x12\"eyJpZCI6Njc4OTB9\"\xe0A\x03R\rnextPageToken\"\xc0\x15\n" +
	"\n" +
	"Changefeed\x12b\n" +
	"\x02id\x18\x01 \x01(\tBR\x92AI2>Unique identifier of the changefeed (generated by the system).J\a\"67890\"\xe0A\x03\xe0A\x05R\x02id\x12j\n" +
	"\n" +
	"cluster_id\x18\x02 \x01(\tBK\x92A52\"The ID of the source TiDB cluster.J\x0f\"1234567890123\"\xe0A\x02\xe0A\x05\xfaB\x04r\x02\x10\x01\xbaH\x03\xc8\x01\x01R\tclusterId\x12\x8b\x01\n" +
	"\x04name\x18\x03 \x01(\tBw\x92Aa2HUser-defined name for the changefeed. Must be unique within the cluster.J\x15\"my-kafka-changefeed\"\xe0A\x02\xfaB\ar\x05\x10\x01\x18\x80\x01\xbaH\x03\xc8\x01\x01R\x04name\x12L\n" +
	"\fnetwork_info\x18\x04 \x01(\v2\x1c.openapi.v1beta1.NetworkInfoB\x06\xe0A\x01\xe0A\x05H\x01R\vnetworkInfo\x88\x01\x01\x12\xdf\x05\n" +
	"\x05state\x18\x05 \x01(\x0e2!.openapi.v1beta1.Changefeed.StateB\xa5\x05\x92A\x96\x052\x88\x05Current state of the changefeed.\n" +
	"\n" +
	"- `\"STATE_UNSPECIFIED\"`: Default value.\n" +
	"\n" +
	"- `\"RUNNING\"`: Changefeed is actively replicating data.\n" +
	"\n" +
	"- `\"FAILED\"`: Changefeed encountered a fatal error and stopped.\n" +
	"\n" +
	"- `\"ERROR\"`: Changefeed encountered an error but may recover.\n" +
	"\n" +
	"- `\"CREATING\"`: Changefeed is being created.\n" +
	"\n" +
	"- `\"PAUSING\"`: Changefeed is in the process of pausing.\n" +
	"\n" +
	"- `\"PAUSED\"`: Changefeed is paused.\n" +
	"\n" +
	"- `\"DELETING\"`: Changefeed is being deleted.\n" +
	"\n" +
	"- `\"DELETED\"`: Changefeed has been deleted.\n" +
	"\n" +
	"- `\"EDITING\"`: Changefeed configuration is being updated.\n" +
	"\n" +
	"- `\"WARNING\"`: Changefeed is running but has warnings.\n" +
	"\n" +
	"- `\"SCALING\"`: Changefeed is being scaled.J\t\"RUNNING\"\xe0A\x03\xfaB\x05\x82\x01\x02\x10\x01R\x05state\x12@\n" +
	"\vcreate_time\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampB\x03\xe0A\x03R\n" +
	"createTime\x12*\n" +
	"\x0echeckpoint_tso\x18\a \x01(\x04B\x03\xe0A\x03R\rcheckpointTso\x12D\n" +
	"\rcheckpoint_ts\x18\b \x01(\v2\x1a.google.protobuf.TimestampB\x03\xe0A\x03R\fcheckpointTs\x12\x87\x01\n" +
	"\x14replication_capacity\x18\t \x01(\tBT\x92AA27The replication capacity (RCU size) for the changefeed.J\x06\"4rcu\"\xe0A\x02\xfaB\x04r\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x13replicationCapacity\x12\xdd\x02\n" +
	"\x0fdownstream_type\x18\n" +
	" \x01(\x0e2\x1f.openapi.v1beta1.DownstreamTypeB\x92\x02\x92A\xfa\x012\xee\x01The downstream type. Cannot be changed after creation.\n" +
	"\n" +
	"- `\"KAFKA\"`: Apache Kafka\n" +
	"\n" +
	"- `\"MYSQL\"`: MySQL-compatible database\n" +
	"\n" +
	"- `\"S3\"`: Amazon S3 or S3-compatible storage\n" +
	"\n" +
	"- `\"GCS\"`: Google Cloud Storage\n" +
	"\n" +
	"- `\"AZURE_BLOB\"`: Azure Blob StorageJ\a\"KAFKA\"\xe0A\x02\xe0A\x05\xfaB\x05\x82\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x0edownstreamType\x12J\n" +
	"\ftable_config\x18\x11 \x01(\v2\x1c.openapi.v1beta1.TableConfigB\t\xe0A\x02\xbaH\x03\xc8\x01\x01R\vtableConfig\x12S\n" +
	"\x0estart_position\x18\x12 \x01(\v2\x1e.openapi.v1beta1.StartPositionB\f\xe0A\x02\xe0A\x05\xbaH\x03\xc8\x01\x01R\rstartPosition\x12>\n" +
	"\x05kafka\x18\v \x01(\v2&.openapi.v1beta1.KafkaDownstreamConfigH\x00R\x05kafka\x12>\n" +
	"\x05mysql\x18\f \x01(\v2&.openapi.v1beta1.MySQLDownstreamConfigH\x00R\x05mysql\x125\n" +
	"\x02s3\x18\r \x01(\v2#.openapi.v1beta1.S3DownstreamConfigH\x00R\x02s3\x128\n" +
	"\x03gcs\x18\x0e \x01(\v2$.openapi.v1beta1.GcsDownstreamConfigH\x00R\x03gcs\x12K\n" +
	"\n" +
	"azure_blob\x18\x0f \x01(\v2*.openapi.v1beta1.AzureBlobDownstreamConfigH\x00R\tazureBlob\x12x\n" +
	"\x05error\x18\x10 \x01(\tBb\x92A\\2;Error message if state is FAILED or ERROR. Empty otherwise.J\x1d\"kafka: broker not available\"\xe0A\x03R\x05error\"\xab\x01\n" +
	"\x05State\x12\x15\n" +
	"\x11STATE_UNSPECIFIED\x10\x00\x12\v\n" +
	"\aRUNNING\x10\x01\x12\n" +
	"\n" +
	"\x06FAILED\x10\x02\x12\t\n" +
	"\x05ERROR\x10\x03\x12\f\n" +
	"\bCREATING\x10\x04\x12\v\n" +
	"\aPAUSING\x10\x05\x12\n" +
	"\n" +
	"\x06PAUSED\x10\x06\x12\f\n" +
	"\bDELETING\x10\a\x12\v\n" +
	"\aDELETED\x10\b\x12\v\n" +
	"\aEDITING\x10\t\x12\v\n" +
	"\aWARNING\x10\n" +
	"\x12\v\n" +
	"\aSCALING\x10\v:Y\xeaAV\n" +
	"!dataflow.tidbcloud.com/Changefeed\x12\x18changefeeds/{changefeed}*\vchangefeeds2\n" +
	"changefeedB\x13\n" +
	"\x11downstream_configB\x0f\n" +
	"\r_network_info\"\xfe\x01\n" +
	"\x14GetChangefeedRequest\x12h\n" +
	"\rchangefeed_id\x18\x01 \x01(\tBC\x92A02%The ID of the changefeed to retrieve.J\a\"67890\"\xe0A\x02\xfaB\x04r\x02\x10\x01\xbaH\x03\xc8\x01\x01R\fchangefeedId\x12|\n" +
	"\x10invalidate_cache\x18\x02 \x01(\bBQ\x92AK2CWhether to bypass cache and return realtime checkpoint information.J\x04true\xe0A\x01R\x0finvalidateCache\"\x7f\n" +
	"\x16PauseChangefeedRequest\x12e\n" +
	"\rchangefeed_id\x18\x01 \x01(\tB@\x92A-2\"The ID of the changefeed to pause.J\a\"67890\"\xe0A\x02\xfaB\x04r\x02\x10\x01\xbaH\x03\xc8\x01\x01R\fchangefeedId\"\x81\x01\n" +
	"\x17ResumeChangefeedRequest\x12f\n" +
	"\rchangefeed_id\x18\x01 \x01(\tBA\x92A.2#The ID of the changefeed to resume.J\a\"67890\"\xe0A\x02\xfaB\x04r\x02\x10\x01\xbaH\x03\xc8\x01\x01R\fchangefeedId\"\x95\x01\n" +
	"\x1eGetChangefeedKernelInfoRequest\x12s\n" +
	"\rchangefeed_id\x18\x01 \x01(\tBN\x92A;2\"The ID of the changefeed to query.J\x15\"2068955910051614720\"\xe0A\x02\xfaB\x04r\x02\x10\x01\xbaH\x03\xc8\x01\x01R\fchangefeedId\"\x95\x06\n" +
	"\x14ChangefeedKernelInfo\x12\xa6\x01\n" +
	"\rchangefeed_id\x18\x01 \x01(\tB\x80\x01\x92Az2aThe changefeed identifier echoed back for correlation. Matches the id field of v1beta1Changefeed.J\x15\"2068955910051614720\"\xe0A\x03R\fchangefeedId\x12\xdb\x01\n" +
	"\rticdc_version\x18\x02 \x01(\tB\xb5\x01\x92A\xae\x012\xa1\x01The TiCDC component version that the changefeed is currently running on (e.g. `\"v8.5.4\"`, `\"v7.5.6\"`). Corresponds to the `--version` output of the TiCDC binary.J\b\"v8.5.4\"\xe0A\x03R\fticdcVersion\x12\x7f\n" +
	"\timage_tag\x18\x03 \x01(\tBb\x92A\\2FThe effective image tag of the TiCDC component the changefeed runs on.J\x12\"v8.5.4-release.1\"\xe0A\x03R\bimageTag\x12\x9b\x01\n" +
	"\vkernel_type\x18\x04 \x01(\x0e20.openapi.v1beta1.ChangefeedKernelInfo.KernelTypeBH\x92A:28The TiCDC kernel type that the changefeed is running on.\xe0A\x03\xfaB\x05\x82\x01\x02\x10\x01R\n" +
	"kernelType\"W\n" +
	"\n" +
	"KernelType\x12\x1b\n" +
	"\x17KERNEL_TYPE_UNSPECIFIED\x10\x00\x12\x17\n" +
	"\x13KERNEL_TYPE_CLASSIC\x10\x01\x12\x13\n" +
	"\x0fKERNEL_TYPE_NEW\x10\x02\"\x8f\x01\n" +
	"\x16GetEventFiltersRequest\x12u\n" +
	"\rchangefeed_id\x18\x01 \x01(\tBP\x92A=22The ID of the changefeed to get event filters for.J\a\"67890\"\xe0A\x02\xfaB\x04r\x02\x10\x01\xbaH\x03\xc8\x01\x01R\fchangefeedId\"V\n" +
	"\fEventFilters\x12F\n" +
	"\revent_filters\x18\x01 \x03(\v2\x1c.openapi.v1beta1.EventFilterB\x03\xe0A\x03R\feventFilters\"a\n" +
	"\x17SetEventFiltersResponse\x12F\n" +
	"\revent_filters\x18\x01 \x03(\v2\x1c.openapi.v1beta1.EventFilterB\x03\xe0A\x03R\feventFilters\"\xba\x14\n" +
	"\vEventFilter\x12\xa7\x02\n" +
	"\x0etable_matchers\x18\x01 \x03(\tB\xff\x01\x92A\xf8\x012\xd5\x01Table name patterns to match (allow list). Uses the same syntax as TiCDC table filter. Supports wildcards like `*` and `?`. Matches database name, so database-level DDLs (e.g., DROP DATABASE) will also be matched.J\x1e[\"mydb.orders\", \"mydb.user_*\"]\xe0A\x01R\rtableMatchers\x12\xcc\x06\n" +
	"\x0eignored_events\x18\x02 \x03(\tB\xa4\x06\x92A\x9d\x062\xf5\x05Event types to ignore. DML events: `insert`, `update`, `delete`, `all dml`. DDL events: `create schema`, `drop schema`, `create table`, `drop table`, `rename table`, `truncate table`, `alter table`, `add table partition`, `drop table partition`, `truncate table partition`, `create view`, `drop view`, `modify schema charset and collate`, `recover table`, `rebase auto id`, `modify table comment`, `modify table charset and collate`, `exchange table partition`, `reorganize table partition`, `alter table partitioning`, `remove table partitioning`, `add column`, `drop column`, `modify column`, `set default value`, `add primary key`, `drop primary key`, `rename index`, `alter index visibility`, `alter ttl info`, `alter ttl remove`, `multi schema change`.J#[\"insert\", \"delete\", \"alter table\"]\xe0A\x01R\rignoredEvents\x12\xbf\x01\n" +
	"\x16ignored_sql_statements\x18\x03 \x03(\tB\x88\x01\x92A\x81\x012fSQL statement patterns to ignore (DDL only). Supports regular expressions. Only applies to DDL events.J\x17[\"^drop\", \"add column\"]\xe0A\x01R\x14ignoredSqlStatements\x12\xac\x02\n" +
	"\x1fignored_insert_value_expression\x18\x04 \x01(\tB\xe4\x01\x92A\xdd\x012\xc4\x01SQL expression to filter INSERT DML events by column value. Uses SQL expressions in default SQL mode. All tables matched by `table_matchers` must contain all columns referenced in this expression.J\x14\"status = 'deleted'\"\xe0A\x01R\x1cignoredInsertValueExpression\x12\xc8\x02\n" +
	"#ignored_update_old_value_expression\x18\x05 \x01(\tB\xf9\x01\x92A\xf2\x012\xd8\x01SQL expression to filter UPDATE DML events by old column value (before update). Uses SQL expressions in default SQL mode. All tables matched by `table_matchers` must contain all columns referenced in this expression.J\x15\"status = 'archived'\"\xe0A\x01R\x1fignoredUpdateOldValueExpression\x12\xc6\x02\n" +
	"#ignored_update_new_value_expression\x18\x06 \x01(\tB\xf7\x01\x92A\xf0\x012\xd7\x01SQL expression to filter UPDATE DML events by new column value (after update). Uses SQL expressions in default SQL mode. All tables matched by `table_matchers` must contain all columns referenced in this expression.J\x14\"status = 'deleted'\"\xe0A\x01R\x1fignoredUpdateNewValueExpression\x12\xac\x02\n" +
	"\x1fignored_delete_value_expression\x18\a \x01(\tB\xe4\x01\x92A\xdd\x012\xc4\x01SQL expression to filter DELETE DML events by column value. Uses SQL expressions in default SQL mode. All tables matched by `table_matchers` must contain all columns referenced in this expression.J\x14\"soft_delete = true\"\xe0A\x01R\x1cignoredDeleteValueExpression\"\x86\x02\n" +
	"\x16SetEventFiltersRequest\x12u\n" +
	"\rchangefeed_id\x18\x01 \x01(\tBP\x92A=22The ID of the changefeed to set event filters for.J\a\"67890\"\xe0A\x02\xfaB\x04r\x02\x10\x01\xbaH\x03\xc8\x01\x01R\fchangefeedId\x12N\n" +
	"\revent_filters\x18\x02 \x03(\v2\x1c.openapi.v1beta1.EventFilterB\v\xe0A\x02\xfaB\x05\x92\x01\x02\b\x01R\feventFilters:%\x92A\"\n" +
	" \xd2\x01\rchangefeed_id\xd2\x01\revent_filters\"\x86\x02\n" +
	"\x17CreateChangefeedRequest\x12F\n" +
	"\n" +
	"changefeed\x18\x01 \x01(\v2\x1b.openapi.v1beta1.ChangefeedB\t\xe0A\x02\xbaH\x03\xc8\x01\x01R\n" +
	"changefeed\x12\x8e\x01\n" +
	"\adry_run\x18\x02 \x01(\bBu\x92Ao2gWhether to run dry-run validation only (parameter + connectivity checks) without creating a changefeed.J\x04true\xe0A\x01R\x06dryRun:\x12\x92A\x0f\n" +
	"\r\xd2\x01\n" +
	"changefeed\"\x9c\a\n" +
	"%EditChangefeedDownstreamConfigRequest\x12f\n" +
	"\rchangefeed_id\x18\x01 \x01(\tBA\x92A.2#The ID of the changefeed to update.J\a\"67890\"\xe0A\x02\xfaB\x04r\x02\x10\x01\xbaH\x03\xc8\x01\x01R\fchangefeedId\x12\x88\x01\n" +
	"\adry_run\x18\x02 \x01(\bBo\x92Ai2aWhether to run dry-run validation only (parameter + connectivity checks) without applying update.J\x04true\xe0A\x01R\x06dryRun\x12D\n" +
	"\ftable_config\x18\x03 \x01(\v2\x1c.openapi.v1beta1.TableConfigB\x03\xe0A\x01R\vtableConfig\x12\xbd\x01\n" +
	"\x0fdownstream_type\x18\x04 \x01(\x0e2\x1f.openapi.v1beta1.DownstreamTypeBs\x92A\\2QThe downstream type. Must match the existing downstream type (cannot be changed).J\a\"KAFKA\"\xe0A\x02\xe0A\x05\xfaB\x05\x82\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x0edownstreamType\x12>\n" +
	"\x05kafka\x18\v \x01(\v2&.openapi.v1beta1.KafkaDownstreamConfigH\x00R\x05kafka\x12>\n" +
	"\x05mysql\x18\f \x01(\v2&.openapi.v1beta1.MySQLDownstreamConfigH\x00R\x05mysql\x125\n" +
	"\x02s3\x18\r \x01(\v2#.openapi.v1beta1.S3DownstreamConfigH\x00R\x02s3\x128\n" +
	"\x03gcs\x18\x0e \x01(\v2$.openapi.v1beta1.GcsDownstreamConfigH\x00R\x03gcs\x12K\n" +
	"\n" +
	"azure_blob\x18\x0f \x01(\v2*.openapi.v1beta1.AzureBlobDownstreamConfigH\x00R\tazureBlob:'\x92A$\n" +
	"\"\xd2\x01\rchangefeed_id\xd2\x01\x0fdownstream_typeB\x13\n" +
	"\x11downstream_config\"\x81\x01\n" +
	"\x17DeleteChangefeedRequest\x12f\n" +
	"\rchangefeed_id\x18\x01 \x01(\tBA\x92A.2#The ID of the changefeed to delete.J\a\"67890\"\xe0A\x02\xfaB\x04r\x02\x10\x01\xbaH\x03\xc8\x01\x01R\fchangefeedId\"\xab\x02\n" +
	"\x16ScaleChangefeedRequest\x12e\n" +
	"\rchangefeed_id\x18\x01 \x01(\tB@\x92A-2\"The ID of the changefeed to scale.J\a\"67890\"\xe0A\x02\xfaB\x04r\x02\x10\x01\xbaH\x03\xc8\x01\x01R\fchangefeedId\x12|\n" +
	"\x14replication_capacity\x18\x02 \x01(\tBI\x92A62,The target replication capacity to scale to.J\x06\"8rcu\"\xe0A\x02\xfaB\x04r\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x13replicationCapacity:,\x92A)\n" +
	"'\xd2\x01\rchangefeed_id\xd2\x01\x14replication_capacity\"\xe9\x05\n" +
	"\x15TestConnectionRequest\x12s\n" +
	"\n" +
	"cluster_id\x18\x01 \x01(\tBT\x92AA2.The source cluster ID to test connection from.J\x0f\"1234567890123\"\xe0A\x02\xfaB\x04r\x02\x10\x01\xbaH\x03\xc8\x01\x01R\tclusterId\x12I\n" +
	"\fnetwork_info\x18\x02 \x01(\v2\x1c.openapi.v1beta1.NetworkInfoB\x03\xe0A\x01H\x01R\vnetworkInfo\x88\x01\x01\x12\x85\x01\n" +
	"\x0fdownstream_type\x18\x03 \x01(\x0e2\x1f.openapi.v1beta1.DownstreamTypeB;\x92A'2\x1cThe downstream type to test.J\a\"KAFKA\"\xe0A\x02\xfaB\x05\x82\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x0edownstreamType\x12>\n" +
	"\x05kafka\x18\n" +
	" \x01(\v2&.openapi.v1beta1.KafkaDownstreamConfigH\x00R\x05kafka\x12>\n" +
	"\x05mysql\x18\v \x01(\v2&.openapi.v1beta1.MySQLDownstreamConfigH\x00R\x05mysql\x125\n" +
	"\x02s3\x18\f \x01(\v2#.openapi.v1beta1.S3DownstreamConfigH\x00R\x02s3\x128\n" +
	"\x03gcs\x18\r \x01(\v2$.openapi.v1beta1.GcsDownstreamConfigH\x00R\x03gcs\x12K\n" +
	"\n" +
	"azure_blob\x18\x0e \x01(\v2*.openapi.v1beta1.AzureBlobDownstreamConfigH\x00R\tazureBlob:$\x92A!\n" +
	"\x1f\xd2\x01\n" +
	"cluster_id\xd2\x01\x0fdownstream_typeB\x13\n" +
	"\x11downstream_configB\x0f\n" +
	"\r_network_info\"\xff\x01\n" +
	"\x1aDescribeSchemaTableRequest\x12{\n" +
	"\n" +
	"cluster_id\x18\x01 \x01(\tB\\\x92AI26The source cluster ID to describe schemas/tables from.J\x0f\"1234567890123\"\xe0A\x02\xfaB\x04r\x02\x10\x01\xbaH\x03\xc8\x01\x01R\tclusterId\x12$\n" +
	"\vfilter_rule\x18\x02 \x03(\tB\x03\xe0A\x01R\n" +
	"filterRule\x12*\n" +
	"\x0ecase_sensitive\x18\x03 \x01(\bB\x03\xe0A\x01R\rcaseSensitive:\x12\x92A\x0f\n" +
	"\r\xd2\x01\n" +
	"cluster_id\"\xd7\x02\n" +
	"\x1bDescribeSchemaTableResponse\x12\"\n" +
	"\n" +
	"cluster_id\x18\x01 \x01(\tB\x03\xe0A\x03R\tclusterId\x12V\n" +
	"\aschemas\x18\x02 \x03(\v27.openapi.v1beta1.DescribeSchemaTableResponse.SchemaInfoB\x03\xe0A\x03R\aschemas\x12C\n" +
	"\rgc_safe_point\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampB\x03\xe0A\x03R\vgcSafePoint\x1aw\n" +
	"\n" +
	"SchemaInfo\x12$\n" +
	"\vschema_name\x18\x01 \x01(\tB\x03\xe0A\x03R\n" +
	"schemaName\x12$\n" +
	"\vtable_names\x18\x02 \x03(\tB\x03\xe0A\x03R\n" +
	"tableNames\x12\x1d\n" +
	"\aallowed\x18\x03 \x01(\bB\x03\xe0A\x03R\aallowed\"\"\n" +
	"\x19ListChangefeedRCUsRequest:\x05\x92A\x02\n" +
	"\x00\"U\n" +
	"\x1aListChangefeedRCUsResponse\x127\n" +
	"\x04rcus\x18\x01 \x03(\v2\x1e.openapi.v1beta1.ChangefeedRCUB\x03\xe0A\x03R\x04rcus\"\xf1\x02\n" +
	"\rChangefeedRCU\x12E\n" +
	"\x04name\x18\x01 \x01(\tB1\x92A+2!The identifier of the RCU option.J\x06\"4rcu\"\xe0A\x03R\x04name\x12X\n" +
	"\fdisplay_name\x18\x02 \x01(\tB5\x92A/2\x1cHuman-readable display name.J\x0f\"4 RCU - Small\"\xe0A\x03R\vdisplayName\x12Z\n" +
	"\arcu_num\x18\x03 \x01(\rBA\x92A;26The number of RCU (Resource Capacity Units) allocated.J\x014\xe0A\x03R\x06rcuNum\x12c\n" +
	"\trps_limit\x18\x04 \x01(\rBF\x92A@28The maximum rows per second this RCU option can process.J\x045000\xe0A\x03R\brpsLimit\"\xb9\x04\n" +
	"\vTableConfig\x12&\n" +
	"\ffilter_rules\x18\x01 \x03(\tB\x03\xe0A\x01R\vfilterRules\x12\xc1\x02\n" +
	"\x04mode\x18\x02 \x01(\x0e2!.openapi.v1beta1.TableConfig.ModeB\x89\x02\x92A\xfa\x012\xdb\x01Mode for handling unsupported tables.\n" +
	"\n" +
	"- `\"MODE_UNSPECIFIED\"`: Default value.\n" +
	"\n" +
	"- `\"IGNORE_NOT_SUPPORT_TABLE\"`: Skip unsupported tables silently.\n" +
	"\n" +
	"- `\"FORCE_SYNC\"`: Force sync all tables (may fail on unsupported tables).J\x1a\"IGNORE_NOT_SUPPORT_TABLE\"\xe0A\x01\xfaB\x05\x82\x01\x02\x10\x01R\x04mode\x12*\n" +
	"\x0ecase_sensitive\x18\x03 \x01(\bB\x03\xe0A\x01R\rcaseSensitive\x12F\n" +
	"\revent_filters\x18\x04 \x03(\v2\x1c.openapi.v1beta1.EventFilterB\x03\xe0A\x01R\feventFilters\"J\n" +
	"\x04Mode\x12\x14\n" +
	"\x10MODE_UNSPECIFIED\x10\x00\x12\x1c\n" +
	"\x18IGNORE_NOT_SUPPORT_TABLE\x10\x01\x12\x0e\n" +
	"\n" +
	"FORCE_SYNC\x10\x02\"\xde\x03\n" +
	"\rStartPosition\x12\xae\x02\n" +
	"\x04mode\x18\x01 \x01(\x0e2#.openapi.v1beta1.StartPosition.ModeB\xf4\x01\x92A\xdf\x012\xd0\x01The start position mode.\n" +
	"\n" +
	"- `\"MODE_UNSPECIFIED\"`: Default value.\n" +
	"\n" +
	"- `\"FROM_NOW\"`: Start from the current time.\n" +
	"\n" +
	"- `\"FROM_TSO\"`: Start from a specific TSO.\n" +
	"\n" +
	"- `\"FROM_UTC\"`: Start from a specific UTC timestamp.J\n" +
	"\"FROM_NOW\"\xe0A\x02\xfaB\x05\x82\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x04mode\x12\x1d\n" +
	"\tstart_tso\x18\x02 \x01(\x04H\x00R\bstartTso\x12)\n" +
	"\x0fstart_timestamp\x18\x03 \x01(\tH\x00R\x0estartTimestamp\"F\n" +
	"\x04Mode\x12\x14\n" +
	"\x10MODE_UNSPECIFIED\x10\x00\x12\f\n" +
	"\bFROM_NOW\x10\x01\x12\f\n" +
	"\bFROM_TSO\x10\x02\x12\f\n" +
	"\bFROM_UTC\x10\x03B\n" +
	"\n" +
	"\bposition\"\xf9\x03\n" +
	"\n" +
	"Connection\x12\xfb\x01\n" +
	"\bendpoint\x18\x01 \x01(\tB\xde\x01\x92A\xcd\x012\xb0\x01Endpoint address (host:port). Required for PUBLIC/VPC_PEERING networks. Optional for PRIVATE_LINK, where the endpoint can be assembled server-side from sink endpoint and ports.J\x18\"mysql.example.com:3306\"\xe0A\x01\xfaB\ar\x05\x10\x01\xd0\x01\x01R\bendpoint\x12Y\n" +
	"\busername\x18\x02 \x01(\tB=\x92A*2\x1cUsername for authentication.J\n" +
	"\"cdc_user\"\xe0A\x02\xfaB\x04r\x02\x10\x01\xbaH\x03\xc8\x01\x01R\busername\x12\x91\x01\n" +
	"\bpassword\x18\x03 \x01(\tBu\x92Ab2TPassword for authentication. This field is input-only and not returned in responses.J\n" +
	"\"********\"\xe0A\x01\xe0A\x04\xfaB\ar\x05\x10\x01\xd0\x01\x01R\bpassword\"\xc5\x05\n" +
	"\vNetworkInfo\x12\xd2\x03\n" +
	"\fnetwork_type\x18\x01 \x01(\x0e2(.openapi.v1beta1.NetworkInfo.NetworkTypeB\x84\x03\x92A\xef\x022\xd5\x02The network type to use.\n" +
	"\n" +
	"- `\"NETWORK_TYPE_UNSPECIFIED\"`: Default value.\n" +
	"\n" +
	"- `\"NETWORK_TYPE_PUBLIC\"`: Public internet access.\n" +
	"\n" +
	"- `\"NETWORK_TYPE_VPC_PEERING\"`: AWS VPC Peering.\n" +
	"\n" +
	"- `\"NETWORK_TYPE_PRIVATE_LINK\"`: Private endpoint connectivity managed by TiDB Cloud, including AWS PrivateLink, Azure Private Link, and GCP Private Service Connect.J\x15\"NETWORK_TYPE_PUBLIC\"\xe0A\x02\xfaB\x05\x82\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\vnetworkType\x122\n" +
	"\x10sink_endpoint_id\x18\x02 \x01(\x04B\x03\xe0A\x01H\x00R\x0esinkEndpointId\x88\x01\x01\x12\x14\n" +
	"\x05ports\x18\x04 \x03(\rR\x05ports\"\x81\x01\n" +
	"\vNetworkType\x12\x1c\n" +
	"\x18NETWORK_TYPE_UNSPECIFIED\x10\x00\x12\x17\n" +
	"\x13NETWORK_TYPE_PUBLIC\x10\x01\x12\x1c\n" +
	"\x18NETWORK_TYPE_VPC_PEERING\x10\x02\x12\x1d\n" +
	"\x19NETWORK_TYPE_PRIVATE_LINK\x10\x03B\x13\n" +
	"\x11_sink_endpoint_id\"\x93:\n" +
	"\x15KafkaDownstreamConfig\x12P\n" +
	"\x06broker\x18\x01 \x01(\v2-.openapi.v1beta1.KafkaDownstreamConfig.BrokerB\t\xe0A\x02\xbaH\x03\xc8\x01\x01R\x06broker\x12h\n" +
	"\x0eauthentication\x18\x02 \x01(\v25.openapi.v1beta1.KafkaDownstreamConfig.AuthenticationB\t\xe0A\x02\xbaH\x03\xc8\x01\x01R\x0eauthentication\x12]\n" +
	"\vdata_format\x18\x03 \x01(\v21.openapi.v1beta1.KafkaDownstreamConfig.DataFormatB\t\xe0A\x02\xbaH\x03\xc8\x01\x01R\n" +
	"dataFormat\x12|\n" +
	"\x16topic_partition_config\x18\x04 \x01(\v2;.openapi.v1beta1.KafkaDownstreamConfig.TopicPartitionConfigB\t\xe0A\x02\xbaH\x03\xc8\x01\x01R\x14topicPartitionConfig\x12e\n" +
	"\x10column_selectors\x18\x05 \x03(\v25.openapi.v1beta1.KafkaDownstreamConfig.ColumnSelectorB\x03\xe0A\x01R\x0fcolumnSelectors\x1a\xba\t\n" +
	"\x06Broker\x12\xd3\x02\n" +
	"\aversion\x18\x01 \x01(\x0e23.openapi.v1beta1.KafkaDownstreamConfig.KafkaVersionB\x83\x02\x92A\xee\x012\xd6\x01Kafka broker version.\n" +
	"\n" +
	"- `\"KAFKA_VERSION_UNSPECIFIED\"`: Default value.\n" +
	"\n" +
	"- `\"KAFKA_VERSION_0XX\"`: Kafka 0.x\n" +
	"\n" +
	"- `\"KAFKA_VERSION_1XX\"`: Kafka 1.x\n" +
	"\n" +
	"- `\"KAFKA_VERSION_2XX\"`: Kafka 2.x\n" +
	"\n" +
	"- `\"KAFKA_VERSION_3XX\"`: Kafka 3.xJ\x13\"KAFKA_VERSION_3XX\"\xe0A\x02\xfaB\x05\x82\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\aversion\x12\xda\x01\n" +
	"\x10broker_endpoints\x18\x02 \x01(\tB\xae\x01\x92A\xa7\x012{Comma-separated list of broker addresses. Required for PUBLIC and VPC_PEERING network types. Not required for PRIVATE_LINK.J(\"broker1:9092,broker2:9092,broker3:9092\"\xe0A\x01R\x0fbrokerEndpoints\x12\x1c\n" +
	"\ause_tls\x18\x03 \x01(\bB\x03\xe0A\x01R\x06useTls\x125\n" +
	"\x14insecure_skip_verify\x18\x04 \x01(\bB\x03\xe0A\x01R\x12insecureSkipVerify\x12\xe1\x02\n" +
	"\vcompression\x18\x05 \x01(\x0e26.openapi.v1beta1.KafkaDownstreamConfig.CompressionTypeB\x86\x02\x92A\xf7\x012\xed\x01Compression type for messages.\n" +
	"\n" +
	"- `\"COMPRESSION_TYPE_UNSPECIFIED\"`: Default value.\n" +
	"\n" +
	"- `\"NONE\"`: No compression.\n" +
	"\n" +
	"- `\"GZIP\"`: GZIP compression.\n" +
	"\n" +
	"- `\"SNAPPY\"`: Snappy compression.\n" +
	"\n" +
	"- `\"LZ4\"`: LZ4 compression.\n" +
	"\n" +
	"- `\"ZSTD\"`: ZSTD compression.J\x05\"LZ4\"\xe0A\x01\xfaB\x05\x82\x01\x02\x10\x01R\vcompression\x12\xc3\x01\n" +
	"\x0fkafka_client_id\x18\x06 \x01(\tB\x9a\x01\x92A\x93\x012yOptional Kafka client ID. When left empty the TiCDC kernel keeps its own default; when set it is forwarded to the kernel.J\x16\"my-changefeed-client\"\xe0A\x01R\rkafkaClientId\x1a\x8a\x05\n" +
	"\x0eAuthentication\x12\x9a\x03\n" +
	"\tauth_type\x18\x01 \x01(\x0e2>.openapi.v1beta1.KafkaDownstreamConfig.Authentication.AuthTypeB\xbc\x02\x92A\xa7\x022\x8e\x02Authentication type.\n" +
	"\n" +
	"- `\"AUTH_TYPE_UNSPECIFIED\"`: Default value.\n" +
	"\n" +
	"- `\"DISABLE\"`: No authentication.\n" +
	"\n" +
	"- `\"SASL_PLAIN\"`: SASL/PLAIN authentication.\n" +
	"\n" +
	"- `\"SASL_SCRAM_SHA_256\"`: SASL/SCRAM-SHA-256 authentication.\n" +
	"\n" +
	"- `\"SASL_SCRAM_SHA_512\"`: SASL/SCRAM-SHA-512 authentication.J\x14\"SASL_SCRAM_SHA_256\"\xe0A\x02\xfaB\x05\x82\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\bauthType\x12$\n" +
	"\busername\x18\x02 \x01(\tB\x03\xe0A\x01H\x00R\busername\x88\x01\x01\x12'\n" +
	"\bpassword\x18\x03 \x01(\tB\x06\xe0A\x01\xe0A\x04H\x01R\bpassword\x88\x01\x01\"r\n" +
	"\bAuthType\x12\x19\n" +
	"\x15AUTH_TYPE_UNSPECIFIED\x10\x00\x12\v\n" +
	"\aDISABLE\x10\x01\x12\x0e\n" +
	"\n" +
	"SASL_PLAIN\x10\x02\x12\x16\n" +
	"\x12SASL_SCRAM_SHA_256\x10\x03\x12\x16\n" +
	"\x12SASL_SCRAM_SHA_512\x10\x04B\v\n" +
	"\t_usernameB\v\n" +
	"\t_password\x1a\x9b\x16\n" +
	"\n" +
	"DataFormat\x12\xfe\x04\n" +
	"\bprotocol\x18\x01 \x01(\x0e2:.openapi.v1beta1.KafkaDownstreamConfig.DataFormat.ProtocolB\xa5\x04\x92A\x90\x042\xf6\x03Output protocol for changefeed messages.\n" +
	"\n" +
	"- `\"PROTOCOL_UNSPECIFIED\"`: Default value.\n" +
	"\n" +
	"- `\"PROTOCOL_CANAL_JSON\"`: Canal JSON format. Recommended for most use cases.\n" +
	"\n" +
	"- `\"PROTOCOL_OPEN_PROTOCOL\"`: Open Protocol (TiDB native format). Encodes multiple events into one message.\n" +
	"\n" +
	"- `\"PROTOCOL_AVRO\"`: Apache Avro format. Supports Confluent Schema Registry and AWS Glue Schema Registry.\n" +
	"\n" +
	"- `\"PROTOCOL_MAXWELL\"`: Maxwell format.\n" +
	"\n" +
	"- `\"PROTOCOL_DEBEZIUM\"`: Debezium format.\n" +
	"\n" +
	"- `\"PROTOCOL_SIMPLE\"`: Simple format.J\x15\"PROTOCOL_CANAL_JSON\"\xe0A\x02\xfaB\x05\x82\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\bprotocol\x12k\n" +
	"\x0fdebezium_config\x18\x02 \x01(\v2@.openapi.v1beta1.KafkaDownstreamConfig.DataFormat.DebeziumConfigH\x00R\x0edebeziumConfig\x12_\n" +
	"\vavro_config\x18\x03 \x01(\v2<.openapi.v1beta1.KafkaDownstreamConfig.DataFormat.AvroConfigH\x00R\n" +
	"avroConfig\x127\n" +
	"\x15enable_tidb_extension\x18\x06 \x01(\bB\x03\xe0A\x01R\x13enableTidbExtension\x12:\n" +
	"\x17output_raw_change_event\x18\a \x01(\bB\x03\xe0A\x01R\x14outputRawChangeEvent\x1a\xcb\f\n" +
	"\n" +
	"AvroConfig\x12\x9a\x03\n" +
	"\x15decimal_handling_mode\x18\x03 \x01(\x0e2P.openapi.v1beta1.KafkaDownstreamConfig.DataFormat.AvroConfig.DecimalHandlingModeB\x93\x02\x92A\x84\x022\xe0\x01How to handle decimal values.\n" +
	"\n" +
	"- `\"DECIMAL_HANDLING_MODE_UNSPECIFIED\"`: Default value.\n" +
	"\n" +
	"- `\"DECIMAL_HANDLING_MODE_PRECISE\"`: Use precise decimal representation.\n" +
	"\n" +
	"- `\"DECIMAL_HANDLING_MODE_STRING\"`: Use string representation.J\x1f\"DECIMAL_HANDLING_MODE_PRECISE\"\xe0A\x01\xfaB\x05\x82\x01\x02\x10\x01R\x13decimalHandlingMode\x12\xbe\x03\n" +
	"\x1dbigint_unsigned_handling_mode\x18\x04 \x01(\x0e2W.openapi.v1beta1.KafkaDownstreamConfig.DataFormat.AvroConfig.BigintUnsignedHandlingModeB\xa1\x02\x92A\x92\x022\xe7\x01How to handle BIGINT UNSIGNED values.\n" +
	"\n" +
	"- `\"BIGINT_UNSIGNED_HANDLING_MODE_LONG\"`: Use 64-bit integer (may overflow for very large values).\n" +
	"\n" +
	"- `\"BIGINT_UNSIGNED_HANDLING_MODE_STRING\"`: Use string representation (safe for all values).J&\"BIGINT_UNSIGNED_HANDLING_MODE_STRING\"\xe0A\x01\xfaB\x05\x82\x01\x02\x10\x01R\x1abigintUnsignedHandlingMode\x12y\n" +
	"\x0fschema_registry\x18\x05 \x01(\v2K.openapi.v1beta1.KafkaDownstreamConfig.DataFormat.AvroConfig.SchemaRegistryB\x03\xe0A\x01R\x0eschemaRegistry\x1a\xef\x02\n" +
	"\x0eSchemaRegistry\x12\xbe\x01\n" +
	"\x19schema_registry_endpoints\x18\x02 \x01(\tB\x81\x01\x92A{2ZComma-separated list of Schema Registry endpoints. Required for Confluent Schema Registry.J\x1d\"http://schema-registry:8081\"\xe0A\x01R\x17schemaRegistryEndpoints\x12/\n" +
	"\x11enable_basic_auth\x18\x03 \x01(\bB\x03\xe0A\x01R\x0fenableBasicAuth\x123\n" +
	"\x13basic_auth_username\x18\x04 \x01(\tB\x03\xe0A\x01R\x11basicAuthUsername\x126\n" +
	"\x13basic_auth_password\x18\x05 \x01(\tB\x06\xe0A\x01\xe0A\x04R\x11basicAuthPassword\"\x81\x01\n" +
	"\x13DecimalHandlingMode\x12%\n" +
	"!DECIMAL_HANDLING_MODE_UNSPECIFIED\x10\x00\x12!\n" +
	"\x1dDECIMAL_HANDLING_MODE_PRECISE\x10\x01\x12 \n" +
	"\x1cDECIMAL_HANDLING_MODE_STRING\x10\x02\"n\n" +
	"\x1aBigintUnsignedHandlingMode\x12&\n" +
	"\"BIGINT_UNSIGNED_HANDLING_MODE_LONG\x10\x00\x12(\n" +
	"$BIGINT_UNSIGNED_HANDLING_MODE_STRING\x10\x01\x1ak\n" +
	"\x0eDebeziumConfig\x12-\n" +
	"\x10output_old_value\x18\x01 \x01(\bB\x03\xe0A\x01R\x0eoutputOldValue\x12*\n" +
	"\x0edisable_schema\x18\x02 \x01(\bB\x03\xe0A\x01R\rdisableSchema\"\x83\x01\n" +
	"\bProtocol\x12\x18\n" +
	"\x14PROTOCOL_UNSPECIFIED\x10\x00\x12\x17\n" +
	"\x13PROTOCOL_CANAL_JSON\x10\x01\x12\x1a\n" +
	"\x16PROTOCOL_OPEN_PROTOCOL\x10\x02\x12\x11\n" +
	"\rPROTOCOL_AVRO\x10\x03\x12\x15\n" +
	"\x11PROTOCOL_DEBEZIUM\x10\x05B\b\n" +
	"\x06config\x1a\xcd\x0e\n" +
	"\x14TopicPartitionConfig\x12\xbb\x03\n" +
	"\rdispatch_type\x18\x01 \x01(\x0e2H.openapi.v1beta1.KafkaDownstreamConfig.TopicPartitionConfig.DispatchTypeB\xcb\x02\x92A\xb6\x022\x99\x02How to dispatch messages to topics.\n" +
	"\n" +
	"- `\"DISPATCH_TYPE_UNSPECIFIED\"`: Default value.\n" +
	"\n" +
	"- `\"DISPATCH_TYPE_ONE_TOPIC\"`: All messages go to a single topic.\n" +
	"\n" +
	"- `\"DISPATCH_TYPE_BY_TABLE\"`: Each table gets its own topic.\n" +
	"\n" +
	"- `\"DISPATCH_TYPE_BY_DATABASE\"`: Each database gets its own topic.J\x18\"DISPATCH_TYPE_BY_TABLE\"\xe0A\x02\xfaB\x05\x82\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\fdispatchType\x12(\n" +
	"\rdefault_topic\x18\x02 \x01(\tB\x03\xe0A\x01R\fdefaultTopic\x12+\n" +
	"\ftopic_prefix\x18\x03 \x01(\tB\x03\xe0A\x01H\x00R\vtopicPrefix\x88\x01\x01\x12&\n" +
	"\tseparator\x18\x04 \x01(\tB\x03\xe0A\x01H\x01R\tseparator\x88\x01\x01\x12+\n" +
	"\ftopic_suffix\x18\x05 \x01(\tB\x03\xe0A\x01H\x02R\vtopicSuffix\x88\x01\x01\x12{\n" +
	"\x12replication_factor\x18\x06 \x01(\rBL\x92A92+Replication factor for auto-created topics.J\x013i\x00\x00\x00\x00\x00\x00\xf0?\xe0A\x02\xfaB\x04*\x02(\x01\xbaH\x03\xc8\x01\x01R\x11replicationFactor\x12s\n" +
	"\rpartition_num\x18\a \x01(\rBN\x92A;2-Number of partitions for auto-created topics.J\x016i\x00\x00\x00\x00\x00\x00\xf0?\xe0A\x02\xfaB\x04*\x02(\x01\xbaH\x03\xc8\x01\x01R\fpartitionNum\x12\x8f\x01\n" +
	"\x15partition_dispatchers\x18\t \x03(\v2U.openapi.v1beta1.KafkaDownstreamConfig.TopicPartitionConfig.PartitionDispatcherConfigB\x03\xe0A\x01R\x14partitionDispatchers\x1a\x99\x04\n" +
	"\x19PartitionDispatcherConfig\x12\x99\x03\n" +
	"\x0epartition_type\x18\x01 \x01(\x0e2O.openapi.v1beta1.KafkaDownstreamConfig.TopicPartitionConfig.PartitionDispatcherB\xa0\x02\x92A\x8b\x022\xff\x01The partition dispatch strategy.\n" +
	"\n" +
	"- `\"PARTITION_DISPATCHER_UNSPECIFIED\"`: Default value.\n" +
	"\n" +
	"- `\"TABLE\"`: Dispatch by table name.\n" +
	"\n" +
	"- `\"INDEX_VALUE\"`: Dispatch by index value.\n" +
	"\n" +
	"- `\"Timestamp\"`: Dispatch by timestamp.\n" +
	"\n" +
	"- `\"COLUMNS\"`: Dispatch by column values.J\a\"TABLE\"\xe0A\x02\xfaB\x05\x82\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\rpartitionType\x12\x1d\n" +
	"\amatcher\x18\x02 \x03(\tB\x03\xe0A\x01R\amatcher\x12\"\n" +
	"\n" +
	"index_name\x18\x03 \x01(\tB\x03\xe0A\x01R\tindexName\x12\x1d\n" +
	"\acolumns\x18\x04 \x03(\tB\x03\xe0A\x01R\acolumns\"\x85\x01\n" +
	"\fDispatchType\x12\x1d\n" +
	"\x19DISPATCH_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n" +
	"\x17DISPATCH_TYPE_ONE_TOPIC\x10\x01\x12\x1a\n" +
	"\x16DISPATCH_TYPE_BY_TABLE\x10\x02\x12\x1d\n" +
	"\x19DISPATCH_TYPE_BY_DATABASE\x10\x03\"s\n" +
	"\x13PartitionDispatcher\x12$\n" +
	" PARTITION_DISPATCHER_UNSPECIFIED\x10\x00\x12\t\n" +
	"\x05TABLE\x10\x01\x12\x0f\n" +
	"\vINDEX_VALUE\x10\x02\x12\r\n" +
	"\tTimestamp\x10\x03\x12\v\n" +
	"\aCOLUMNS\x10\x04B\x0f\n" +
	"\r_topic_prefixB\f\n" +
	"\n" +
	"_separatorB\x0f\n" +
	"\r_topic_suffix\x1aN\n" +
	"\x0eColumnSelector\x12\x1d\n" +
	"\amatcher\x18\x01 \x03(\tB\x03\xe0A\x01R\amatcher\x12\x1d\n" +
	"\acolumns\x18\x02 \x03(\tB\x03\xe0A\x01R\acolumns\"\x89\x01\n" +
	"\fKafkaVersion\x12\x1d\n" +
	"\x19KAFKA_VERSION_UNSPECIFIED\x10\x00\x12\x15\n" +
	"\x11KAFKA_VERSION_0XX\x10\x01\x12\x15\n" +
	"\x11KAFKA_VERSION_1XX\x10\x02\x12\x15\n" +
	"\x11KAFKA_VERSION_2XX\x10\x03\x12\x15\n" +
	"\x11KAFKA_VERSION_3XX\x10\x04\"f\n" +
	"\x0fCompressionType\x12 \n" +
	"\x1cCOMPRESSION_TYPE_UNSPECIFIED\x10\x00\x12\b\n" +
	"\x04NONE\x10\x01\x12\b\n" +
	"\x04GZIP\x10\x02\x12\n" +
	"\n" +
	"\x06SNAPPY\x10\x03\x12\a\n" +
	"\x03LZ4\x10\x04\x12\b\n" +
	"\x04ZSTD\x10\x05\"_\n" +
	"\x15MySQLDownstreamConfig\x12F\n" +
	"\n" +
	"connection\x18\x01 \x01(\v2\x1b.openapi.v1beta1.ConnectionB\t\xe0A\x02\xbaH\x03\xc8\x01\x01R\n" +
	"connection\"\x91\f\n" +
	"\fS3DataFormat\x12\xb0\x02\n" +
	"\bprotocol\x18\x01 \x01(\x0e2&.openapi.v1beta1.S3DataFormat.ProtocolB\xeb\x01\x92A\xd6\x012\xbc\x01Output protocol.\n" +
	"\n" +
	"- `\"PROTOCOL_UNSPECIFIED\"`: Default value.\n" +
	"\n" +
	"- `\"PROTOCOL_CSV\"`: CSV format.\n" +
	"\n" +
	"- `\"PROTOCOL_CANAL_JSON\"`: Canal JSON format.\n" +
	"\n" +
	"- `\"PROTOCOL_PARQUET\"`: Apache Parquet format.J\x15\"PROTOCOL_CANAL_JSON\"\xe0A\x02\xfaB\x05\x82\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\bprotocol\x12#\n" +
	"\n" +
	"terminator\x18\x02 \x01(\tB\x03\xe0A\x01R\n" +
	"terminator\x12\xc4\x02\n" +
	"\x0edate_separator\x18\x03 \x01(\x0e2+.openapi.v1beta1.S3DataFormat.DateSeparatorB\xef\x01\x92A\xe0\x012\xd6\x01Date separator for directory structure.\n" +
	"\n" +
	"- `\"DATE_SEPARATOR_UNSPECIFIED\"`: Default value.\n" +
	"\n" +
	"- `\"NONE\"`: No date separator.\n" +
	"\n" +
	"- `\"YEAR\"`: Separate by year.\n" +
	"\n" +
	"- `\"MONTH\"`: Separate by month.\n" +
	"\n" +
	"- `\"DAY\"`: Separate by day.J\x05\"DAY\"\xe0A\x01\xfaB\x05\x82\x01\x02\x10\x01R\rdateSeparator\x127\n" +
	"\x15enable_tidb_extension\x18\x04 \x01(\bB\x03\xe0A\x01R\x13enableTidbExtension\x12!\n" +
	"\tdelimiter\x18\x05 \x01(\tB\x03\xe0A\x01R\tdelimiter\x12\x19\n" +
	"\x05quote\x18\x06 \x01(\tB\x03\xe0A\x01R\x05quote\x12\x17\n" +
	"\x04null\x18\a \x01(\tB\x03\xe0A\x01R\x04null\x12/\n" +
	"\x11include_commit_ts\x18\b \x01(\bB\x03\xe0A\x01R\x0fincludeCommitTs\x12\x9a\x02\n" +
	"\x16binary_encoding_method\x18\t \x01(\x0e22.openapi.v1beta1.S3DataFormat.BinaryEncodingMethodB\xaf\x01\x92A\xa0\x012\x93\x01Binary encoding method.\n" +
	"\n" +
	"- `\"BINARY_ENCODING_METHOD_UNSPECIFIED\"`: Default value.\n" +
	"\n" +
	"- `\"BASE64\"`: Base64 encoding.\n" +
	"\n" +
	"- `\"HEX\"`: Hexadecimal encoding.J\b\"BASE64\"\xe0A\x01\xfaB\x05\x82\x01\x02\x10\x01R\x14binaryEncodingMethod\x12:\n" +
	"\x17output_raw_change_event\x18\n" +
	" \x01(\bB\x03\xe0A\x01R\x14outputRawChangeEvent\x123\n" +
	"\x13output_field_header\x18\v \x01(\bB\x03\xe0A\x01R\x11outputFieldHeader\"W\n" +
	"\rDateSeparator\x12\x1e\n" +
	"\x1aDATE_SEPARATOR_UNSPECIFIED\x10\x00\x12\b\n" +
	"\x04NONE\x10\x01\x12\b\n" +
	"\x04YEAR\x10\x02\x12\t\n" +
	"\x05MONTH\x10\x03\x12\a\n" +
	"\x03DAY\x10\x04\"e\n" +
	"\bProtocol\x12\x18\n" +
	"\x14PROTOCOL_UNSPECIFIED\x10\x00\x12\x10\n" +
	"\fPROTOCOL_CSV\x10\x01\x12\x17\n" +
	"\x13PROTOCOL_CANAL_JSON\x10\x02\x12\x14\n" +
	"\x10PROTOCOL_PARQUET\x10\x03\"S\n" +
	"\x14BinaryEncodingMethod\x12&\n" +
	"\"BINARY_ENCODING_METHOD_UNSPECIFIED\x10\x00\x12\n" +
	"\n" +
	"\x06BASE64\x10\x01\x12\a\n" +
	"\x03HEX\x10\x02\"\x95\x03\n" +
	"\x12StorageFlushConfig\x12\xa1\x01\n" +
	"\binterval\x18\x01 \x01(\tB\x84\x01\x92A~2vFlush interval. Range: 2s to 10m. Default: \"1m\". Files are flushed when either interval or file_size threshold is met.J\x04\"1m\"\xe0A\x01R\binterval\x12\xda\x01\n" +
	"\tfile_size\x18\x02 \x01(\x04B\xbc\x01\x92A\xa6\x012\x87\x01File size threshold in bytes. Range: 1MB to 512MB. Default: 64MB. Files are flushed when either interval or file_size threshold is met.J\b67108864Y\x00\x00\x00\x00\x00\x00\xc0Ai\x00\x00\x00\x00\x00\x000A\xe0A\x01\xfaB\f2\n" +
	"\x18\x80\x80\x80\x80\x02(\x80\x80@R\bfileSize\"\xaa\a\n" +
	"\x12S3DownstreamConfig\x12S\n" +
	"\bendpoint\x18\x01 \x01(\v2,.openapi.v1beta1.S3DownstreamConfig.EndpointB\t\xe0A\x02\xbaH\x03\xc8\x01\x01R\bendpoint\x12I\n" +
	"\vdata_format\x18\x02 \x01(\v2\x1d.openapi.v1beta1.S3DataFormatB\t\xe0A\x02\xbaH\x03\xc8\x01\x01R\n" +
	"dataFormat\x12Z\n" +
	"\x14storage_flush_config\x18\x03 \x01(\v2#.openapi.v1beta1.StorageFlushConfigB\x03\xe0A\x01R\x12storageFlushConfig\x1a\x97\x05\n" +
	"\bEndpoint\x12U\n" +
	"\x06s3_uri\x18\x01 \x01(\tB>\x92A+2\x0eS3 bucket URI.J\x19\"s3://my-bucket/cdc-data\"\xe0A\x02\xfaB\x04r\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x05s3Uri\x12\xcd\x02\n" +
	"\tauth_type\x18\x04 \x01(\x0e27.openapi.v1beta1.S3DownstreamConfig.Endpoint.S3AuthTypeB\xf6\x01\x92A\xe1\x012\xc8\x01Authentication type.\n" +
	"\n" +
	"- `\"S3_AUTH_TYPE_UNSPECIFIED\"`: Default value.\n" +
	"\n" +
	"- `\"S3_AUTH_TYPE_AK_SK\"`: Access Key / Secret Key authentication.\n" +
	"\n" +
	"- `\"S3_AUTH_TYPE_ASSUME_ROLE\"`: IAM Assume Role authentication.J\x14\"S3_AUTH_TYPE_AK_SK\"\xe0A\x02\xfaB\x05\x82\x01\x02\x10\x01\xbaH\x03\xc8\x01\x01R\bauthType\x12%\n" +
	"\n" +
	"access_key\x18\x02 \x01(\tB\x06\xe0A\x01\xe0A\x04R\taccessKey\x12%\n" +
	"\n" +
	"secret_key\x18\x03 \x01(\tB\x06\xe0A\x01\xe0A\x04R\tsecretKey\x124\n" +
	"\x14iam_assumed_role_arn\x18\x05 \x01(\tB\x03\xe0A\x01R\x11iamAssumedRoleArn\"`\n" +
	"\n" +
	"S3AuthType\x12\x1c\n" +
	"\x18S3_AUTH_TYPE_UNSPECIFIED\x10\x00\x12\x16\n" +
	"\x12S3_AUTH_TYPE_AK_SK\x10\x01\x12\x1c\n" +
	"\x18S3_AUTH_TYPE_ASSUME_ROLE\x10\x02\"\xf8\x02\n" +
	"\x13GcsDownstreamConfig\x12T\n" +
	"\bendpoint\x18\x01 \x01(\v2-.openapi.v1beta1.GcsDownstreamConfig.EndpointB\t\xe0A\x02\xbaH\x03\xc8\x01\x01R\bendpoint\x12I\n" +
	"\vdata_format\x18\x02 \x01(\v2\x1d.openapi.v1beta1.S3DataFormatB\t\xe0A\x02\xbaH\x03\xc8\x01\x01R\n" +
	"dataFormat\x12Z\n" +
	"\x14storage_flush_config\x18\x03 \x01(\v2#.openapi.v1beta1.StorageFlushConfigB\x03\xe0A\x01R\x12storageFlushConfig\x1ad\n" +
	"\bEndpoint\x12X\n" +
	"\agcs_uri\x18\x01 \x01(\tB?\x92A,2\x0fGCS bucket URI.J\x19\"gs://my-bucket/cdc-data\"\xe0A\x02\xfaB\x04r\x02\x10\x01\xbaH\x03\xc8\x01\x01R\x06gcsUri\"\xb5\x05\n" +
	"\x19AzureBlobDownstreamConfig\x12Z\n" +
	"\bendpoint\x18\x01 \x01(\v23.openapi.v1beta1.AzureBlobDownstreamConfig.EndpointB\t\xe0A\x02\xbaH\x03\xc8\x01\x01R\bendpoint\x12I\n" +
	"\vdata_format\x18\x02 \x01(\v2\x1d.openapi.v1beta1.S3DataFormatB\t\xe0A\x02\xbaH\x03\xc8\x01\x01R\n" +
	"dataFormat\x12Z\n" +
	"\x14storage_flush_config\x18\x03 \x01(\v2#.openapi.v1beta1.StorageFlushConfigB\x03\xe0A\x01R\x12storageFlushConfig\x1a\x94\x03\n" +
	"\bEndpoint\x12\x89\x01\n" +
	"\bblob_uri\x18\x01 \x01(\tBn\x92A[2\x19Azure Blob container URI.J>\"https://myaccount.blob.core.windows.net/mycontainer/cdc-data\"\xe0A\x02\xfaB\x04r\x02\x10\x01\xbaH\x03\xc8\x01\x01R\ablobUri\x12\xfb\x01\n" +
	"\tsas_token\x18\x02 \x01(\tB\xdd\x01\x92A\xc6\x012USAS token for authentication. This field is input-only and not returned in responses.Jm\"sv=2022-11-02&ss=b&srt=sco&sp=rwdlaciytfx&se=2026-06-09T00:00:00Z&st=2026-06-08T00:00:00Z&spr=https&sig=...\"\xe0A\x02\xe0A\x04\xfaB\x04r\x02\x10\x01\xbaH\x03\xc8\x01\x01R\bsasToken*h\n" +
	"\x0eDownstreamType\x12\x1f\n" +
	"\x1bDOWNSTREAM_TYPE_UNSPECIFIED\x10\x00\x12\t\n" +
	"\x05KAFKA\x10\x01\x12\t\n" +
	"\x05MYSQL\x10\x03\x12\x06\n" +
	"\x02S3\x10\x05\x12\a\n" +
	"\x03GCS\x10\x06\x12\x0e\n" +
	"\n" +
	"AZURE_BLOB\x10\b2\xda\x14\n" +
	"\x11ChangefeedService\x12\xc0\x01\n" +
	"\x0fListChangefeeds\x12'.openapi.v1beta1.ListChangefeedsRequest\x1a(.openapi.v1beta1.ListChangefeedsResponse\"Z\x92A;\x1a(List all changefeeds for a given cluster*\x0fListChangefeeds\x82\xd3\xe4\x93\x02\x16\x12\x14/v1beta1/changefeeds\x12\xaf\x01\n" +
	"\rGetChangefeed\x12%.openapi.v1beta1.GetChangefeedRequest\x1a\x1b.openapi.v1beta1.Changefeed\"Z\x92A+\x1a\x1aGet a changefeed by its ID*\rGetChangefeed\x82\xd3\xe4\x93\x02&\x12$/v1beta1/changefeeds/{changefeed_id}\x12\xb9\x01\n" +
	"\x0fPauseChangefeed\x12'.openapi.v1beta1.PauseChangefeedRequest\x1a\x16.google.protobuf.Empty\"e\x92A-\x1a\x1aPause a running changefeed*\x0fPauseChangefeed\x82\xd3\xe4\x93\x02/:\x01*\"*/v1beta1/changefeeds/{changefeed_id}:pause\x12\xbd\x01\n" +
	"\x10ResumeChangefeed\x12(.openapi.v1beta1.ResumeChangefeedRequest\x1a\x16.google.protobuf.Empty\"g\x92A.\x1a\x1aResume a paused changefeed*\x10ResumeChangefeed\x82\xd3\xe4\x93\x020:\x01*\"+/v1beta1/changefeeds/{changefeed_id}:resume\x12\xee\x01\n" +
	"\x0fGetEventFilters\x12'.openapi.v1beta1.GetEventFiltersRequest\x1a\x1d.openapi.v1beta1.EventFilters\"\x92\x01\x92AC\x1a0Retrieve event filters for a specific changefeed*\x0fGetEventFilters\xfa\xd2\xe4\x93\x02\n" +
	"\x12\bINTERNAL\x82\xd3\xe4\x93\x026\x124/v1beta1/changefeeds/{changefeed_id}:getEventFilters\x12\xfa\x01\n" +
	"\x0fSetEventFilters\x12'.openapi.v1beta1.SetEventFiltersRequest\x1a(.openapi.v1beta1.SetEventFiltersResponse\"\x93\x01\x92AA\x1a.Update event filters for a specific changefeed*\x0fSetEventFilters\xfa\xd2\xe4\x93\x02\n" +
	"\x12\bINTERNAL\x82\xd3\xe4\x93\x029:\x01*\"4/v1beta1/changefeeds/{changefeed_id}:setEventFilters\x12\xa8\x01\n" +
	"\x10CreateChangefeed\x12(.openapi.v1beta1.CreateChangefeedRequest\x1a\x1b.openapi.v1beta1.Changefeed\"M\x92A+\x1a\x17Create a new changefeed*\x10CreateChangefeed\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/v1beta1/changefeeds\x12\xb6\x01\n" +
	"\x10DeleteChangefeed\x12(.openapi.v1beta1.DeleteChangefeedRequest\x1a\x16.google.protobuf.Empty\"`\x92A1\x1a\x1dDelete a changefeed by its ID*\x10DeleteChangefeed\x82\xd3\xe4\x93\x02&*$/v1beta1/changefeeds/{changefeed_id}\x12\xc0\x02\n" +
	"\x1eEditChangefeedDownstreamConfig\x126.openapi.v1beta1.EditChangefeedDownstreamConfigRequest\x1a\x1b.openapi.v1beta1.Changefeed\"\xc8\x01\x92A\x80\x01\x1a^Update mutable configuration of an existing changefeed. The changefeed must be in PAUSED state*\x1eEditChangefeedDownstreamConfig\x82\xd3\xe4\x93\x02>:\x01*\"9/v1beta1/changefeeds/{changefeed_id}:editDownstreamConfig\x12\xd3\x01\n" +
	"\x0fScaleChangefeed\x12'.openapi.v1beta1.ScaleChangefeedRequest\x1a\x1b.openapi.v1beta1.Changefeed\"z\x92AB\x1a/Scale a changefeed to a different instance type*\x0fScaleChangefeed\x82\xd3\xe4\x93\x02/:\x01*\"*/v1beta1/changefeeds/{changefeed_id}:scale\x12\xc5\x01\n" +
	"\x12ListChangefeedRCUs\x12*.openapi.v1beta1.ListChangefeedRCUsRequest\x1a+.openapi.v1beta1.ListChangefeedRCUsResponse\"V\x92A4\x1a\x1eList available changefeed RCUs*\x12ListChangefeedRCUs\x82\xd3\xe4\x93\x02\x19\x12\x17/v1beta1/changefeedRCUs\x12\xa0\x02\n" +
	"\x17GetChangefeedKernelInfo\x12/.openapi.v1beta1.GetChangefeedKernelInfoRequest\x1a%.openapi.v1beta1.ChangefeedKernelInfo\"\xac\x01\x92Ao\x1aTGet the TiCDC kernel version and kernel type of a changefeed. For internal use only.*\x17GetChangefeedKernelInfo\x82\xd3\xe4\x93\x024\x122/v1beta1/changefeeds/{changefeed_id}:getKernelInfoB\xf5\x01\x92Ah\n" +
	"\x032.0\x12G\n" +
	"\x1dTiDB Cloud Dedicated Open API\x12\x1dTiDB Cloud Dedicated Open API2\av1beta1\x1a\x15dedicated.tidbapi.com*\x01\x02\n" +
	"&com.tidbcloud.dataflow.openapi.v1beta1B\x0fChangefeedProtoP\x01ZMgithub.com/tidbcloud/dataflow-service/idl/pbgen/proto/openapi/v1beta1;v1beta1b\x06proto3"

var (
	file_openapi_v1beta1_changefeed_proto_rawDescOnce sync.Once
	file_openapi_v1beta1_changefeed_proto_rawDescData []byte
)

func file_openapi_v1beta1_changefeed_proto_rawDescGZIP() []byte {
	file_openapi_v1beta1_changefeed_proto_rawDescOnce.Do(func() {
		file_openapi_v1beta1_changefeed_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_openapi_v1beta1_changefeed_proto_rawDesc), len(file_openapi_v1beta1_changefeed_proto_rawDesc)))
	})
	return file_openapi_v1beta1_changefeed_proto_rawDescData
}

var file_openapi_v1beta1_changefeed_proto_enumTypes = make([]protoimpl.EnumInfo, 18)
var file_openapi_v1beta1_changefeed_proto_msgTypes = make([]protoimpl.MessageInfo, 47)
var file_openapi_v1beta1_changefeed_proto_goTypes = []any{
	(DownstreamType)(0),                                                          // 0: openapi.v1beta1.DownstreamType
	(Changefeed_State)(0),                                                        // 1: openapi.v1beta1.Changefeed.State
	(ChangefeedKernelInfo_KernelType)(0),                                         // 2: openapi.v1beta1.ChangefeedKernelInfo.KernelType
	(TableConfig_Mode)(0),                                                        // 3: openapi.v1beta1.TableConfig.Mode
	(StartPosition_Mode)(0),                                                      // 4: openapi.v1beta1.StartPosition.Mode
	(NetworkInfo_NetworkType)(0),                                                 // 5: openapi.v1beta1.NetworkInfo.NetworkType
	(KafkaDownstreamConfig_KafkaVersion)(0),                                      // 6: openapi.v1beta1.KafkaDownstreamConfig.KafkaVersion
	(KafkaDownstreamConfig_CompressionType)(0),                                   // 7: openapi.v1beta1.KafkaDownstreamConfig.CompressionType
	(KafkaDownstreamConfig_Authentication_AuthType)(0),                           // 8: openapi.v1beta1.KafkaDownstreamConfig.Authentication.AuthType
	(KafkaDownstreamConfig_DataFormat_Protocol)(0),                               // 9: openapi.v1beta1.KafkaDownstreamConfig.DataFormat.Protocol
	(KafkaDownstreamConfig_DataFormat_AvroConfig_DecimalHandlingMode)(0),         // 10: openapi.v1beta1.KafkaDownstreamConfig.DataFormat.AvroConfig.DecimalHandlingMode
	(KafkaDownstreamConfig_DataFormat_AvroConfig_BigintUnsignedHandlingMode)(0),  // 11: openapi.v1beta1.KafkaDownstreamConfig.DataFormat.AvroConfig.BigintUnsignedHandlingMode
	(KafkaDownstreamConfig_TopicPartitionConfig_DispatchType)(0),                 // 12: openapi.v1beta1.KafkaDownstreamConfig.TopicPartitionConfig.DispatchType
	(KafkaDownstreamConfig_TopicPartitionConfig_PartitionDispatcher)(0),          // 13: openapi.v1beta1.KafkaDownstreamConfig.TopicPartitionConfig.PartitionDispatcher
	(S3DataFormat_DateSeparator)(0),                                              // 14: openapi.v1beta1.S3DataFormat.DateSeparator
	(S3DataFormat_Protocol)(0),                                                   // 15: openapi.v1beta1.S3DataFormat.Protocol
	(S3DataFormat_BinaryEncodingMethod)(0),                                       // 16: openapi.v1beta1.S3DataFormat.BinaryEncodingMethod
	(S3DownstreamConfig_Endpoint_S3AuthType)(0),                                  // 17: openapi.v1beta1.S3DownstreamConfig.Endpoint.S3AuthType
	(*ListChangefeedsRequest)(nil),                                               // 18: openapi.v1beta1.ListChangefeedsRequest
	(*ListChangefeedsResponse)(nil),                                              // 19: openapi.v1beta1.ListChangefeedsResponse
	(*Changefeed)(nil),                                                           // 20: openapi.v1beta1.Changefeed
	(*GetChangefeedRequest)(nil),                                                 // 21: openapi.v1beta1.GetChangefeedRequest
	(*PauseChangefeedRequest)(nil),                                               // 22: openapi.v1beta1.PauseChangefeedRequest
	(*ResumeChangefeedRequest)(nil),                                              // 23: openapi.v1beta1.ResumeChangefeedRequest
	(*GetChangefeedKernelInfoRequest)(nil),                                       // 24: openapi.v1beta1.GetChangefeedKernelInfoRequest
	(*ChangefeedKernelInfo)(nil),                                                 // 25: openapi.v1beta1.ChangefeedKernelInfo
	(*GetEventFiltersRequest)(nil),                                               // 26: openapi.v1beta1.GetEventFiltersRequest
	(*EventFilters)(nil),                                                         // 27: openapi.v1beta1.EventFilters
	(*SetEventFiltersResponse)(nil),                                              // 28: openapi.v1beta1.SetEventFiltersResponse
	(*EventFilter)(nil),                                                          // 29: openapi.v1beta1.EventFilter
	(*SetEventFiltersRequest)(nil),                                               // 30: openapi.v1beta1.SetEventFiltersRequest
	(*CreateChangefeedRequest)(nil),                                              // 31: openapi.v1beta1.CreateChangefeedRequest
	(*EditChangefeedDownstreamConfigRequest)(nil),                                // 32: openapi.v1beta1.EditChangefeedDownstreamConfigRequest
	(*DeleteChangefeedRequest)(nil),                                              // 33: openapi.v1beta1.DeleteChangefeedRequest
	(*ScaleChangefeedRequest)(nil),                                               // 34: openapi.v1beta1.ScaleChangefeedRequest
	(*TestConnectionRequest)(nil),                                                // 35: openapi.v1beta1.TestConnectionRequest
	(*DescribeSchemaTableRequest)(nil),                                           // 36: openapi.v1beta1.DescribeSchemaTableRequest
	(*DescribeSchemaTableResponse)(nil),                                          // 37: openapi.v1beta1.DescribeSchemaTableResponse
	(*ListChangefeedRCUsRequest)(nil),                                            // 38: openapi.v1beta1.ListChangefeedRCUsRequest
	(*ListChangefeedRCUsResponse)(nil),                                           // 39: openapi.v1beta1.ListChangefeedRCUsResponse
	(*ChangefeedRCU)(nil),                                                        // 40: openapi.v1beta1.ChangefeedRCU
	(*TableConfig)(nil),                                                          // 41: openapi.v1beta1.TableConfig
	(*StartPosition)(nil),                                                        // 42: openapi.v1beta1.StartPosition
	(*Connection)(nil),                                                           // 43: openapi.v1beta1.Connection
	(*NetworkInfo)(nil),                                                          // 44: openapi.v1beta1.NetworkInfo
	(*KafkaDownstreamConfig)(nil),                                                // 45: openapi.v1beta1.KafkaDownstreamConfig
	(*MySQLDownstreamConfig)(nil),                                                // 46: openapi.v1beta1.MySQLDownstreamConfig
	(*S3DataFormat)(nil),                                                         // 47: openapi.v1beta1.S3DataFormat
	(*StorageFlushConfig)(nil),                                                   // 48: openapi.v1beta1.StorageFlushConfig
	(*S3DownstreamConfig)(nil),                                                   // 49: openapi.v1beta1.S3DownstreamConfig
	(*GcsDownstreamConfig)(nil),                                                  // 50: openapi.v1beta1.GcsDownstreamConfig
	(*AzureBlobDownstreamConfig)(nil),                                            // 51: openapi.v1beta1.AzureBlobDownstreamConfig
	(*DescribeSchemaTableResponse_SchemaInfo)(nil),                               // 52: openapi.v1beta1.DescribeSchemaTableResponse.SchemaInfo
	(*KafkaDownstreamConfig_Broker)(nil),                                         // 53: openapi.v1beta1.KafkaDownstreamConfig.Broker
	(*KafkaDownstreamConfig_Authentication)(nil),                                 // 54: openapi.v1beta1.KafkaDownstreamConfig.Authentication
	(*KafkaDownstreamConfig_DataFormat)(nil),                                     // 55: openapi.v1beta1.KafkaDownstreamConfig.DataFormat
	(*KafkaDownstreamConfig_TopicPartitionConfig)(nil),                           // 56: openapi.v1beta1.KafkaDownstreamConfig.TopicPartitionConfig
	(*KafkaDownstreamConfig_ColumnSelector)(nil),                                 // 57: openapi.v1beta1.KafkaDownstreamConfig.ColumnSelector
	(*KafkaDownstreamConfig_DataFormat_AvroConfig)(nil),                          // 58: openapi.v1beta1.KafkaDownstreamConfig.DataFormat.AvroConfig
	(*KafkaDownstreamConfig_DataFormat_DebeziumConfig)(nil),                      // 59: openapi.v1beta1.KafkaDownstreamConfig.DataFormat.DebeziumConfig
	(*KafkaDownstreamConfig_DataFormat_AvroConfig_SchemaRegistry)(nil),           // 60: openapi.v1beta1.KafkaDownstreamConfig.DataFormat.AvroConfig.SchemaRegistry
	(*KafkaDownstreamConfig_TopicPartitionConfig_PartitionDispatcherConfig)(nil), // 61: openapi.v1beta1.KafkaDownstreamConfig.TopicPartitionConfig.PartitionDispatcherConfig
	(*S3DownstreamConfig_Endpoint)(nil),                                          // 62: openapi.v1beta1.S3DownstreamConfig.Endpoint
	(*GcsDownstreamConfig_Endpoint)(nil),                                         // 63: openapi.v1beta1.GcsDownstreamConfig.Endpoint
	(*AzureBlobDownstreamConfig_Endpoint)(nil),                                   // 64: openapi.v1beta1.AzureBlobDownstreamConfig.Endpoint
	(*timestamppb.Timestamp)(nil),                                                // 65: google.protobuf.Timestamp
	(*emptypb.Empty)(nil),                                                        // 66: google.protobuf.Empty
}
var file_openapi_v1beta1_changefeed_proto_depIdxs = []int32{
	0,  // 0: openapi.v1beta1.ListChangefeedsRequest.downstream_type:type_name -> openapi.v1beta1.DownstreamType
	20, // 1: openapi.v1beta1.ListChangefeedsResponse.changefeeds:type_name -> openapi.v1beta1.Changefeed
	44, // 2: openapi.v1beta1.Changefeed.network_info:type_name -> openapi.v1beta1.NetworkInfo
	1,  // 3: openapi.v1beta1.Changefeed.state:type_name -> openapi.v1beta1.Changefeed.State
	65, // 4: openapi.v1beta1.Changefeed.create_time:type_name -> google.protobuf.Timestamp
	65, // 5: openapi.v1beta1.Changefeed.checkpoint_ts:type_name -> google.protobuf.Timestamp
	0,  // 6: openapi.v1beta1.Changefeed.downstream_type:type_name -> openapi.v1beta1.DownstreamType
	41, // 7: openapi.v1beta1.Changefeed.table_config:type_name -> openapi.v1beta1.TableConfig
	42, // 8: openapi.v1beta1.Changefeed.start_position:type_name -> openapi.v1beta1.StartPosition
	45, // 9: openapi.v1beta1.Changefeed.kafka:type_name -> openapi.v1beta1.KafkaDownstreamConfig
	46, // 10: openapi.v1beta1.Changefeed.mysql:type_name -> openapi.v1beta1.MySQLDownstreamConfig
	49, // 11: openapi.v1beta1.Changefeed.s3:type_name -> openapi.v1beta1.S3DownstreamConfig
	50, // 12: openapi.v1beta1.Changefeed.gcs:type_name -> openapi.v1beta1.GcsDownstreamConfig
	51, // 13: openapi.v1beta1.Changefeed.azure_blob:type_name -> openapi.v1beta1.AzureBlobDownstreamConfig
	2,  // 14: openapi.v1beta1.ChangefeedKernelInfo.kernel_type:type_name -> openapi.v1beta1.ChangefeedKernelInfo.KernelType
	29, // 15: openapi.v1beta1.EventFilters.event_filters:type_name -> openapi.v1beta1.EventFilter
	29, // 16: openapi.v1beta1.SetEventFiltersResponse.event_filters:type_name -> openapi.v1beta1.EventFilter
	29, // 17: openapi.v1beta1.SetEventFiltersRequest.event_filters:type_name -> openapi.v1beta1.EventFilter
	20, // 18: openapi.v1beta1.CreateChangefeedRequest.changefeed:type_name -> openapi.v1beta1.Changefeed
	41, // 19: openapi.v1beta1.EditChangefeedDownstreamConfigRequest.table_config:type_name -> openapi.v1beta1.TableConfig
	0,  // 20: openapi.v1beta1.EditChangefeedDownstreamConfigRequest.downstream_type:type_name -> openapi.v1beta1.DownstreamType
	45, // 21: openapi.v1beta1.EditChangefeedDownstreamConfigRequest.kafka:type_name -> openapi.v1beta1.KafkaDownstreamConfig
	46, // 22: openapi.v1beta1.EditChangefeedDownstreamConfigRequest.mysql:type_name -> openapi.v1beta1.MySQLDownstreamConfig
	49, // 23: openapi.v1beta1.EditChangefeedDownstreamConfigRequest.s3:type_name -> openapi.v1beta1.S3DownstreamConfig
	50, // 24: openapi.v1beta1.EditChangefeedDownstreamConfigRequest.gcs:type_name -> openapi.v1beta1.GcsDownstreamConfig
	51, // 25: openapi.v1beta1.EditChangefeedDownstreamConfigRequest.azure_blob:type_name -> openapi.v1beta1.AzureBlobDownstreamConfig
	44, // 26: openapi.v1beta1.TestConnectionRequest.network_info:type_name -> openapi.v1beta1.NetworkInfo
	0,  // 27: openapi.v1beta1.TestConnectionRequest.downstream_type:type_name -> openapi.v1beta1.DownstreamType
	45, // 28: openapi.v1beta1.TestConnectionRequest.kafka:type_name -> openapi.v1beta1.KafkaDownstreamConfig
	46, // 29: openapi.v1beta1.TestConnectionRequest.mysql:type_name -> openapi.v1beta1.MySQLDownstreamConfig
	49, // 30: openapi.v1beta1.TestConnectionRequest.s3:type_name -> openapi.v1beta1.S3DownstreamConfig
	50, // 31: openapi.v1beta1.TestConnectionRequest.gcs:type_name -> openapi.v1beta1.GcsDownstreamConfig
	51, // 32: openapi.v1beta1.TestConnectionRequest.azure_blob:type_name -> openapi.v1beta1.AzureBlobDownstreamConfig
	52, // 33: openapi.v1beta1.DescribeSchemaTableResponse.schemas:type_name -> openapi.v1beta1.DescribeSchemaTableResponse.SchemaInfo
	65, // 34: openapi.v1beta1.DescribeSchemaTableResponse.gc_safe_point:type_name -> google.protobuf.Timestamp
	40, // 35: openapi.v1beta1.ListChangefeedRCUsResponse.rcus:type_name -> openapi.v1beta1.ChangefeedRCU
	3,  // 36: openapi.v1beta1.TableConfig.mode:type_name -> openapi.v1beta1.TableConfig.Mode
	29, // 37: openapi.v1beta1.TableConfig.event_filters:type_name -> openapi.v1beta1.EventFilter
	4,  // 38: openapi.v1beta1.StartPosition.mode:type_name -> openapi.v1beta1.StartPosition.Mode
	5,  // 39: openapi.v1beta1.NetworkInfo.network_type:type_name -> openapi.v1beta1.NetworkInfo.NetworkType
	53, // 40: openapi.v1beta1.KafkaDownstreamConfig.broker:type_name -> openapi.v1beta1.KafkaDownstreamConfig.Broker
	54, // 41: openapi.v1beta1.KafkaDownstreamConfig.authentication:type_name -> openapi.v1beta1.KafkaDownstreamConfig.Authentication
	55, // 42: openapi.v1beta1.KafkaDownstreamConfig.data_format:type_name -> openapi.v1beta1.KafkaDownstreamConfig.DataFormat
	56, // 43: openapi.v1beta1.KafkaDownstreamConfig.topic_partition_config:type_name -> openapi.v1beta1.KafkaDownstreamConfig.TopicPartitionConfig
	57, // 44: openapi.v1beta1.KafkaDownstreamConfig.column_selectors:type_name -> openapi.v1beta1.KafkaDownstreamConfig.ColumnSelector
	43, // 45: openapi.v1beta1.MySQLDownstreamConfig.connection:type_name -> openapi.v1beta1.Connection
	15, // 46: openapi.v1beta1.S3DataFormat.protocol:type_name -> openapi.v1beta1.S3DataFormat.Protocol
	14, // 47: openapi.v1beta1.S3DataFormat.date_separator:type_name -> openapi.v1beta1.S3DataFormat.DateSeparator
	16, // 48: openapi.v1beta1.S3DataFormat.binary_encoding_method:type_name -> openapi.v1beta1.S3DataFormat.BinaryEncodingMethod
	62, // 49: openapi.v1beta1.S3DownstreamConfig.endpoint:type_name -> openapi.v1beta1.S3DownstreamConfig.Endpoint
	47, // 50: openapi.v1beta1.S3DownstreamConfig.data_format:type_name -> openapi.v1beta1.S3DataFormat
	48, // 51: openapi.v1beta1.S3DownstreamConfig.storage_flush_config:type_name -> openapi.v1beta1.StorageFlushConfig
	63, // 52: openapi.v1beta1.GcsDownstreamConfig.endpoint:type_name -> openapi.v1beta1.GcsDownstreamConfig.Endpoint
	47, // 53: openapi.v1beta1.GcsDownstreamConfig.data_format:type_name -> openapi.v1beta1.S3DataFormat
	48, // 54: openapi.v1beta1.GcsDownstreamConfig.storage_flush_config:type_name -> openapi.v1beta1.StorageFlushConfig
	64, // 55: openapi.v1beta1.AzureBlobDownstreamConfig.endpoint:type_name -> openapi.v1beta1.AzureBlobDownstreamConfig.Endpoint
	47, // 56: openapi.v1beta1.AzureBlobDownstreamConfig.data_format:type_name -> openapi.v1beta1.S3DataFormat
	48, // 57: openapi.v1beta1.AzureBlobDownstreamConfig.storage_flush_config:type_name -> openapi.v1beta1.StorageFlushConfig
	6,  // 58: openapi.v1beta1.KafkaDownstreamConfig.Broker.version:type_name -> openapi.v1beta1.KafkaDownstreamConfig.KafkaVersion
	7,  // 59: openapi.v1beta1.KafkaDownstreamConfig.Broker.compression:type_name -> openapi.v1beta1.KafkaDownstreamConfig.CompressionType
	8,  // 60: openapi.v1beta1.KafkaDownstreamConfig.Authentication.auth_type:type_name -> openapi.v1beta1.KafkaDownstreamConfig.Authentication.AuthType
	9,  // 61: openapi.v1beta1.KafkaDownstreamConfig.DataFormat.protocol:type_name -> openapi.v1beta1.KafkaDownstreamConfig.DataFormat.Protocol
	59, // 62: openapi.v1beta1.KafkaDownstreamConfig.DataFormat.debezium_config:type_name -> openapi.v1beta1.KafkaDownstreamConfig.DataFormat.DebeziumConfig
	58, // 63: openapi.v1beta1.KafkaDownstreamConfig.DataFormat.avro_config:type_name -> openapi.v1beta1.KafkaDownstreamConfig.DataFormat.AvroConfig
	12, // 64: openapi.v1beta1.KafkaDownstreamConfig.TopicPartitionConfig.dispatch_type:type_name -> openapi.v1beta1.KafkaDownstreamConfig.TopicPartitionConfig.DispatchType
	61, // 65: openapi.v1beta1.KafkaDownstreamConfig.TopicPartitionConfig.partition_dispatchers:type_name -> openapi.v1beta1.KafkaDownstreamConfig.TopicPartitionConfig.PartitionDispatcherConfig
	10, // 66: openapi.v1beta1.KafkaDownstreamConfig.DataFormat.AvroConfig.decimal_handling_mode:type_name -> openapi.v1beta1.KafkaDownstreamConfig.DataFormat.AvroConfig.DecimalHandlingMode
	11, // 67: openapi.v1beta1.KafkaDownstreamConfig.DataFormat.AvroConfig.bigint_unsigned_handling_mode:type_name -> openapi.v1beta1.KafkaDownstreamConfig.DataFormat.AvroConfig.BigintUnsignedHandlingMode
	60, // 68: openapi.v1beta1.KafkaDownstreamConfig.DataFormat.AvroConfig.schema_registry:type_name -> openapi.v1beta1.KafkaDownstreamConfig.DataFormat.AvroConfig.SchemaRegistry
	13, // 69: openapi.v1beta1.KafkaDownstreamConfig.TopicPartitionConfig.PartitionDispatcherConfig.partition_type:type_name -> openapi.v1beta1.KafkaDownstreamConfig.TopicPartitionConfig.PartitionDispatcher
	17, // 70: openapi.v1beta1.S3DownstreamConfig.Endpoint.auth_type:type_name -> openapi.v1beta1.S3DownstreamConfig.Endpoint.S3AuthType
	18, // 71: openapi.v1beta1.ChangefeedService.ListChangefeeds:input_type -> openapi.v1beta1.ListChangefeedsRequest
	21, // 72: openapi.v1beta1.ChangefeedService.GetChangefeed:input_type -> openapi.v1beta1.GetChangefeedRequest
	22, // 73: openapi.v1beta1.ChangefeedService.PauseChangefeed:input_type -> openapi.v1beta1.PauseChangefeedRequest
	23, // 74: openapi.v1beta1.ChangefeedService.ResumeChangefeed:input_type -> openapi.v1beta1.ResumeChangefeedRequest
	26, // 75: openapi.v1beta1.ChangefeedService.GetEventFilters:input_type -> openapi.v1beta1.GetEventFiltersRequest
	30, // 76: openapi.v1beta1.ChangefeedService.SetEventFilters:input_type -> openapi.v1beta1.SetEventFiltersRequest
	31, // 77: openapi.v1beta1.ChangefeedService.CreateChangefeed:input_type -> openapi.v1beta1.CreateChangefeedRequest
	33, // 78: openapi.v1beta1.ChangefeedService.DeleteChangefeed:input_type -> openapi.v1beta1.DeleteChangefeedRequest
	32, // 79: openapi.v1beta1.ChangefeedService.EditChangefeedDownstreamConfig:input_type -> openapi.v1beta1.EditChangefeedDownstreamConfigRequest
	34, // 80: openapi.v1beta1.ChangefeedService.ScaleChangefeed:input_type -> openapi.v1beta1.ScaleChangefeedRequest
	38, // 81: openapi.v1beta1.ChangefeedService.ListChangefeedRCUs:input_type -> openapi.v1beta1.ListChangefeedRCUsRequest
	24, // 82: openapi.v1beta1.ChangefeedService.GetChangefeedKernelInfo:input_type -> openapi.v1beta1.GetChangefeedKernelInfoRequest
	19, // 83: openapi.v1beta1.ChangefeedService.ListChangefeeds:output_type -> openapi.v1beta1.ListChangefeedsResponse
	20, // 84: openapi.v1beta1.ChangefeedService.GetChangefeed:output_type -> openapi.v1beta1.Changefeed
	66, // 85: openapi.v1beta1.ChangefeedService.PauseChangefeed:output_type -> google.protobuf.Empty
	66, // 86: openapi.v1beta1.ChangefeedService.ResumeChangefeed:output_type -> google.protobuf.Empty
	27, // 87: openapi.v1beta1.ChangefeedService.GetEventFilters:output_type -> openapi.v1beta1.EventFilters
	28, // 88: openapi.v1beta1.ChangefeedService.SetEventFilters:output_type -> openapi.v1beta1.SetEventFiltersResponse
	20, // 89: openapi.v1beta1.ChangefeedService.CreateChangefeed:output_type -> openapi.v1beta1.Changefeed
	66, // 90: openapi.v1beta1.ChangefeedService.DeleteChangefeed:output_type -> google.protobuf.Empty
	20, // 91: openapi.v1beta1.ChangefeedService.EditChangefeedDownstreamConfig:output_type -> openapi.v1beta1.Changefeed
	20, // 92: openapi.v1beta1.ChangefeedService.ScaleChangefeed:output_type -> openapi.v1beta1.Changefeed
	39, // 93: openapi.v1beta1.ChangefeedService.ListChangefeedRCUs:output_type -> openapi.v1beta1.ListChangefeedRCUsResponse
	25, // 94: openapi.v1beta1.ChangefeedService.GetChangefeedKernelInfo:output_type -> openapi.v1beta1.ChangefeedKernelInfo
	83, // [83:95] is the sub-list for method output_type
	71, // [71:83] is the sub-list for method input_type
	71, // [71:71] is the sub-list for extension type_name
	71, // [71:71] is the sub-list for extension extendee
	0,  // [0:71] is the sub-list for field type_name
}

func init() { file_openapi_v1beta1_changefeed_proto_init() }
func file_openapi_v1beta1_changefeed_proto_init() {
	if File_openapi_v1beta1_changefeed_proto != nil {
		return
	}
	file_openapi_v1beta1_changefeed_proto_msgTypes[0].OneofWrappers = []any{}
	file_openapi_v1beta1_changefeed_proto_msgTypes[2].OneofWrappers = []any{
		(*Changefeed_Kafka)(nil),
		(*Changefeed_Mysql)(nil),
		(*Changefeed_S3)(nil),
		(*Changefeed_Gcs)(nil),
		(*Changefeed_AzureBlob)(nil),
	}
	file_openapi_v1beta1_changefeed_proto_msgTypes[14].OneofWrappers = []any{
		(*EditChangefeedDownstreamConfigRequest_Kafka)(nil),
		(*EditChangefeedDownstreamConfigRequest_Mysql)(nil),
		(*EditChangefeedDownstreamConfigRequest_S3)(nil),
		(*EditChangefeedDownstreamConfigRequest_Gcs)(nil),
		(*EditChangefeedDownstreamConfigRequest_AzureBlob)(nil),
	}
	file_openapi_v1beta1_changefeed_proto_msgTypes[17].OneofWrappers = []any{
		(*TestConnectionRequest_Kafka)(nil),
		(*TestConnectionRequest_Mysql)(nil),
		(*TestConnectionRequest_S3)(nil),
		(*TestConnectionRequest_Gcs)(nil),
		(*TestConnectionRequest_AzureBlob)(nil),
	}
	file_openapi_v1beta1_changefeed_proto_msgTypes[24].OneofWrappers = []any{
		(*StartPosition_StartTso)(nil),
		(*StartPosition_StartTimestamp)(nil),
	}
	file_openapi_v1beta1_changefeed_proto_msgTypes[26].OneofWrappers = []any{}
	file_openapi_v1beta1_changefeed_proto_msgTypes[36].OneofWrappers = []any{}
	file_openapi_v1beta1_changefeed_proto_msgTypes[37].OneofWrappers = []any{
		(*KafkaDownstreamConfig_DataFormat_DebeziumConfig_)(nil),
		(*KafkaDownstreamConfig_DataFormat_AvroConfig_)(nil),
	}
	file_openapi_v1beta1_changefeed_proto_msgTypes[38].OneofWrappers = []any{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_openapi_v1beta1_changefeed_proto_rawDesc), len(file_openapi_v1beta1_changefeed_proto_rawDesc)),
			NumEnums:      18,
			NumMessages:   47,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_openapi_v1beta1_changefeed_proto_goTypes,
		DependencyIndexes: file_openapi_v1beta1_changefeed_proto_depIdxs,
		EnumInfos:         file_openapi_v1beta1_changefeed_proto_enumTypes,
		MessageInfos:      file_openapi_v1beta1_changefeed_proto_msgTypes,
	}.Build()
	File_openapi_v1beta1_changefeed_proto = out.File
	file_openapi_v1beta1_changefeed_proto_goTypes = nil
	file_openapi_v1beta1_changefeed_proto_depIdxs = nil
}
